倒小叮 发表于 2019-11-20 17:35:52

这个代码为什么会报错呢

dict1.fromkeys((1, 2, 3), ('one', 'two', 'three'))
dict1.fromkeys((1, 3), '数字')
这个他会报错:
NameError: name 'dict1' is not defined

就是直接复制的课后习题代码,不明白。。

WXF666 发表于 2019-11-20 17:46:32

not defined 意思是需要在前面定义
dict1 = dict()

jackz007 发表于 2019-11-20 17:54:36

本帖最后由 jackz007 于 2019-11-20 17:55 编辑

dict1.fromkeys((1, 2, 3), ('one', 'two', 'three'))
dict1.fromkeys((1, 3), '数字')

      这两条语句都要访问字典对象 dict1,在 Python 中,没有定义的对象都不能访问,而定义对象的手段就是给它赋值。
dict1 = {}

dict1 = dict()

zltzlt 发表于 2019-11-20 19:30:30

dict1 没有定义,应在这段代码前面定义 dict1。楼主怎么会犯这么基础的错误呢?

print(dict1.fromkeys((1, 2, 3), ('one', 'two', 'three')))    # 加个 print 可以看到生成的字典
print(dict1.fromkeys((1, 3), '数字'))

如果你不想定义 dict1 也行,把 dict1 改成 dict(dict 是内置函数名):

print(dict.fromkeys((1, 2, 3), ('one', 'two', 'three')))    # 加个 print 可以看到生成的字典
print(dict.fromkeys((1, 3), '数字'))

kll1 发表于 2019-11-21 11:24:37

你没有定义dict1

倒小叮 发表于 2019-11-21 14:24:59

kll1 发表于 2019-11-21 11:24
你没有定义dict1

怎么定义哇?fromkeys不是创建并返回一字典么?

kll1 发表于 2019-11-22 10:23:35

第一种方法:你不用dict1,可以直接用dict
第二种方法:你先定义一下dit1,让dict1=dict(),然后再使用
不过我觉得你是不是只是写错了字母呀,你应该是想写dict.fromkeys()生成字典吧

倒小叮 发表于 2019-11-23 10:28:04

zltzlt 发表于 2019-11-20 19:30
dict1 没有定义,应在这段代码前面定义 dict1。楼主怎么会犯这么基础的错误呢?




恩恩好的
页: [1]
查看完整版本: 这个代码为什么会报错呢