簡體   English   中英

學習編碼,我有一個關於 IF on python 的問題

[英]Learning to code, I have a question about IF on python

所以我正在學習在 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')

這不是忽略你的 elifs。 你只是誤解了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')

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM