2012-12-12 48 views
2

好了,所以我写一个程序,找出星期几和程序工作顺利,直到该块类型错误:不支持的操作类型为 - :“诠释”和“海峡”

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) 

错误是类型错误:不支持的操作类型为 - :“诠释”和“海峡”

+0

您使用哪种语言? – AndrewC

+0

语法错误和尝试看起来像python,但我可能是错的。 – jgritty

+0

我同意。我将代为 – AndrewC

回答

0

这种类型的错误会被这些方针的东西造成的:

"some string" + anInt - anotherInt 

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

你的问题可以通过将内套parenthesis-即你的整数运算来解决,

"some string" + (anInt - anotherInt) 

如果您还是有问题,我们可以查看您确切的代码,看看应该添加这些括号 - 但这可能足以让你靠自己,这总是可取的!


编辑:我将离开上述职位的情况下,这是问题的一部分,以及,但再次检查代码后,你有这行代码:

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

其中你从int减去String'month'。这可能是一个问题。

1

此代码示例有许多错误,并且错误只会成为许多错误中的第一个,因为您正在解决这些问题。

'month'看起来应该是某种变量,而不是字符串。实际的错误是发生在该行:

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

你正在服用的magic number 14并从中减去一个字符串。你根本无法做到这一点。你不能从整数中减去字符串。用单引号括起来是一个字符串。正如AndrewC所提到的,如果您从月份中删除单引号,它将成为一个变量,但在您可以执行操作之前,它需要有一个值,如减法。

如果您可以在此处添加一些关于您正在尝试执行的操作的环境,可能会使我们更容易帮助您。

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

直接使用变量名称,没有''''中的词表示一个字符串,而不是一个变量。

例如:

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) 

如果你没有定义你使用的变量:

A = 1 
print(A,'A') 

它将输出1, A

对于您的情况下,代码应该进行修改。

相关问题