You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python代码计算时报TypeError:整数与字符串减法不支持问题咨询

问题排查:TypeError: unsupported operand type(s) for -: 'int' and 'str'

嗨,我来帮你搞定这个错误!先看报错信息,它明确告诉你:整数和字符串不能直接做减法运算。问题就出在最后一行的计算逻辑上:

print (2018 - myEdge)

错误原因

Python里的input()函数,不管用户输入的是数字还是文字,都会默认把输入内容转换成**字符串(str)**类型存起来。你把用户输入的年龄存在myEdge变量里,它的类型就是字符串,而2018是整数(int)类型——两种不同类型的数值没法直接做减法,所以触发了这个TypeError。

修复方案

只需要把myEdge转换成整数类型再运算就行,有两种简单的实现方式:

方式1:接收输入时直接转换

在获取年龄输入的时候,就用int()把字符串转成整数:

myEdge = int(input())

方式2:计算时临时转换

如果不想修改输入接收的代码,也可以在减法运算时临时转换:

print(2018 - int(myEdge))

修复后的完整代码

print('welcome to the new world')
print('what is your name')
myName = input()
print('it is good to meet you , ' + myName)
print('The length of your name is : ')
print(len(myName))
print('what is your age')
# 转换输入为整数类型
myEdge = int(input())
print('you were born on ,')
print(2018 - myEdge)

小提示(可选)

如果要让程序更健壮,可以加个异常处理,防止用户输入非数字内容导致报错,比如:

print('what is your age')
while True:
    try:
        myEdge = int(input())
        break
    except ValueError:
        print("请输入有效的数字哦!")
print('you were born on ,')
print(2018 - myEdge)

内容的提问来源于stack exchange,提问作者chiranjit pattanaik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:36:08