|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
def order():
menu = ['洋葱炒牛肉','洋葱炒羊肉','煎蛋','番茄炒蛋','土豆萝卜炖羊肉']
new_menu = enumerate(menu,start=1)
print('客官你想吃什么?')
i = input('1.洋葱炒牛肉;2.洋葱炒羊肉;3.煎蛋;4.番茄炒蛋;5.土豆萝卜炖羊肉:')
order1 = i.split()
d = {}
for v,k in list(new_menu):
for i in order1:
if v is i:
d.setdefault(k,0) += 1# d 标红
print(order2)
SyntaxError: 'function call' is an illegal expression for augmented assignment
为什么会出现这个报错呢?
要怎么合理的修改
在你的代码中,出现了一个语法错误。该错误是因为在使用增强赋值操作符 +=时,你将其用于函数调用上,而这是不合法的。
具体来说,问题出在这一行代码上:
增强赋值操作符 +=需要一个可变对象作为左操作数,但 setdefault()方法返回的是一个新的值,而不是可变对象。因此,你无法将其与 +=操作符结合使用。
要解决这个问题,你可以将增强赋值操作符拆分为两个步骤,首先获取字典中的值,然后再递增它。修改后的代码如下所示:
- for v, k in list(new_menu):
- for i in order1:
- if v == int(i): # 将字符串转换为整数进行比较
- d.setdefault(k, 0)
- d[k] += 1
复制代码
在这里,我们先使用 setdefault()方法为字典 d中的键 k设置默认值为0,然后再对该键的值递增1。
希望这个修改能够解决你的问题。如果你还有其他疑问,请随时提问。
如果问题已经解决,请设置最佳答案
|
|