有时我们用循环来访问python中的列表时常常会出现一些逻辑错误,这种错误不会导致系统的报错但往往输出效果达不到我们的预期,今天我们来总结下这些常见的逻辑错误:
1、忘记缩进额外的代码行导致的逻辑错误
我们有时会在在遍历一个列表时试图在循环中执行多次命令,例如我们对一个表演晚会列表中的各个元素进行欢迎后同时表达对他们下次表演的期待时就需要对该循环执行多次命令,在具体的代码中则表现为需要在该循环的代码块中对命令代码使用一致的缩进,具体实例如下:
performers = ['alice','jack','david']
for performer in performers:
print(f"{performer.title()},that's a great trick!")
print(f"I'm looking for you next performance,{performer.title()}.")
对于列表中的每位表演者,在每次循环中我们不仅对他执行了第一个函数print(),同时也执行了第二个函数print(),这是因为两个函数都缩进了。对每个表演者我们都能对他们表达我们的赞美以及对他们的期待。
performers = ['alice','jack','david']
for performer in performers:
print(f"{performer.title()},that's a great trick!")
print(f"I'm looking for you next performance,{performer.title()}.")
此代码块由于第二个print()函数没有缩进被系统判定为不属于此代码块,只有对每个列表中的元素都进行完第一个print()函数的循环后才会在最后执行第二个print()函数,最终第二个print()函数只执行了一次,即只对表演者David表达了对他下次表演的期待,这就属于人情世故没有处理到位了(doge),所以各位一定要注意这种小疏忽。
2、循环后不必要的缩进导致的逻辑错误
只有在for循环中需要对该元素执行的代码才需要添加缩进来进入此循环,不必要的缩进加入不必要的代码块会影响最终的表达,如下所示:
performers = ['alice','jack','david']
for performer in performers:
print(f"{performer.title()},that's a great trick!")
print(f"I'm looking for you next performance,{performer.title()}.")
print("Thank you everyone,that's a great show!")
具体表达如下:
"Alice,that's a great trick!"
"I'm looking for you next performance,Alice."
"Thank you everyone,that's a great show!"
"Jack,that's a great trick!"
"I'm looking for you next performance,Jack."
"Thank you everyone,that's a great show!"
....
显然表达过于繁琐,且没有达到我们想要的效果:只在最后表达对大家的感谢。正确代码如下:
performers = ['alice','jack','david']
for performer in performers:
print(f"{performer.title()},that's a great trick!")
print(f"I'm looking for you next performance,{performer.title()}.")
print("Thank you everyone,that's a great show!")
内容比较简单,讲的比较细致,望大家多多包涵。



