小可爱. 发表于 2020-11-3 13:24:37

为什么会报错

这里为什么会报错字典难道不是这么定义的吗

sunrise085 发表于 2020-11-3 13:32:16

one   twothree你没有定义啊
你还不是想这样写
a={'1':'one','2':'two','3':'three'}

小可爱. 发表于 2020-11-3 13:48:42

键还的需要定义吗没见过键需要定义的呀

小可爱. 发表于 2020-11-3 13:49:28

sunrise085 发表于 2020-11-3 13:32
one   twothree你没有定义啊
你还不是想这样写

键还的需要定义吗没见过键需要定义的呀

jackz007 发表于 2020-11-3 14:10:26

本帖最后由 jackz007 于 2020-11-3 14:14 编辑

      在你的写法中,one、two、three 均被 Python 视为标识符,也就是变量名,而这些标识符之前又没有定义,所以才会出错。加上引号就不同了,加引号后,它们就变成了常量,也只有这样,才能满足一个字典对键和值的要求。

笨鸟学飞 发表于 2020-11-3 14:14:56

小可爱. 发表于 2020-11-3 13:49
键还的需要定义吗没见过键需要定义的呀

python能识别的无需定义即可用的只有整数、浮点数、字符串,以及自带函数
其他的例如变量、对象、自定义函数等,必须先定义(或赋值)后才能用
你这里的one、two、three,不属于整数、浮点数和字符串,也未定义
因此python是识别不了的。。。它不知道one、two、three是个啥

heidern0612 发表于 2020-11-3 14:17:28

请问one是个啥?

是个变量吗?你没定义;是个字符串吗?你没加引号。

所以python就蒙了。

sunrise085 发表于 2020-11-3 16:07:15

小可爱. 发表于 2020-11-3 13:49
键还的需要定义吗没见过键需要定义的呀

这与是否是键无关
键也需要是常量或者变量啊。。
你写的one two three是什么?
你这么写被认为是变量名,但是你却没有定义这些变量
若把这些当做常量字符串吧,你又没有加引号

coolsummer2080 发表于 2020-11-3 16:21:01

本帖最后由 coolsummer2080 于 2020-11-3 16:22 编辑

两种方案:
1,如果你是把one,two和three当作变量的话,那么在定义a字典之前,你应该定义它们。代码参考如下:
one, two, three = 1, 2, 3
a={'1':one, '2':two, '3':three}
2. 如果你是想把one,two和three当作字符串作为字典的键对应的值。代码参考如下:
a={'1':'one', '2':'two', '3':'three'}
如果帮助到你,给个{:5_109:} 最佳答案呗{:5_109:}
页: [1]
查看完整版本: 为什么会报错