【问题标题】:Why this error is showing in line 7 as Runtime error [closed]为什么此错误在第 7 行显示为运行时错误 [关闭]
【发布时间】:2022-06-26 21:47:04
【问题描述】:
def rectangle_area(x,y):
    z = x*y 
    print("The area is " + z)

rectangle_area('5','6')
Runtime error : on line 7
   rectangle_area('5','6')

【问题讨论】:

  • 运算符 * 不是为字符串定义的吗?
  • 请出示您的完整回溯
  • 如果你想乘以数字而不是文本。
  • 你正在使用一个字符串,用这个代替:rectangle_area(5,6)

标签: python compiler-errors


【解决方案1】:

您正在尝试多个两个字符串,您应该传递两个整数,例如 rectangle_area(5,6)


def rectangle_area(x,y):
    z = x*y 
    print("The area is ", z)

rectangle_area(6,6)

【讨论】:

    【解决方案2】:

    它不起作用,因为你不能使用多个字符串

    def rectangle_area(x,y):
        z = x * y
        print("The area is " + str(z))
    
    rectangle_area(5, 6)
    

    【讨论】:

      【解决方案3】:

      来自 Python 3.7 文档中对二元运算符的描述

      *(乘法)运算符产生其参数的乘积。 参数必须都是数字,或者一个参数必须是整数,另一个必须是序列。在前一种情况下, 数字被转换为普通类型,然后相乘。 在后一种情况下,执行序列重复;否定的 重复因子产生一个空序列。

      所以当两个操作数都不是数字时,这个表达式x*y是无效的。

      你可以像调用函数一样

      rectangle_area( 5, 6)
      

      否则你需要将字符串转换为数字

      rectangle_area( int( '5' ), int( '6' ) )
      

      另外最好用下面的方式定义函数

      def rectangle_area(x,y):
          return x * y
      

      并在函数的调用者中编写

      print("The area is", rectangle( 5, 6 ) )
      

      注意不要写

      print("The area is " + z)
      

      当 z 是一个数字时。你应该写

      print("The area is", z)
      

      【讨论】:

        【解决方案4】:

        在 python 中,我们不会像 print("hello" + x) 这样打印文本和变量 我们这样做print("hello", x)

        接下来你必须从函数中删除这个'',就像rectangle_area(5,6)一样

        希望对您有所帮助

        【讨论】:

          【解决方案5】:

          你必须说这些是数字而不是一些文字

          def rectangle_area(x,y):
              z = x*y 
              print("The area is " + str(z))
          
          rectangle_area(int('5'),int('6'))
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-01-18
            • 2021-01-21
            • 2017-08-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-01-23
            相关资源
            最近更新 更多