qasa 发表于 昨天 21:34

零基础学习python第一版字典1

dict4 =dict((('F',70),('C',67),('H',104)))
这是我的代码
和小甲鱼老师的代码差不太多
想请问的是我的IDLE报错
是因为版本的问题吗
我的是3.13版本,我看弹幕3.8都没事
如果不是版本问题的话
请问我这个需要怎么更改
报错代码是
Traceback (most recent call last):
File "D:\f5\idle\字典.py", line 15, in <module>
    dict4 =dict((('F',70),('C',67),('H',104)))
TypeError: 'tuple' object is not callable

整体是

dict=() #创建字典    只有一个参数   字典是映射类型其他的事序列类型

dict1 = {'鱼c':'让编程改变世界','耐克':'just do it'}
print('鱼c的口号是:',dict1['鱼c'])

brang = ['耐克','鱼c']
slonge = ['just do it','让编程改变世界']
print('鱼c口号是:',slonge)

dict2 = {1:'one',2:'two',3:'three'}
print(dict2)

dict3 = {}      #空字典

dict4 =dict((('F',70),('C',67),('H',104)))

F5后

鱼c的口号是: 让编程改变世界
鱼c口号是: 让编程改变世界
two
Traceback (most recent call last):
File "D:\f5\idle\字典.py", line 15, in <module>
    dict4 =dict((('F',70),('C',67),('H',104)))
TypeError: 'tuple' object is not callable


FishC 发表于 昨天 21:35

你好!你的代码报错是因为你将内置函数 dict 重新定义为了一个空元组,导致后续调用 dict() 时,Python 尝试调用这个元组对象,但元组是不可调用的(not callable),所以出现了 TypeError。

错误发生在这一行:
dict=() #创建字典
这里,你将 dict 变量赋值为空元组,覆盖了 Python 的内置函数。之后当你使用 dict((('F',70),('C',67),('H',104))) 时,它实际上是在尝试调用元组,而不是内置的 dict 函数。

解决方案很简单:避免使用内置函数名(如 dict、list、str 等)作为变量名。删除或注释掉那行重新定义 dict 的代码,或者改用其他变量名。

修正后的代码示例:

# 删除或注释掉这行:dict=() #创建字典

dict1 = {'鱼c':'让编程改变世界','耐克':'just do it'}
print('鱼c的口号是:', dict1)

# 其他代码...
dict2 = {1:'one',2:'two',3:'three'}
print(dict2)

dict3 = {}      #空字典

# 现在 dict 是内置函数,可以正常使用
dict4 = dict((('F',70),('C',67),('H',104)))
print(dict4)# 添加打印以验证


这不是版本问题,Python 3.8 和 3.13 都会出现同样错误,如果你重写了内置函数。只需避免变量名冲突即可。如果还有其他问题,欢迎继续问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 零基础学习python第一版字典1