学习编码,我有一个关于python上的IF的问题



所以我正在学习在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')

它不是忽略你的灵药。你只是误解了isdigit是什么。

isdigit告诉您字符串中的所有字符是否都是数字。它不会将字符串转换为数字;它返回 True 或 False。

要转换为整数,请使用 int

if int(age) == 26:
   ...

既然你提到你正在尝试学习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')

希望这有帮助。

最新更新