Python If语句在我的程序中不起作用 导入时间 name=输入(“输入您的姓名:”) currentTime=int(time.strftime('%H')) 如果currentTime12: 打印(“下午好,”+姓名) 其他: 打印(“晚上好,”+姓名) def main(): 随机输入 guess:int=input('输入一个介于1和2之间的数字:') 如果代码中的guess
Python If语句在我的程序中不起作用 导入时间 name=输入(“输入您的姓名:”) currentTime=int(time.strftime('%H')) 如果currentTime12: 打印(“下午好,”+姓名) 其他: 打印(“晚上好,”+姓名) def main(): 随机输入 guess:int=input('输入一个介于1和2之间的数字:') 如果代码中的guess,python,if-statement,python-3.7,Python,If Statement,Python 3.7,guess类型为str,请阅读以下文档: 然后,该函数从输入中读取一行,将其转换为字符串 (剥离尾随换行符),并返回 当您使用guess:int时,您使用的是一个。文件说: Python运行时不强制函数和变量类型 注释。它们可以由第三方工具使用,例如type 方格、方格、短绒等 在if中,您试图将int与str进行比较。在Python控制台中运行此命令以查看: print(1 == '1') # --> False print(1 == 1) # --> True 因此,您需要做的
guess
类型为str
,请阅读以下文档:
然后,该函数从输入中读取一行,将其转换为字符串
(剥离尾随换行符),并返回
当您使用guess:int
时,您使用的是一个。文件说:
Python运行时不强制函数和变量类型
注释。它们可以由第三方工具使用,例如type
方格、方格、短绒等
在if
中,您试图将int
与str
进行比较。在Python控制台中运行此命令以查看:
print(1 == '1') # --> False
print(1 == 1) # --> True
因此,您需要做的是显式地将其转换为int
:
guess = int(input('Enter a number the between 1 and 2 :'))
并将第一个如果更改为:
if guess <= 2:
...
如果您的guess
是从input()
返回的字符串,但是您的num
是从randint()
返回的int
。你的意思是:guess=int(输入('输入一个介于1和2之间的数字:')
?input
返回一个字符串,因此guess
是一个字符串。将字符串与整数进行比较(如果num==guess:
)将永远不会得到True
。使用guess:int
您给出了一个类型提示,但这只是对程序员或工具的提示。您必须自己将字符串转换为整数。首先,在“guess”变量处传递一个字符串,而不是int。同样的事情也发生在“num”上。另外,“@dimosgeonum
是通过调用random.randint
创建的,因此一个是整数。顺便说一句,python中没有强制转换
。您的示例是一个转换。@quamrana谢谢!我更改了它