繁体   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