2016-07-13 2 views
-1

Вот мой код:Python While-цикл не работает должным образом

def pressC(): 
    """ Wait for "c" to be entered from the keyboard in the Python shell """ 
    entry = " " 
    while(entry != "c"): 
     entry = raw_input("Press c to continue. ") 
    print("Thank you. ") 
    print 

def unstuck(): 
    """ This gets the robot unstuck if it becomes stalled by hitting a wall """ 
    stalls = 0 
    while timeRemaining(120): 
     stallStatus = getStall() 
     if(stallStatus == 1): 
      backward(1,1) 
      turnRight(1,1.7145) 
      stalls = stalls + 1 
      return stalls 
     else: 
      forward(1,1) 
    stop() 

def printResults(stalls): 
    """ This function prints the amount of times the robot stalled """ 
    print 
    print ("The amount of stalls that occured: " + str(stalls) + ". ") 

def main(): 
    pressC() 
    numStalls = unstuck() 
    printResults(numStalls) 

main()  

Итак, я бег кода на Myro тренажере и определенный пользователь отключился() функция работает только один раз, а затем отпечатки робот только застопорился один раз. Первый цикл while работает правильно, а второй - нет. В любом случае, я хочу, чтобы он работал в течение 120 секунд, которые я вводил. Мне нужна помощь!

+5

'while' не является функцией, и я с радостью поспорю, что он работает отлично. – jonrsharpe

+5

Пожалуйста, убедитесь, что вы скопировали свой отступ правильно при отправке кода Python. Плохой с отступом код Python - это нонсенс. – khelwood

+0

Извините, но это не так. Я считаю, что это имеет какое-то отношение к напечатанным результатам. Я удалил эту часть, и цикл while работает правильно, поэтому я считаю, что это имеет какое-то отношение к моей кодировке в этой области. –

ответ

1

У вас есть свое заявление return не в том месте. Попробуйте следующее:

# This gets the robot unstuck if it is stalled 
def unstuck(): 
    """ This gets the robot unstuck if it becomes stalled by hitting a wall """ 
    stalls = 0 
    while timeRemaining(120): 
     stallStatus = getStall() 
     if(stallStatus == 1): 
      backward(1,1) 
      turnRight(1,1.7145) 
      stalls = stalls + 1 
     else: 
      forward(1,1) 
    stop() 
    return stalls 
+0

Спасибо! Все правильно работает с вашим редактированием! –

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