You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

嵌套If Else实现四变量升序排序:代码能否精简及更优方案

嵌套If-Else实现四变量排序的精简方案

你的代码可以大幅精简,首先里面大量空的print()语句完全没有作用,直接删掉就能让逻辑紧凑很多。另外,原代码的嵌套逻辑本身可行,但可以去掉冗余空行和无意义操作,精简后的嵌套If-Else代码如下:

a=19
b=10
c=1
d=8

if a > b:
    if a > c:
        if a > d:
            # a为最大值
            if b > c:
                print("a>b>c>d" if c > d else "a>b>d>c")
            else:
                print("a>c>b>d" if b > d else "a>c>d>b")
        else:
            # d为最大值,a次之
            print("d>a>b>c" if b > c else "d>a>c>b")
    else:
        # c为最大值
        if a > d:
            print("c>a>d>b" if d > b else "c>a>b>d")
        else:
            print("c>d>a>b" if c > d else "d>c>a>b")
else:
    if b > c:
        if b > d:
            # b为最大值
            if a > c:
                print("b>a>c>d" if c > d else "b>a>d>c")
            else:
                print("b>c>a>d" if a > d else "b>c>d>a")
        else:
            # d为最大值,b次之
            print("d>b>c>a" if c > a else "d>b>a>c")
    else:
        # c为最大值,b次之
        if c > d:
            print("c>b>a>d" if a > d else "c>b>d>a")
        else:
            print("d>c>b>a")

这里还把内层嵌套If-Else改成了三元表达式,进一步压缩了代码行数,同时保留原有逻辑。

如果不限制必须用嵌套If-Else,有两种更简便的实现方式:

  1. 利用Python内置排序函数
    这是最简洁的方案,一行代码就能完成排序并输出指定格式:
a=19
b=10
c=1
d=8
# 升序排列后反转成降序,拼接成字符串(对应你原代码的输出格式)
print(">".join(map(str, sorted([a, b, c, d], reverse=True))))
# 如果要输出升序格式,去掉reverse=True即可
# print(">".join(map(str, sorted([a, b, c, d]))))
  1. 平级判断所有排列组合
    如果一定要用条件判断,也可以把4个变量的24种全排列用elif逐个判断,这种方式没有嵌套,逻辑更直观,但代码行数会较多,示例如下:
a=19
b=10
c=1
d=8

if a>b>c>d:
    print("a>b>c>d")
elif a>b>d>c:
    print("a>b>d>c")
elif a>c>b>d:
    print("a>c>b>d")
elif a>c>d>b:
    print("a>c>d>b")
# ... 依次补充剩余20种排列的判断

内容的提问来源于stack exchange,提问作者buzz shocker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 15:20:32