获取类型错误:不支持的操作数类型为+:'int'和'str'
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 +' - '+第5天)”。我不知道如何解决这个问题。我寻找过类似的问题,并尝试过它们,但它没有帮助。获取类型错误:不支持的操作数类型为+:'int'和'str'
看起来像你设置月份到月份5,然后试图通过调用月份而不是月份5回来。
变化
dateSelected = str(year5+'-'+month+'-'+day5)
到
dateSelected = str(year5+'-'+month5+'-'+day5)
不,这不是问题。 – Bugaboo
由于这一行,你可以认识到这无关紧要:'如果day == day5和month == month5和year == year5:' –
至少year5
和day5
是int
秒。 '-'
是字符串。所以,你要添加/连接一个字符串到一个int,这是没有意义的。
蟒蛇可能使类型都int
或两个string
隐式。但是,因为两者都有意义(就类型而言),添加和连接都被定义(显然不同时)。所以Python没有......没有,它不知道你是否想要一个或另一个。
您可能认为获取更多信息(因此它可以检测它是否是数字字符串,如果是,则该字符串将被隐式转换为int,如果不是该int将被转换)是好的,但它实际上是一个不好的主意,并使操作员变得更慢(当使用很多时,你应该能够注意到它)。
替换符合:
dateSelected = str(year5)+'-'+str(month)+'-'+str(day5)
外部str调用是不必要的。 – happydave
是的,它**是**,谢谢 –
说你'year5'进入'2017'。你正在试着'+'数字'2017'与字符'' - ''。这并不意味着什么,所以这是抛出一个错误 –