Python 3.4中没有print语句 print(“查找三角形的类型”) 打印() 打印(“注:C面应为最长面”) 打印() side1=浮动(输入(“输入A边的长度:”) 打印() side2=浮动(输入(“输入B侧的长度:”) 打印() side3=浮动(输入(“输入C侧的长度:”) 打印() 如果(side1>side2和side1>side3):##验证A侧的三角形检查 如果(侧1>=侧2+侧3): 打印(“无效输入,不是三角形。\n a边必须小于B边+C边之和”) 打印() 如果(侧2>侧1和侧2>侧3):##验证B侧的三角形检查 如果(侧2>=侧1+侧3): 打印(“无效输入,不是三角形。\n边B必须小于边a+边C的总和”) 打印() 如果(侧3>侧1和侧3>侧2):##验证C侧的三角形检查 如果(侧3>=侧1+侧2): 打印(“无效输入,不是三角形。\n边C必须小于边a+边B的总和”) 打印() 如果(side1!=side2和side1!=side3):##不等边三角形检查 如果(侧1**2+侧2**2>侧3**2): 打印(“这是一个锐角不等边三角形”) 如果(侧1**2+侧2**2==侧3**2): 打印(“它是一个直角不等边三角形。”) 如果(第1**2侧+第2**2侧侧3**2): 打印(“它是一个锐角等腰三角形。”) 如果(侧1**2+侧2**2==侧3**2): 打印(“它是一个直角等腰三角形。”) 如果(第1**2侧+第2**2侧侧3**2): 打印(“它是一个锐角等腰三角形。”) 如果(侧1**2+侧2**2==侧3**2): 打印(“它是一个直角等腰三角形。”) 如果(第1**2侧+第2**2侧side2和side1>side3为false side2>side1和side2>side3为false side3>side1和side3>side2为真 side3>=side1+side2为false
这是一个简单的程序,应该从用户输入的三条边上计算角度,然后确定三角形的类型,然后将相应的语句打印回用户。但是,如果用户输入3,5,7或5,7,9,则没有任何打印语句。但是这些公式都是正确的。不必讨论公式的正确性,您可以轻松地根据输入测试每个Python 3.4中没有print语句 print(“查找三角形的类型”) 打印() 打印(“注:C面应为最长面”) 打印() side1=浮动(输入(“输入A边的长度:”) 打印() side2=浮动(输入(“输入B侧的长度:”) 打印() side3=浮动(输入(“输入C侧的长度:”) 打印() 如果(side1>side2和side1>side3):##验证A侧的三角形检查 如果(侧1>=侧2+侧3): 打印(“无效输入,不是三角形。\n a边必须小于B边+C边之和”) 打印() 如果(侧2>侧1和侧2>侧3):##验证B侧的三角形检查 如果(侧2>=侧1+侧3): 打印(“无效输入,不是三角形。\n边B必须小于边a+边C的总和”) 打印() 如果(侧3>侧1和侧3>侧2):##验证C侧的三角形检查 如果(侧3>=侧1+侧2): 打印(“无效输入,不是三角形。\n边C必须小于边a+边B的总和”) 打印() 如果(side1!=side2和side1!=side3):##不等边三角形检查 如果(侧1**2+侧2**2>侧3**2): 打印(“这是一个锐角不等边三角形”) 如果(侧1**2+侧2**2==侧3**2): 打印(“它是一个直角不等边三角形。”) 如果(第1**2侧+第2**2侧侧3**2): 打印(“它是一个锐角等腰三角形。”) 如果(侧1**2+侧2**2==侧3**2): 打印(“它是一个直角等腰三角形。”) 如果(第1**2侧+第2**2侧侧3**2): 打印(“它是一个锐角等腰三角形。”) 如果(侧1**2+侧2**2==侧3**2): 打印(“它是一个直角等腰三角形。”) 如果(第1**2侧+第2**2侧side2和side1>side3为false side2>side1和side2>side3为false side3>side1和side3>side2为真 side3>=side1+side2为false,python,python-3.4,Python,Python 3.4,这是一个简单的程序,应该从用户输入的三条边上计算角度,然后确定三角形的类型,然后将相应的语句打印回用户。但是,如果用户输入3,5,7或5,7,9,则没有任何打印语句。但是这些公式都是正确的。不必讨论公式的正确性,您可以轻松地根据输入测试每个if语句 对于side1=3、side2=5和sid3=7,您可以看到: side1>side2和side1>side3为false side2>side1和side2>side3为false side3>side1和side3>side2为真 side3
if
语句
对于side1=3
、side2=5
和sid3=7
,您可以看到:
为falseside1>side2和side1>side3
为falseside2>side1和side2>side3
为真side3>side1和side3>side2
为falseside3>=side1+side2
是正确的side1!=边2和边1!=第3条
为假,因为side1**2+side2**2>side3**2
为假9+25>49
- 然后完成该分支;嵌套在
测试下面的任何内容都将被忽略if
- 然后完成该分支;嵌套在
为falseside1==side2或side1==side3
为falseside2==side1或side2==side3
为falseside1==side2和side1==side3
print("Finding the type of triangle.")
print()
print("Note: Side C should be the longest side")
print()
side1 = float(input("Enter the length of side A: "))
print()
side2 = float(input("Enter the length of side B: "))
print()
side3 = float(input("Enter the length of side C: "))
print()
if (side1 > side2 and side1 > side3): ##validating triangle check for side A
if (side1 >= side2+side3):
print ("Invalid input, not a triangle. \nSide A must be smaller then the sum of Side B + Side C.")
print()
if (side2 > side1 and side2 > side3): ##validating triangle check for side B
if (side2 >= side1+side3):
print ("Invalid input, not a triangle. \nSide B must be smaller then the sum of Side A + Side C.")
print()
if (side3 > side1 and side3 > side2): ##validating triangle check for side C
if (side3 >= side1+side2):
print ("Invalid input, not a triangle. \nSide C must be smaller then the sum of Side A + Side B.")
print()
if (side1 != side2 and side1 != side3): ##scalene triangle check
if (side1**2 + side2**2 > side3**2):
print ("It is a Acute Scalene triangle.")
if (side1**2 + side2**2 == side3**2):
print ("It is a Right Scalene triangle.")
if (side1**2 + side2**2 < side3**2):
print ("It is a Obtuse Scalene trianle.")
if (side1 == side2 or side1 == side3): ##isosceles triangle check 1
if (side1**2 + side2**2 > side3**2):
print ("It is a Acute Isosceles triangle.")
if (side1**2 + side2**2 == side3**2):
print ("It is a Right Isosceles triangle.")
if (side1**2 + side2**2 < side3**2):
print ("It is a Obtuse Isosceles trianle.")
if (side2 == side1 or side2 == side3): ##isosceles triangle check 2
if (side1**2 + side2**2 > side3**2):
print ("It is a Acute Isosceles triangle.")
if (side1**2 + side2**2 == side3**2):
print ("It is a Right Isosceles triangle.")
if (side1**2 + side2**2 < side3**2):
print ("It is a Obtuse Isosceles trianle.")
if (side1 == side2 and side1 == side3): ##equilateral triangle check
print ("It is a Equilateral triangle.")
我删除了测试中多余的括号,并为您修复了一个拼写错误。现在,最后一个测试将实际运行并打印它是一个钝角不等边三角形。
这同样适用于其他两个等腰三角形测试:
if side1 != side2 and side1 != side3: # scalene triangle check
if side1**2 + side2**2 > side3**2:
print("It is a Acute Scalene triangle.")
if side1**2 + side2**2 == side3**2:
print("It is a Right Scalene triangle.")
if side1**2 + side2**2 < side3**2:
print("It is a Obtuse Scalene triangle.")
这包括在一个位置进行的所有等边三角形、不等边三角形和等腰三角形测试,避免重复每个测试和消息。您的缩进不正确,例如,对于
3、4、5
您的不等边三角形检查未通过第一次测试,其他所有测试均未进行评估,因为它们缩进:
if side1 == side2 == side3: # equilateral triangle check
print("It is a Equilateral triangle.")
else:
if side1 != side2 != side3: # scalene triangle
type_ = 'Scalene'
else: # isosceles
type_ = 'Isosceles'
if side1**2 + side2**2 > side3**2:
print("It is a Acute {} triangle.".format(type_))
elif side1**2 + side2**2 < side3**2:
print("It is a Obtuse {} triangle.".format(type_))
else:
print("It is a Right {} triangle.".format(type_))
if(side1!=side2和side1!=side3):##不等边三角形检查
如果(侧1**2+侧2**2>侧3**2):
打印(“这是一个锐角不等边三角形”)
如果(侧1**2+侧2**2==侧3**2):
打印(“它是一个直角不等边三角形。”)
如果(第1**2侧+第2**2侧<第3**2侧):
打印(“这是一个钝的不等边三角形。”)
其他测试也有类似的问题。您的问题是嵌套的if语句。现在,只有在右不等角和钝不等角已经很严重的情况下,才检查右不等角和钝不等角。这似乎解决了这个问题:
if (side1 != side2 and side1 != side3): ##scalene triangle check
if (side1**2 + side2**2 > side3**2):
print ("It is a Acute Scalene triangle.")
if (side1**2 + side2**2 == side3**2):
print ("It is a Right Scalene triangle.")
if (side1**2 + side2**2 < side3**2):
print ("It is a Obtuse Scalene trianle.")
if(side1!=side2和side1!=side3):##不等边三角形检查
如果(侧1**2+侧2**2>侧3**2):
打印(“这是一个锐角不等边三角形”)
elif(边1**2+边2**2==边3**2):
打印(“它是一个直角不等边三角形。”)
elif(第1**2方+第2**2方<第3**2方):
打印(“这是一个钝的不等边三角形。”)
请注意,如果您只想触发一条if语句,通常使用elif是更好的做法。您是否逐条查看了所有的
if
语句?对于这两种组合,您确实永远不会得到print()
语句(除了空的print()
s)。很明显你还有问题!在没有详细阅读代码的情况下,我怀疑阅读在这里是有价值的。TL;DR-不要使用==来比较浮点数。
if side1 == side2 == side3: # equilateral triangle check
print("It is a Equilateral triangle.")
else:
if side1 != side2 != side3: # scalene triangle
type_ = 'Scalene'
else: # isosceles
type_ = 'Isosceles'
if side1**2 + side2**2 > side3**2:
print("It is a Acute {} triangle.".format(type_))
elif side1**2 + side2**2 < side3**2:
print("It is a Obtuse {} triangle.".format(type_))
else:
print("It is a Right {} triangle.".format(type_))
if (side1 != side2 and side1 != side3): ##scalene triangle check
if (side1**2 + side2**2 > side3**2):
print ("It is a Acute Scalene triangle.")
if (side1**2 + side2**2 == side3**2):
print ("It is a Right Scalene triangle.")
if (side1**2 + side2**2 < side3**2):
print ("It is a Obtuse Scalene trianle.")
if (side1 != side2 and side1 != side3): ##scalene triangle check
if (side1**2 + side2**2 > side3**2):
print ("It is a Acute Scalene triangle.")
elif (side1**2 + side2**2 == side3**2):
print ("It is a Right Scalene triangle.")
elif (side1**2 + side2**2 < side3**2):
print ("It is a Obtuse Scalene trianle.")