我试图创建一个简单的切块基础游戏,用户选择一个数字,如果程序滚动,他们就赢了。问题在于,即使我赢了,该计划也会说,“哦,不,你输了!”#34;我无法理解为什么。求救!
chosennumber = ("The dice rolled the number")
user_text = "Choose a number between 1-6"
print (user_text)
number = input('Enter a number: ')
import random
mylist = [1,2,3,4,5,6]
randomnum = random.choice(mylist)
print (chosennumber, randomnum)
if (number == randomnum):
print ("You win")
else:
print ("Oh no, you lose!")
答案 0 :(得分:2)
问题是“number”变量是一个字符串,“input”总是返回一个字符串,而在你的“if”中你将一个字符串与一个总是会返回false的数字进行比较。您可以使用类型(数字)进行检查。要解决此问题,您必须使用int(数字)将输入转换为整数。
此外,您可以更清楚您的代码。将导入放在开头,尽量不要创建不必要的变量。如上所述,您可以避免列表使用随机生成1到6之间的数字
import random
chosennumber = ("The dice rolled the number")
print ("Choose a number between 1-6")
number = input('Enter a number: ')
randomnum = random.randint(1,6)
print (chosennumber, randomnum)
if (int(number) == randomnum):
print ("You win")
else:
print ("Oh no, you lose!")