相同的代码,但一个运行而另一个不运行

问题描述 投票:0回答:1

我编写了一段代码,它没有产生预期的结果,但如果我运行在互联网上找到的相同代码块,它会完美运行。 如果我能找到代码中的错误,我将不胜感激。

该程序应该; 我。提示用户输入项目,每行一个,直到用户输入 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()

我尝试过多次调试,甚至调整变量名称以匹配,没有骰子

python cs50
1个回答
0
投票

您的代码忽略

for
循环
for _ in l:
中的变量。另一个代码是
for i in l:

您正在检查

item
是否不在杂货店列表中。但是你总是检查相同的
item
是否至少,你没有用循环更新
item
变量。此外,如果程序进入
item
块而未至少进入
except
块一次,则不会设置
try
变量。

© www.soinside.com 2019 - 2024. All rights reserved.