【问题标题】:Average Function in PycharmPycharm 中的平均函数
【发布时间】:2015-03-10 23:09:05
【问题描述】:

我刚刚开始从一本书中学习 Python。但是当我运行我的脚本时,我一直遇到同样的问题,它说:

   File "C:/Users/bob/Desktop/Python/Part3 A.py", line 8, in <module> print(' the average is: ', avg())
    File "C:/Users/Bob/Desktop/Python/Part3 A.py", line 6, in avg average = a + b + c / 3
    TypeError: unsupported operand type(s) for /: 'str' and 'int'

我是不是安装错了“Pycharm”?

这是我的代码

def avg():
a = input('please enter a: ')
b = input('please enter b: ')
c = input('please enter c: ')
average = a + b + c / 3
print(' the average is: ', avg()) 

【问题讨论】:

    标签: python python-2.7 python-3.x installation average


    【解决方案1】:

    我是不是安装错了“Pycharm”?没有

    在python 3中input返回一个字符串

    a = int(input("please enter a:")) #this will make the input an integer 
    # warning if the user enters invalid input it will raise an error
    

    应该没问题

    您还应该将打印行更改为

    print(' the average is: ', avgerage)
    

    计算平均值时还需要注意运算顺序

    average = (a + b + c) / 3
    

    是你想要的

    你也有缩进问题,但我很确定那是你复制和粘贴错误的原因......否则你会有不同的错误

    【讨论】:

      【解决方案2】:
      def avg():
      a = intinput('please enter a: ')
      b = input('please enter b: ')
      c = input('please enter c: ')
      average = a + b + c / 3
      print(' the average is: ', avg())
      

      试试这个

      def avg():
       a = input('please enter a: ')
       b = input('please enter b: ')
       c = input('please enter c: ')
       average = int(a) + int(b) + int(c) / 3
       print(' the average is: ', avg())
      return;
      

      P.S:Python 是缩进敏感的

      【讨论】:

      • 这行不通...尽管您部分正确,因为他需要担心操作顺序"1" + "2" +"3" = "123" 将其放在括号中的事实并不能缓解您不能划分 a一个 int 的字符串
      • 我注意到了,我编辑了感谢通知他在分割时还需要做一些错误处理
      【解决方案3】:

      你有很多错误,如下:

      def avg():
          a = int(input('Please enter a: '))
          b = int(input('Please enter b: '))
          c = int(input('Please enter c: '))
          average = (a + b + c) / 3
          print('The average is:', average)
      
      avg() # call function outside
      
      • 在函数范围内缩进 4 个空格。
      • 使用内置 int 将字符串输入转换为整数。
      • 使用括号,否则 PEMDAS 的数学运算是错误的。
      • 最后,打印平均值,不要递归调用函数。

      【讨论】:

      • 谢谢,非常感谢。
      【解决方案4】:

      您正在尝试将字符串除以整数。 您需要将输入转换为整数。

      def avg():
          a = int(input('please enter a: '))
          b = int(input('please enter b: '))
          c = int(input('please enter c: '))
          average = (a + b + c) / 3
          return average
      
      print(' the average is: ', avg())
      

      【讨论】:

      • 糟糕。我只是复制和粘贴,在 OP 中没有注意到这一点。谢谢。
      【解决方案5】:

      您正在对字符串输入应用算术运算。使用前将其转换为 int

      int(input('请输入:'))

      【讨论】:

        猜你喜欢
        • 2023-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多