#python
#python
Вопрос:
Итак, в основном, когда пользователь вводит ‘n’, мне нужно, чтобы он останавливался и не просил вводить либо y, либо n, но, похоже, я не могу заставить это произойти, какая-нибудь помощь?
decider = input('Would you like to play the game? [y/n]? ')
while decider != 'y' :
if decider == 'n' :
print('Another time perhaps')
else :
print('Please enter either 'y' or 'n' ')
decider = input('Would you like to play the game? [y/n]? ')
Также я понимаю, что вы можете использовать exit или break, но в моем упражнении это ЗАПРЕЩЕНО
Комментарии:
1. Вместо того, чтобы задавать вопросы в конце цикла, вы пробовали задавать вопросы в начале ? Подумайте, что вам нужно было бы изменить в вашей программе, если бы вы это сделали.
2. @GreenCloakGuy Я попытался поместить это в начало внутри цикла while, но это делает то же самое : (
3. Пожалуйста, не вандализируйте свои собственные сообщения. Публикуя здесь, вы предоставляете SO право распространять контент в соответствии с CC-by SA 4.0. Любой вандализм будет отменен.
4. @greg-449 Просто хотел удалить, так как я получил свое решение и не хотел, чтобы люди продолжали помогать, понял! Спасибо.
5. Вопросы предназначены не только для задающего, но и для всех других людей, у которых может возникнуть подобная проблема. Поэтому вам не следует пытаться удалить только потому, что вы получили ответ.
Ответ №1:
Вам нужно спросить пользователя перед проверкой входных данных и перед тем, как цикл while снова проверит условие. Также вам нужно выполнять цикл до тех пор, пока входные данные НЕ БУДУТ равны ‘n’
decider = ''
while decider != 'n' and decide != 'y' :
decider = input('Would you like to play the game? [y/n]? ')
if decider == 'n' :
print('Another time perhaps')
break
elif decider == 'y':
print('Play again!')
* insert restart code here*
else :
print('Please enter either 'y' or 'n' ')
Комментарии:
1. Хм, похоже, это не помогает, программа не будет проходить, даже если это ‘y’
2.
decider = ' ' while decider != 'y' : decider = input('Would you like to play the game? [y/n]? ') if decider == 'n' : print('Another time perhaps') else : print('Please enter either 'y' or 'n' ')
Я попробовал это, что близко к работе, однако, когда я ставлю ‘n’, он все еще задает вопрос3. Вы пытаетесь выйти из цикла, когда пользователь нажимает «y» или, скорее, «n»?
4. Морей, это должно завершиться в n, и не спрашивать снова, когда дело дойдет до этого, и в ‘y’ это просто продолжилось бы до остальной части моей программы
5. Хорошо, смотрите мои изменения.
Ответ №2:
Попробуйте это:
run = True
while run:
decider = input(•••)
if decider == "n":
print(•••)
run = False
if decider == "y":
print(•••)
else:
print("Please write either y or n")
Комментарии:
1. К сожалению, мне не разрешено использовать ‘break’ для этого упражнения, есть какое-либо другое решение?
2. Хорошо, я отредактирую ответ, чтобы избежать использования
break
3. @Danyal Khan проверьте это сейчас, удовлетворительный ли ответ? Если это так, пожалуйста, отметьте это как принятое 😃
4. Нет, у него все еще та же проблема, в этом случае, когда пользователь вводит ‘y’, он будет проходить, когда пользователь вводит ‘n’, он должен остановиться, и когда пользователь вводит что-либо, отличное от y или n, он должен попросить их ввести либо из двух
5. @DanyalKhan Хорошо, проверь это сейчас
Ответ №3:
Вы можете решить эту проблему, добавив другую настройку в while и изменив ее, когда он вставит n. Я привел вам пример ниже.
import sys
decider = input('Would you like to play the game? [y/n]? ')
while decider != 'y':
if decider == 'n' :
print('Another time perhaps')
sys.exit()
else :
print('Please enter either 'y' or 'n' ')
decider = input('Would you like to play the game? [y/n]? ')
Ну, вы были правы, я отредактировал код, чтобы больше не отвечать на вопрос
Комментарии:
1. Привет, Андрес, кажется, это работает для ‘y’ и всего, что не является ‘n’, однако, когда ‘n’ вводится и отправляется в качестве ответа, он все еще задает вопрос и со второй попытки переходит ко второй части моей программы…
2. Андрес, это идеально, это работает в соло, но моя программа состоит из двух частей: цикла while, о котором мы говорим, а затем другого цикла while. Дело в том, что мне нужно, чтобы цикл не переходил ко второй части, если пользователь вводит ‘n’, любая помощь?
3. Хорошо, я, наконец, понимаю, чего вы хотите. теперь я обновил изменения. Теперь, если пользователь вставит n, программа завершится