获取TypeError:+:'int'和'str'的不支持的操作数类型

时间:2017-04-21 02:02:00

标签: python python-3.x

    if option == 4:
        day5 = int(input('Enter a day:'))
        month5 = int(input('Enter a month:'))
        year5 = int(input('Enter a year:'))
        dateSelected = str(year5+'-'+month+'-'+day5)
        if day == day5 and month == month5 and year == year5:
            print(occurence, ' appointment starting on (', dateSelected, '): ', time, ', ', event)

我收到的错误是“dateSelected = str(year5 +' - '+ month +' - '+ day5)”。我不知道如何解决这个问题。我已经找了类似的问题并试了一下,但没有用。

2 个答案:

答案 0 :(得分:0)

看起来你将月份设置为月份5然后尝试通过调用month而不是month5来恢复它。

变化

dateSelected = str(year5+'-'+month+'-'+day5)

dateSelected = str(year5+'-'+month5+'-'+day5)

答案 1 :(得分:0)

至少 year5day5int'-'是字符串。所以,你正在添加/连接一个字符串到一个int,这是没有意义的。

Python 可以隐含地使类型同时为intstring。但是因为两者都有意义(只是关于类型)定义了添加和连接(显然不是同时)。所以Python没有......没有,它不知道你是否想要一个或另一个。

您可能认为获取更多信息(因此它可以检测它是否为数字字符串,如果是,则字符串将被隐式转换为int,如果不是int将被转换)是好的,但它实际上是一个坏主意,并使操作员变慢(当你经常使用时,你应该能够注意到它)。

将该行替换为:

dateSelected = str(year5)+'-'+str(month)+'-'+str(day5)