Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
否则,请在python上使用True和False语句。skulpt.org_Python_If Statement - Fatal编程技术网

否则,请在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

这是我的代码,我必须在其中创建它,以便它允许

  • 用户输入三角形三条边的长度,即长度1、长度2和长度3
  • 如果任意两条边的长度相同,程序输出“等腰”
  • 否则,程序输出“非等腰”
  • 但是,输出部分似乎不起作用。 我不熟悉这种类型的编码,所以请帮助我

    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"