Цикл for
Цикл for , также называемый циклом с параметром, в языке Питон богат возможностями. В цикле for указывается переменная и множество значений, по которому будет пробегать переменная. Множество значений может быть задано списком, кортежем, строкой или диапазоном.
Вот простейший пример использования цикла, где в качестве множества значений используется кортеж:
i = 1 for color in 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'violet': print(i,'-th color of rainbow is ', color, sep = '') i += 1
В этом примере переменная color последовательно принимает значения ‘red’ , ‘orange’ и т.д. В теле цикла выводится сообщение, которое содержит название цвета, то есть значение переменной color , а также номер итерации цикла число, которое сначала равно 1, а потом увеличивается на один (инструкцией i += 1 с каждым проходом цикла.
В списке значений могут быть выражения различных типов, например:
for i in 1, 2, 3, 'one', 'two', 'three': print(i)
При первых трех итерациях цикла переменная i будет принимать значение типа int , при последующих трех — типа str .
Функция range
Как правило, циклы for используются либо для повторения какой-либо последовательности действий заданное число раз, либо для изменения значения переменной в цикле от некоторого начального значения до некоторого конечного.
Для повторения цикла некоторое заданное число раз n можно использовать цикл for вместе с функцией range :
for i in range(n): Тело цикла
В качестве n может использоваться числовая константа, переменная или произвольное арифметическое выражение (например, 2 ** 10 ). Если значение n равно нулю или отрицательное, то тело цикла не выполнится ни разу.
Если задать цикл таким образом:
for i in range(a, b): Тело цикла
то индексная переменная i будеть принимать значения от a до , то есть первый параметр функции range , вызываемой с двумя параметрами, задает начальное значение индексной переменной, а второй параметр — значение, которая индексная переменная принимать не будет. Если же a ≥ b , то цикл не будет выполнен ни разу. Например, для того, чтобы просуммировать значения чисел от 1 до n можно воспользоваться следующей программой:
sum = 0 for i in range(1, n + 1): sum += i
В этом примере переменная i принимает значения 1, 2, . n , и значение переменной sum последовательно увеличивается на указанные значения.
Наконец, чтобы организовать цикл, в котором индексная переменная будет уменьшаться, необходимо использовать функцию range с тремя параметрами. Первый параметр задает начальное значение индексной переменной, второй параметр — значение, до которого будет изменяться индексная переменная (не включая его!), а третий параметр — величину изменения индексной переменной. Например, сделать цикл по всем нечетным числам от 1 до 99 можно при помощи функции , а сделать цикл по всем числам от 100 до 1 можно при помощи .
Более формально, цикл при d > 0 задает значения индексной переменной i = a , i = a + d , i = a + 2 * d и так для всех значений, для которых i < b . Если же d < 0 , то переменная цикла принимает все значения i >b .
Упражнения
A: Ряд — 1
Даны два целых числа A и B (при этом A≤B). Выведите все числа от A до B включительно.
1 2 3 4 5
B: Ряд — 2
Даны два целых числа A и В. Выведите все числа от A до B включительно, в порядке возрастания, если A < B , или в порядке убывания в противном случае.
5 4 3 2 1
C: Ряд — 3
Дано натуральное число n . Напечатайте все n -значные нечетные натуральные числа в порядке убывания.
9 7 5 3 1
D: Сумма кубов
По данному натуральном n вычислите сумму \(1^3+2^3+3^3+. +n^3\).
E: Сумма произведений соседних чисел
По данному натуральному n вычислите сумму 1×2+2×3+. +(n-1)×n.
F: Факториал
По данному целому неотрицательному n вычислите значение n!
G: Цифры числа
Дано 10-значное число. Выведите все цифры этого числа в обратном порядке по одной, разделяя пробелами.
1234567890
0 9 8 7 6 5 4 3 2 1
H: Сумма произведений соседних чисел — 2
По данному натуральному n≥2 вычислите сумму 1×2+2×3+. +(n-1)×n. Ответ выведите в виде вычисленного выражение и его значения в точности, как показано в примере.
В этой задаче нельзя использовать if .
1*2+2*3+3*4=20
I: Флаги
Напишите программу, которая по данному числу n от 1 до 9 выводит на экран n флагов. Изображение одного флага имеет размер 4×4 символов, между двумя соседними флагами также имеется пустой (из пробелов) столбец. Разрешается вывести пустой столбец после последнего флага и вообще допускается вывод пробелов в конце строк. Внутри каждого флага должен быть записан его номер — число от 1 до n.
Символ обратного слэша “\” в текстовых строках имеет специальное значение. Чтобы включить в состав текстовой строки такой символ, его нужно повторить дважды. Например, для вывода на экран одного такого символа можно использовать такой код: print(«\\») .
+___ +___ +___
|1 / |2 / |3 /
|__\ |__\ |__\
| | |
+___
|1 /
|__\
|
J: Четные числа
По данным двум натуральным числам A и B (A≤B) выведите все чётные числа на отрезке от A до B. В этой задаче нельзя использовать инструкцию if.
2 4 6 8 10
K: Делители
По данному натуральному числу \(n\le 1000\) выведите все натуральные делители числа \(n\) в порядке возрастания.
1 2 5 10
L: Сумма десяти чисел
Дано 10 целых чисел. Вычислите их сумму.
0
1
2
3
4
5
6
7
8
9
M: Сумма N чисел
Дано несколько чисел. Вычислите их сумму. Сначала вводите количество чисел N, затем вводится ровно N целых чисел. Какое наименьшее число переменных нужно для решения этой задачи?
3
1
20
300
N: Количество нулей
Дано N чисел: сначала вводится число N, затем вводится ровно N целых чисел. Подсчитайте количество нулей среди введенных чисел и выведите это количество.
5
0
7
0
2
2
O: Замечательные числа — 1
Найдите и выведите все двузначные числа, которые равны удвоенному произведению своих цифр.
Программа не требует ввода данных с клавиатуры, просто выводит список искомых чисел.
P: Замечательные числа — 2
Квадрат трехзначного числа оканчивается тремя цифрами, равными этому числу. Найдите и выведите все такие числа.
Программа не требует ввода данных с клавиатуры, просто выводит список искомых чисел.
Q: Замечательные числа — 3
Дано натуральное число n. Выведите в порядке возрастания все трехзначные числа, сумма цифр которых равна n.
102
111
120
201
210
300
R: Лесенка
По данному натуральному n≤9 выведите лесенку из n ступенек, i-я ступенька состоит из чисел от 1 до i без пробелов.
1
12
123
S: Замечательные числа — 4
Даны два четырёхзначных числа A и B. Выведите все четырёхзначные числа на отрезке от A до B, запись которых является палиндромом.
1600
2100
1661
1771
1881
1991
2002
T: Замечательные числа — 5
Даны два четырёхзначных числа A и B. Выведите в порядке возрастания все четырёхзначные числа на отрезке от A до B, запись которых содержит ровно три одинаковые цифры.
1900
2100
1911
1999
2000
2022
U: Сумма факториалов
По данному натуральном \(n\) вычислите сумму \(1!+2!+3!+. +n!\). В решении этой задачи можно использовать только один цикл.
V: Домино
Рассмотрим \(N\)-домино. В таком домино каждая костяшка состоит из двух половинок, на каждой из которых нарисовано от 0 до \(N\) точек. Полный комплект костяшек такого домино содержит все возможные костяшки, каждую по одному разу. Например, для \(N=2\) в комплект войдут следующие костяшки: (0,0), (0,1), (0,2), (1,1), (1,2) и (2,2). По заданному \(N\) (\(1\le N \le 30\)) определите, сколько всего точек изображено на всех костяшках полного комплекта \(N\)-домино.
W: Треугольная последовательность
Дана монотонная последовательность, в которой каждое натуральное число k встречается ровно k раз: 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, .
По данному натуральному n выведите первые n членов этой последовательности. Решите задачу при помощи одного цикла for. Операция умножения строки на число также не допускается.
1 2 2 3 3
X: Остатки
В этой задаче нельзя использовать инструкцию if, операторы сравнения ( < и т.д.), должен быть только один цикл.
1
4
1
2
1
5
0
4
Y: Кинотеатр
\(X\) мальчиков и \(Y\) девочек пошли в кинотеатр и купили билеты на подряд идущие места в одном ряду. Напишите программу, которая выдаст, как нужно сесть мальчикам и девочкам, чтобы рядом с каждым мальчиком сидела хотя бы одна девочка, а рядом с каждой девочкой — хотя бы один мальчик.
Программа получает на вход два числа \(X\) и \(Y\) (оба числа натуральные, не превосходящие 100).
Выведите какую-нибудь строку, в которой будет ровно \(X\) символов B (обозначающих мальчиков) и \(Y\) символов G (обозначающих девочек), удовлетворяющую условию задачи. Пробелы между символами выводить не нужно.
Если рассадить мальчиков и девочек согласно условию задачи невозможно, выведите строку NO SOLUTION .
BGBGBGBGBG
BGBGBBGB
100
1
NO SOLUTION
Z: Транспортные расходы
Необходимо заказать транспорт для перевозки \(N\) человек. Заказывать можно автобусы и такси. В каждый автобус можно посадить не более 50 человек, в каждое такси — не более 4 человек. Стоимость заказа автобуса составляет \(A\) рублей, такси — \(B\) рублей (разумеется, \(A \gt B\)).
Определите, какое количество автобусов и такси нужно заказать, чтобы потратить как можно меньшую сумму денег.
Программа получает на вход три целых числа: \(N\), \(A\), \(B\) (\(1 \le N \le 10^5\), \(1 \le B \lt A \le 1000\)).
Выведите два числа — количество автобусов и количество такси для заказа в оптимальном случае. Если возможных ответов несколько, выведите любой.
Двузначные числа которые равны утроенному произведению своих цифр
Найдите числа, равные удвоенной сумме своих цифр.
Подсказка
Если первая цифра двузначного числа равна a , а вторая равна b , то само число равно 10 a + b .
Решение
Легко заметить, что однозначных чисел, больших нуля, с требуемым свойством нет. Попробуем найти решение среди двузначных чисел. Если первая цифра двузначного числа равна a , а вторая равна b , то само число равно 10 a + b . Имеем 10 a + b = 2( a + b ). Отсюда 8 a = b , то есть a = 1, b = 8.
Можно показать, что других решений нет (идея: самое маленькое трёхзначное число — 100, а самая большая сумма трёх цифр 9 + 9 + 9 = 27). Но это на олимпиаде не требовалось.
Ответ
Источники и прецеденты использования
олимпиада | |
Название | Математический праздник |
год | |
Год | 1991 |
класс | |
1 | |
Класс | 5,6 |
задача | |
Номер | 5 |
Помогите пожалуйста с задачей по Python.
Задача 8. Замечательные числа
Напишите программу, которая находит и выводит все двузначные числа, которые равны утроенному произведению своих цифр. К таким относятся, например, 15 и 24.
Лучший ответ
print(*(i for i in range(10, 100) if (i // 10) * (i % 10) * 3 == i))
kashlot kashlotovУченик (106) 2 года назад
kashlot kashlotovУченик (106) 2 года назад
Остальные ответы
перебирай числа с 10 до 99 и делай расчет
kashlot kashlotovУченик (106) 2 года назад
for x in range(10,100):
a1 = x // 10 % 10
a2 = x // 1 % 10
if a1 * a2 * 3 == x:
result.append(x)
print(result)
whyУченик (117) 1 год назад
a2 = x // 1 % 10.
for list in range (10, 100) :
a = ((list % 10) * (list // 10) )* 3
if list == a :
print(list)
алексУченик (119) 1 год назад
Порядок во второй строке неверный
алекс Ученик (119) алекс, Затупил, одно и тоже
for i in range(10, 100):
if int(3 * (i // 10) * (i % 10)) == int(i):
print(‘Число подходит: ‘, i)
for i in range(10, 100):
__if 3 * (i // 10) * (i % 10) == i:
____print(‘Замечательное число: ‘, i)
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.
Python в СРЦОД: 2. Цикл FOR — последовательности чисел
Найдите и выведите все двузначные числа, которые равны удвоенному произведению своих цифр.
Входные данные
Программа не требует ввода данных с клавиатуры, просто выводит список искомых чисел.
Выходные данные
Выведите ответ на задачу.
Сдать: для сдачи задач необходимо войти в систему
Список задач
- A. Замечательные числа — 1
- B. Замечательные числа — 3
- C. Замечательные числа — 4
- D. Замечательные числа — 5
- E. Сумма произведений соседних чисел
Вы используете гостевой доступ (Вход)
Эта страница: General type: incourse. Context Условия задач: 2. Цикл FOR — последовательности чисел (context id 302379). Page type mod-statements-view.