使用打印命令 VS 直接调用



我开始学习Python中的字典。

对于以下字典:

nameMap={1: "Bob", 2: "Pete", 3: "Ben", 4: "Bud", 5:  "Russ"}

为了获得一个值,使用print(nameMap[1])nameMap[1]时输出略有不同。

你能解释一下这里到底发生了什么吗?

这就是意思:

nameMap[1]将返回一个str类型对象

print(nameMap[1])将返回一个NoneType对象

以下是支持代码:

混淆时,请使用type()方法检查值的类型。

>>> nameMap = {1: "Bob", 2: "Pete", 3: "Ben", 4: "Bud", 5: "Russ"}
>>> nameMap[1]
'Bob'
>>> type(nameMap[1])
<class 'str'>
>>> print(nameMap[1])
Bob
>>> type(print(nameMap[1]))
Bob
<class 'NoneType'>
为了

获得一个值,当使用print(nameMap[1](和nameMap[1]时,out的放值略有不同。你能解释一下这里到底发生了什么吗?谢谢。

我认为您的意思是"当您尝试使用显式print调用打印变量的值时"与"通过在解释器上直接键入变量名称而不使用print"之间的区别。

我已经厌倦了你的解释器代码:

Python 3.7.5 (default, Nov 20 2019, 09:21:52) 
[GCC 9.2.1 20191008] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> nameMap={1: "Bob", 2: "Pete", 3: "Ben", 4: "Bud", 5:  "Russ"}
>>> print(nameMap[1])
Bob
>>> nameMap[1]
'Bob'
>>> 

我的猜测是,印刷的差异是由于类的__repr____str__方法的差异。

print(variable)等于print(str(variable))

变量等于print(repr(variable))

也试试这个:

>>> print(nameMap[1])
Bob
>>> nameMap[1]
'Bob'
>>> print(repr(nameMap[1]))
'Bob'
>>> 

print(nameMap[1])只是在控制台(或您使用的任何输出系统(上打印值。

nameMap[1]返回字典包含的值,无论类型是什么。为了知道值是什么类型,type(nameMap[1]).

最新更新