python course for me
November 13, 2023
Stepik: Оператор цикла for и функция range
#for <переменная> in <итерируемый объект>: - заголовок #оператор 1 } #оператор 2 } тело #.......... } цикла #оператор N }
d = [1, 2, 3, 4, 5] for x in d: print(x)
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