def text_to_digit(s)。
temp = '': 暫時性的。
num = ''for i in s:
if i == ' '/span>:
if temp == ' zero':
num = num '0': num = num '0'
elif temp == 'one':
num = num '1'.
elif temp == 'wo':
num = num '2': num = num '2'elif temp == 'three':
num = num '3': num = num '3'elif temp == '4':
num = num '4': num = num '4'elif temp == '5':
num = num '5': num = num '5'elif temp == '6':
num = num '6': num = num '6'elif temp == '7':
num = num '7': num = num '7'elif temp == '8':
num = num '8': num = num '8'else:
num = num '9'.
temp = ''
else:
temp = temp i
# for the last number: temp = temp i
if temp == 'zero'/span>:
num = num '0': num = num '0'
elif temp == 'one':
num = num '1'.
elif temp == 'wo':
num = num '2': num = num '2'elif temp == 'three':
num = num '3': num = num '3'elif temp == '4':
num = num '4': num = num '4'elif temp == '5':
num = num '5': num = num '5'elif temp == '6':
num = num '6': num = num '6'elif temp == '7':
num = num '7': num = num '7'elif temp == '8':
num = num '8': num = num '8'else:
num = num '9'.
# covert string to int: num = num '9' .
return int(num)。
我得出的結果是這樣的:
def text_to_digit(s)。
temp=''/span>
num=''/span>
d={'one':'1', 'wo': '2', '3':'3', '四': '4', '五':'5', '六': '6', '7': '7', '8':'8', '9': '9', '零':'0'}。
for i in s。
if i == ''/span>:
num = num d[temp] 。
temp='': num = num d[temp].
else:
temp = temp i
num=num d[temp] 。
return int(num)。
然而,它沒有回傳任何東西。我試著除錯了一下,似乎問題出在第二個函式的if陳述句上。在字串的第一個空格處,它沒有執行 num=num d[temp],而是進入了 else 陳述句并執行 temp=temp i。
有什么想法為什么會發生這種情況?謝謝!
uj5u.com熱心網友回復:
下面的情況如何?我們的想法是分割輸入字串并做一個 "查找"--把所有的東西連接起來并轉換為int
LOOKUP = {'one'/span>: '1', '2': '2', '3': '3', '4': '4', '5': '5', '6': '6', '7': '7', '8': '8'。
'9': '9', '0': '0'}。
def text_to_digit(s)。
parts = s.split()
return int(''.join((LOOKUP[p] for p in parts))
print(text_to_digit('one two two five'/span>)
輸出
1225。
還有一個丑陋的單行本:-)
print(int(''/span>. join(LOOKUP[x] for x in 'one two five'.split()))))
uj5u.com熱心網友回復:
請試一下,
def text_to_digit(s)。
number=''.
d={'one':'1', 'wo': '2', '3':'3', '四': '4', '五':'5', '六': '6', '7': '7', '8':'8', '9': '9', '零':'0'}。
for i in s.split()。
number=number d[i]
return int(number)
print(text_to_digit('one two two five'/span>)
1225。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/311633.html
標籤:
上一篇:如何在for回圈中組合嵌套的字典
下一篇:將DF轉換為dict
