Цикл for в Python
Цикл в любом языке программирования — это многократное выполнение одного и то же действия. Цикл for проходится по данной последовательности элементов. Он состоит из двух компонент: переменной (переменных) цикла и итерируемой (перебираемой) последовательности. Приведу пример:
for i in ‘one’ , ‘two’ , ‘three’ :
print (i)
# one
# two
# three
Приведу еще несколько примеров:
for i in ‘1’ , ‘hello’ , 2 , 1990 , True, False:
print (i)
for j in ‘orange’ , ‘red’ , ‘purple’ :
print (j)
for k in ‘first’ , ‘last’ :
print (k)
Функция range()
Теперь пришло время познакомиться с встроенной в Python функцией range(). «range» переводится как «диапазон». Она может принимать один, два или три аргумента. Если задан только один, то генерируются числа от 0 до указанного числа, не включая его. Если заданы два, то числа генерируются от первого до второго, не включая его. Если заданы три, то третье число – это шаг. Рассмотрим случай с одним аргументом:
for number in range ( 5 ):
print (number)
for number in 0 , 1 , 2 , 3 , 4 :
print (number)
Напечатаются числа от 0 до 4. Это связано с тем, что функция range с одним аргументом генерирует диапазон от 0 до n-1, где n — это переданный аргумент.
Передадим в функцию два аргумента: 5 и 10. В этом случае range cгенерирует последовательность чисел от 5 до 9.
for el in range ( 5 , 10 , 2 ):
print (el)
Если передать в range три аргумента: 5, 10, 2, то мы получим последовательность от 5 до 10 с шагом в 2
for el in range ( 5 , 10 ):
print (el)
Перебор строк и функция len()
С помошью цикла for мы можем перебрать любую последовательность, например, строку:
for letter in ‘hello’ :
print (letter)
for l in ‘python’ :
print (l)
Любая последовательность имеет длину, это означает, что мы можем ее посчитать
Примеры решения задач
1. Посчитать сумму чисел от 0 до number
number = int ( input ())
summa = 0
for i in range (number +1 ):
# summa = summa + i
summa += i
print (summa)
2. Посчитать сумму четных чисел от 0 до number
number = int ( input ())
summa = 0
for i in range (number +1 ):
if i % 2 == 0 :
# summa = summa + i
summa += i
print (summa)
3. Посчитать произведение чисел от 1 до number
number = int ( input ())
multi = 1
for i in range ( 1 , number +1 ):
multi *= i
print (multi)
Решение задач
1. Вывести числа от 0 до 10.
2. Вывести числа от 0 до n, где n — это случайное число или число, введенное с клавиатуры
3. Вывести нечетные числа в диапазона от 0 до n (диапазон — это последовательность чисел от 0 до n)
4. Вывести четные числа из диапазона от 0 до n.
5. Вывести числа, делящиеся на три без остатка, в диапазоне от 0 до n.
6. Вывести числа, делящиеся на три или на семь без остатка, в диапазоне от 0 до n.
7. Найти сумму всех чисел от 1 до n.
7. Найти сумму четных чисел от 1 до n.
8. Даны два целых числа a и b a . Найти сумму всех целых чисел от a до b включительно.
9. Найти сумму чисел от 1 до n, делящихся на 3 .
10. Дано целое число n. Найти сумму 1 + 1/2 + 1/3 + . + 1/n
11. Дано целое число n. Найти сумму 1 + 2 + 4 + 8 + 16 + . + 2**n
где 2**n — это 2*2*2*. *2 раз. Таким образом, 2**4 = 2*2*2*2. Операция ** называется операцией возведения в степень.
12. Дано целое число n. Найти сумму: 1.1 + 1.2 + 1.3 + . + (1 + 0.1*n)
13. Дано целое число n. Найти значение выражения 1.1 − 1.2 + 1.3 − . (N слагаемых, знаки чередуются).
14. Дано целое число n. Найти квадрат данного числа, используя для его вычисления следующую формулу: n**2 = 1 + 3 + 5 + . + (2*N − 1) После добавления к сумме каждого слагаемого выводить текущее значение суммы
15. Дано вещественное число A и целое число N (> 0). Найти A в степени N: A**N = A * A * . * A (числа A перемножаются N раз). Операцию ** не использовать.
16. По данному натуральному n ≤ 30 выведите лесенку из n ступенек, i-я ступенька состоит из чисел от 1 до i без пробелов. Посмотрите статью про ввод и вывод данных.
17. Дано целое число n. Найти сумму 1**1 + 2**2 + . + n**n .
Как в цикле while складывать на себя, при итерации?
Хочу понять работу цикла.
x = 0
a = 10
while x != 10:
x += 1
a += + 5
print(x, a)
Как складывать значение во 2 столбике, саму на себя?
15 + 20 + 25 + 30 + .. и т.д и получить = общая сумма
- Вопрос задан более двух лет назад
- 546 просмотров
4 комментария
Простой 4 комментария
что у вас в hueta.py?
NikkoMEG @NikkoMEG Автор вопроса

Модератор @TosterModerator
NikkoMEG дорогой пользователь, настоятельно рекомендуем еще раз обратить самое пристальное внимание на п. 3.1 регламента работы сервиса (и, в особенности, на его последний абзац). В противном случае, ваши вопросы будут удаляться по причине тег-спама, а систематические нарушения приведут к блокировке учетной записи.
NikkoMEG @NikkoMEG Автор вопроса
Модератор, Мой последний вопрос был удален из-за неправильного тега?
Решения вопроса 1
Ну, «умножать само на себя» — понимаю. Но «складывать на себя»?
Кроме того, никакого «столбика» у вас нет, а есть просто результат выводв очередного print().
Но если вам очень хочется их просуммировать — то сделать это можно десятком разных способов, например, самым «лобовым»:
x = 0 a = 10 b=0 while x != 10: x += 1 a += + 5 print(x, a) b=b+a print (b)
Как сложить все числа выведенные циклом for?
Есть некий цикл for, который расчитывает цену лимитных ордеров, который выводит следующее:
19030.95 18973.8 18878.55 18745.2 18573.75 18364.2 18116.55 17830.8 17506.95 17145.0
Вопрос как получить сумму всех этих чисел. Ниже сам цикл:
import math MAX_ORDERS = 10 base_order_price = 19050.00 #текущая цена монеты for i in range(MAX_ORDERS): setka = base_order_price - base_order_price * (MAX_ORDERS ** math.log(i + 1, MAX_ORDERS) * (i + 1)) / 100 / MAX_ORDERS print(setka)```
Отслеживать
задан 14 окт 2022 в 12:58
Online Film’s Online Film’s
5 3 3 бронзовых знака
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
используйте функцию sum — она складывает все значения в списке:
res = sum(base_order_price - base_order_price * (MAX_ORDERS ** math.log(i + 1, MAX_ORDERS) * (i + 1)) / 100 / MAX_ORDERS for i in range(MAX_ORDERS))
ну или по старинке с накоплением переменной:
res = 0 for i in range(MAX_ORDERS): setka = base_order_price - base_order_price * (MAX_ORDERS ** math.log(i + 1, MAX_ORDERS) * (i + 1)) / 100 / MAX_ORDERS res += setka
Как посчитать сумму цикла?

Начните с форматирования кода — оберните его тегом code.
А ещё добавьте до цикла переменную со значением ноль, и внутри цикла вместо печати добавляйте к той переменной значение найденного числа.
В конце выводите значение этой переменной.
Кстати, наверно можно подумать, может проверять на деление на 21?
Алан Гибизов, Вопрос как куратору тега. Может все-таки вопросы типа «как сложить числа в цикле» — удалять? Ну это же описано в любом учебнике на третьей странице! В любом курсе рассказывают на первой лекции. Ну нельзя форум помощи в решении проблем для тех кому это действительно надо превращать в форум ликбеза для лентяев, которые то-ли проспали лекцию, то-ли не все буквы еще знают, что-бы читать книги.

Алан Гибизов @phaggi Куратор тега Python
dmshar, с одной стороны, Вы правы и это несколько раздражает.
Но, с другой стороны, надо учесть, что многие относительно молодые люди живут в мире, в котором информация находится всюду, её не надо запоминать, нужно просто запросить. Это другой мир, это та самая пресловутая игла сингулярности. И мы с вами, динозавры из мира, где люди ходили в библиотеки и сидели там в читальных залах и делали выписки — мы безнадежно отстаём.
Да, наши дубины гораздо прочнее тросточек молодых людей. Но они уже привыкли к тросточкам. Раздражающе тоненьким и бестолковым.
Нам их не переучить.
Но можно возглавить и попробовать повести за собой — хотя бы некоторых.
Ну, по крайней мере, я так думаю.
Алан Гибизов, Я на 129% поддерживаю тезис, что современное образование должно не заставлять запоминать (как было в наше время) а учить понимать суть. Только понимая можно потом быстро ПРАВИЛЬНО сформулировать вопрос в интернет и из горы шлака отсеять нужные ответы.
Я своим студентам все время повторяю — НЕ ЗАПОМИНАЙТЕ формулы, НЕ ЗАУБРИТЕ форматы, НЕ ПЫТАЙТЕСЬ запомнить ГОТОВЫЙ алгоритм. Даже определения если они перескажут своими словами — это я ценю выше чем абсолютно точное цитирования из учебника или Википедии. А на экзамене разрешаю пользоваться всем чем угодно включая Google. Думаете это спасает? Спасает тех, кто действительно научился самостоятельно думать и разбираться и все что ему нужно — найти точную формулу или набор параметров метода. А для этого надо приобрести соответствующий навык, надо САМОМУ продумать вопрос и попытаться самому построить план ответа.
Но если вместо того, что бы учиться самостоятельно думать и изучать правила умножения, при выполнении домашнего задания человек первым делом бежит на форум и задает вопрос «а сколько будет 23*12» — то он никогда не научиться ни думать самостоятельно, ни арифметику не выучит. И то, что большинство молодежи (не все, но подавляющее большинство, и не только в университете, но даже тут на форуме) идет по второму пути — пугает. Даже не общей деградацией, а тем что они просто обрекают себя проиграть в «борьбе за место под солнцем». Правда — не всем дано это понять, особенно по молодости.
Ладно, сорри за уклон в философию, оффтоп заканчиваю 🙂
