我必須撰寫一個函式,它需要三個菜和一個成分,如果菜中沒有該成分,則輸出 true,如果任何菜包含該成分,則輸出 false。
我已經嘗試了幾個小時,最初遇到了一個問題,不管它是為所有測驗用例輸出真還是假。我現在嘗試使用 any() 但它回傳一個 TypeError: 'bool' object is not iterable 我真的很困惑和沮喪。
任何建議將不勝感激。
def free_from(menu: list, ingredient: str):
"""Return whether ingredient is in dish.
Preconditions: menu = dish1, dish2, dish3
Postconditions: if menu has ingredient = false else true
"""
for dish in menu:
if any(ingredient in menu):
return False
return True
menu = [
['soup','onion','potato','leek','celery'],
['pizza','bread','tomato','cheese','cheese'],
['banana']
]
uj5u.com熱心網友回復:
for dish in menu:
if ingredient in dish:
return False
return True
uj5u.com熱心網友回復:
您可以使用另一個 for 函式回圈遍歷選單中每道菜中的每個元素,以檢查指定的不需要的成分是否在選單中。
def free_from(menu: list, unwanted_ingredient: str):
for dish in menu:
for ingredient in dish:
if ingredient == unwanted_ingredient:
return False
return True
menu = [
['soup','onion','potato','leek','celery'],
['pizza','bread','tomato','cheese','cheese'],
['banana']
]
print(free_from(menu, 'onion')) # yes onion in menu
print(free_from(menu, 'garlic')) # no garlic in menu
uj5u.com熱心網友回復:
正如其他人所說:if ingredient in dish:不是選單
我還添加了一些測驗:
def free_from(menu: list, ingredient: str):
"""Return whether ingredient is in dish.
Preconditions: menu = dish1, dish2, dish3
Postconditions: if menu has ingredient = false else true
"""
for dish in menu:
if ingredient in dish:
return False
return True
menu = [
['soup', 'onion', 'potato', 'leek', 'celery'],
['pizza', 'bread', 'tomato', 'cheese', 'cheese'],
['banana']
]
testIngredients = ["soup", "banana", "cake", "turkey", "cheese"]
expected = [False, False, True, True, False]
output = []
for ingredient in testIngredients:
output.append(free_from(menu, ingredient))
print(expected)
print(output)
print(output == expected)
輸出:
[False, False, True, True, False]
[False, False, True, True, False]
True
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/398017.html
