鱼C论坛

 找回密码
 立即注册
查看: 77|回复: 1

[已解决]零基础学习python第一版字典1

[复制链接]
发表于 3 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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[brang.index('鱼c')])

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

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


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

错误发生在这一行:
  1. dict=() #创建字典
复制代码

这里,你将 dict 变量赋值为空元组,覆盖了 Python 的内置函数。之后当你使用 dict((('F',70),('C',67),('H',104))) 时,它实际上是在尝试调用元组,而不是内置的 dict 函数。

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

修正后的代码示例:

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

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

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

  7. dict3 = {}      #空字典

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


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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 3 天前 | 显示全部楼层    本楼为最佳答案   
你好!你的代码报错是因为你将内置函数 dict 重新定义为了一个空元组,导致后续调用 dict() 时,Python 尝试调用这个元组对象,但元组是不可调用的(not callable),所以出现了 TypeError。

错误发生在这一行:
  1. dict=() #创建字典
复制代码

这里,你将 dict 变量赋值为空元组,覆盖了 Python 的内置函数。之后当你使用 dict((('F',70),('C',67),('H',104))) 时,它实际上是在尝试调用元组,而不是内置的 dict 函数。

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

修正后的代码示例:

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

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

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

  7. dict3 = {}      #空字典

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


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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-5 09:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表