animals=["zebras", "dogs", "cats", "snakes", "insects"]
A=0
B=1
while B<= (len(animals)-1):
if animals[A] > animals[B]:
animals= [animals[B]] + [animals[A]] + animals[B+1:]
B= B + 1
print(B)
print(animals)
print("test- Will this not print as well?")
好的,谢谢,这似乎有效。不过我还有一个问题:怎么打印B而不是下一个打印声明:打印(动物)? 当我注释掉印刷品B语句然后印刷品(动物) 的工作原理。
这是我运行代码时的输出(原样),而while循环没有终止。
输出: 2
答案 0 :(得分:1)
它不会打印,因为你永远陷入了你的while循环。
第一次运行时,它会检查
"zebras" > "dogs"
这是真的,然后会打印
2
['dogs', 'zebras', 'cats', 'snakes', 'insects']
然后再次,
"zebras" > "cats"
也是如此,打印
3
['cats', 'dogs', 'snakes', 'insects']
然后它得到
['insects', 'cats']
但是现在它试图检查动物是否[0]&gt;动物[3],它会出现问题,因为动物[3]不存在而返回假。你的无限循环。