Циклы for python: Интерактивный учебник языка Python

Содержание

Циклы в Python: что это, зачем нужны, виды

Иногда программу нужно заставить много раз повторить одно и то же действие. Для этого в языках программирования, в том числе в Python, существует специальный инструмент — цикл.

  • Что такое циклы в Python
  • Зачем нужны циклы в Python
  • Цикл for
  • Цикл while
  • Бесконечные циклы
  • Вложенные циклы
  • Примеры циклов в Python
  • Совет эксперта

Что такое циклы в Python

В Python циклы работают так же, как в большинстве других языков программирования. Программа повторяет определённое действие несколько раз. Действие задано в теле цикла, число повторений — в его условии. В условии может быть вполне конкретное число, например пять или десять. А может быть более сложная проверка — например, анализ переменной из тела цикла. Одно повторение тела цикла называется итерацией.

Схема цикла в упрощённом виде. После выполнения действий из тела всегда происходит возврат к условию и повторная проверка

У циклов в Python есть особенность. Внутри тела цикла можно использовать оператор else, который сработает, когда условие цикла перестанет выполняться. То есть цикл не просто завершится, а перед окончательным выходом совершит последнее действие. Например, в условии задано повторение цикла 25 раз, в теле — вывод чисел из условия последовательно, а в операторе else — слово «Хватит». Тогда цикл сначала выведет по очереди числа от 1 до 25, а потом «Хватит».

В большинстве других языков для этого пришлось бы использовать кроме цикла ещё и конструкцию if-else, то есть немного усложнять код. Python позволяет встроить условие else прямо внутрь цикла.

В циклах в языке Python можно использовать ещё два оператора:

break прерывает цикл, например, при выполнении конкретного условия. Его используют, если при каком-то значении переменной работу цикла нужно немедленно прекратить.

continue, наоборот, мгновенно заставляет программу перейти к началу цикла и начать следующую итерацию. Его используют, чтобы при определённых условиях пропустить часть действий из тела цикла и сразу начать новое повторение.

Материал по теме:

Серьёзный язык для backend: что такое Python и как стать Python-разработчиком

Зачем нужны циклы в Python

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

Функция range здесь позволяет сгенерировать последовательность от 1 до 15, а не перечислять все числа по очереди. А цикл, соответственно, поочередно выводит эти числа

Циклы помогают создавать более сложные инструкции:

● Повторение кода заранее неизвестное количество раз. Число повторений будет зависеть от переменной, которая изменяется в другой части кода.

● Изменение переменной из условия цикла. Она будет изменяться в теле цикла в зависимости от логики работы программы, увеличивать или уменьшать количество итераций или не давать циклу завершиться. Например:

count = 0

while count < 6:

print(count)

count += 2

Программа выведет «0, 2, 4», а потом прекратит работу, так как переменная count достигла 6. Переменная из условия изменяется в самом теле цикла, то есть тело влияет на количество повторений.

У использования разных циклов есть много нюансов и тонкостей: дополнительные операторы и логические выражения, несколько ступеней вложенности, использование других функций внутри цикла и многое другое. Изучить их все можно на курсе «Python-разработчик».

Попробуйте себя в роли Python-разработчика

Освойте новую профессию с нуля и заработайте 6 проектов в портфолио: сайты, API и телеграм-бот. Начните с бесплатной вводной части курса «Python-разработчик».

Цикл for

«For» с английского переводится как «для». Этот вид цикла используют, когда количество итераций зависит от того, сколько в условии задано элементов.

Его синтаксис выглядит так:

for [элемент] in [последовательность]:

[тело цикла]

Цикл for в Python повторит тело цикла столько раз, сколько в этой последовательности элементов. Например, вот так:

collection = [1,2,3,4,5,6,7,8,9,10]

n = 10

for i in collection:

l = n*i

print(l)

Этот код выведет результаты умножения заданного числа n на элементы из переменной collection по очереди: «10, 20, 30, 40, 50, 60, 70, 80, 90, 100».

Переменные collection и n можно задать вручную, а можно предложить пользователю ввести их с клавиатуры. Тогда цикл получится использовать для умножения и вывода любой вводимой последовательности данных.

Внутрь цикла for можно добавить оператор else, который описывали выше:

collection = [1,2,3,4,5,6,7,8,9,10]

n = 10

for i in collection:

l = n*i

print(l)

else:

print (‘Хватит умножать’)

В этом случае в конце итерации по элементам коллекции программа выведет на экран фразу «Хватит умножать», и только потом цикл завершится.

Внутри цикла for нельзя изменять итерируемый объект (переменная i) — это может привести к ошибкам. Его можно использовать для вывода или параметров в промежуточных вычислениях, но новые значения лучше не присваивать. Если нужно изменить переменную, возможно, понадобится другой цикл — while.

Цикл while

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

«While» можно перевести с английского как «до тех пор, пока». Этот оператор будет выполнять тело цикла до тех пор, пока выражение в его условии остаётся истинным. Чтобы условие действительно имело шанс стать ложным, в теле цикла нужно изменить переменную, которая может использоваться как счётчик итераций.

Например, рассмотрим такой код:

n = 1

while n < 6:

print(‘Цикл выполнился’, n, ‘раз(а)’)

n = n+1

Вне цикла переменной n задаётся первоначальное значение, равное 1. В условии цикла проверяется, переменная меньше шести или нет. Условие верно, поэтому на экран будет выведено «Цикл выполнился 1 раз(а)». Затем к n прибавляется 1, и всё повторяется. После того, как цикл повторится 5 раз, n будет равна 6, условие станет ложным и цикл завершится.

Бесконечные циклы

В Python цикл while может стать бесконечным. Это происходит, если его условие никогда не становится ложным, то есть момент выхода из цикла не наступит. Например, возьмём код цикла while с некоторыми изменениями:

n = 1

while n < 6:

print(‘Цикл выполнился’, n, ‘раз(а)’)

Прибавление к n числа 1 было удалено. В итоге n не будет изменяться и навсегда останется единицей, а цикл никогда не прервётся, и будет снова и снова выводить фразу «Цикл выполнился 1 раз(а)».

Чтобы этого не допустить, при использовании конструкций с циклами нужно проверять, что условие выхода из цикла будет выполнено. Иначе программа зависнет и придётся завершать её принудительно.

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

Вложенные циклы

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

При выходе из основного цикла вложенный уже не будет исполняться, однако при выходе из вложенного происходит возврат к основному

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

Примеры циклов в Python

Рассмотрим несколько примеров, как можно описать или реализовать цикл в Python.

Первый пример:

for i in range(10, 5, -2):
print(i)

Здесь используется вызов метода range с тремя параметрами. Третий параметр задаёт шаг итерации, то есть определяет, сколько элементов будет пропущено при перемещении от начала до конца диапазона. По умолчанию шаг равен 1 и его можно не указывать. В примере указано значение −2, то есть каждое повторение цикла будет смещать начальную позицию на 2 элемента назад. В итоге после выполнения программы в терминале будет последовательность «10, 8, 6».

Второй пример:

word_str = «Hello, world!»

for n in word_str:

print(n)

В цикле не обязательно работать с числами — можно использовать строку. Цикл пройдёт по всем элементам строки по очереди и выведет её по буквам в столбик, так как функция print выводит каждое значение с новой строки.

Третий пример:

n = 6

while n > 0:

n -= 1

print(n)

Этот классический цикл while будет выводить значение n, пока оно не достигнет нуля. Правда, цикл идет не от меньшего к большему, а наоборот, и используется оператор вычитания −=. Он равнозначен выражению n = n − 1. В итоге цикл выведет последовательность «6, 5, 4, 3, 2, 1».

Четвёртый пример:

iter = 6

while n > 0:

iter -= 1

if iter == 3:

continue

print(n)

print(‘Конец цикла’)

В цикле используется оператор continue. Без него цикл просто выведет последовательность чисел от 6 до 0. Наличие continue изменят поведение: когда переменная iter становится равна 3, цикл пропускает операцию вывода и переходит к началу. В итоге будет выведена последовательность «6, 5, 4, 2, 1, 0».

Совет эксперта

Николай Федосеев
Циклы — одна из базовых конструкций любого языка программирования. Ни один алгоритм или программа не обходятся без использования циклов для выполнения однотипных конструкций языка или блоков кода. Программисту важно понимать, как работают циклы, в какой области применяются, какие у них есть особенности и ограничения. Только так он сможет писать эффективный код и решать продуктовые задачи.

Статью подготовили:

Поделиться

Читать также:

Как установить Python и начать на нём писать

Читать статью

Книги по Python: что почитать начинающим и опытным разработчикам

Читать статью

Учитесь на майских и получайте скидку 7%.

Пройдите первый бесплатный урок с 1 по 14 мая и получите промокод на скидку.

Циклы For — Учебник Python — Schoolsw3.com


❮ Назад Далее ❯


Python цикл For

Цикл for используется для перебора последовательности (то есть списка, кортежа, словаря, набора или строки).

Это меньше похоже на ключевое слово for в других языках программирования и работает больше как метод итератора, который можно найти в других объектно-ориентированных языках программирования.

С помощью цикла for мы можем выполнить набор операторов, один раз для каждого элемента в списке, кортеже, наборе и т. д.

Пример

Распечатайте каждый фрукт в списке фруктов:

fruits = [«яблоко», «банан», «вишня»]
for x in fruits:
  print(x)

Попробуйте сами»

Цикл for не требует предварительной установки индексирующей переменной.


Зацикливание строк

Даже строки являются итерируемыми объектами, они содержат последовательность символов:

Пример

Перебери буквы в слове «банан»:

for x in «банан»:
  print(x)

Попробуйте сами»


Оператор break

С помощью оператора break мы можем остановить цикл до того, как он просмотрит все элементы:

Пример

Выйти из цикла когда x станет «банан»:

fruits = [«яблоко», «банан», «вишня»]
for x in fruits:
  print(x)
  if x == «банан»:
    break

Попробуйте сами»

Пример

Выйти из цикла когда x станет «банан», но на этот раз разрыв наступает перед print

fruits = [«яблоко», «банан», «вишня»]
for x in fruits:
  if x == «банан»:
    break
  print(x)

Попробуйте сами»



Оператор continue

С помощью оператора continue мы можем остановить текущую итерацию цикла и продолжить следующую:

Пример

Не печатать банан:

fruits = [«яблоко», «банан», «вишня»]
for x in fruits:
  if x == «банан»:
    continue
  print(x)

Попробуйте сами»


Функция range()

Чтобы перебрать набор кода заданное количество раз, мы можем использовать функцию range().

Функция range() возвращает последовательность чисел, начиная с 0 по умолчанию, увеличиваясь на 1 (по умолчанию) и заканчивая указанным числом.

Пример

Используйте функцию range():

for x in range(6):
  print(x)

Попробуйте сами»

Обратите винмание что range(6) это не значения от 0 до 6, а значения от 0 до 5.

Функция range() по умолчанию равна 0 в качестве начального значения, однако можно указать начальное значение, добавив параметр: range(2, 6), что означает значения от 2 до 6 (но не включая 6):

Пример

Используя начальный параметр:

for x in range(2, 6):
  print(x)

Попробуйте сами»

Функция range() по умолчанию увеличивает последовательность на 1, однако можно указать значение величины шага, добавив третий параметр: range(2, 30, 3):

Пример

Увеличьте последовательность на 3 (по умолчанию 1)

for x in range(2, 30, 3):
  print(x)

Попробуйте сами»


Else в Цикле For

Ключевое слово else в цикле for определяет блок кода, который будет выполнен после завершения цикла:

Пример

Выведите все числа от 0 до 5 и выведите сообщение, когда цикл завершится:

for x in range(6):
  print(x)
else:
  print(«Наконец-то закончили!»)

Попробуйте сами»

Примечание: Блок else НЕ будет выполняться, если цикл остановлен оператором break.

Пример

Разорвите цикл когда x равно 3, и посмотрите что произойдет с блоком else:

for x in range(6):
  if x == 3: break
  print(x)
else:
  print(«Наконец-то закончили!»)

Попробуйте сами»


Вложенные Циклы

Вложенный цикл — это цикл внутри цикла.

«Внутренний цикл» будет выполняться один раз для каждой итерации «внешнего цикла»:

Пример

Выведите каждое прилагательное для каждого фрукта:

adj = [«красный», «большой», «вкусный»]
fruits = [«яблоко», «банан», «вишня»]

for x in adj:
  for y in fruits:
    print(x, y)

Попробуйте сами»


Заявление о пропуске

Цикл for не может быть пустым, но если по какой-то причине у вас есть цикл for без содержимого, добавьте оператор pass чтобы избежать ошибки.

Пример

for x in [0, 1, 2]:
  pass

Попробуйте сами»


Проверьте себя с помощью упражнений

Упражнение:

Перебрать элементы в списке fruits.


fruits = ["яблоко", 
"банан", "вишня"] x fruits print(x)

❮ Назад Далее ❯

6 советов, как лучше писать циклы For на Python

6 советов, как лучше писать циклы For на Python

Патрик Лобер · · · · · 28 ноября 2022 г. · 10 мин чтения 9000 5


В В этом уроке мы рассмотрим 6 советов, как лучше писать циклы For на Python. Эти советы включают в себя простые методы рефакторинга, которые вы можете сразу применить в своем коде.

1) Не использовать петли вообще

Если возможно, старайтесь избегать циклов и вместо этого используйте встроенные методы.

Типичным примером является использование встроенного метода sum() вместо ручного цикла:

 чисел = [10, 20, 33, 40, 50, 60, 70, 80]
результат = 0
для числа в цифрах:
    результат += число
печать (результат) # 363
# --> Рефакторинг
результат = сумма (числа)
печать (результат) # 363
 

2) Используйте enumerate

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

 data = ["a", "b", "c"]
для i в диапазоне (len (данные)):
    печать (я, данные [я])
# --> Рефакторинг
для idx, val в перечислении (данные):
    печать (idx, значение)
# 0 а
№ 1 б
№ 2 с
 

Требуется необязательный параметр start , который начинает подсчет индекса с этого значения.

 для idx, значение в перечислении (данные, начало = 1):
    печать (idx, значение)
№ 1 а
№ 2 б
№ 3 с
 

3) Используйте zip

При переборе нескольких списков используйте почтовый индекс . Он возвращает итератор кортежей и останавливается, когда исчерпана самая короткая итерация ввода:

 a = [1, 2, 3]
б = ["а", "б", "в"]
для i в диапазоне (len (a)):
    напечатать (а [я], б [я])
# --> Рефакторинг
для val1, val2 в zip(a, b):
    печать (значение1, значение2)
№ 1 а
№ 2 б
№ 3 с
 

Начиная с Python 3.10, вы можете установить параметр strict=True , чтобы вызывать ошибки, если одна из итераций короче другой. Это может быть полезно для выявления ошибок в вашей программе.

 а = [1, 2, 3]
б = ["а", "б", "в", "г"]
для val1, val2 в zip(a, b, strict=True):
    печать (значение1, значение2)
# ValueError: аргумент 2 zip() длиннее аргумента 1
 

4) Думай лень!

Попробуйте думать лениво и реорганизуйте свой код с помощью генераторов.

Я нашел этот замечательный совет в этом выступлении по Python: более глубокий взгляд на итерацию в Python

Здесь мы используем генераторное выражение, которое затем можно присвоить переменной, что помогает сделать код более читабельным. Когда объект-генератор затем используется с sum() , мы получаем тот же результат. Только в этот момент выполняются расчеты.

 событий = [("учиться", 5), ("учиться", 10), ("расслабляться", 20)]
минуты_исследования = 0
для события в событиях:
    если событие[0] == "узнать":
        минуты_исследования += событие[1]
печать (минуты_исследования) # 15
# --> Рефакторинг
Study_times = (event[1] для события в событиях if event[0] == "learn")
минуты_обучения = сумма (учебное_время)
печать (минуты_исследования) # 15
 

5) Больше используйте itertools!

Модуль itertools предоставляет функции, создающие итераторы для эффективного цикла. Давайте рассмотрим три из этих функций:

  • islice()
  • попарно()
  • takewhile()

itertools.islice() 9 0023

Создает итератор, который возвращает выбранные элементы из итерируемого объекта.

 строк = ["строка1", "строка2", "строка3", "строка4", "строка5",
         "строка6", "строка7", "строка8", "строка9", "строка10"]
для i, строка в перечислении (строки):
    если я >= 5:
        перерыв
    печать (строка)
# --> Рефакторинг
из itertools импортировать islice
first_five_lines = islice (линии, 5)
для строки в first_five_lines:
    печать (строка)
# линия 1
# строка2
# строка3
# строка4
# строка5
 

pairwise()

Возвращает последовательные перекрывающиеся пары, взятые из входного итерируемого объекта.

 данные = 'ABCDE'
для я в диапазоне (len (данные)-1):
    печать (данные [я], данные [я + 1])
# --> Рефакторинг
из itertools импортировать попарно
для пары попарно('ABCDE'):
    печать (пара [0], пара [1])
# А Б
# ДО Н.Э
# CD
# Д Э
 

takewhile()

Создает итератор, который возвращает элементы из итерируемого объекта, если предикат истинен.

 для позиции в [1, 2, 4, -1, 4, 1]:
    если элемент >= 0:
        печать (элемент)
    еще:
        перерыв
# --> Рефакторинг
из itertools импортировать takewhile
items = takewhile(лямбда x: x >= 0, [1, 2, 4, -1, 4, 1])
для пункта в пунктах:
    печать (элемент)
№ 1
№ 2
№ 4
 

6) Используйте NumPy

Если скорость очень важна, вы можете использовать NumPy. Он предоставляет множество функций, соответствующих встроенным функциям, таким как np.sum() , np.arange() и т. д.

Функции NumPy обычно намного быстрее. Однако имейте в виду, что с такими функциями, как np. arange() , весь массив выделяется в памяти и, таким образом, в результате занимает больше места, в то время как функция Python range() не требует выделения всего массива.

 импортировать numpy как np
сумма (диапазон (10))
# --> Рефакторинг
np.sum (np.arange (10))
 

БЕСПЛАТНЫЙ справочник по NumPy

Вы можете получить мой БЕСПЛАТНЫЙ справочник по NumPy, подписавшись на мою рассылку.

Дополнительные ресурсы:

  • Обсуждение: более глубокий взгляд на итерацию в Python


Работа с циклами в Python определенный блок кода несколько раз, вместо того, чтобы писать его повторно самостоятельно. Это одно из больших преимуществ программирования.

В примере, который мы приведем, мы будем использовать список, поэтому, если вы не уверены, что это такое, ознакомьтесь с ними в этом руководстве.

Итерация — это фундаментальный строительный блок всех программ. Это возможность многократно выполнять определенный код. В этом руководстве мы сосредоточимся на нескольких примерах итерационных процессов в Python.

Python For Loop: объяснение и примеры

Для начала мы подготовили список под названием даже . Он содержит все четные числа от 0 до 20.

Представьте, что мы хотим распечатать эти числа. Итак, пишем следующее

 для n в четных:
    печать(н) 

, что будет означать для каждого элемента n в списке даже , выведите n. В этом случае n называется переменной цикла . Мы не обязаны называть это n ; любое другое имя будет работать нормально.

Тело цикла for в Python

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

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

Какой процесс стоит за циклами for?

Цикл начинается с выбора элемента n из нашего списка. Затем компьютер выполняет тело цикла. В нашем случае он просто напечатает эту переменную.

Когда компьютер завершит эту операцию, называемую итерацией (или проходом ) цикла, Python вернется к оператору for и выберет следующий элемент n , который находится в списке даже .

Затем он распечатает его и так далее, пока тело цикла не будет выполнено для всех доступных элементов в списке.

Итак, давайте посмотрим, что выводит этот код:

Как и ожидалось, все числа из списка выводятся в столбец.

Как печатать элементы в одной строке?

Что, если мы хотим, чтобы они располагались в одной строке? Запятая после элемента n в команде «напечатать n » добьется этого. Запятая будет указывать, что каждый следующий элемент из цикла должен быть помещен в ту же строку.

Как создавать циклы с помощью range()?

Еще один пример великолепия циклов в Python — это то, как легко мы можем вывести все степени числа 2. Чтобы вывести все значения от 2 0 до 2 9 , мы можем использовать следующий код:

 для n в диапазоне (10):
    печать (2 ** п) 

 

Согласитесь, что не нужно было указывать имя списка, который существует в нашем коде — используя список, созданный через 9Функция 0144 range() тоже будет работать!

Примечание. Диапазон (x) создает список всех целых чисел от 0 до X-1. Например, range(10), как в примере, создаст список [0,1,2,3,4,5,6,7,8,9]. Функция диапазона в основном используется для перебора циклов.

Python While Loop: объяснение и пример

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

Однако структура немного отличается.

Изначально зададим переменную x = 0. И будем говорить: пока это значение меньше или равно 20, напечатать x .

 х = 0
пока х<=20:
    напечатать(х) 

Важно: Если вы оставите код таким, вы столкнетесь с бесконечным циклом, и ваш компьютер выйдет из строя!

Будьте очень осторожны; так как x будет всегда будет меньше 20, ваш цикл будет бесконечным. Он будет многократно повторять одну и ту же переменную . Это то, что мы сделали здесь с x = 0,

.

Тело цикла While    

И «всегда» — это не то, что нам нужно в итерации. Мы хотим, чтобы цикл закончился. Мы можем добиться этого, добавив строку кода, определяющую изменение в x или что должно произойти с x после его печати. В нашем случае мы скажем компьютеру привязать x к значению, равному x + 2.

.

Что такое увеличение?

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

Количество, которое постепенно добавляется, называется приращение . В нашем случае у нас есть приращение 2.

Другой способ увеличения

Более того, синтаксис Pythonic (аналогичный другим языкам программирования) предлагает особый способ указания увеличения. « x += 2» показывает, что мы увеличиваем значение 2 поверх основания x , как если бы мы набрали « x = x + 2». Как вы можете видеть на картинке ниже, два результата одинаковы.

Условные операторы Python и циклы

Теперь давайте наберемся смелости и создадим итерацию, включающую условное выражение в тело цикла. Мы можем сказать компьютеру напечатать все четные значения от 0 до 19 и указать «нечетные» в тех местах, где у нас есть нечетные числа.

 для x в диапазоне (20):
    если х% 2 == 0:
        печать (х)
    еще:
        печать('Нечетный') 

Давайте посмотрим, как это работает на самом деле.

1 - Если x оставляет в остатке 0 при делении на 2, что равносильно утверждению «если x четно», выведите x в той же строке.

2 - «Другое», что означает, что если x четное, или если x нечетное, выведите «Odd».

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

Другой способ программирования циклов в Python

Существует два основных способа программирования цикла, и мы рассмотрели второй только один раз. Давайте рассмотрим это еще раз.

У нас есть список x, содержащий числа 0, 1 и 2. [

 х = [0, 1, 2] 

Мы видели, что можем распечатать каждый из его элементов, набрав

.
 для элемента в x:
    печать (элемент) 

Второй способ находит свое практическое применение в более сложных кодах. Его структура использует преимущества range() и len() работает следующим образом:

 для элемента в диапазоне (len(x)):
    печать (х [элемент]) 

Если мы сделаем это, переменная item будет проходить по новому списку, созданному с помощью range(), и содержащему столько же элементов, сколько сам список x .

len() — это функция, которая возвращает длину заданного объекта. X — это список из 3 элементов, поэтому len(x) = 3.

Range() — это функция с тремя аргументами: диапазон ([старт], стоп, [шаг]), где обязательным является только аргумент конечной точки. Из вышеизложенного мы знаем, что:

Диапазон(3) = [0,1,2]

Диапазон(10) = [0,1,2,3,4,5,6,7,8,9]

Если мы хотим включить начальную точку, мы можем это сделать.

Range(5,10) = [5,6,7,8,9] Обратите внимание, что начальная точка включена, а конечная нет.

Дополнительно мы можем включить шаг. Например,

Диапазон(5,10,2) = [5,7,9]

Мы начинаем с 5, заканчиваем на 10 (или 10-1 = 9, так как конечная точка не включена), и шаг равен 2.

Когда использовать второй подход?

Честно говоря, оба подхода могут привести к одному и тому же результату. Хотя второй вариант выглядит излишне сложным, он может оказаться гораздо более полезным в продвинутом кодировании. Поэтому важно знать и то, и другое.

Циклы, вложенные в функции

Мы иногда используем циклы в Python, когда нам нужно пройти через переменные, которые являются частью списка.

Теперь давайте узнаем, как подсчитать количество элементов, значение которых меньше 20 в списке.

Во-первых, мы можем определить функцию, которая принимает чисел в качестве аргумента, где чисел будет некой переменной списка . Фокус в том, чтобы создать переменную, которая, так сказать, «отходит» от 0. Назовем ее всего .

Идея состоит в том, что при проверке определенных условий total изменит свое значение. Вот почему в такой ситуации уместно назвать эту переменную скользящей суммой .

С технической точки зрения, когда мы рассматриваем x в списке чисел , если оно меньше 20, мы увеличиваем общее число на 1 и, наконец, возвращаем общее значение . Это означает, что:

  1. , если x < 20
    • всего вырастет на 1
  2. и если х >= 20
    • итого расти не будет.

Итак, для заданного списка эта функция count() вернет количество чисел меньше 20.

 отсчет(числа):
    всего = 0
    для х в цифрах:
        если х<20:
            всего += 1
    верни всего 

Давайте подтвердим, что эта функция работает правильно. Мы можем создать список, содержащий 4 числа меньше 20.

Как вы можете видеть на картинке ниже, он работает правильно.

Отлично! Теперь, если мы добавим, например, 17 где-нибудь в списке, результат изменится соответствующим образом.

Примечание: Посмотрите, как весь оператор if смещен еще больше вправо. Это позволяет нам логически отделить его от остального кода в ячейке, которая ссылается на эту функцию Python.

Как перебирать словарь в Python

Поскольку использование циклов в Python при работе со словарями — непростая задача, приведем пример. Мы можем создать 2 словаря. Цены на коробку спагетти, порцию лазаньи и гамбургер хранятся в словаре под названием цены .

Ян пошел в супермаркет и купил 6 коробок спагетти, 10 порций лазаньи и никаких гамбургеров. Эти данные хранились в словаре под названием 9.0009 количество .

Наша проблема: сколько Ян потратил в супермаркете? Что ж, очевидно, нам нужно умножить количество каждого продукта на его цену.

Почему проще использовать цикл?

Вы, должно быть, заметили, что наши словари имеют абсолютно одинаковые ключи. Это одна из сильных сторон в нашем случае, и мы должны это использовать. Процедура:

  1. Перейти к коробке спагетти в первом словаре
  2. Принять значение 4
  3. Получить значение 6 из словаря количества
  4. Умножьте эти два.

Эта операция должна быть повторена для каждого пищевого продукта. Именно поэтому проще использовать петлю .

Прежде всего, некоторая переменная должна учитывать количество потраченных денег. Давайте реализуем известный трюк. Мы можем создать скользящую сумму, называемую money_spent , который первоначально примет значение 0.

Итак, мы можем начать с перебора каждого элемента в ценах, и в ценах для краткости.

 money_spent = 0
для i в ценах: 

Тело петли

На каждом шаге цикла мы хотели бы, чтобы переменная money_spent росла на произведение цены и количества определенного товара i . Мы можем добиться этого, написав следующий код:

 для i в ценах:
     деньги_потрачены = деньги_потрачены + (цены[i] * количество[i]) 

Распечатаем результат, чтобы проверить, правильно ли мы работаем.

Такая простая задача с точки зрения математики, требующая подключения знаний по словарям, итерации и создания переменной с приращением.

Итак, с точки зрения программиста проблема выглядит иначе. Хорошо, что, в конце концов, все это свелось всего к четырем строчкам кода!

Примечание: Если мы поместим количество вместо цены в начале цикла, результат останется прежним.

 цены = {
    «box_of_spaghetti»: 4,
    «лазанья» : 5,
    «гамбургер» : 2
    }
 
количество = {
    «box_of_spaghetti»: 6,
    «лазанья» : 10,
    «гамбургер» : 0
    }
 
деньги_проведенные = 0
 
для я в количестве:
    деньги_потрачены = деньги_потрачены + (цены[i]*количество[i])
 
распечатать money_spent 

Не имеет значения, перебираете ли вы цены или перебираете количество , потому что два словаря содержат одни и те же ключи . И по этой причине этот цикл тоже работает правильно.

Зачем нужны циклы в Python?

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

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *