2013-05-21 2 views
0

Итак, у меня есть код, в котором я создаю список в начале, а затем спрашиваю пользователя, хочет ли он сделать объект (черепаха), и в этом случае он добавляет, что к список, ИЛИ, если он хочет переместить черепаху (X). Если пользователь не создал объект, я хочу, чтобы он печатал «Необходимо создать объект». Но это не печатание. Я знаю, что код распечатывает его сам по себе, поэтому мне интересно, почему это не работает внутри функции. Таким образом, по существу, я просто хочу, чтобы код для печати «Необходимо создать объект», если у меня есть пустой списокНе печатать строку, если у меня есть пустой список

adventurousch = [] 

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

если условие: если не adventurousch: ... print «Необходимый объект» – levi

ответ

3

Это должно сделать трюк:.

... 
if not adventurousch: 
     print "Need to create object" 
... 

Смотрите также: Best way to check if a list is empty

+0

Это сработало. Моя проблема теперь в том, когда я пытаюсь получить обратную связь в функцию, введя RoamingTurtles() после того, как печать прекратит печать? – Danrex

2

Код adventurousch == [] проверяет, равен ли adventurousch указанному пустому списку, а не пустым. Чтобы проверить, нет ли adventurousch, используйте if not adventurousch:.

+0

Так что это работает, но когда я пытаюсь заставить его вернуться в функцию, добавив RoamingTurtles() после печати, которую он не распечатывает, а просто идет через функцию? – Danrex

+1

Не видя остальной части вашего кода, трудно сказать, но я был бы удивлен, если рекурсивный вызов 'RoamingTurtles()' достигнет того, чего вы надеетесь достичь. В качестве альтернативы я бы предложил использовать цикл внутри 'RoamingTurtles()', чтобы позволить пользователю создавать столько черепах, сколько он хочет. Кроме того, используя глобальную переменную типа 'adventurousch', для которой' newAdventureTurtle() 'предположительно добавляет черепаху, затрудняет понимание программы. Я предлагаю вернуть новую черепаху из функции, чтобы вы могли сказать что-то вроде 'adventurousch.append (newAdventureTurtle())'. – Simon

Смежные вопросы