[英]TypeError: unsupported operand type(s) for <<: 'str' and 'int'
[英]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.