Книга «Изучаем Python»



Pdf көрінісі
бет82/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   78   79   80   81   82   83   84   85   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )


Глава 7 • Ввод данных и циклы while
встречалось в списке только один раз. Но что если вы захотите удалить все вхож-
дения значения из списка?
Допустим, имеется список 
pets
, в котором значение 
'cat'
встречается многократно. 
Чтобы удалить все экземпляры этого значения, можно выполнять цикл 
while
до 
тех пор, пока в списке не останется ни одного экземпляра 
'cat'
:
pets.py
pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
print(pets)
while 'cat' in pets:
pets.remove('cat')
print(pets)
Программа начинает со списка, содержащего множественные экземпляры 
'cat'

После вывода списка Python входит в цикл 
while
, потому что значение 
'cat'
при-
сутствует в списке хотя бы в одном экземпляре. После входа цикл Python удаляет 
первое вхождение 
'cat'
, возвращается к строке 
while
, а затем обнаруживает, что 
экземпляры 
'cat'
все еще присутствуют в списке, и проходит цикл заново. Вхож-
дения 
'cat'
удаляются до тех пор, пока не окажется, что в списке значений 
'cat'
не осталось; в этот момент Python завершает цикл и выводит список заново:
['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat'] 
['dog', 'dog', 'goldfish', 'rabbit']
Заполнение словаря данными, введенными пользователем
При каждом проходе цикла 
while
ваша программа может запрашивать любое 
необходимое количество данных. Напишем программу, которая при каждом про-
ходе цикла запрашивает имя участника и его ответ. Собранные данные будут со-
храняться в словаре, потому что каждый ответ должен быть связан с конкретным 
пользователем:
mountain_poll.py
responses = {}
# Установка флага продолжения опроса.
polling_active = True
while polling_active:
# Запрос имени и ответа пользователя.
 
name = input("\nWhat is your name? ")
response = input("Which mountain would you like to climb someday? ")
# Ответ сохраняется в словаре:
 
responses[name] = response
# Проверка продолжения опроса.


Использование цикла while со списками и словарями
133
 
repeat = input("Would you like to let another person respond? (yes/ no) ")
if repeat == 'no':
polling_active = False
# Опрос завершен, вывести результаты.
print("\n--- Poll Results ---")
 
for name, response in responses.items():
print(name + " would like to climb " + response + ".")
Сначала программа определяет пустой словарь (
responses
) и устанавливает флаг 
(
polling_active
), показывающий, что опрос продолжается. Пока 
polling_active
содержит 
True
, Python будет выполнять код в цикле 
while
.
В цикле пользователю предлагается ввести имя и название горы, на которую 
ему хотелось бы подняться 

. Эта информация сохраняется в словаре 
responses
в строке 

, после чего программа спрашивает у пользователя, нужно ли продол-
жать опрос 

. Если пользователь отвечает положительно, то программа снова 
входит в цикл 
while
. Если же ответ отрицателен, флаг 
polling_active
переходит 
в состояние 
False
, цикл 
while
перестает выполняться, и завершающий блок кода 

выводит результаты опроса.
Если вы запустите эту программу и введете пару ответов, результат будет выгля-
деть примерно так:
What is your name? 


Достарыңызбен бөлісу:
1   ...   78   79   80   81   82   83   84   85   ...   266




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет