© Яценко Р.Н., 2019-2020
for
, также называемый циклом со счетчиком, в языке Python богат возможностямиfor item in list:
Тело цикла
[else:
Выражение]
item
– параметр циклаlist
– имя последовательности (например, списка) или вызов функции range()i = 1
# заголовок цикла
for color in 'red', 'orange', 'yellow', 'green',
'cyan', 'blue', 'violet':
# тело цикла
print('#', i, ' color of rainbow is ', color, sep = '')
i += 1
for i in 1, 2, 3, 'one', 'two', 'three':
print(i)
1
2
3
one
two
three
Как правило, циклы for
используются либо для повторения какой-либо последовательности действий заданное число раз, либо для изменения значения переменной в цикле от некоторого начального значения до некоторого конечного
Для повторения цикла некоторое заданное число n
раз можно использовать цикл for
вместе с функцией range
for i in range(4): # равносильно инструкции for i in 0, 1, 2, 3:
# здесь можно выполнять циклические действия
print(i)
print(i ** 2)
# цикл закончился, поскольку закончился блок с отступом
Функция range
может также принимать не один, а два параметра
Вызов range(a, b)
означает, что индексная переменная (счетчик) будеть принимать значения от a
до b - 1
:
range
задает начальное значение счетчикаsum = 0
n = 5
for i in range(1, n + 1):
sum += i
print(sum)
Чтобы организовать цикл, в котором счетчик будет изменяться на заданный шаг, необходимо использовать третий параметр функции range
– величину изменения счетчика
range(начальное значение, конечное значение + 1, шаг)
Цикл по всем числам от 100 до 1
range(100, 0, -1)
Цикл по всем нечетным числам от 1 до 99
range(1, 100, 2)
print("Посчитаем:")
for i in range(10):
print(i, end=" ")
print("Перечисли кратные пяти:")
for i in range(0, 50, 5):
print(i, end=" ")
print("Посчитаем в обратном порядке:")
for i in range(10, 0, -1):
print(i, end=" ")
Посчитаем:
0 1 2 3 4 5 6 7 8 9
Перечисли кратные пяти:
0 5 10 15 20 25 30 35 40 45
Посчитаем в обратном порядке:
10 9 8 7 6 5 4 3 2 1
n = int(input('n = '))
for j in range(1, n, 2):
print(j, end=' ')
else:
if n % 2:
print(n)
Модули – это библиотеки, содержащие код, пригодный для использования в других программах. Так, модуль random
содержит функции, связанные с генерацией случайных чисел и получением случайных результатов
В начале программы пишем
import random
Функция random.randint(a, b)
возвращает случайное целое число от a
до b
:
# случайное число от 1 до 10
x = random.randint(1, 10)
import random
# создаем случайные числа из диапазона 1 - 6
die1 = random.randint(1, 6)
die2 = random.randint(1, 6)
total = die1 + die2
print("При вашем броске выпало", die1, "и", die2, "очков")
print("В сумме", total)
Циклы for могут быть вложенными друг в друга
Глубина вложенности может быть сколько угодно большая, но допускать этого не следует, поскольку с увеличением глубины вложенности сложность программы возрастает и она становится плохо читаема
for j in range(1, 11):
for k in range(1, 11):
print('%4d' % (j * k), end='')
print()
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
Дано целое n. Вывести все тройки чисел \(x\), \(y\) и \(z\) для которых \(x^2+y^2+z^2=n\)
from math import sqrt
n = int(input('n = ')) # n = 99
m = int(sqrt(n)) + 1
for x in range(m):
for y in range(x, m):
for z in range(y, m):
if x * x + y * y + z * z == n:
print('%4d%4d%4d' % (x, y, z))
© Яценко Р.Н., 2019-2020