在有限尝试游戏中猜我的号码
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 trybreak
不是一个坏的东西。
是的,这对我来说似乎很方便,但根据我的导师的说法,这是一种懒惰编程的出路,而且总是有一个更好的循环可以在没有中断的情况下使用,但是很好:)
有时,在循环中执行了几条指令后,您想跳出循环。没有休息,就不可能做到
@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 ;-)以上是关于在有限尝试游戏中猜我的号码的主要内容,如果未能解决你的问题,请参考以下文章