我想讀取輸入字串,決議它以在預定義的字典中找到相應的數值。然后輸出從用戶輸入讀入的所有值的總和。就我所知,這是我所能得到的。如果假設用戶輸入 AJE 應該產生 16 的輸出,我一生都無法弄清楚如何添加這些值
user_input = input('Identify your choice(s): ')
def letterToInt(s):
letter = {'A': 1, 'E': 5, 'J': 10, 'O': 15, 'T': 20, 'Z': 26, 'YY': 50}
while True:
if user_input not in letter or user_input == ' ':
return 'Error: Input contains an invalid character. Valid input characters are A, E, J, O, T, Z, YY.'
elif len(user_input) == 1:
return letter[user_input]
if len(user_input) >= 1:
return letter[user_input]
print(letterToInt(user_input))
uj5u.com熱心網友回復:
你while回圈在這里完全沒有意義。給定一個輸入字串,s您需要做的就是:
def letterToInt(s: str) -> int:
letter = {'A': 1, 'E': 5, 'J': 10, 'O': 15, 'T': 20, 'Z': 26, 'YY': 50}
try:
return sum([letter[l] for l in s])
except KeyError as e:
raise ValueError(f"Invalid input letter '{e.args[0]}', valid letters are {','.join(letter.keys())}.")
uj5u.com熱心網友回復:
user_input = input('Identify your choice(s): ') # your input str
def letterToInt(s: str) -> int:
# your dict
letter = {'A': 1, 'E': 5, 'J': 10, 'O': 15, 'T': 20, 'Z': 26, 'YY': 50}
# you need to convert s to a list rather than use a string
# then if any letter in s is no in the letter dictionary then raise an error
if any(k not in letter for k in s.upper()) or s == ' ':
raise ValueError('Error: Input contains an invalid character. Valid input characters are A, E, J, O, T, Z, YY.')
# list comprehension to find the values and sum
return sum([letter[k] for k in s.upper()])
print(letterToInt(user_input))
# Identify your choice(s): AJ
# 11
uj5u.com熱心網友回復:
所以我試圖以一種非常簡單和外行的格式撰寫這段代碼。我相信它可以做得更好。
def lettersToInt(user_input):
input_len = len(user_input)
sum = 0
letter = {'A': 1, 'E': 5, 'J': 10, 'O': 15, 'T': 20, 'Z': 26, 'YY': 50}
for i in range(0,input_len):
if user_input[i] == 'Y' and i < input_len-1:
if user_input[i 1] == 'Y':
p = 'YY'
sum = sum letter[p]
elif user_input[i] in letter:
v = letter[user_input[i]]
sum = sum v
else:
print("Not there")
print(sum)
user_input = input('Identify your choice(s): ')
lettersToInt(user_input)
我顯然添加了一些列印陳述句,但您可以將其替換為 return 陳述句。我已經考慮了我撰寫的代碼的這個特定輸入。我也明白,對于“YY”的情況,它會出現在代碼的 else 部分。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/378049.html
標籤:Python
上一篇:seleniumpython為什么我沒有得到影像url?
下一篇:當輸入(P,p,d,d)以外的任何內容時,如何讓whiletrue回圈繼續運行。當前它只是重復if(P,p,d,d)
