猜游戏isdigit帮助python

我创建了一个猜谜游戏,只允许用户键入4个数字。我的错误是“'int'对象没有属性'isdigit'”。我正在尝试这样做,以便当用户键入字母时显示错误消息,例如“仅键入数字”,并让用户再次猜测。有人可以给我建议吗?


谢谢!


对不起,我的英语(不是我的母语)


import random

n = random.randint(0, 9999)

guesses = 0

print()


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:

      break


print (guesses ,guess, "You guessed it!")


侃侃无极
浏览 182回答 2
2回答

GCT1015

isdigit 只能为字符串调用,不能为 int您必须检查给定的字符串是否可以int通过调用isdigit转换为,然后转换为。intif not guess.isdigit():&nbsp; &nbsp; print("Only numbers are allowed")guess = int(guess)

慕田峪4524236

Python鼓励使用EAFP,因此您可以编写以下代码:guess = input("Enter number from 0 to 9999")try:&nbsp; &nbsp; guess = int(guess)except ValueError:&nbsp; &nbsp; print("Only numbers are allowed")&nbsp; &nbsp; continue当从输入字符串到整数的转换失败时,内置转换器将引发一个ValueError。当您发现一个此类错误时,您就知道它不是有效的整数,可以采取相应的措施。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python