TypeError防止相减

问题描述

大家下午好,我是StackOverflow和Python的新手。我正在上大学课程,并且很想知道如何从一个非常简单的计算和返回程序中得到的操作数错误

currentYear = 2020
age = input("How old were you in 2020,in numbers? ")

birthYear = currentYear - age

print("Your birth year was: " + str(birthYear))

返回的错误是TypeError:-:'int'和'str'的不受支持的操作数类型

我尝试删除打印中的串联,将其强制转换为字符串,并且尝试将变量“ currentYear”和“ age”的计算结果作为字符串放入。我还尝试通过插入int(input())格式在“ age”变量上强制输入整数。我敢肯定,这是我忽略的一个非常基本的问题,但是我处于机智!

解决方法

欢迎光临!这里的问题是age是一个字符串,因为input输出用户给出的任何字符串。幸运的是,您可以将其显式设置为整数,如下所示:

age = input("How old were you in 2020,in numbers? ")

birthYear = currentYear - int(age)

print("Your birth year was: " + str(birthYear))

注意:这完全忽略了用户输入错误并且输入的值不是数字的情况。例如,如果他们输入“八”或其他内容。但是,这是一个完全不同的问题!