-1

所以我有一些代码,我在开始时创建一个列表,然后询问用户他是否想制作一个对象(乌龟),在这种情况下,它将它添加到列表中,或者他是否想移动乌龟(X) . 如果用户尚未创建对象,我希望它打印“需要创建对象”。这是代码。

adventurousch = []

def RoamingTurtles(): 
   command = raw_input("---> ")
   if command == 'A':
     newAdventureTurtle()
     RoamingTurtles() 
   if command == 'X':
    if adventurousch == []:
      print "Need to create object"
      RoamingTurtles()
    else:
      for i in adventurousch:
        i.drawSquare()
        print "test"

如果我在打印后没有 RoamingTurtles() ,那么它会成功打印出来。IE

if command == 'X':
    if adventurousch == []:
      print "Need to create object"

但如果我添加它,它就不再打印了。IE

if command == 'X':
    if adventurousch == []:
        print "Need to create object"
        RoamingTurtles()

它不应该先打印语句然后反馈到函数中吗?我很困惑。我希望它打印“需要创建对象”然后反馈到函数中,以便他们可以创建对象。

4

1 回答 1

0

每次在提示符下输入时您的代码都会打印出来。看到这个 ipython 成绩单:Need to create objectX

In [41]: %cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:adventurousch = []
:
:def RoamingTurtles():
:   command = raw_input("---> ")
:   if command == 'A':
:     newAdventureTurtle()
:     RoamingTurtles()
:   if command == 'X':
:    if adventurousch == []:
:      print "Need to create object"
:      RoamingTurtles()
:    else:
:      for i in adventurousch:
:        i.drawSquare()
:        print "test"
:<EOF>

In [42]: RoamingTurtles()
---> X
Need to create object
---> X
Need to create object
---> X
Need to create object
--->

因此,如果您的实际代码与您发布的代码不同……只需使用您发布的代码即可。*


* 好吧,就这个特定问题而言,它是有效的。

于 2013-05-21T21:49:04.260 回答