Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法理解Python代码的结果_Python - Fatal编程技术网

无法理解Python代码的结果

无法理解Python代码的结果,python,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["fo

我在学习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
没有


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

您试图打印函数的返回值,但函数不返回值,因此它返回默认值None

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

或者,让程序返回字符串,以便您可以使用它执行有用的操作

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

print dixnary()

dixnary()
返回什么?这是你打印的最后一件东西。嗯,你实际上错了。我只是在早些时候使用了这些函数,结果却没有。因此,我添加了print命令以查看它们是否给出相同的结果,并发现结果不同。你试过这个程序吗?也许在打印命令前使用a#,你会看到函数仍然会给出结果。不,我真的不是。。。您打印出的是函数的返回值,它没有返回值,因此默认为无。我向你保证。如果有什么不清楚的地方,我可以试着更好地解释。请不要问问题,然后在回答时告诉别人他们错了。。。特别是当它们正确时:)您还不明白:函数正常执行所有打印,然后返回一个值
None
。您编写了调用函数的代码,然后打印函数返回的值。这就是行
print dixnary()
的作用。如果您不想打印
None
,那么您应该只打印
dixnary()
。你自己试试,啊哈!是的,成功了。我之前不明白。很抱歉说你错了。但我不明白为什么会这样。函数返回的值是什么意思?当我只使用dixnary()时,它有什么不同呢?很抱歉,这里的停顿是函数take argument,do actions,然后返回一个变量(可选)。在python中,如果函数不显式返回变量,则隐式返回None对象。当你打印一个函数时,你实际打印的是函数的返回值。