我正在嘗試計算串列的字母和數字的數量。例如我想得到 15 個字母和 5 個數字。我有一個問題,因為我得到了結果,但是當我使用除錯器時,我看到 isdigit() 的 5 個函式跳過選項并轉到 isaplha()。這是什么原因?第二個問題是,例如,我得到了 2 個數字作為 10,但我只想得到 1。如何重建此代碼?
def coutning(list):
a= 0
b = 0
for elem in list:
for symbol in elem:
if elem.isdigit():
a =1
if symbol.isalpha():
b =1
return f' There is {a} numbers and {b} letters'
print(coutning(["1","7","8","9","10", "Hello my 543 friends"]))
uj5u.com熱心網友回復:
您需要if elem.isdigit():在第二個回圈之前移動條件,并將第二個回圈放入else:. 因此,您首先檢查元素是否顯示數字,如果沒有,則計算其中的字母。
def coutning(list):
a = 0
b = 0
for elem in list:
if elem.isdigit():
a = 1
else:
for symbol in elem:
if symbol.isalpha():
b = 1
return f' There is {a} numbers and {b} letters'
print(coutning(["1", "7", "8", "9", "10", "Hello my 543 friends"]))
印刷:
There is 5 numbers and 14 letters
如果你想把所有的數字和字母都算作符號,你可以這樣做:
def coutning(list):
a,b = 0,0
for elem in ''.join(list):
a = elem.isdigit()
b = elem.isalpha()
return f' There is {a} numbers and {b} letters'
print(coutning(["1", "7", "8", "9", "10", "Hello my 543 friends"]))
輸出:
There is 9 numbers and 14 letters
uj5u.com熱心網友回復:
對于大家,我很抱歉你沒有理解我的意思。我說在這段代碼中一切都很好,直到我達到數字(543)。當我到達它時,我在除錯器中看到我得到了 5,但是代碼跳過了 isdigit 并轉到了 isalpha。我認為 5 不是 alpha,但它以這種方式作業。
def coutning(list):
a= 0
b = 0
for elem in list:
for symbol in elem:
if elem.isdigit():
a =1
if symbol.isalpha():
b =1
return f' There is {a} numbers and {b} letters'
print(coutning(["1","7","8","9","10", "Hello my 543 friends"]))
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/350578.html
上一篇:如何在不使用Windows服務的情況下從DOS啟動Apache
下一篇:F#我無法從字串列印字符
