【问题标题】:TypeError: unsupported operand type(s) for -: 'int' and 'str'TypeError: 不支持的操作数类型 -: 'int' 和 'str'
【发布时间】:2012-11-29 16:38:43
【问题描述】:

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

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: unsupported operand type(s) for -: 'int' and 'str'

【问题讨论】:

  • 你使用什么语言?
  • 语法错误和尝试看起来像python,但我可能错了。
  • 请去掉多余的大括号。
  • 这个程序我用python

标签: python string int typeerror


【解决方案1】:

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

"some string" + anInt - anotherInt

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

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

"some string" + (anInt - anotherInt)

如果您仍然遇到问题,我们可以查看您的确切代码并查看应该在哪里添加这些括号 - 但这可能足以让您自己解决,这总是更可取的!


编辑:我会留下上面的帖子,以防它也是问题的一部分,但在再次查看代码后,你有这行代码:

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

您从int 14 中减去String“月”。这可能是个问题。

【讨论】:

    【解决方案2】:

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

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

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

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

    如果您可以在此处添加一些关于您想要做什么的上下文,这可能会让我们更容易为您提供帮助。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        直接使用变量名,不带'''' 中的字是字符串,不是变量。

        例如:

        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 )
        

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

        【讨论】:

          猜你喜欢
          • 2016-04-15
          • 2012-12-31
          • 1970-01-01
          • 2021-10-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多