为什么这段代码在它应该的之后打印出来?

时间:2014-11-19 23:28:43

标签: python

为什么打印此代码

您好

def begin ():
    print("Type new to start a new game or load to load the previous game")
    print prompt_start()

def start ():
    print("hello")

def prompt_start ():
    prompt_0 = raw_input("Type  command:")
    if prompt_0==("new"):
        print start()
    elif prompt_0==("load"):
        load()
    else:
        print("read instructions!")
        print prompt_start

begin()

请给出解决方案,因为我无法弄清楚出了什么问题

2 个答案:

答案 0 :(得分:2)

因为每个函数都有一个隐式return None,所以prompt_start()函数会返回Noneprint prompt_starts()打印函数调用返回的内容:None

A relevant question that may help you

答案 1 :(得分:1)

这是因为你的功能prompt_start()prompt_start()不会返回任何内容。因此,当您编写print prompt_start()时,Python会评估您的函数,然后尝试打印其结果(在您的情况下为None,因为它不会返回任何内容)。

以下是无法打印None的代码:

def begin ():
    print("Type new to start a new game or load to load the previous game")
    prompt_start()

def start ():
    print("hello")

def prompt_start ():
    prompt_0 = raw_input("Type  command:")
    if prompt_0==("new"):
        print start()
    elif prompt_0==("load"):
        load()
    else:
        print("read instructions!")
        prompt_start() # <- missing parens  to call the function
begin()