2017-04-21 85 views
0
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'

+0

說你'year5'進入'2017'。你正在試着'+'數字'2017'與字符'' - ''。這並不意味着什麼,所以這是拋出一個錯誤 –

回答

0

看起來像你設置月份到月份5,然後試圖通過調用月份而不是月份5回來。

變化

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

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

不,這不是問題。 – Bugaboo

+0

由於這一行,你可以認識到這無關緊要:'如果day == day5和month == month5和year == year5:' –

0

至少year5day5int秒。 '-'是字符串。所以,你要添加/連接一個字符串到一個int,這是沒有意義的。

蟒蛇可能使類型都int或兩個string隱式。但是,因爲兩者都有意義(就類型而言),添加和連接都被定義(顯然不同時)。所以Python沒有......沒有,它不知道你是否想要一個或另一個。

您可能認爲獲取更多信息(因此它可以檢測它是否是數字字符串,如果是,則該字符串將被隱式轉換爲int,如果不是該int將被轉換)是好的,但它實際上是一個不好的主意,並使操作員變得更慢(當使用很多時,你應該能夠注意到它)。

替換符合:

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

外部str調用是不必要的。 – happydave

+0

是的,它**是**,謝謝 –

相關問題