我正在终端中运行Python3,逐行复制/粘贴我的代码。在下面的代码块示例中(找到两个排序数组的中值(:
nums1=[1,2]
nums2=[3,4]
output_list = []
while(nums1 and nums2):
if nums1[0] <= nums2[0]:
output_list.append(nums1.pop(0))
else:
output_list.append(nums2.pop(0))
if nums1:
output_list.append(nums1.pop(0))
if nums2:
output_list.append(nums2.pop(0))
复制/粘贴到终端后,我得到
>>> nums1=[1,2]
>>> nums2=[3,4]
>>> output_list = []
>>> while(nums1 and nums2):
... if nums1[0] <= nums2[0]:
... output_list.append(nums1.pop(0))
... else:
... output_list.append(nums2.pop(0))
... if nums1:
File "<stdin>", line 6
if nums1:
^
SyntaxError: invalid syntax
>>> output_list.append(nums1.pop(0))
File "<stdin>", line 1
output_list.append(nums1.pop(0))
^
IndentationError: unexpected indent
>>> if nums2:
... output_list.append(nums2.pop(0))
如果在while和两个if语句之间有一行空行,则此语句将消失。为什么会这样?
根据PEP8:https://www.python.org/dev/peps/pep-0008/#blank-线路
空行
用两行空行分隔顶级函数和类定义。类中的方法定义由一个空行分隔。
可以(谨慎地(使用额外的空行来分隔相关函数组。在一堆相关的单行(例如一组伪实现(之间可以省略空行。
在函数中谨慎地使用空行来表示逻辑部分。
Python接受control-L(即^L(形式的提要字符作为空白;许多工具将这些字符视为页面分隔符,因此您可以使用它们来分隔文件中相关部分的页面。注意,一些编辑器和基于web的代码查看器可能无法将control-L识别为表单提要,并将在其位置显示另一个字形。
空行表示交互窗口上循环的结束
更多参考:交互式提示空行规则
这可能是由于您使用的IDE。我会尝试在终端中用4个空格替换缩进,或者将python文件保存到您的计算机上,cd到它的位置,然后运行python3(将文件名以.py结尾(命令。