Python 测试三个数字是否构成直角三角形边的程序
这是我到目前为止的计划:Python 测试三个数字是否构成直角三角形边的程序,python,python-3.x,Python,Python 3.x,这是我到目前为止的计划: def main4(): if isRight(): print('it is right') if not isRight(): print('it is not right') def isRight(): n1=int(input('Enter first number:')) n2=int(input('Enter second number:')) n3=int(input('Enter
def main4():
if isRight():
print('it is right')
if not isRight():
print('it is not right')
def isRight():
n1=int(input('Enter first number:'))
n2=int(input('Enter second number:'))
n3=int(input('Enter third number:'))
if n1<n2 and n1<n3:
smallest=n1
elif (n1<n2 and n1>n3) or (n1<n3 and n1>n2):
smaller=n1
elif n2<n1 and n2<n3:
smallest=n2
elif (n2<n1 and n2>n3) or (n2<n3 and n2>n1):
smaller=n2
elif n3<n2 and n3<n1:
smallest=n3
elif (n3<n2 and n3>n1) or (n3<n1 and n3>n2):
smaller=n3
elif n1>n2 and n1>n3:
largest=n1
elif n2>n1 and n2>n3:
largest=n2
else:
largest=n3
if largest**2==(smallest**2)+(smaller**2):
return true
else:
return false
def main4():
如果isRight():
打印('是正确的')
如果不是isRight():
打印('不正确')
def isRight():
n1=int(输入('输入第一个数字:'))
n2=int(输入('输入第二个数字:'))
n3=int(输入('输入第三个数字:'))
如果n1代码的结构工作方式是只进入9个条件块中的一个,则必须计算较小
、最小
和最大
的值。当它从这些块中的一个出来时,只声明较小的
、最小的
和最大的
中的一个。因此,当代码到达执行语句的点时
if largest**2==(smallest**2)+(smaller**2):
if只找到这三个变量中的一个,从而抛出您看到的错误。要解决此问题,您可以在使用以下命令获取用户输入后声明所有三个变量:
smallest=largest=smaller=0
在你要求用户输入变量之后,你应该让你的程序开始工作
代码中的其他一些问题:
True
和'False是python中定义的关键字,
True和'False
不是。因此,请确保使用大写的单词来表示这些内容
- 在
main4
例程中,第二个if
可以替换为
else
。在当前代码中,将调用函数isRight
两次,这是不必要的
- 您可以将计算
较小
、最小
和最大
变量的条件简化为:
smallest = min(n1, n2, n3)
largest = max(n1, n2, n3)
smaller = list(set([n1, n2, n3]) - set([smallest, largest]))[0]
在使用局部变量最大值之前,必须指定一个值
def main4():
result = isRight()
if result:
print('it is right')
else:
print('it is not right')
def isRight():
largest = 0 # <-
smallest = 0 # <-
smaller = 0 # <-
...
# calculate each other
if largest**2==(smallest**2)+(smaller**2):
...
def main4():
结果=isRight()
如果结果为:
打印('是正确的')
其他:
打印('不正确')
def isRight():
最大值=0#您的条件仅设置一个变量。您需要将长if/elif链拆分为3个部分,每个部分设置一个最小的,较小的,和最大的,最大的,最小的,和较小的。
def main4():
result = isRight()
if result:
print('it is right')
else:
print('it is not right')
def isRight():
largest = 0 # <-
smallest = 0 # <-
smaller = 0 # <-
...
# calculate each other
if largest**2==(smallest**2)+(smaller**2):
...