[英]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.