В предыдущем посте мы в общих чертах обсуждали идею циклов for и while, когда их использовать, и, по сути, коснулись поверхности того, чего мы можем достичь с помощью отдельных типов циклов.

В сегодняшнем руководстве я буду говорить о циклах while, о том, что они собой представляют, когда использовать циклы while, и, наконец, я буду решать проблему алгоритма, которая требует от нас использования цикла while. Без лишних слов, давайте перейдем к делу

Что такое циклы while? Просто чтобы освежить нашу память, в то время как циклы многократно выполняют оператор, пока заданное выражение является истинным. Оператор может быть отдельной строкой кода или целым блоком кода. Условие может быть выражением. Цикл повторяется, пока выполняется условие. Когда вы можете использовать цикл while? циклы while используются, когда мы хотим повторить определенный блок кода неизвестное количество раз.

Теперь, когда у нас есть базовое представление о том, что делает цикл while и когда его использовать, давайте перейдем к набору задач.

Набор задач: Факториал любого числа n представлен n! и равно 1 * 2 * 3 *…. * (n-1) * n. Пример:

4! = 1*2*3*4 = 24
3! = 3*2*1 = 6
2! = 2*1 = 2

Также:

1! = 1
0! = 1.

Напишите программу для вычисления факториала числа.

Решение:

Мы собираемся присвоить пользовательский ввод переменной под названием «число». Функция input () по умолчанию сохраняет ввод пользователя в виде строки, поэтому нам нужно преобразовать ввод в целое число и сохранить его в переменной:

Мы устанавливаем нашу «факториальную» переменную равной 1, и я объясню это позже в блоке кода. Теперь нам нужно проверить ввод данных пользователем по условиям, определенным в вопросе. Перечитывая вопрос, замечаем 0! по-прежнему равно единице, поэтому мы можем написать условное выражение if / else, чтобы всегда выводить 1, если пользователь вводит 0 в качестве значения:

Мы напишем цикл while внутри оператора else. Причина, по которой мы используем здесь цикл while, заключается в том, что мы не знаем, какое число введет пользователь, поэтому мы хотим повторить конкретный блок кода неизвестное количество раз. Для этой проблемы мы повторяем определенный код до тех пор, пока ввод пользователя меньше 1, потому что 1! равно 1 * 1 по-прежнему равно 1. Мы устанавливаем нашу «факториальную» переменную равной факториалу, умноженному на число, введенное пользователем, и вычитаем 1 из числа и продолжаем повторять это пока число больше или равно 1:

Вне цикла while мы хотим, чтобы наш сценарий / программа выводила окончательный «факториал», только если число меньше 1.

Результат. Наша окончательная программа должна выглядеть примерно так, как показано на рисунке ниже. Не забывайте всегда комментировать свой код.

Цель этого блога - научить и объяснять вопросы алгоритма Python как новым, так и опытным разработчикам программного обеспечения Python.

Привет! Я новичок в программировании, и моя цель - убедиться, что мои читатели понимают различные алгоритмы / проблемы Python, которые я решаю. Не стесняйтесь проверить мой Instagram @ newbieprogrammer и не забудьте подписаться на меня там. Вы также можете проверить весь исходный код на моем GitHub @newbieprogrammer.

Больше контента на plainenglish.io