无法理解Python代码的结果

时间:2012-04-24 15:42:13

标签: python

我正在学习Python中的字典,我创建了一个简单的程序:

# Create an empty dictionary called d1
d1 = {}

# Print dictionary and length
def dixnary():
    print "Dictionary contents : "
    print d1
    print "Length = ", len(d1)

# Add items to dictionary
d1["to"] = "two"
d1["for"] = "four"

print "Dictionary contents :"
print d1
print "Length =" , len(d1)

# Print dictionary and length
print dixnary()

现在,当我使用print命令和使用dixnary函数时,结果会有所不同。

使用print命令得到结果:

  

词典内容:
  <'至':' 2''为:' 4'>
  长度= 2

当我使用函数dixnary时,我得到了结果:

  

词典内容:
  <'至':' 2''为:' 4'>
  长度= 2
  无

注意最后一行的None。当我使用函数None时,会添加dixnary。这是为什么?

1 个答案:

答案 0 :(得分:11)

您正在尝试打印函数的返回值,但该函数不返回值,因此它返回默认值None。

它打印出其他数据的原因是你在函数内部有打印命令。只需运行函数(dixnary()),而不是打印它(print dixnary())。

或者,让程序返回字符串,这样你就可以用它来做有用的事情。

def dixnary():
    return "Dictionary contents :\n%s\nLength = %d" % (d1, len(d1))

print dixnary()