【发布时间】:2016-12-06 17:33:07
【问题描述】:
像我之前的许多人一样,我在这方面是全新的,所以如果我没有提供所有需要的信息,请放轻松,提前谢谢你。
在我开始之前,值得一提的是程序本身运行良好,我担心的是确保我已经考虑了所有可能的情况。开始。
我收到此错误:
File "C:\Users\brand\Desktop\WIP Programs\Guess the number 31.July.py", line 15, in <module>
userGuess = int(input("I guess: "))
ValueError: invalid literal for int() with base 10: ' '
当我按空格键输入时,它会返回这个。我不知道如何使程序返回一些有用的东西,例如再次猜测的能力。这是我的代码,供参考:
import random
guessNum = 0
print("Welcome to the guess the number game! Please, tell me your name!")
user = input("My name is: ")
randNum = random.randrange(1, 10, 1) #Generates number
print("Okay, " + user + ", guess the random number, the range is 1 to 10.")
#Guessing phase
while guessNum < 3:
userGuess = int(input("I guess: "))
if userGuess > randNum:
print("Too high! Try again.")
guessNum = guessNum + 1
if userGuess < randNum:
print("Too low! Try again.")
guessNum = guessNum + 1
if userGuess == randNum:
print("Great! You guessed my number!")
break
else:
print("Please choose a valid answer.")
if userGuess == randNum:
print("If you would like to play again, please restart the program.")
if userGuess != randNum:
print("Nope. My number was: " + str(randNum))
如果我有任何不需要或缺少我应该拥有的任何东西,请随时纠正我!
编辑!
离开第一个回复。我将 .isdigit() 正确添加到我的代码中:
if (userGuess.isdigit()):
userGuess = input("I guess: ")
if userGuess > randNum:
print("Too high! Try again.")
guessNum = guessNum + 1
它不断传递一个异常,说“userGuess”未定义。美好的!好的,所以我在用户旁边的代码开头定义它。运行时返回
AttributeError: 'int' object has no attribute 'isdigit'
也很好,所以我将 str(0) 添加到 userGuess 以尝试修复,然后返回:
TypeError: unorderable types: str() > int()
它现在让我输入一个数字,但我不知道如何解决。有什么建议吗?
【问题讨论】:
-
编辑听起来完全像different problem。
-
查看您的编辑,这完全取决于您定义它的顺序。 Python 将尝试根据值是什么来分配数据类型。您编辑的代码试图在您实际从用户那里获取该值之前检查该值是否合法。如果正确完成,在程序开始时定义变量将消除运行时错误,但仍不会进行输入验证。请参阅下面的答案以了解正确的顺序。您想要 1. 获取用户输入。 2.检查是否有效。 3.如果有效,则对其进行操作
标签: python python-3.x