TypeError:不支持的操作数类型 - :'int'和'str'

时间:2012-12-12 02:35:41

标签: python string int typeerror

好的,所以我正在编写一个程序来查找星期几,程序可以顺利进行,直到这个块

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'

4 个答案:

答案 0 :(得分:2)

当你把倒置的逗号放在某个东西上时会把它变成一个字符串,所以'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等的值?

答案 1 :(得分:2)

直接按名称使用变量,不使用''''中的单词表示字符串,而不是变量。

例如:

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 )

如果您确实定义了您使用的变量。

答案 2 :(得分:1)

此代码示例存在许多问题,并且在解决问题时,错误只会是许多问题中的第一个。

'month'似乎应该是某种变量,而不是字符串。该行发生了实际错误:

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

你正在取magic number 14并从中减去一个字符串。你根本做不到。您不能从整数中减去字符串。单引号的周围月份使其成为文字字符串。正如AndrewC所提到的,如果你从月份中删除单引号它就变成了一个变量,但它需要有一个值才能在其中执行操作,比如减法。

如果你可以添加一些关于你在这里尝试做什么的背景信息,它可能会让我们更容易帮助你。

答案 3 :(得分:0)

这种类型的错误可能是由以下行引起的:

"some string" + anInt - anotherInt

由于此语句中的String,问题出现了 - 编译器将加号解释为将String和int组合在一起。但是,在这种情况下,它不知道如何处理减号 - 你不能从字符串中减去一个int。

您的问题可以通过将整数运算放在括号组中来解决,即。,

"some string" + (anInt - anotherInt)

如果您仍然遇到问题,我们可以查看您的确切代码并查看应该添加这些括号的位置 - 但这可能足以让您自己完成,这总是更合适!


编辑:我会留下上述帖子,以防它也是问题的一部分,但在重新审核代码之后,您就拥有以下代码:

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

您要在其中减去String'月份'来自int 14.这可能是一个问题。