Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.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中查找三个数字的中间值_Python - Fatal编程技术网

在python中查找三个数字的中间值

在python中查找三个数字的中间值,python,Python,我试图打印三个数字的中间值,但当测试用例是数字2,1,2时,它不会给出任何结果,但当我尝试2,2,1时,它会给出正确答案,即2,那么我如何修复此代码 def median(a,b,c): if a>b: if a>c: if b>c: return b else: return c elif c>a: if a>b: return

我试图打印三个数字的中间值,但当测试用例是数字2,1,2时,它不会给出任何结果,但当我尝试2,2,1时,它会给出正确答案,即2,那么我如何修复此代码

def median(a,b,c):
if a>b:
    if a>c:
        if b>c:
            return b
        else:
            return c
    elif c>a:
        if a>b:
            return a
        else:
            return b
elif b>a:
    if b>c:
        if a>c:
            return a
        else:
            return c
    elif c>b:
        if a>b:
            return a
        else:
            return b



elif a==c:
    return a

elif a==b:
    return a

elif b==c:
    return b

print(median(2,1,2))

在函数中遵循这些值:

def median(2, 1, 2):
    if 2 > 1: # yes
        if 2 > 2: # no
            ...
        elif 2 > 2: # also no
            ...
        # no 'else' here, and
    ... # other 'elif' choices never run
    # fall out of function - implicit 'return None'
你根本不处理那个案子


程序的分支结构很难阅读,而且(很明显!)容易出错。仔细想想你想要实现的目标——有一种更简单的方法。

这里有大量的问题,因此都是关于那些没有按照作者希望的方式工作的代码。用它作为标题会使你的问题毫无意义。请创建一个实际的问题标题。那么,问题是什么?如何找到中位数?为什么它不起作用?如何使其在最小更改的情况下工作@shtuff.it这不是一个重复(可能),因为问题(可能)与修复提供的代码有关,而不是如何以通用方式对任意数量的元素执行此操作@shtuff.it我只想添加一件事,就是将*args传递给方法,然后将其转换为带有
list(args)的列表
因为他似乎希望能够传入多个变量,而不是列表。这样就可以满足他的需要,但这就是我解决问题的方法。你不应该试图预测参数的顺序。你应该了解它们是如何来的,并按照你想要的顺序对它们进行排序,然后进行处理。