python course for me
November 13, 2023

Stepik: Оператор цикла for и функция range

Синтаксис цикла for

#for <переменная> in <итерируемый объект>: - заголовок
	#оператор 1 }
	#оператор 2 } тело
	#.......... } цикла
	#оператор N }

Пример 1

d = [1, 2, 3, 4, 5]
for x in d:
	print(x)

Пример 2

for x in 'python':
	print(x)

Пример 3 - найдем произведение списка

d = [1, 2, 3, 4, 5]
p = 1

for x in d:
	p *= x

print(p)
# Вывод: 120 (1*2*3*4*5)

Пример 4 - Что делать, чтобы изменить значения итерируемого объекта

d = [1, 2, 3, 4, 5]

for i in [0, 1, 2, 3, 4]: # индексы списка d
	d[i] = 0

print(d)
# Вывод: [0, 0, 0, 0, 0]

Функция range()

Синтаксис:

range(start, stop, step) - range(5, 10, 2) - последовательность каждого второго (через один) от 5 до 9
range(start, stop) - range(5, 10) - последовательность от 5 до 9 включительно
range(stop) - range(5) - последовательность от 0 до 4 включительно

Примеры

a = list(range(5))
print(a)
# Вывод: [0, 1, 2, 3, 4]

a = list(range(2))
print(a)
# Вывод: [0, 1]

a = list(range(0))
print(a)
# Вывод: []

a = list(range(-10))
print(a)
# Вывод: [] - пустой, потому что по-умолчанию идет отсчет от 0

a = list(range(- 10, -5, 2))
print(a)
# Вывод: [-10, -8, -6]

a = list(range(- 10, -5, -2))
print(a)
# Вывод: [] - пустой, потому что шаг -2 (то есть обратный отсчет)

a = list(range(- 10, -20, -2))
print(a)
# Вывод: [-10, -12, -14, -16, -18]

a = list(range(5, 0, -2))
print(a)
# Вывод: [5, 3, 1]

Теперь, зная range(), можно изменить код, который мы уже писали

d = [1, 2, 3, 4, 5]

for i in range(len(d)):
	d[i] = 0

print(d)
# Вывод: [0, 0, 0, 0, 0]

Пример 5 - сумма S = 1/2 + 1/3 + 1/4 + 1/10 + .... + 1/1000

S = 0 # хранит сумму

for i in range(2, 1001):
	S += 1 / i

print(S)
# Вывод: 6.485470860550342

ТЕКСТ ЛЕКЦИИ