М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения



Pdf көрінісі
бет105/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   101   102   103   104   105   106   107   108   ...   334
Байланысты:
Изучаем Python

confirmed_users.py
# Начинаем с двух списков: пользователей для проверки
# и пустого списка для хранения проверенных пользователей.

unconfirmed_users = ['alice', 'brian', 'candace']
confirmed_users = []
# Проверяем каждого пользователя, пока остаются непроверенные
# пользователи. Каждый пользователь, прошедший проверку,
# перемещается в список проверенных.

while unconfirmed_users:

current_user = unconfirmed_users.pop()
print(f"Verifying user: {current_user.title()}")

confirmed_users.append(current_user)
# Вывод всех проверенных пользователей.
print("\nThe following users have been confirmed:")
for confirmed_user in confirmed_users:
print(confirmed_user.title())
Работа программы начинается с двух списков: непроверенных пользователей 

и пустого списка для проверенных пользователей. Цикл 
while
в точке 

выпол-
няется, пока в списке 
unconfirmed_users
остаются элементы. Внутри этого списка 
функция 
pop()
в точке 

извлекает очередного непроверенного пользователя 
из конца списка 
unconfirmed_users
. В данном примере список 
unconfirmed_users
завершается пользователем 
Candace
; это имя первым извлекается из списка, со-
храняется в 
current_user
и добавляется в список 
confirmed_users
в точке 

. Далее 
следуют пользователи 
Brian
и 
Alice
.


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
ходе цикла запрашивает имя участника и его ответ. Собранные данные будут со-
храняться в словаре, потому что каждый ответ должен быть связан с конкретным 
пользователем:


Достарыңызбен бөлісу:
1   ...   101   102   103   104   105   106   107   108   ...   334




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

    Басты бет