Выйдите из цикла пока пользователь нажимает клавишу ВВОД - PullRequest
9 голосов
/ 31 августа 2011

Я новичок в питоне, и меня попросили выполнить некоторые упражнения, используя циклы while и for.Меня попросили сделать программный цикл до тех пор, пока пользователь не нажмет кнопку выхода только по команде <Return>Пока у меня есть:

User = raw_input('Enter <Carriage return> only to exit: ')
running = 1
while running == 1:
    Run my program
if User == # Not sure what to put here
    Break
else
    running == 1

Я пытался: (как указано в упражнении)

if User == <Carriage return>

, а также

if User == <Return>

, но это только приводит кневерный синтаксис.Пожалуйста, не могли бы вы посоветовать мне, как сделать это самым простым способом?Спасибо

Ответы [ 14 ]

0 голосов
/ 27 сентября 2012

Вот решение (напоминающее оригинал), которое работает:

User = raw_input('Enter <Carriage return> only to exit: ')
while True:
    #Run my program
    print 'In the loop, User=%r' % (User, )

    # Check if the user asked to terminate the loop.
    if User == '':
        break

    # Give the user another chance to exit.
    User = raw_input('Enter <Carriage return> only to exit: ')

Обратите внимание, что код в исходном вопросе имеет несколько проблем:

  1. if / else находится вне цикла while, поэтому цикл будет выполняться вечно.
  2. В else отсутствует двоеточие.
  3. В предложении else вместо числа равно число с двойным равенством.Это не выполняет присваивание, это бесполезное выражение сравнения.
  4. Ему не нужна рабочая переменная, поскольку предложение if выполняет break.
0 голосов
/ 31 августа 2011
if repr(User) == repr(''):
    break
0 голосов
/ 31 августа 2011

Если вы хотите, чтобы ваш пользователь нажал ввод, то raw_input () вернет "", поэтому сравните пользователя с "":

User = raw_input('Press enter to exit...')
running = 1
while running == 1:
    Run your program
if User == "":
    break
else
    running == 1
0 голосов
/ 31 августа 2011

Вам нужно выяснить, как будет выглядеть переменная User, когда вы просто нажимаете Enter.Я не дам вам полный ответ, но совет: уволите переводчика и попробуйте.Это не так сложно;) Обратите внимание, что sep для печати по умолчанию '\ n' (слишком много: o)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...