有人能说清楚我的代码出错了吗? 我使用的是Python 3.6。还有一个初学者。谢谢!
import random
dice1 = random.randint(1, 2)
user_input = input("Guess a number: ")
if dice1 == user_input:
print("Well Done!")
else:
print("Try again")
答案 0 :(得分:0)
您真正需要的是while loop
,只要您的答案错误,就会一直询问hidden
号码。正如用户Li357所述,在Python3
中,输入始终是一个字符串,因此您必须将其转换为int。在Python2
中,您不必放int
(仅在此特定情况下)
import random
dice1 = random.randint(1, 2)
user_input = None
while(dice1 != user_input): #Keep asking
user_input = int(input("Guess a number: ")) #Input to int
if int(user_input) == dice1: #Now you check int vs int
print("Well Done!")
break #If found, break from loop
else:
print("Try Again!")
答案 1 :(得分:0)
input()
会返回string,因此您在user_input
中有一个字符串。在dice1
,您有一个integer。试试print(type(user_input))
和print(type(dice1))
。您无法比较不同类型的值。
将user_input
中的值转换为int
,然后将其与dice1
进行比较,如下所示:
import random
dice1 = random.randint(1, 2)
user_input = input("Guess a number: ")
user_input = int(user_input)
# You could replace the above two user_input statements with:
# user_input = int(input("Guess a number: ")) # Uncomment before using
if dice1 == user_input:
print("Well Done!")
else:
print("Try again")
运行上面的代码:
Guess a number: 1
Well Done!
>>>
有关input()的更多信息:
<强>输入强>([提示])
如果存在prompt参数,则将其写入标准输出而不带尾随换行符。然后该函数从输入中读取一行,将其转换为字符串(剥离尾随换行符),然后返回该行。
答案 2 :(得分:-1)
将输入转换为整数:
import random
dice1 = random.randint(1, 2)
user_input = int(input("Guess a number: "))
if dice1 == user_input:
print("Well Done!")
else:
print("Try again")