140
Глава 7 •
Ввод данных и циклы while
Программа моделирует проверку каждого пользователя выводом сообщения, после
чего переносит пользователя в список проверенных. По мере сокращения списка
непроверенных пользователей список проверенных пользователей растет. Когда
в списке непроверенных пользователей не остается ни одного элемента, цикл оста-
навливается и выводится список проверенных пользователей:
Verifying user: Candace
Verifying user:
Brian
Verifying user: Alice
The following users have been confirmed:
Candace
Brian
Alice
Удаление всех вхождений конкретного
значения из списка
В главе 3 функция
remove()
использовалась для удаления конкретного значения
из списка. Функция
remove()
работала, потому что интересующее нас значение
встречалось в списке только один раз. Но что, если вы захотите удалить все вхож-
дения значения из списка?
Допустим, имеется список
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
ваша программа может запрашивать любое
необходимое количество данных. Напишем программу, которая при каждом про-
Использование цикла while со списками и словарями
141
ходе цикла запрашивает имя участника и его ответ. Собранные данные будут со-
храняться в словаре, потому что каждый ответ должен быть связан с конкретным
пользователем:
Достарыңызбен бөлісу: