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

2024-10-08 19:30:26 发布

您现在位置:Python中文网/ 问答频道 /正文

    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)”行中得到错误。我不知道怎么解决这个问题。我找过类似的问题,也试过,但没用。你知道吗


Tags: andinputifyearintoptionprintenter
2条回答

看起来您将month设置为month5,然后尝试通过调用month而不是month5将其取回。你知道吗

改变

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

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

至少year5day5ints。'-'是字符串。因此,您将字符串添加/连接到int,这是没有意义的。你知道吗

Python可以隐式地使类型同时是int或同时是string。但由于两者都有意义(仅就类型而言),添加和连接都是定义的(显然不是同时定义的)。所以Python。。。没什么,它不知道你想要一个还是另一个。你知道吗

你可能会认为获取更多的信息(这样它就可以检测出它是否是一个数字字符串,如果是,字符串将隐式转换为int,如果不是,int将被转换)是好的,但这实际上是一个坏主意,并使操作符变慢(当使用很多时,你应该能够注意到它)。你知道吗

将该行替换为:

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

相关问题 更多 >

    热门问题