我刚接触Python,有一个既简单又非常重要的逻辑问题
我才刚接触Python。我在代码里有一个小毛病,出现在我为了跟随电子书学习而创建的一个简单程序的末尾。我不理解,而且对我来说这是个关键问题,为什么错误之前的所有代码行没有先执行,错误却在末尾被报告?
如果代码中的每一行都按顺序读取,为什么底部的错误会导致其他所有代码不执行?
我本以为我对print() 的其他所有调用都会执行,结果在末尾再出现问题。
我知道第23行我做错了什么,但在它之前的其他行为什么没有被处理?
squares = []
for value in range(1, 11):
square = value ** 2
squares.append(square)
print(squares)
#write this more concisely
squares = []
for value in range(1, 11):
squares.append(value**2)
print(squares)
#list comprehensions
squares = [value**2 for value in range(1, 11)]
print(squares)
squares = []
for value in range(1, 11):
value ** 2 = square
squares.append(square)
print(squares)
解决方案
代码在执行之前会被解析成Python字节码。语法错误是在解析阶段被发现的。只有在成功完成解析后,代码才会被执行。一旦你修正了 SyntaxError, then 代码就会从头开始运行。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。