否则,请在python上使用True和False语句。skulpt.org
这是我的代码,我必须在其中创建它,以便它允许否则,请在python上使用True和False语句。skulpt.org,python,if-statement,Python,If Statement,这是我的代码,我必须在其中创建它,以便它允许 用户输入三角形三条边的长度,即长度1、长度2和长度3 如果任意两条边的长度相同,程序输出“等腰” 否则,程序输出“非等腰” 但是,输出部分似乎不起作用。 我不熟悉这种类型的编码,所以请帮助我 Length1 = raw_input() Length2 = raw_input() Length3 = raw_input() print Length1 print Length2 print Length3 print Length1 == Lengt
Length1 = raw_input()
Length2 = raw_input()
Length3 = raw_input()
print Length1
print Length2
print Length3
print Length1 == Length2
print Length2 == Length3
print Length1 == Length3
if Length1 == Length2 is True:
print "Isosceles"
else:
print "Not Isosceles"
if Length2 == Length3 is True:
print "Isosceles"
else:
print "Not Isosceles"
if Length1 == Length3 is True:
print "Isosceles"
else:
print "Not Isosceles"
您需要使用elif
,elif的
仅在前面的语句为False时进行计算,if的
始终进行计算
如果Length1==Length2为真:
与如果Length1==Length2不同:
只有当Length1
和Length2
都=True
时,您的语句才是真的。问题是Python解释
if Length1 == Length2 is True:
像
这对于,例如,a
,非常有用,但也可能导致一些意外行为,如您的情况
把那些支票换成
if (Length1 == Length2) is True:
或者更好,只要使用
if Length1 == Length2:
或者,您可以使用集合
计算不同边的数量:
distinct_sides = len(set([Length1, Length2, Length3]))
if distinct_sides == 1:
print "Equilateral"
if distinct_sides == 2:
print "Isosceles"
if distinct_sides == 3:
print "Scalene"
我只需要做一个函数来检查每一对,看它们是否相等
def isosceles(x1, x2, x3):
return x1 == x2 or x2 == x3 or x1 == x3
# slightly faster version since it returns after the first True
def isosceles(x1, x2, x3):
return any(x1 == x2, x2 == x3, x1 == x3)
确保将输入转换为int
,这样就不会比较string
值
Length1 = int(raw_input())
Length2 = int(raw_input())
Length3 = int(raw_input())
然后调用你的函数
if isosceles(Length1, Length2, Length3):
print "Isosceles"
else:
print "Not isosceles"
只要使用if Length1==Length2
+1来解释实际问题,而不仅仅是提出更好的代码。OP会询问两边是否相同,它应该输出“print”Isosceles`@padraiccnningham当然,我的版本更简洁一点。当然,你可以把它改成如果不同的方面“除非长度2实际上是假的,否则你的陈述总是会被评估为真的”也许我误解了你,但我认为这是不正确的。除非Length2
为True
,否则它将始终返回false。例如,3==3为真
->为假
@tobias_k,是的,应该为真的“1”==1”仍然为真是的,但我可以看到他们在大约10分钟后回来时说“为什么我的斜边函数会抛出类型错误?”仍然值得指出的是,作为字符串的整数在不强制转换的情况下会进行同样的比较。“#稍微快一点的版本,因为它在第一个True之后返回”同样适用于…或…
Length1 = int(raw_input())
Length2 = int(raw_input())
Length3 = int(raw_input())
if isosceles(Length1, Length2, Length3):
print "Isosceles"
else:
print "Not isosceles"