为什么只有字符串应该
时才会打印打印功能中的整个参数以及paranthesis这是Python 2.7.9
import os
alist = [ 'A' ,'B']
print('Hello there')
print('The first item is ',alist[0])
print('Good Evening')
root@justin:/python# python hello.py
Hello there
('The first item is ', 'A')
Good Evening
答案 0 :(得分:8)
在python 2中print
不是函数,它是一个声明。当你写
print('The first item is ',alist[0])
它实际上意味着“给我打印2个元素的元组:'The first item is '
和alist[0]
”
它相当于
a = ('The first item is ',alist[0])
print a
如果你只想打印字符串,你应该删除括号:
print 'The first item is ',alist[0]
编辑: 正如评论中的人所说,你也可以添加
from __future__ import print_statement
这将使print
成为python 3中的函数,您的示例将按预期工作而不进行任何更改。
但我认为理解两种情况下的情况都很有用。
答案 1 :(得分:1)
记住你在python 2中使用python 2.7.x
,print是一个语句,而不是一个函数。
你可能会问为什么
print('Good Evening')
无法打印
('Good Evening')
你只传递了1个字符串参数,因此print语句理解需要打印字符串而不是括号。
当你做
时print ('The first item is ',alist[0])
打印整个输出,认为字符串的不同部分有,
作为分隔符,因此输出为
('The first item is ', 'A')
在处理python 2时删除括号,因为它不是面向函数的版本
答案 2 :(得分:1)
之前的答案已经解释了
print('The first item is ', alist[0])
Python 2中的等同于
print ('The first item is ', alist[0])
所以它打印了两个项目的元组。这是因为print
是Python 2中的语句,而不是函数,因此print
后面的括号不被解释为表示功能调用。
在Python中,由逗号分隔的几个项组成的表达式创建一个元组。在某些情况下,需要括号将元组分组为一个单元;并且print
语句是其中一种情况,否则逗号分隔序列中的每个项都被视为print
语句的单独参数。
元组的标准字符串表示形式打印括号括号和每个元组项的repr
。因此,元组中的任何字符串项都使用其引号打印,并且各种转义序列用于表示非ASCII字符。
如果您希望在后续版本的Python 2中使用print()
语法以使您的代码与Python 3兼容,那么您应该添加
from __future__ import print_function
作为脚本中的第一个可执行语句。这将掩盖print
语句,并允许print
名称引用print
函数。这是一个简短的演示,在Python 2.6.6上运行。首先,没有导入:
print('one', 'two\n', 'three')
<强>输出强>
('one', 'two\n', 'three')
随着导入:
from __future__ import print_function
print('one', 'two\n', 'three')
<强>输出强>
one two
three
FWIW,你可以这样做
from __future__ import print_function, division
所以你也得到了/
除法运算符的Python 3式行为。