Python 我的if-else代码有什么问题?
有人能解释一下我的代码哪里做错了吗? 我正在使用Python 3.6。一个初学者。谢谢Python 我的if-else代码有什么问题?,python,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") 将输入转换为整数: import random dice1 = random.rand
import random
dice1 = random.randint(1, 2)
user_input = input("Guess a number: ")
if dice1 == user_input:
print("Well Done!")
else:
print("Try again")
将输入转换为整数:
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")
你真正想要的是一个
while循环
,只要你的答案是错误的,它就会不断地询问隐藏的
号码。正如用户Li357所述,在Python3
中,输入总是一个字符串,因此您必须将其转换为int。在Python2
中,您不必输入int
(仅在本例中)
input()
返回一个字符串,因此在user\u input
中有一个字符串。在dice1
中,您有一个。尝试打印(类型(用户输入))
和打印(类型(dice1))
。不能比较不同类型的值
将user\u 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!
>>>
更多关于:
输入([提示])
如果存在prompt参数,则将其写入标准输出,而不带尾随换行符。然后,函数从输入中读取一行,将其转换为字符串(去掉尾随的换行符),并返回该字符串
一个数字永远不会等于一个字符串。@Li357在这种情况下,当输入一个数字时,
user\u input
将是int,尽管它是一个字符串,直到它被显式转换(在python 3中)为python 3中可能重复的@user1767754,input
返回一个字符串,否?请解释否决投票的理由。这是操作的预期效果。op使用的是python 3.6,非常感谢您。这纠正了我的问题。
Guess a number: 1
Well Done!
>>>