我在做字典!我試圖讓用戶選擇 1 - 10 之間的數字來為其生成韓語單詞。我能夠讓用戶輸入列印出正確的翻譯,但如果未選擇 1 - 10 之間的數字,我希望我的代碼告訴用戶再試一次。高跟鞋。
#1 is key
#all keys need to be unique
#Hana is value
print ("Welcome to the Korean Converter!")
user = int(input("Enter a number between 1 and 10: "))
koreanConversion = {
1: "Hana",
2: "Tul",
3: "Set",
4: "Net",
5: "Ta Sut",
6: "Yuh Sut",
7: "Il Jop",
8: "Yu Dulb",
9: "Ah Hop",
10: "Yul"
}
print (koreanConversion[user])
#else:
# user = int(input("Please try again: "))
#if (koreanConversion[user]) != [user]
# print("Please try again.")
uj5u.com熱心網友回復:
當您的輸入有一些未發現的情況時,使用 [] 通常不是一個好主意,因此請對字典使用 .get 方法:
print(koreanConversion.get(user, ""))
這意味著使用用戶密鑰獲取專案,如果它不存在,則列印“”為空,這應該可以解決您的問題
uj5u.com熱心網友回復:
檢查這個
koreanConversion = {
1: "Hana",
2: "Tul",
3: "Set",
4: "Net",
5: "Ta Sut",
6: "Yuh Sut",
7: "Il Jop",
8: "Yu Dulb",
9: "Ah Hop",
10: "Yul"
}
print("Welcome to the Korean Converter!")
while True:
_input = input("Enter a number between 1 and 10: ")
number = int(_input)
if koreanConversion.get(number, None):
print(koreanConversion[number])
break
else:
print('Try again.')
continue
uj5u.com熱心網友回復:
我建議您嘗試使用串列:
def KoreanConverter():
koreanConversion = ["Hana", "Tul", "Set", "Net", "Ta Sut", "Yuh Sut", "Il Jop", "Yu Dulb", "Ah Hop", "Yul"]
print("Welcome to the Korean Converter!")
i = int(input("Enter a number between 1 and 10: ")) - 1
if not i in range(0, 9):
return "Please provide a valid number between 1 and 10!"
return koreanConversion[i]
playing = True
while playing:
print(KoreanConverter())
playing = ("y" == input("Keep converting ? y/N")
uj5u.com熱心網友回復:
一些人建議使用.get()默認值和/或提前檢查該專案是否在字典中。另一種選擇是使用try/except:
while True:
try:
print(koreanConversion[
int(input("Enter a number between 1 and 10: "))
])
break
except (KeyError, ValueError):
print('Try again.')
以這種方式使用例外處理的一個很好的方面是您可以在一個地方處理兩種例外:
ValueError如果int()轉換失敗,則會引發KeyError如果它有效int但不在您的字典中,則會引發
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/344223.html
上一篇:透視包含串列的列
