我创建了一个猜谜游戏,只允许用户键入4个数字。我的错误是“'int'对象没有属性'isdigit'”。我正在尝试这样做,以便当用户键入字母时显示错误消息,例如“仅键入数字”,并让用户再次猜测。有人可以给我建议吗?谢谢!对不起,我的英语(不是我的母语)import randomn = random.randint(0, 9999)guesses = 0print()while True: guess = (input("Enter number from 0 to 9999")) guess = int(guess) if not guess.isdigit(): print("Only numbers are allowed") else: guess = int(guess) guesses = guesses + 1 if len(str(guess)) != 4: print (guesses, guess, "Invalid! 4 characters only") print() elif guess < n: print (guesses, guess, "too low") print() elif guess > n: print (guesses, guess, "too high") print() elif guess == n: breakprint (guesses ,guess, "You guessed it!")
2 回答

GCT1015
TA贡献1827条经验 获得超4个赞
isdigit 只能为字符串调用,不能为 int
您必须检查给定的字符串是否可以int通过调用isdigit转换为,然后转换为。int
if not guess.isdigit():
print("Only numbers are allowed")
guess = int(guess)

慕田峪4524236
TA贡献1875条经验 获得超5个赞
Python鼓励使用EAFP,因此您可以编写以下代码:
guess = input("Enter number from 0 to 9999")
try:
guess = int(guess)
except ValueError:
print("Only numbers are allowed")
continue
当从输入字符串到整数的转换失败时,内置转换器将引发一个ValueError。当您发现一个此类错误时,您就知道它不是有效的整数,可以采取相应的措施。
添加回答
举报
0/150
提交
取消