我的if else代码怎么了?

时间:2017-12-19 05:37:28

标签: python

有人能说清楚我的代码出错了吗? 我使用的是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")

3 个答案:

答案 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")