Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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 返回None而不是False_Python - Fatal编程技术网

Python 返回None而不是False

Python 返回None而不是False,python,Python,我有一段代码,如果其中一个条件不满足,那么它应该在函数末尾返回false,但是输出总是说None,为什么 def check_largest_and_smallest(): case1 = largest_and_smallest(17, 1, 6) case2 = largest_and_smallest(1, 16, 6) case3 = largest_and_smallest(1, 1, 2) case4 = largest_and_smallest(1,

我有一段代码,如果其中一个条件不满足,那么它应该在函数末尾返回false,但是输出总是说None,为什么

def check_largest_and_smallest():
    case1 = largest_and_smallest(17, 1, 6)
    case2 = largest_and_smallest(1, 16, 6)
    case3 = largest_and_smallest(1, 1, 2)
    case4 = largest_and_smallest(1, 1, 1)
    case5 = largest_and_smallest(-3, -4, 0)
    if case1 == (17, 1):
        if case2 == (17, 1):
            if case3 == (2, 1):
                if case4 == (1, 1):
                    if case5 == (0, -4):
                        return True
    else:
        return False
最大和最小的功能是:

def largest_and_smallest(num1, num2, num3):


    largest = None
    smallest = None

    if (num1 >= num2) and (num1 >= num3):
        if num2 <= num3:
            largest = num1
            smallest = num2
        else:
            largest = num1
            smallest = num3
    elif (num2 >= num1) and (num2 >= num3):
        if num1 <= num3:
            largest = num2
            smallest = num1
        else:
            largest = num2
            smallest = num3
    elif (num3 >= num1) and (num3 >= num2):
        if num1 <= num2:
            largest = num3
            smallest = num1
        else:
            largest = num3
            smallest = num2

    return largest, smallest
def最大值和最小值(num1、num2、num3):
最大=无
最小=无
如果(num1>=num2)和(num1>=num3):
如果num2=num1)和(num2>=num3):
如果num1=num1)和(num3>=num2):

如果num1对我来说,一眼就能看出check_max_和_minimable()的缩进是不正确的。然后,你不应该使用else,只需返回最终将满足你的预期逻辑

def check_largest_and_smallest():
    case1 = largest_and_smallest(17, 1, 6)
    case2 = largest_and_smallest(1, 17, 6)
    case3 = largest_and_smallest(1, 1, 2)
    case4 = largest_and_smallest(1, 1, 1)
    case5 = largest_and_smallest(-3, -4, 0)
    if case1 == (17, 1):
        if case2 == (17, 1):
            if case3 == (2, 1):
                if case4 == (1, 1):
                    if case5 == (0, -4):
                        return True

    return False

def largest_and_smallest(num1, num2, num3):
    """
    Takes 3 numbers as arguments and returns
    the largest number and smallest number among them.
    """
    largest = None
    smallest = None

    if (num1 >= num2) and (num1 >= num3):
        if num2 <= num3:
            largest = num1
            smallest = num2
        else:
            largest = num1
            smallest = num3
    elif (num2 >= num1) and (num2 >= num3):
        if num1 <= num3:
            largest = num2
            smallest = num1
        else:
            largest = num2
            smallest = num3
    elif (num3 >= num1) and (num3 >= num2):
        if num1 <= num2:
            largest = num3
            smallest = num1
        else:
            largest = num3
            smallest = num2

    return largest, smallest


check_largest_and_smallest()
def检查最大和最小()
案例1=最大和最小(17,1,6)
案例2=最大和最小(1,17,6)
案例3=最大和最小(1,1,2)
案例4=最大和最小(1,1,1)
案例5=最大的和最小的(-3,-4,0)
如果案例1==(17,1):
如果案例2==(17,1):
如果案例3==(2,1):
如果案例4==(1,1):
如果案例5==(0,-4):
返回真值
返回错误
def最大和最小值(num1、num2、num3):
"""
将3个数字作为参数并返回
其中最大的数字和最小的数字。
"""
最大=无
最小=无
如果(num1>=num2)和(num1>=num3):
如果num2=num1)和(num2>=num3):
如果num1=num1)和(num3>=num2):

如果num1考虑如果
case1
为真,而
case2
为假会发生什么

假设
如果
梯形图缩进是您想要的,那么只有
案例1
不正确时才返回false,但是如果
案例1
为true,并且任何其他情况都为false,则代码不会返回任何结果。

尝试以下操作:

if case1 == (17, 1) and case2 == (17, 1) \
      and case3 == (2, 1) \
      and case4 == (1, 1) \
      and case5 == (0, -4):
    return True
else:
    return False

对于最小/最大函数,请尝试以下方法:

def minmax(*x):
    return min(x),max(x)
在任何情况下,你都可以写

a < b < c
a
而不是

a<b and b<c

a原因是使用了
else
:只要选中第一个
if
语句,其他情况下就没有
else
,因此函数只返回
None

    case1 == (17, 1)
    case2 == (16, 1)

    if case1 == (17, 1):
        if case2 == (17, 1):
        # here case2 doesn't match, but there's no corresponding else!
    else:
        return False
一个简单的修复方法是只返回False,而不返回任何
else

    if case1 == (17, 1):
        if case2 == (17, 1):
            if case3 == (2, 1):
                if case4 == (1, 1):
                    if case5 == (0, -4):
                        return True
    return False
或者,更好的是,使用它检查所有iterable项,并在其中一项不为
True
时返回
False
,这意味着函数将在发生这种情况时停止计算以下项:

    return all((case1 == (17, 1), case2 == (17, 1), case3 == (2, 1),
        case4 == (1, 1), case5 == (0, -4)))

请修复缩进。有一个
max
min
函数。您能告诉我在“如果情况”阶梯中您想做什么吗?您不允许使用内置的
max
min
?那
最大和最小的
函数太可怕了。是的,我知道最小和最大的函数,但我就是不能使用它。所以我应该为每种情况都设置一个else返回False吗?一行不能超过79个字符,但感谢阅读注释。对于我来说,“if”阶梯看起来不太好。如果我们用“和”来压平它怎么办?请看我的答案作为参考。是的,使用
是更好的方法。但我想在这里透露一下else的用法。