我試圖讓 if/else 陳述句在 for 回圈中運行。盡管引數滿足其上面所有陳述句的標準,但輸出是 else 部分。這是我的代碼:
import string
print(string.ascii_lowercase)
print(string.ascii_uppercase)
print(string.ascii_letters)
print(string.digits)
print(string.punctuation)
my_string = '4n%$P9'
for index in range(0, len(my_string), 1):
if my_string in string.ascii_lowercase:
print("'{}' is a lowercase letter.".format(my_string))
elif my_string in string.ascii_uppercase:
print("'{}' is an uppercase letter.".format(my_string))
elif my_string in string.digits:
print("'{}' is a digit in arabic.".format(my_string))
elif my_string in string.punctuation:
print("'{}' is a punctuation mark.".format(my_string))
else:
print("Does not compute.")
輸出是這樣的:
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
!"#$%&'()* ,-./:;<=>?@[\]^_`{|}~
Does not compute.
Does not compute.
Does not compute.
Does not compute.
Does not compute.
Does not compute.
我沒有收到語法錯誤,所以我想知道,我沒有使用正確的關鍵字嗎?邏輯有問題嗎?
uj5u.com熱心網友回復:
問題不在于if陳述句,而在于您的for回圈。看起來你想遍歷每個字符my_string并單獨測驗它,而不是my_string一次測驗:
for c in my_string:
if c in string.ascii_lowercase:
print(f"'{c}' is a lowercase letter.")
elif c in string.ascii_uppercase:
print(f"'{c}' is an uppercase letter.")
elif c in string.digits:
print(f"'{c}' is a digit in arabic.")
elif c in string.punctuation:
print(f"'{c}' is a punctuation mark.")
else:
print(f"'{c}' does not compute.")
印刷:
'4' is a digit in arabic.
'n' is a lowercase letter.
'%' is a punctuation mark.
'$' is a punctuation mark.
'P' is an uppercase letter.
'9' is a digit in arabic.
請注意,c作為“不計算”訊息的一部分進行列印可以讓您查看未計算的字符 - 如果您my_string在原始代碼中這樣做了,您會看到:
'4n%$P9' does not compute.
'4n%$P9' does not compute.
'4n%$P9' does not compute.
'4n%$P9' does not compute.
'4n%$P9' does not compute.
'4n%$P9' does not compute.
對于問題所在,這將是一個很好的線索!
uj5u.com熱心網友回復:
您正在檢查整個字串是否是string模塊中每個常量的子字串。您想對字串中的每個字符執行該檢查,如下所示:
import string
my_string = '4n%$P9'
for char in my_string:
if char in string.ascii_lowercase:
print("'{}' is a lowercase letter.".format(char))
elif char in string.ascii_uppercase:
print("'{}' is an uppercase letter.".format(char))
elif char in string.digits:
print("'{}' is a digit in arabic.".format(char))
elif char in string.punctuation:
print("'{}' is a punctuation mark.".format(char))
else:
print("Does not compute.")
這輸出:
'4' is a digit in arabic.
'n' is a lowercase letter.
'%' is a punctuation mark.
'$' is a punctuation mark.
'P' is an uppercase letter.
'9' is a digit in arabic.
uj5u.com熱心網友回復:
您正在嘗試比較整個字串是否在 中string.ascii_lowercase,而不僅僅是字母,您需要實際運行my_string[index].
import string
print(string.ascii_lowercase)
print(string.ascii_uppercase)
print(string.ascii_letters)
print(string.digits)
print(string.punctuation)
my_string = '4n%$P9'
for index in range(0, len(my_string), 1):
if my_string[index] in string.ascii_lowercase:
print("'{}' is a lowercase letter.".format(my_string[index]))
elif my_string[index] in string.ascii_uppercase:
print("'{}' is an uppercase letter.".format(my_string[index]))
elif my_string[index] in string.digits:
print("'{}' is a digit in arabic.".format(my_string[index]))
elif my_string[index] in string.punctuation:
print("'{}' is a punctuation mark.".format(my_string[index]))
else:
print("Does not compute.")
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/451700.html
下一篇:任務運行5次后啟動任務
