2016-08-24 76 views
-11

我写了这个作为一个例子:函数错误中的Python函数?

def function(): 
choice = raw_input("> ") 
if choice == "attack": 
    print "Killed the monster." 
elif choice == "run": 
    print "You run but the monster follows you. Activate jetpack? (y/n)" 
    def function_in_function(): 
     choice = raw_input("> ") 
     if choice == "y": 
      print "You fly to safety." 
     elif choice == "n": 
      print "You get stomped." 
     else: 
      print "That's not an option." 
      function_in_function() 
else: 
    print "That's not an option." 
    function() 

我打开了它的电源外壳,但一无所获?

+1

顶行下方的所有内容至少需要缩进4个空格。 – Andrew

+1

缩进是错误的。 –

+3

如果这被保存为一个.py文件,并且你执行该文件,则不会发生任何事情,因为你所做的只是定义一个函数,但从不执行它。 – syntonym

回答

0

我想这是你想要的功能和格式。我不建议在这里使用函数内部的函数,因为它不是必需的,但它仍然可以如图所示完成。记住缩进。在这里阅读http://www.python-course.eu/python3_blocks.php。另外,在分配它之前,您不能调用函数。

def function(): 

    choice = raw_input("> ") 
    if choice == "attack": 
     print "Killed the monster." 
    elif choice == "run": 
     print "You run but the monster follows you. Activate jetpack? (y/n)" 
     def function_in_function(): 
      choice = raw_input("> ") 
      if choice == "y": 
       print "You fly to safety." 
      elif choice == "n": 
       print "You get stomped." 
      else: 
       print "That's not an option." 
       function_in_function() 
     function_in_function() 
    else: 
     print "That's not an option." 
     function() 


function() 

编辑:根据评论。

+0

非常感谢,但我的主要观点是“这不是一个选项”出现时,我希望代码回到'选择'而不是结束整个脚本:) – Keretto

+0

只需在那里添加“function()”调用即可。添加到我的答案。 – grael

+0

我现在明白了,但看起来比我写的更复杂。如果我按照这个顺序做了,它会继续运行吗? – Keretto