【发布时间】:2021-05-06 19:11:32
【问题描述】:
我想使用 try-except 代码块来通知用户不要插入 float 类型的值,而是插入 整数。下面的代码不会引发错误,而是会关闭。 我猜它们是 try-except 块上的逻辑错误。
userGuess = int(userGuess)
import random
MAX_GUESSES = 5 # max number of guesses allowed
MAX_RANGE = 20 # highest possible number
# show introductionpygame
print("welcome to my franchise guess number game")
print("guess any number between 1 and", MAX_RANGE)
print("you will have a range from", MAX_GUESSES, "guesses")
def playOneRound():
# choose random target
target = random.randrange(1, MAX_RANGE + 1)
# guess counter
guessCounter = 0
# loop fovever
while True:
userGuess = input("take a guess:")
#check for potential errors
try:
userGuess = int(userGuess)
except:
print("sorry, you are only allowed to enter integers thanks!")
# increment guess counter
guessCounter = guessCounter + 1
# if user's guess is correct, congratulate user, we're done
if userGuess == target:
print("you got it la")
print("it only took you", guessCounter, "guess(es)")
break
elif userGuess < target:
print("try again, your guess is too low.")
else:
print(" your guess was too high")
# if reached max guesses, tell answer correct answer, were done
if guessCounter == MAX_GUESSES:
print(" you didnt get it in ", MAX_GUESSES, "guesses")
print("the number was", target)
break
print("Thanks for playing ")
# main code
while True:
playOneRound() # call a function to play one round of the game
goAgain = input("play again?(press ENTER to continue, or q to quit ):")
if goAgain == "q":
break
【问题讨论】:
-
当
userGuess是浮点数(例如3.14)时执行int(userGuess)会将浮点数转换为整数,并且不会抛出任何错误。 -
如果您正在寻找特定的调试帮助,您应该说明您看到的行为以及它与您希望看到的不同之处。
-
嗨@Thesonter,当你运行你的程序时会发生什么?
-
总是将完整的错误消息(从单词“Traceback”开始)作为文本(不是截图,不是链接到外部门户)有问题(不是评论)。还有其他有用的信息。
标签: python loops random try-except