#python #while-loop
#питон #цикл while
Вопрос:
Я читал «Автоматизируйте скучные вещи» и пытался изучить основы Python. Они приводят пример кода в книге, и я обычно немного расширяю его, чтобы лучше понять / обновить предыдущий материал. В этих примерах я столкнулся с концепцией, которую не совсем понимаю.
Независимо от того, для чего я ввожу name
, я не могу пройти мимо цикла и перейти к гостевой части программы. Я был бы очень признателен, если бы кто-нибудь объяснил эту команду и рассказал мне, как освободиться от части имени и перейти к части гостей.
name = "" #defines var, blank string boolean equiv = "False"
while not name: #Start loop and checks... something??
print('Enter your name:')
name = input() #Loop repeats no matter what I enter here..
print('How many guests will you have?')
numOfGuests = int(input())
if numOfGuests:
print('Be sure to have enough room for all your guests.')
print('Done')
Комментарии:
1. Что должен делать этот код?
2. Хм, мне это подходит. Когда я просто нажимаю
enter
, он возвращается кEnter your name:
, но если я ввожу символ, затем нажимаюenter
, он переходит к следующей части.3. Это работает так, как и ожидалось. Я ввожу имя, а затем после нажатия клавиши Enter появляется следующее приглашение
Ответ №1:
С кодом проблем нет. Это был результат для меня:
Enter your name:
How many guests will you have?
Be sure to have enough room for all your guests.
Done
Пустые строки в Python оцениваются как false, поэтому использование ‘not’ делает его true ; следовательно, вы попадаете в цикл, и пока вы ничего не ввели, вы все еще в цикле. После ввода чего-либо вы выходите из цикла.
Ответ №2:
используйте это
while True:
if name == "":
name = input("what is your name ? ")
else:
break