如何修复Python报错TypeError: can only concatenate str (not "int") to str
报错原因及代码修复方案
首先对报错信息做翻译解释:
完整报错翻译:
回溯(最近调用优先): 文件 "/Users/kevinforstner/anime release calc.py", 第6行, 模块代码内 number + 7 类型错误:只能将字符串(而非整数)与字符串拼接
该报错是input函数返回值默认是字符串类型导致的,除此之外你的代码还有多处逻辑问题,具体修复如下:
存在的所有问题
- 类型不匹配:
input()返回的是字符串类型的数字,无法直接和整数7做加法运算 - 运算结果未存储:
number + 7只是临时计算,没有把结果赋值回number变量,每次循环打印的都是初始值 - 变量覆盖+逻辑失效:你已经通过输入拿到了总集数
epi,但循环写死了range(12),还把epi作为循环变量,直接覆盖了之前输入的总集数,输入的参数完全没有生效
修复后完整代码
如果要保留原英文提示可以直接用:
# 将输入的字符串转换为整数类型 number = int(input("What day number does your anime come out? ")) epi_total = int(input("How many episodes are there? ")) # 按总集数循环,循环变量用占位符避免冲突 for _ in range(epi_total): print(number) # 把加7后的结果更新回number变量 number += 7
需要中文提示的版本:
number = int(input("你的动漫是周几更新?输入数字:")) epi_total = int(input("总共有多少集?")) for _ in range(epi_total): print(number) number += 7
修复点说明
- 用
int()包裹input()的返回值,将字符串格式的数字转为整数,就可以正常做数值加法 - 用
+=赋值运算符,把日期加7的结果直接更新到原变量,每次循环都会正确更新下一集的播出日期 - 重命名总集数变量为
epi_total,避免和循环变量重名覆盖,循环次数直接使用用户输入的总集数,不需要写死固定值
内容的提问来源于stack exchange,提问作者catsorio
相关产品推荐
相关产品推荐

