我为Python中的函数分配了一个函数,使用函数中的参数并给函数3个数字,从最低到最高排序。有时它起作用,有时却不起作用,而且我无法为之困惑。对此的任何启示都会对我有所帮助。谢谢。我应该能够更改Max(a,b,c)以运行任何数字并产生(1,2,3)。
def Max(a,b,c):
while a < b:
if b < c:
print(a,b,c)
return
else:
print(a,c,b)
return
while b < c:
if c < a:
print(b,a,c)
return
else:
print(b,c,a)
return
while c < a:
if a < b:
print(c,a,b)
return
else:
print(c,b,a)
return
Max(3,1,2)
答案 0 :(得分:1)
def Max(a,b,c):
return sorted([a,b,c])[-1]
两行,没有任何循环。任何比这短的都不是功能。
return max([a,b,c])
也可以,但是我知道您出于某些原因希望对数字进行排序
编辑:您的函数称为Max
,但是在重新阅读您的帖子后,您似乎不希望仅返回最大值,而是全部以升序排序。如果是这种情况,请从上面的代码的第二行中删除[-1]
,并更改函数名称以避免混淆。
更好的是,不要创建执行要由python开发人员完成的功能的函数。只需在主代码中的元素列表上使用sorted()
:这是执行此操作的pythonic方法。
答案 1 :(得分:0)
您可以链接比较运算符,因此您可以独立检查每个配置:
def Max(a, b, c):
if a <= b <= c:
print(a, b, c)
elif a <= c < = b:
print(a, c, b)
elif b <= c < = a:
print(b, c, a)
elif b <= a < = c:
print(b, c, a)
elif c <= a < = b:
print(c, a, b)
else:
print(c, b, a)