tjw*_*992 2 python printing syntax
我正在编写一个简单的Hello World Python脚本,尝试了几个不同的东西来看看我会得到什么.
结果:
print "Hello World" ===> Hello World
print "Hello"," ","World ===> Hello World
print "Hello" "World" ===> HelloWorld
Run Code Online (Sandbox Code Playgroud)
结果让我感到惊讶......从其他语言的经验来看,我希望得到更像这样的东西:
print "Hello World" ===> Hello World
print "Hello"," ","World ===> Hello World
print "Hello" "World" ===> Syntax Error!
Run Code Online (Sandbox Code Playgroud)
在尝试了几个例子之后,我意识到每当你用","分隔字符串时,似乎都会添加一个空格.
......更奇怪的是,如果你给它多个字符串而没有","它就像第三个例子那样分开它们似乎并不在乎.
为什么Python的打印功能会这样?
还有办法阻止它为","分隔字符串添加空格吗?
因为print语句添加之间的间隔不同的值,如记录:
在每个对象(转换和)写入之前写入一个空格,除非输出系统认为它位于一行的开头.
但是,"Hello" "World"不是两个值; 它是一个字符串.只忽略两个字符串文字之间的空格,并且这些字符串文字是连接的(由解析器):
>>> "Hello" "World"
"HelloWorld"
Run Code Online (Sandbox Code Playgroud)
请参阅字符串文字串联部分:
允许使用多个相邻的字符串文字(由空格分隔),可能使用不同的引用约定,并且它们的含义与它们的连接相同.
这样可以更容易地组合不同的字符串文字样式(三重引号和原始字符串文字和'常规'字符串文字都可以用于创建一个值),以及使创建长字符串值更容易格式化:
long_string_value = (
"This is the first chuck of a longer string, it fits within the "
'limits of a "style guide" that sets a shorter line limit while '
r'at the same time letting you use \n as literal text instead of '
"escape sequences.\n")
Run Code Online (Sandbox Code Playgroud)
这个功能实际上是继承自C,它不是Python的发明.
在Python 3,其中print()是一个函数,而不是一个声明,您有过争论如何多的处理更多的控制.单独的参数由sep函数的参数分隔,默认为空格.
在Python 2中,您可以通过添加from __future__ import print_function到模块顶部来获得相同的功能.这会禁用该语句,从而可以在Python 2代码中使用相同的函数.
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |