我编写了一段代码,它没有产生预期的结果,但如果我运行在互联网上找到的相同代码块,它会完美运行。 如果我能找到代码中的错误,我将不胜感激。
该程序应该;
我。提示用户输入项目,每行一个,直到用户输入 control-d
二.然后以全大写形式输出用户的购物清单,按项目字母顺序排序,并在每行前面加上用户输入该项目的次数。
我的代码
l = []
grocery_list = {}
while True:
try:
item = input().upper()
l.append(item)
except EOFError:
for _ in l:
if not item in grocery_list:
grocery_list[item] = 1
else:
grocery_list[item] += 1
for item, number in sorted(grocery_list.items()):
print(number, item)
break
我在网上找到的代码
l = []
c = {}
while True:
try:
a = input().upper()
l.append(a)
except EOFError:
print("")
for i in l:
if not i in c:
c[i] = 1
else:
c[i] += 1
for key, value in sorted(c.items()):
print(value,key)
exit()
我尝试过多次调试,甚至调整变量名称以匹配,没有骰子
您的代码忽略
for
循环 for _ in l:
中的变量。另一个代码是for i in l:
。
您正在检查
item
是否不在杂货店列表中。但是你总是检查相同的 item
是否至少,你没有用循环更新 item
变量。此外,如果程序进入 item
块而未至少进入 except
块一次,则不会设置 try
变量。