【发布时间】:2014-05-23 19:22:45
【问题描述】:
我的 cookie 点击器还有一个问题... 这是我编写的产生错误的代码:
cps=cps+bcps[buych]
c=c-bprice[buych]
eval(buych)=eval(buych)+1
cps 是一个变量,
c 是一个变量,
b1,b2,b3,b4,b5 是变量
buych 是一个字符串(我从 input() 命令获得)
bcps 和 bprice 是地图(如下所示)
bcps = {"b1":'1',
"b2":'5',
"b3":'10',
"b4":'20',
"b5":'25'}
bprice = {"b1":'10',
"b2":'20',
"b3":'30',
"b4":'40',
"b5":'50'}
所以,我想要实现的是:
- 取输入的字符串值,将是'b1','b2', 'b3', 'b4', 'b5'
-在 bcps 内增加 cps 购买它的价值
-在 bprice 内将 c 的值减小
- 使用 eval 将 'b#' 转换为 b#
- 将 b# 增加 1
运行脚本时,我在 python shell 中没有收到错误文本。相反,我得到一个弹出窗口,上面写着“无法分配给函数调用”。错误突出显示为 eval() 之前的第一个空格。我真的不明白,因为我在错误中没有任何功能。
感谢阅读,
饼干怪兽
【问题讨论】:
-
eval()是一个函数。您正在尝试分配给调用eval(buych)的结果。 -
呵呵,没意识到。我是否将 eval 的结果转换为其他内容?
-
想象一下,如果代码被简化了,比如
eval(..)是f(),那么得到的简化代码是f()=f(),这将因为完全相同的原因不起作用:函数不是变量/ properties 和 cannot 用于赋值运算符的左侧。但是,不要为此使用 eval - 对于此分配,只需 忘记 它存在。而是通过按键访问字典(“地图”)。
标签: eval python-3.2