在Python shell中输入此命令时我仍然感到困惑:
>>> 'n'
'n'
>>> print('n')
n
'n'
(第一输出)是什么意思?另一个n
是什么意思?为什么Python只打印n
作为'n'
的输出与print('n')
生成的相同?
我认为print('n')
表示:我(Python)打印n
作为角色
那么第一个怎么样?如果>>> 'n'
表示相同,为什么不打印n
?
答案 0 :(得分:5)
您正在interactive mode中运行python解释器,其中 echos 值为您。表达式将被评估,如果它们返回None
以外的其他内容,则解释器将执行以下操作:
print(repr(result))
这是您看到的'n'
。
print()
直接写入终端输出,将值转换为字符串(str()
函数的结果,但对于字符串值,没有区别它已经 一个字符串对象。)
这与在脚本中运行Python代码不同;没有提示,如果只将'n'
放在一行,Python解释器就会忽略该行,因为它不会改变任何状态。另一方面,print('n')
仍会将字符串写入您的控制台或终端。
交互模式可以帮助您弄清楚做什么的python表达式,并且使用repr()
可以区分不同类型的对象。尝试打印1
和"1"
,这是一个整数,以及一个数字为1
的字符串:
>>> print(1)
1
>>> print("1")
1
你无法分辨这两者之间的区别。但他们的代表 确实不同:
>>> 1
1
>>> "1"
'1'
大多数Python标准类型的表示将使用可以在Python代码中重复使用的符号。
答案 1 :(得分:0)
它只是回显您的输入(字符串)。当你print
n时,它会输出你的字符串的值。
答案 2 :(得分:0)
如果要将它放在.py文件中并从命令行执行,那么print('n')
会打印一些内容,但文件中只有'n'
不会执行任何操作。
交互式提示稍微有点混乱,因为如果您编写的表达式的值不是None,则会打印其表示形式。这就是'n'
在这种情况下打印'n'
的原因。但这是交互式提示所做的事情,而不是代码所做的事情。
答案 3 :(得分:0)
你应该先了解python中的所有内容都是OBJECT。这意味着'n'是一个对象,当print
它你调用一个对象'n'的函数。(OBJECT.__str__()
)。
class Human:
def __init__(self,name,ge,age):
self.ge = ge
self.age = age
self.name = name
def __str__(self):
print "This is",self.name
print "age = ",self.age
print "gender = ".self.ge
boy = Human("Tom", "M", 12)
print boy