在有限尝试游戏中猜我的号码

Posted

技术标签:

【中文标题】在有限尝试游戏中猜我的号码【英文标题】:Guess my number in limited tries game 【发布时间】:2012-10-28 22:55:55 【问题描述】:

作为我大学课程的一部分,我正在学习 python 一个任务,我一直在尝试(重新)编写这个猜数字游戏,如果用户在 5 次尝试内未能正确猜出,则终止:

    # Guess My Number Mod 5 tries or bust


import random  

print("\nI'm thinking of a number between 1 and 100.")
print("Try to guess it in five tries or less")

my_number = random.randint(1, 100)
guess = int(input("Go on, Take a guess, I dare ya "))
tries = 1

while guess != my_number:
    if guess > my_number:
        print("Lower...")
    else:
        print("Higher...")
guess = int(input("Go on, Take a guess, I dare ya "))
tries += 1
if tries==5:
        input("You failed to guess the number was it that hard?\n Press any key to exit!)"

print("Well done you guessed correctly!The number was", my_number)
print("And it only took you", tries, "tries!\n")

input("\n\nPress the enter key to exit.")

我认为终止原因不起作用,因为我的 if 语句在 while 循环之外,我无法使其生效。

还有一些无效的语法,因为我累了,看不出来。

如果可能的话,你们能否给我一些关于如何解决我想做的事情的提示,因为我更有可能以这种方式学习。

【问题讨论】:

感谢指出错误,我在上面改了。理想情况下,我应该放置逗号,但不要成为语法纳粹。世界上还有更重要的事情 【参考方案1】:

您希望在遇到特定条件时break退出循环。

if condition:
            # do something
            break # brings you out of the loop

【讨论】:

如果我曾经使用过 break ,我的导师会杀了我 lol 我环顾四周并修复它没有意识到我可以在编写循环时使用 and 运算符,例如:while guess != my_number and try break 不是一个的东西。 是的,这对我来说似乎很方便,但根据我的导师的说法,这是一种懒惰编程的出路,而且总是有一个更好的循环可以在没有中断的情况下使用,但是很好:) 有时,在循环中执行了几条指令后,您想跳出循环。没有休息,就不可能做到 @MANICX100:我必须同意 Cthuhu 和 Bartlomiej 的观点。休息不是坏事。事实上,这是完全必要的。而使用 goto 语句通常被认为是不好的做法。希望您没有以某种方式混淆它们。【参考方案2】:

如果有人在 2020 年搜索这个:

import random

n = random.randint(1, 10)

guess_count = 0

guess_limit = 2      #actual try count will be 3

while guess_count <= guess_limit :

    guess = int(input("Enter an integer from 1 to 10: "))

    guess_count += 1
    
    if guess == n:

        print("you guessed it in ", guess_count,"Guesses")

        break
    
else:

    print ("Sorry, the correct number is", n)

【讨论】:

一个简短的解释将有助于理解为什么这个解决方案是“一个”有效的解决方案。我们不是“代码转储”社区;我们想从中学习。欢迎来到 SO ;-)

以上是关于在有限尝试游戏中猜我的号码的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中跟踪 Hangman 游戏中猜到的字母?

尝试创建乐透游戏,执行和编译有问题

Python 猜年龄的游戏

PythonPython 猜年龄的游戏

如何检查两个字符串是不是是字谜?

LintCode 662. 猜数游戏