【发布时间】:2021-01-04 09:43:40
【问题描述】:
我的任务之一是编写一个 python 程序,它可以不使用任何函数,如 sort 或 swap,按升序对三个数字进行排序。
这是我想到的第一件事:
a = float(input("Enter a: "))
b = float(input("Enter b: "))
c = float(input("Enter c: "))
if a < b:
if b < c:
print (a, "<", b, "<", c)
else:
if a < c:
print (a, "<", c, "<", b)
else:
print (c, "<", a, "<", b)
else:
if c < b:
print (c, "<", b, "<", a)
else:
if c < a:
print (b, "<", c, "<", a)
else:
print (b, "<", a, "<", c)
我的老师说要尝试简化它,所以我接下来写了这个(这基本上是使用交换的一种迂回方式):
a = float(input("Enter a: "))
b = float(input("Enter b: "))
c = float(input("Enter c: "))
if a > c:
a = a + c
c = a - c
a = a - c
if a > b:
a = a + b
b = a - b
a = a - b
if b > c:
b = b + c
c = b - c
b = b - c
print (a, "<", b, "<", c)
所以我想我的问题是它是否可以比这更简化以及它会是什么样子。
【问题讨论】:
-
你可以用
a,b = b,a交换两个号码 -
第二个版本是可读性的灾难。听@khelwood
标签: python