规格:Ubuntu 13.04,Python 3.3.1
背景:Python的初学者,遇到了这个“手动排序”问题。
我被要求做的事情:“让用户输入 3 个数值并将它们存储在 3 个不同的变量中。不使用列表或排序算法,手动将这 3 个数字从小到大排序。”
我能想到的:
number = input("Please enter 3 numbers: ")
number = list(number)
a = int(number[0])
b = int(number[1])
c = int(number[2])
new_l = []
if a > b and a > c:
new_l.append(a)
if b > c:
new_l.append(b)
new_l.append(c)
else:
new_l.append(c)
new_l.append(b)
print(new_l)
if b > a and b > c:
new_l.append(b)
if a > c:
new_l.append(a)
new_l.append(c)
else:
new_l.append(c)
new_l.append(a)
print(new_l)
if c > a and c > b:
new_l.append(c)
if a > b:
new_l.append(a)
else:
new_l.append(b)
new_l.append(a)
print(new_l)
所以我的问题是:我意识到我的解决方案非常有限。首先,它只能处理 3 个单位数字,因为一旦将输入字符串转换为列表,就无法将所有数字正确地分解为用户想要的单个数字。其次,通过使用此解决方案,编码人员被迫枚举所有可能的情况,以便 3 个数字相互比较,如果将脚本更改为接受 100 多个数字的用户输入,这可能会非常不灵活。
如果您可以就上述问题或如何以不同方式解决此问题分享一些指导,我将非常感激!谢谢你。