所以我正在学习使用Python进行编码,并对IF语句在这里的工作方式有一些疑问,因为它似乎忽略了我的elif。
我得到的唯一结果是最后一个,因此我尝试放置其他选项并删除了最后一个,结果是我根本没有任何答案。
print('name:')
name=input()
if name=='John':
print('Sup John')
elif name!='John':
print('Sup stanger')
print('age?')
age=input()
if (age.isdigit())==26:
print('Yup')
elif (age.isdigit())<=0:
print('WUT?!')
elif (age.isdigit())>=100:
print('Are you inmortal?')
elif (age.isdigit())<=25: #Only result I get no matter what
print('Too young')
答案 0 :(得分:1)
这并不是忽略您的精灵。您只是误解了isdigit
是什么。
isdigit
告诉您字符串中的所有字符是否都是数字。它不会将字符串转换为数字。它返回True或False。
要转换为整数,请使用int
。
if int(age) == 26:
...
答案 1 :(得分:0)
由于您已经提到要尝试学习Python,因此我的回答将更加明确。
isdigit
检查字符串是否为数字。让我们举个例子。
>>> s = "23"
>>> k = "abc"
>>> type(s)
<class 'str'>
>>> type(k)
<class 'str'>
>>> s.isdigit()
True
>>> k.isdigit()
False
在您的情况下,第一个if
检查字符串并获取True,并且代码存在条件。因此,您的代码应如下所示。
print('name:')
name = input()
if name=='John':
print('Sup John')
else:
print('Sup stanger')
print('age?')
age = input()
if int(age) == 26:
print('Yup')
elif int(age) <= 0:
print('WUT?!')
elif int(age) >= 100:
print('Are you inmortal?')
elif int(age) <= 25: #Only result I get no matter what
print('Too young')
希望这会有所帮助。