Python 什么';“的意思是什么;如果最后一行未完成,解释器将在打印下一个提示之前插入换行符。”;

Python 什么';“的意思是什么;如果最后一行未完成,解释器将在打印下一个提示之前插入换行符。”;,python,Python,我通过阅读Python.org的Python教程来学习Python。当我读到第三章:,我无法理解文章的最后一句话,即“如果最后一行没有完成,解释器在打印下一个提示之前插入一个换行符。”有人知道这是什么意思吗?最好有个例子。谢谢。这不会发生: >>> a, b = 0, 1 >>> while b < 1000: ... print b, ... a, b = b, a+b ... 1 1 2 3 5 8 13 21 34 55 89 14

我通过阅读Python.org的Python教程来学习Python。当我读到第三章:,我无法理解文章的最后一句话,即“如果最后一行没有完成,解释器在打印下一个提示之前插入一个换行符。”有人知道这是什么意思吗?最好有个例子。谢谢。

这不会发生:

>>> a, b = 0, 1
>>> while b < 1000:
...     print b,
...     a, b = b, a+b
...
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 >>> (prompt here)
>a,b=0,1
>>>b<1000时:
...     打印b,
...     a、 b=b,a+b
...
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987>>>(此处提示)
相反,这种情况会发生:

>>> a, b = 0, 1
>>> while b < 1000:
...     print b,
...     a, b = b, a+b
...
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
>>> (prompt here, after a newline)
>a,b=0,1
>>>b<1000时:
...     打印b,
...     a、 b=b,a+b
...
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
>>>(换行后在此处提示)

即使该行从未真正“完成”:任何后续的
print x,
语句都会继续执行该行。

每次使用以逗号结尾的
print
语句时,解释器都会设置一个标志,以记住它尚未编写新行

因为将下一个提示与这些数字放在同一行会很不方便(它不会像您期望的那样位于最左边的列中),Python将编写一个换行符,以便提示再次出现在左边的列中;它使用
print
语句设置的标志来检测这种情况

因此,不要在互动会话中获取此信息:

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 >>> 
你可以看到:

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
>>> 
有趣的是,在Python3中不再设置这样的标志,因为
print()
现在是一个函数。因此,交互式口译员无法再检测到这种情况,并将提示放在数字后面:

>>> import sys
>>> sys.version
'3.4.2 (default, Feb 10 2015, 10:25:29) \n[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)]'
>>> a, b = 0, 1
>>> while b < 1000:
...     print(b, end=',')
...     a, b = b, a+b
... 
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,>>> 
导入系统 >>>sys.version “3.4.2(默认,2015年2月10日,10:25:29)\n[GCC 4.2.1兼容苹果LLVM 6.0(clang-600.0.56)]” >>>a,b=0,1 >>>b<1000时: ... 打印(b,结束=',') ... a、 b=b,a+b ... 1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,>>>
您所参考的教程使用以下代码段作为示例

a, b = 0, 1
while b < 1000:
    print b,
    a, b = b, a+b
现在,在前一条语句的下方添加另一条打印(没有逗号,因此它有一个新行),您将看到新语句将打印在Look where I am语句的下方

a, b = 0, 1
while b < 1000:
    print b,
    a, b = b, a+b
print "Look where I am"
print "And me"
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 Look where I am
a, b = 0, 1
while b < 1000:
    print b,
    a, b = b, a+b
print "Look where I am"
print "And me"
 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 Look where I am
 And me