簡體   English   中英

TypeError:-:“ int”和“ str”不支持的操作數類型

[英]TypeError: unsupported operand type(s) for -: 'int' and 'str'

好的,所以我正在編寫一個程序來查找星期幾,並且該程序可以順利運行,直到此塊為止

D = input()

A = ( (14 - 'month') /12)

Y = ( 'Year' - 'A' )

MonthProblem = ( 'month' + 12 * 'A' - 2 )

week = ( ('D' + 'Y' + 'Y'/4 - 'Y'/100 + 'Y'/400 + 31 * 'MonthProblem'/12) % 7 )

錯誤為TypeError:-:“ int”和“ str”的不受支持的操作數類型

當您將逗號放在圓括號中時,它會變成字符串,因此'month'表示單詞this,而month表示變量month的值。

你的程序將停止給你的特定錯誤,如果你刪除了' S:

D = input()

A = ( (14 - month) /12)

Y = ( Year - A )

MonthProblem = ( month + 12 * A - 2 )

week = ( (D + Y + Y/4 - Y/100 + Y/400 + 31 * MonthProblem/12) % 7 )

您之前是否定義過month等值?

直接使用變量名稱,不帶'' ”中''單詞表示字符串,而不是變量。

例如:

A = 1
print(A,'A')

它將輸出1, A

對於您的情況,代碼應修改為:

D = input()
A = ( (14 - month) /12)
Y = ( Year - A )
MonthProblem = ( month + 12 * A - 2 )
week = ( (D + Y + Y/4 - Y/100 + Y/400 + 31 * MonthProblem/12) % 7 )

如果確實定義了使用的變量。

此代碼示例出現了很多問題,並且在您解決問題時,錯誤只會是很多錯誤中的第一個。

'month'似乎應該是某種變量,而不是字符串。 實際錯誤發生在該行上:

A = ( (14 - 'month') /12)

您正在使用幻數 14並從中減去一個字符串。 你根本做不到。 您不能從整數中減去字符串。 用單引號引起的月份將其作為文字字符串。 正如AndrewC所提到的,如果您刪除月份中的單引號,它將成為一個變量,但是在執行其中的操作(如減法)之前,它需要具有一個值。

如果您可以在此處添加有關您要執行的操作的上下文,則可能會使我們更容易為您提供幫助。

此類錯誤可能是由以下幾方面引起的:

"some string" + anInt - anotherInt

出現此問題是由於該語句中的String -編譯器將加號解釋為將String和int組合在一起。 但是,在這種情況下,它不知道如何處理減號-您不能從字符串中減去int。

您可以通過將整數運算放在括號內來解決問題,即

"some string" + (anInt - anotherInt)

如果您仍然遇到問題,我們可以查看您的確切代碼,看看應該在何處添加這些括號-但這可能足以讓您自己克服困難,這始終是可取的!


編輯:如果這也是問題的一部分,我將保留上面的帖子,但是再次查看代碼后,您將獲得以下代碼行:

A = ( (14 - 'month') /12)

在其中,您從int 14中減去了String “ month”。這可能是一個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM