【发布时间】:2015-09-22 05:56:06
【问题描述】:
while Checked == False:
for Counter in range(1, NoOfRecords + 1):
if Test[Counter] < Test[Counter + 1]:
Temp = Test[Counter]
Test[Counter] = Test[Counter + 1]
Test[Counter + 1] = Temp
if Test[1] > Test[2] > Test[3] > Test[3] > Test[4] > Test[5]:
Checked = True
print(Test[1], Test[2], Test[3], Test[4], Test[5])
基本上,我的目标是将输入从最低到最高排序。在此之前,要求用户输入 0 到 5 之间的 5 个数字。
但是,在输入了 5 个输入之后,没有任何其他内容出现,没有打印。
您能提出改进建议吗?或用于排序过程的不同类型的循环?谢谢
编辑下面的完整代码
import array
Test = array.array ("f", range(11))
Counter = int(1)
NoOfRecords = int(5)
Checked = False
Temp = int(0)
def Tempurature (Day,Lowest,Highest):
ok = False
while ok == False:
try:
Input = float(input(Day + " Tempurature:"))
if Input >= Lowest and Input <= Highest:
ok = True
return Input
else:
print ("\nPlease enter a number between " + str(Lowest) + " and " + str(Highest))
except:
print ("\nPlease enter a valid number")
for Counter in range(1, NoOfRecords + 1):
Test[Counter] = Tempurature ("Mid-Day", 0, 5)
while Checked == False:
for Counter in range(1, NoOfRecords + 1):
if Test[Counter] < Test[Counter + 1]:
Temp = Test[Counter]
Test[Counter] = Test[Counter + 1]
Test[Counter + 1] = Temp
if Test[1] > Test[2] > Test[3] > Test[3] > Test[4] > Test[5]:
Checked = True
print(Test[1], Test[2], Test[3], Test[4], Test[5])
【问题讨论】:
-
Test = sorted(Test)呢? (假设您的列表中有ints;如果您使用用户输入填充列表,则必须首先将字符串转换为int)。