使用If语句的三角剖分器(Python)
我在我的代码工作,使这个程序的指示 请用户输入三个数字,它们是潜在三角形的边 如果边不能是三角形的有效边,请告诉用户“你真丢脸,那不是三角形!”,否则说它有效 如果三条边都相等,告诉用户“这是一个等边三角形” 如果两条边相等,告诉用户“这是一个等腰三角形” 提示:要成为三角形,两条最短边的总和必须大于最长边。如果边是A、B和C,则A+B+C必须大于最长边的两倍 这是我到目前为止所做的,我认为它应该运行得很好,但当我尝试运行它时,我遇到了一个错误。我能做些什么让它顺利运行?谢谢你抽出时间使用If语句的三角剖分器(Python),python,if-statement,Python,If Statement,我在我的代码工作,使这个程序的指示 请用户输入三个数字,它们是潜在三角形的边 如果边不能是三角形的有效边,请告诉用户“你真丢脸,那不是三角形!”,否则说它有效 如果三条边都相等,告诉用户“这是一个等边三角形” 如果两条边相等,告诉用户“这是一个等腰三角形” 提示:要成为三角形,两条最短边的总和必须大于最长边。如果边是A、B和C,则A+B+C必须大于最长边的两倍 这是我到目前为止所做的,我认为它应该运行得很好,但当我尝试运行它时,我遇到了一个错误。我能做些什么让它顺利运行?谢谢你抽出时间 imp
import math
a = input("Please Enter Side A ")
b = input("Please Enter Side B")
c = input("Please Enter Side C ")
d = a+b+c
if d < (2*c)
print"Shame on you, that is not a triangle!"
elif d > (2*c):
print"You Have Two Possible Answers: "
else:
xone = a=b=c
xtwo = a=b
print "It's Equilateral:",xone,"
print "It's Isosceles:",xtwo,"
导入数学
a=输入(“请输入a侧”)
b=输入(“请输入b侧”)
c=输入(“请输入c侧”)
d=a+b+c
如果d<(2*c)
打印“你真丢脸,那不是三角形!”
elif d>(2*c):
打印“您有两个可能的答案:”
其他:
xone=a=b=c
xtwo=a=b
打印“它是等边的:”,xone,“
打印“它是等腰的:,xtwo,”
您的程序可能不会产生您预期的结果,但这一行:
如果d<(2*c)
缺少冒号,如:
if d < (2*c):
如果d<(2*c):
您的程序可能不会产生您预期的结果,但这一行:
如果d<(2*c)
缺少冒号,如:
if d < (2*c):
如果d<(2*c):
我注意到几个问题:
- 您的
语句缺少冒号。这是我第一次运行时收到的错误消息:if
这行有三组双引号。前两个字符将字符串括起来,它是等边的,第三个字符开始一个从不闭合的字符串。因此,我们去掉了双引号(并对第二个print语句执行相同的操作):if d < (2*c) ↑ line 6, column 13 in tringle.py
并不总是被分配。。程序现在运行成功,但当我输入三个长度26、13和4时,我得到另一个错误:xone
Traceback (most recent call last): File "/Users/alexwlchan/tmp/tringle.py", line 13, in <module> print "It's Equilateral:", xone NameError: name 'xone' is not defined
问题是,回溯(最近一次呼叫最后一次): 文件“/Users/alexwlchan/tmp/tringle.py”,第13行,在 打印“它是等边的:”,xone NameError:未定义名称“xone”
只在xone
语句的一个分支中定义,但它会作为等边三角形打印的一部分被调用,不管后面哪个分支。您需要重新排列打印语句以解决此问题if
- 您对三角形的检查实际上不起作用。以下是您的提示(我的强调):
要成为三角形,两条最短的边的总和必须大于最长的边
考虑我上面的例子:26、13和4。它运行时从未警告过我它不是三角形,但显然这样的三角形是不可能的。你武断地认为
是最长的边,但为什么呢?没有理由相信那是真的c
- 您的
语句缺少冒号。这是我第一次运行时收到的错误消息:if
这行有三组双引号。前两个字符将字符串括起来,它是等边的,第三个字符开始一个从不闭合的字符串。因此,我们去掉了双引号(并对第二个print语句执行相同的操作):if d < (2*c) ↑ line 6, column 13 in tringle.py
并不总是被分配。。程序现在运行成功,但当我输入三个长度26、13和4时,我得到另一个错误:xone
Traceback (most recent call last): File "/Users/alexwlchan/tmp/tringle.py", line 13, in <module> print "It's Equilateral:", xone NameError: name 'xone' is not defined
问题是,回溯(最近一次呼叫最后一次): 文件“/Users/alexwlchan/tmp/tringle.py”,第13行,在 打印“它是等边的:”,xone NameError:未定义名称“xone”
只在xone
语句的一个分支中定义,但它会作为等边三角形打印的一部分被调用,不管后面哪个分支。您需要重新排列打印语句以解决此问题if
- 您对三角形的检查实际上不起作用。以下是您的提示(我的强调):
要成为三角形,两条最短的边的总和必须大于最长的边
考虑我上面的例子:26、13和4。它运行时从未警告过我它不是三角形,但显然这样的三角形是不可能的。你武断地认为
是最长的边,但为什么呢?没有理由相信那是真的c
- 我注意到几个问题:
- 试试这个。我希望这会对你有好处
a = input("Please Enter Side A ")
b = input("Please Enter Side B")
c = input("Please Enter Side C ")
d = a+b+c
if d < (2*c) or d<(2*a) or d<(2*b):
print"Shame on you, that is not a triangle!"
else:
print "You have two possible answers"
if(a==b==c):
print "It's Equilateral: "
elif(a==b)or(b==c)or(a==c):
print "It's Isosceles: "
a=输入(“请输入a侧”)
b=输入(“请输入b侧”)
c=输入(“请输入c侧”)
d=a+b+c
如果d<2*c)或d请尝试此操作。我希望这会对你有好处
a = input("Please Enter Side A ")
b = input("Please Enter Side B")
c = input("Please Enter Side C ")
d = a+b+c
if d < (2*c) or d<(2*a) or d<(2*b):
print"Shame on you, that is not a triangle!"
else:
print "You have two possible answers"
if(a==b==c):
print "It's Equilateral: "
elif(a==b)or(b==c)or(a==c):
print "It's Isosceles: "
a=输入(“请输入a侧”)
b=输入(“请输入b侧”)
c=输入(“请输入c侧”)
d=a+b+c
如果d<(2*c)或d,我认为您也应该检查代码中三角形每边的有效性。所以类似这样的东西可能适合你:
a = input("Please Enter Side A ")
b = input("Please Enter Side B")
c = input("Please Enter Side C ")
d = a + b + c
if (d < (2*a)) or (d < (2*b)) or (d < (2*c)): # Make sure that each side is valid
print "Shame on you, that is not a triangle!"
elif (a==b==c):
print "It's Equilateral"
elif (a==b) or (a==c) or (b==c):
print "It's Isosceles"
a=输入(“请输入a侧”)
b=输入(“请输入b侧”)
c=输入(“请输入c侧”)
d=a+b+c
如果(d<2*a)或(d<2*b)或(d<2*c)):#确保每一方都有效
打印“你真丢脸,那不是三角形!”
elif(a==b==c):
打印“它是等边的”
elif(a==b)或(a==c)或(b==c):
打印“它是等腰的”
我认为您还应该检查代码中三角形每一侧的有效性。所以类似这样的东西可能适合你:
a = input("Please Enter Side A ")
b = input("Please Enter Side B")
c = input("Please Enter Side C ")
d = a + b + c
if (d < (2*a)) or (d < (2*b)) or (d < (2*c)): # Make sure that each side is valid
print "Shame on you, that is not a triangle!"
elif (a==b==c):
print "It's Equilateral"
elif (a==b) or (a==c) or (b==c):
print "It's Isosceles"
a=输入(“请输入a侧”)
b=输入(“请输入b侧”)
c=输入(“请输入c侧”)
d=a+b+c
如果(d<2*a)或(d<2*b)或(d<2*c)):
c = input("Please Enter Side C ")
d = a+b+c
if d < (2*c)
print"Shame on you, that is not a triangle!"
elif d > (2*c):
print"You Have Two Possible Answers: "
else:
xone = a=b=c
xtwo = a=b
print "It's Equilateral:",xone,"
print "It's Isosceles:",xtwo,"