0

我收到以下错误,似乎无法弄清楚如何修复。按照逻辑,我将 3 个函数和所有 3 个返回值作为浮点数调用,然后我对存储的返回值执行一些数学运算并将其打印为浮点数。那么到底哪里出错了呢?我为 A 面输入 4,为 B 面输入 5。

错误信息:

输入 A 边的长度:4.0 输入 B 边的长度:5.0

Traceback (most recent call last):
  File "python", line 26, in <module>
  File "python", line 9, in main
  File "python", line 24, in calculateHypotenuse
TypeError: unsupported operand type(s) for ^: 'float' and 'float'

import math

def main():
  #Call get length functions to get lengths.
  lengthAce = getLengthA()
  lengthBee = getLengthB()

  #Calculate the length of the hypotenuse
  lengthHypotenuse = calculateHypotenuse(float(lengthAce),float(lengthBee))

  #Display length of C (hypotenuse)
  print()
  print("The length of side C 'the hypotenuse' is {}".format(lengthHypotenuse))

#The getLengthA function prompts for and returns length of side A  
def getLengthA():
  return float(input("Enter the length of side A: "))

#The getLengthA function prompts for and returns length of side B
def getLengthB():
  return float(input("Enter the length of side B: "))

def calculateHypotenuse(a,b):
  return math.sqrt(a^2 + b^2)

main()

print()
print('End of program!')
4

1 回答 1

1

^在 Python 中是按位 XOR 运算符,而不是幂运算符:

^ 运算符产生其参数的按位异或(异或),它必须是整数

您需要改用**运算符:

def calculateHypotenuse(a,b):
  return math.sqrt(a**2 + b**2)
于 2017-07-16T03:33:36.170 回答