#34的含义是什么;如果最后一行没有完成,解释器在打印下一个提示之前插入换行符。"

时间:2015-07-28 09:17:00

标签: python

我通过阅读python.org的Python教程来学习Python。当我阅读第三章:3. An Informal Introduction to Python时,我无法理解文章的最后一句是"如果最后一行没有完成,解释器在打印下一个提示之前插入换行符"有人知道这是什么意思吗?如果有一个例子,那就更好了。感谢。

3 个答案:

答案 0 :(得分:5)

每次使用以逗号结尾的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
>>> 

有趣的是,在Python 3中,不再设置这样的标志,因为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,>>> 

答案 1 :(得分:2)

这不会发生:

>>> 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
>>> 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)

即使这条线路从未真正完成&#34;:任何以下print x,语句都会延续它。

答案 2 :(得分:2)

您所指的教程使用以下代码段作为示例

a, b = 0, 1
while b < 1000:
    print b,
    a, b = b, a+b

您不清楚的句子是指最终打印后该行的结束方式。逗号告诉解释器当前行没有换行符,可以通过这样的操作轻松地显示

a, b = 0, 1
while b < 1000:
    print b,
    a, b = b, a+b
print "Look where I am"

这将在与您的号码相同的行上打印最终陈述,例如

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 Look where I am

现在在前一个下面添加另一个打印(没有逗号,因此它有一个新行),您将看到新语句将打印在 Look我在哪里语句下面

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