Автор оригинала: Robin Andrews.
В этом уроке мы собираемся научиться преобразовать между кодом Python и блок-схемы циклов при проектировании алгоритмов.
Рассмотрим следующий код. Как и в случае большинства примеров кода в этих уроках, вы узнаете намного больше, если вы на самом деле введите (не копируйте/вставить) и запустите код в реальной системе, будь то использование фактической установки Python на вашем компьютере или переводчик на основе браузера Python Отказ
count = 1 print(count) count = count + 1 print(count) count = count + 1 print(count) count = count + 1 print(count) count = count + 1 print(count)
Он печатает номера от 1 к 5 , повторно изменяя значение переменной Считать и выводит результат.
Соответствующее представление блок-схемы будет
Теперь компьютеры очень хороши в повторении, и, безусловно, есть некоторое повторение в вышеуказанном коде и блок-схеме.
Сухой является важным принципом программирования, которому вы должны придерживаться, если нет никаких веских причин не – “Не повторяйся” Отказ
Итак, языки программирования имеют петли Чтобы помочь избежать ненужного повторения. Вы можете знать, что в Python есть два основных типа петли в Python – в то время как петли и для петли. То, что вы не можете быть в курсе, это как то, насколько похожи эти два типа цикла «под капотом». В основном а для Цикл – синтаксический сахар для цикла, что означает полезный сокращение для кода, который делает то же самое.
Представление петлей в программе с использованием блок-схемы
Вот блок-схема последовательности операций, показывающая, как выше, может быть реализован над циклом. Чтобы отслеживать повторений, введена переменная под названием Считать Отказ Это может в принципе быть называться что-нибудь. Некоторые распространенные имена являются Я , х , N , IDX , счетчик И т. Д. Одним из ключевых вещь, чтобы заметить, так это то, как состояние внутри Решение Символ (ромб) представлен отличается от того, как он обычно представлен в языках программирования. У нас есть считать ? , что вполне логично, но выглядит отличается от того, как он будет заботиться о Если или в то время как ключевое слово. Вы увидите это в ближайшее время.
Реализация петель в Python
Ниже приведены некоторые реализации Python того же алгоритма в Python. Все они эквивалентны, которые иллюстрируют тот факт, что обычно есть несколько способов реализации алгоритма, представленного в форме блок-схемы.
Эта первая реализация является наиболее близкой к блок-схеме с точки зрения прямой концептуальной картирования.
count = 1
while True:
print(count)
if count >= 5:
break
else:
count = count + 1
continue
Использует Пока правда создать бесконечный цикл, который разбивается только при условии, когда состояние в Если Заявление встречается. Если вы думаете о том, как работает блок-схема, надеюсь, эквивалентность будет очевидно.
Некоторые люди утверждают, что Пока правда петли никогда не должны использоваться в программировании. Это суеверия, основанное на недоразумении. Они возможны на языке по причине, и часто предоставляют наиболее прямое сопоставление концепциям в компьютерных науках.
Если по какой-то причине вы чувствуете, что вам нужно избегать использования Пока правда Цикл, альтернативная версия:
count = 1
while count <= 5:
print(count)
count = count + 1
Это функционально эквивалентно предыдущей версии, но обратите внимание, что он не обеспечивает прямое концептуальное отображение, и условие выхода необходимо перевернуть по сравнению с блок-схемой.
Далее есть для Контурная версия, которая, вероятно, является наиболее удобным способом реализации алгоритма от точки зрения программатора. Соединение к блок-схеме сложнее распознавать здесь, хотя, пока у вас не будет некоторый опыт с такими видами переводов.
for count in range(1, 6): print(count)
Обратите внимание, что Python Диапазон Функция останавливает один короткий из второго аргументов, поэтому вышеуказанный код назначает значения из 1 к 5 к Считать Отказ
Наконец-то для любого из вас, у кого есть несчастье, которые следует ожидать, что будет работать с чем-то, называемым «псевдокодом», а не прекрасным чистым языком, таким как Python, который предоставляет все преимущества, которые «псевдокод» должен предоставлять ни одному из основных нисходящих (вы можете Ознакомьтесь с враждебностью к псевдокоду, и вы правы. То есть для другой статьи):
for count = 1 to 5
print count
next count
or
FOR count = 1 to 5
OUTPUT count
END FOR
or
FOR count = 1 TO 5
OUTPUT COUNT
NEXT count
etc.
Совершенно как это улучшение на Python или любого другого реального языка ускользает от меня, но я включаю их ради полноты. Любой, кто научился комировать в возрасте в возрасте, когда домашние компьютеры впервые стали популярными, признают, что это в основном (!) Просто различные версии реализации на базовом языке программирования, которые давно заменяются более элегантными и мощными современными языками.
В этой статье мы видели, как конвертировать между программными операторами в Python, а также представлениях потока в алгоритмах, требующих повторения. Я надеюсь, что вы нашли это полезным
Счастливые вычисления!