为何转换str/int后仍无法拼接Python字典内容?
问题分析与解决
你的代码报错集中在最后遍历字典的部分,核心问题有两个:
错误点拆解
- 遍历字典时,
for age in dict里的age其实是字典的键(比如"Jon"),而你写的int(dict)是试图把整个字典转成整数,这完全不符合逻辑,而且字符串和整数不能直接拼接。 - 用
dict当变量名会覆盖Python内置的字典类型,这是不良编程习惯,容易引发后续问题。
修正后的代码
#!/usr/bin/python print('Hi') age = 4 print(age) pi = 22/7 print(pi) time = "2300" print(int(time) + age) eten = ("Rice", "Fish", "Stew") print("I like eating " + eten[0]) print("I like eating " + eten[1]) print("I like eating " + eten[2]) print("I like eating " + eten[0] + " and " + eten[2]) for food in eten: print("I like eating " + food ) x = 1 while x <= 3: x = x+1 print(x) # 替换内置类型名dict为person_ages,避免冲突 person_ages = {} person_ages["Jon"] = 23 person_ages["Tom"] = 24 person_ages["Ron"] = 28 # 遍历键,获取对应年龄值并转为字符串拼接 for name in person_ages: print(name + ' is ' + str(person_ages[name]))
更简洁的写法(Python 3.6+)
用f-string可以自动处理类型转换,代码更易读:
# 遍历字典的键值对 for name, age in person_ages.items(): print(f"{name} is {age}")
关键注意事项
- 遍历字典时,直接循环字典得到的是键,要获取对应值需用
字典变量[键] - 字符串与数值拼接必须将数值转为字符串(
str()),或使用f-string简化操作 - 禁止使用Python内置类型名(如
dict、list、str)作为自定义变量名
内容的提问来源于stack exchange,提问作者Ethos
相关产品推荐
相关产品推荐

