Найти тему
Заметки Бегинера

Про цикл while и его понимание.

При первой попытке (попытках) понять природу использования цикла while, столкнулся со сложностями усваивания информации... возникали вопросы: "зачем?", "для чего?", "есть же цикл for, где и как применять while?"
Пробую проникнуться темой и впитать материал.

Пример использования цикла while из урока: когда у нас есть list и возникает необходимость удалить из листа элементы:

my_list = [0, 1, 2, 3, 4, 5]

while my_list:
element = my_list.pop()
print(f'element: {element}')
print(my_list)

Результат:

element: 5
element: 4
element: 3
element: 2
element: 1
element: 0
[]

Пояснение:

while my_list: -> буквально значит, что "пока в листе есть элементы, element = my_list.pop() -> pop отвечает за удаление элементов в списке" ... сложно объяснить это самому себе... однако вот подробное объяснение...:

1. Этот код использует цикл while для удаления и печати каждого элемента из конца списка my_list, пока список не станет пустым.

2. Метод pop() удаляет последний элемент списка.

3. Последний оператор печати выводит пустой список [], поскольку все элементы были удалены из my_list методом pop().

Наиподробнейшее(!) объяснение:

Данный код представляет собой скрипт, который использует цикл while и метод pop() для управления списком, а именно:

1. Инициализация: список my_list инициализируется целыми числами от 0 до 5.

my_list = [0, 1, 2, 3, 4, 5]

2. Цикл while: данный цикл продолжается до тех пор, пока my_list не пуст (в Python (в логическом контексте) пустой список считается «False» (булево значение)), а непустой список считается «True».

3. Метод Pop: внутри цикла while метод pop() вызывается для my_list. Данный метод удаляет последний элемент из списка и возвращает его. Возвращаемое значение сохраняется в переменной «element».

element = my_list.pop()

4. Печать оператора: затем печатается значение элемента f-string (форматированный строковый литерал) - это функция, которая позволяет вставлять выражения внутри строковых литералов, используя фигурные скобки {}. Выражения будут заменены их значениями при создании строки.

print (f'element: {element}')

5. Пустой список: после того, как все элементы были извлечены и напечатаны, my_list становится пустым. Условие цикла while теперь имеет значение False, поэтому цикл завершается (ура!).

6. Окончательная печать: последняя строка кода печатает теперь пустой(!) my_list.

print(my_list)

Результат:

[]

Таким образом, общий эффект кода состоит в том, чтобы напечатать каждый элемент исходного списка, начиная с конца, а затем напечатать пустой список (это ад...).

Еще пример использования цикла while:

while True:
answer = input('Enter a number: ')
if answer == 'quit':
break
print(f'You entered {answer}')

Результат:

Enter a number: 1
You entered 1
Enter a number: 2
You entered 2
Enter a number: 3
You entered 3
Enter a number: quit

Process finished with exit code 0

Пояснение:

1. Это скрипт, который постоянно просит пользователя ввести число.

2. Цикл продолжается бесконечно, пока пользователь не введет 'quit' ('выход'), после чего цикл прерывается и программа завершается.

3. Если пользователь вводит что-либо кроме 'quit', программа распечатает ввод с сообщением «You entered {answer}».

(!)Обратите внимание, что данный сценарий будет выполняться бесконечно, если его не остановить вручную или не ввести команду «quit».