好的,所以我正在编写一个程序来查找星期几,程序可以顺利进行,直到这个块
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'
答案 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.这可能是一个问题。