我正在嘗試撰寫一個用戶輸入隨機文本的程式,如果它有小寫字母、大寫字母和/或數字,它將列印出來。每當我嘗試輸入數字和字母的組合時,它都不會列印。有人可以幫我嗎?
string = input("write something here: ")
if string.isalpha() and not string.isupper():
print("Has letter")
if string.isupper():
print("Has only upper letters")
if string.islower():
print("Has only lower letters")
if string.isdigit():
print("Has numbers")
if string.isalpha() and string.isdigit():
print("Has numbers and letters")
uj5u.com熱心網友回復:
每當我嘗試輸入數字和字母的組合時,它都不會列印。
輸入 liketest123不會列印出來,Has numbers and letters因為該函式isalpha正在檢查所有字符是否為字母(例如abc但不是abc1),而該函式isdigit測驗是否所有字符都是數字(例如123但不是123x)
這里的解決方案是使用函式str.isalnum(是字母數字):
# passes for: abc123, abc, 123
if string.isalnum():
print("Has numbers and/or letters")
或者,如果您想排除它只有數字還是只有字母:
# passes for: abc123
if string.isalnum() and not string.isdigit() and not string.isalpha():
print("Has both numbers and letters")
uj5u.com熱心網友回復:
這是因為像 isalpha 和 isdigit 這樣的函式只有在它們只包含字母或數字時才會回傳 True。不是都。
所以 isalpha("ldshfldhf") 將回傳 True,但 isalpha("ldshfldhf12") 不會回傳 True。
同樣 isdigit("123490") 將回傳 True 但 isdigit("az123490") 將回傳 False。
因此,您上面的 if 陳述句都不會回傳 True,因此不會列印任何內容。
uj5u.com熱心網友回復:
string = input("enter random text here:")
if string.isalnum():
print("It is alphanumeric character")
if string.isalpha():
print("It is alphabet character")
if string.islower():
print("It is lowercase alphabet character")
elif string.isupper():
print("It is a uppercase alphabet character")
else:
print("It is a digit")
elif string.isspace():
print("It is a space character")
else:
print("It is a special character")
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/433800.html
