请耐心等待,我已经完成了 n00b,我决定测试我的知识,但显然失败了。
我的 Python 函数应该通过询问尺寸和成分来构建披萨。
我不知道披萨有多少种配料。顾客可以输入任意数量的成分。
这是我的代码:
u_prisada = ""
u_velikost = ""
def bulding_pizzza(u_velikost, identification, **prisada):
u_velikost = input("Tell me size of your pizza in cm: ")
u_velikost = int(u_velikost)
while True:
identification = input("Give your ingredience a number: ")
u_prisada = input("Tell me ingredience for your pizza: ")
for identification. u_prisada in prisada.items():
prisada[identification] = u_prisada
decision = input("Do you wish to add next ingredience? Yes/No: ")
if decision.lower() == "yes":
continue
else:
return prisada
break
u_pizza = bulding_pizzza(u_velikost, u_prisada)
print("Your pizza has these attributes: ")
for key, value in u_pizza.items():
print(key)
print(value)
我还没有尝试过任何值得一提的事情,这是很容易的任务,但我被困住了。
你有一个循环破坏了整个事情。使用字典时,不需要循环遍历对象来添加值,只需使用
dictionary[key] = value
即可。我把固定代码留在这里(另请阅读下面的注释):
u_prisada = ""
u_velikost = ""
def bulding_pizzza(u_velikost, identification, **prisada):
u_velikost = input("Tell me size of your pizza in cm: ")
u_velikost = int(u_velikost)
while True:
identification = input("Give your ingredience a number: ")
u_prisada = input("Tell me ingredience for your pizza: ")
prisada[identification] = u_prisada
decision = input("Do you wish to add next ingredience? Yes/No: ")
if decision.lower() == "yes":
continue
else:
return prisada
break # This can be removed as the return statement does yet break the loop
u_pizza = bulding_pizzza(u_velikost, u_prisada)
print("Your pizza has these attributes: ")
for key, value in u_pizza.items():
print(key)
print(value)
注意: 使用数组而不是字典可能更好,因为您只想列出比萨饼的成分。示例:
u_pizza = ['tomato', 'cheese', 'pepperoni']
如果您想存储成分及其数量,您可以创建一个在每个位置包含一个对象的数组:示例:u_pizza = [{ ingredient: 'pepperoni', amount: '5 units' }, { ingredient: 'cheese', amount: '2ml' }]
。
希望这对您有帮助!