我的回复链接:-https://replit.com/@AdityaShukla29/Python-error-check?v=1我尝试了replit中的代码,当我键入latte或report时,它给出了一个错误。
vq8itlhq1#
您正在重用变量coffee。它开始引用整个菜单:
coffee
coffee=Coffee.MENU
但在后面的代码中,您可以重新分配它:
coffee=coffee[ask]["ingredients"]["coffee"]
在你重新分配coffee之后,它指向一个int(ingredients中的咖啡量)。下次你试图在coffee之前指向的菜单字典中查找一个项目时,你会得到一个错误,因为它不再是一个字典,而是一个int。要解决这个问题,请使用有助于防止意外重用变量的名称。我可能会建议将import行改为:
int
ingredients
import
from Coffee import MENU
然后只使用MENU[ask][etc...],使用原来的名称可以使您更容易记住它引用的内容(MENU全局变量),并且不太可能将它重新分配给其他对象。
MENU[ask][etc...]
MENU
1条答案
按热度按时间vq8itlhq1#
您正在重用变量
coffee
。它开始引用整个菜单:但在后面的代码中,您可以重新分配它:
在你重新分配
coffee
之后,它指向一个int
(ingredients
中的咖啡量)。下次你试图在coffee
之前指向的菜单字典中查找一个项目时,你会得到一个错误,因为它不再是一个字典,而是一个int
。要解决这个问题,请使用有助于防止意外重用变量的名称。我可能会建议将
import
行改为:然后只使用
MENU[ask][etc...]
,使用原来的名称可以使您更容易记住它引用的内容(MENU
全局变量),并且不太可能将它重新分配给其他对象。