我對 python 比較陌生,我正在努力實作一個程式,提示用戶輸入水果的名稱(例如 Apple),然后在該水果的一部分(例如 130)中輸出該水果的卡路里。我也想忽略任何不是水果的輸入。[單擊此處獲取所需的輸出影像][1]
我嘗試使用字典來解決此問題,以將名稱與其相應的格式匹配:
fruit_dict = {
'Fruit':'Apple', 'Calories':'130',
'Fruit':'Avocado', 'Calories':'50',
'Fruit':'Banana', 'Calories':'110',
'Fruit':'Cantaloupe', 'Calories':'50',
'Fruit':'Grapefruit', 'Calories':'60',
'Fruit':'Grapes', 'Calories':'90',
'Fruit':'Honeydrew Melon', 'Calories':'50',
'Fruit':'Kiwifruit', 'Calories':'90',
'Fruit':'Lemon', 'Calories':'15',
'Fruit':'Lime', 'Calories':'20',
'Fruit':'Nectarine', 'Calories':'60',
'Fruit':'Orange', 'Calories':'80',
'Fruit':'Peach', 'Calories':'60',
'Fruit':'Pear', 'Calories':'100',
'Fruit':'Pineapple', 'Calories':'50',
'Fruit':'Plums', 'Calories':'70',
'Fruit':'Strawberries', 'Calories':'50',
'Fruit':'Sweet Cherries', 'Calories':'100',
'Fruit':'Tangerine', 'Calories':'50',
'Fruit':'Watermelon', 'Calories':'80'
}
item = input('Item: ').strip().title()
if item in fruit_dict:
print(fruit_dict.get)
問題是,我不知道如何獲取用戶輸出(例如Apple)并列印其定義(例如130)
感謝您閱讀此長描述。有人有想法來實施這樣的計劃嗎?
uj5u.com熱心網友回復:
字典是正確的方法,但您的實作不正確,我在下面附上了正確的代碼,希望對您有所幫助
fruit_dict = {
"Apple": "Calories: 130",
"Avocado": "Calories: 50",
"Banana": "Calories: 110",
"Cantaloupe": "Calories: 50",
"Grapefruit": "Calories: 60",
"Grapes": "Calories: 90",
"Honeydrew Melon": "Calories: 50",
"Kiwifruit": "Calories: 90",
"Lemon": "Calories: 15",
"Lime": "Calories: 20",
"Nectarine": "Calories: 60",
"Orange": "Calories: 80",
"Peach": "Calories: 60",
"Pear": "Calories: 100",
"Pineapple": "Calories: 50",
"Plums": "Calories: 70",
"Strawberries": "Calories: 50",
"Sweet Cherries": "Calories: 100",
"Tangerine": "Calories: 50",
"Watermelon": "Calories: 80",
}
item = input("Item: ")
print(fruit_dict.setdefault(item, "Not a fruit"))
uj5u.com熱心網友回復:
dict 中的鍵是唯一的。因此,如果您將 dict 宣告為
fruit_dict = {
'Fruit':'Apple', 'Calories':'130',
'Fruit':'Avocado', 'Calories':'50',
'Fruit':'Sweet Cherries', 'Calories':'100',
'Fruit':'Tangerine', 'Calories':'50',
'Fruit':'Watermelon', 'Calories':'80'
}
實際fruit_dict將是{'Fruit': 'Watermelon', 'Calories': '80'}
您可以使用水果名稱作為鍵,卡路里作為值。
字典可以宣告為
fruit_calories_dict = {
"Apple": 130,
"Avocado": 50,
"Banana": 110,
"Cantaloupe": 50,
"Grapefruit": 60,
"Grapes": 90,
"Honeydrew Melon": 50,
"Kiwifruit": 90,
"Lemon": 15,
"Lime": 20,
"Nectarine": 60,
"Orange": 80,
"Peach": 60,
"Pear": 100,
"Pineapple": 50,
"Plums": 70,
"Strawberries": 50,
"Sweet Cherries": 100,
"Tangerine": 50,
"Watermelon": 80,
}
uj5u.com熱心網友回復:
小寫所有字典鍵以簡化邏輯
fruit_dict = {
"apple": "calories: 130",
"avocado": "calories: 50",
"banana": "calories: 110",
"cantaloupe": "calories: 50",
"grapefruit": "calories: 60",
"grapes": "calories: 90",
"honeydrew melon": "calories: 50",
"kiwifruit": "calories: 90",
"lemon": "calories: 15",
"lime": "calories: 20",
"nectarine": "calories: 60",
"orange": "calories: 80",
"peach": "calories: 60",
"pear": "calories: 100",
"pineapple": "calories: 50",
"plums": "calories: 70",
"strawberries": "calories: 50",
"sweet cherries": "calories: 100",
"tangerine": "calories: 50",
"watermelon": "calories: 80",
}
fruit=input('Enter fruit name: ')
if fruit.lower().strip() in fruit_dict.keys():
print(fruit_dict[fruit])
輸出:
Enter fruit name: banana
calories: 110
希望這可以幫助...
uj5u.com熱心網友回復:
對于初學者來說,您使用字典的想法是您理解問題的良好標志。但是,實作是不正確的,因為您沒有很好地掌握 Python 字典是什么。
你想,給定一個字串,輸出一個與該字串相關的值,對嗎?
在 python 字典中,您可以使用唯一鍵映射非唯一值,如下所示:
myDict = { key: value }
這使得通過呼叫可以訪問該值myDict[key]。在您的情況下,鍵不是唯一的(水果和卡路里)。
因此,您的鍵是水果的名稱,與它們相關的值是卡路里。
fruit_dict = {
"Apple": 130,
"Avocado": 50,
"Banana": 110,
...
}
假設用戶正確輸入了大寫字串,現在可以通過呼叫來訪問該值fruit_dict[user_input]。
要僅考慮字典中包含的水果,您需要檢查輸入是否包含在字典的鍵串列中,使用list(fruit_dict.keys()).
if user_input in list(fruit_dict.keys()):
# do something here
祝你好運!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/488853.html
標籤:Python python-3.x 列表 字典 输入
