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