1.10M
Категория: ПрограммированиеПрограммирование

Break, continue, else. Бесконечные циклы. Ревью кода и поиск ошибок. Урок 10

1.

Урок 10
break, continue, else
Бесконечные циклы
Ревью кода и поиск
ошибок
Python для начинающих
Интерактивный курс

2.

Оператор прерывания break

3.

Оператор прерывания break
Оператор break прерывает ближайший цикл for или while.
result = 0
for i in range(10):
num = int(input())
if num < 0:
break
result += num
print(result)
Программа считывает 10 чисел и суммирует их до тех пор, пока не
обнаружит отрицательное число. В этом случае выполнение цикла
прерывается командой break.
3

4.

Оператор прерывания break
4
Программа проверяет число на простоту:
num = int(input())
flag = True
for i in range(2, num):
if num % i == 0:
flag = False
break
if flag == True:
print('Число простое')
else:
print('Число составное')
как только мы обнаружили делитель,
мы меняем значение сигнальной метки
и выходим из цикла с помощью break
Оператор break позволяет ускорять
программы

5.

Оператор прерывания break
5
Программа определяет, содержит ли число цифру 7:
n = int(input())
flag = False
while n != 0:
last_digit = n % 10
if last_digit == 7:
flag = True
break
n //= 10
if flag == True:
print('Число', n, 'содержит цифру 7')
else:
print('Число', n, 'не содержит цифру 7')
как только мы
обнаружили цифру
7 мы выходим из
цикла с помощью
оператора break

6.

Бесконечные циклы
6
Если цикл не имеет возможности завершиться, то он называется
бесконечным циклом.
Самый простой способ создать бесконечный цикл:
while True:
print('Python awesome!')
Оператор break позволяет прерывать
бесконечные циклы
Python awesome!
Python awesome!
.
.
.
Python awesome!
Python awesome!

7.

Бесконечные циклы
С помощью бесконечного цикла иногда удается сделать
программный код более читабельнее.
Более простым может быть завершение цикла на основе условий
внутри тела цикла, а не на основе условий в его заголовке:
while True:
if условие 1:
break
...
if условие 2:
break
...
# условие для остановки цикла
# еще одно условие для остановки цикла
7

8.

Оператор пропуска итерации continue
Оператор continue позволяет перейти к следующей итерации
цикла for или while до завершения всех команд в теле цикла:
for i in range(1, 101):
if i == 7 or i == 17 or i == 29 or i == 78:
continue # переходим на следующую итерацию
print(i)
8

9.

Оператор пропуска итерации continue
Оператор continue позволяет перейти к следующей итерации
цикла for или while до завершения всех команд в теле цикла:
for i in range(1, 101):
if i == 7 or i == 17 or i == 29 or i == 78:
continue # переходим на следующую итерацию
print(i)
Программа выводит все числа от 1 до 100, кроме чисел 7, 17, 29 и 78.
9

10.

Задача
10
Что покажет приведенный ниже фрагмент кода?
for i in range(10):
print(i, end='*')
if i > 6:
break

11.

Задача
11
Что покажет приведенный ниже фрагмент кода?
for i in range(10):
print(i, end='*')
if i > 6:
break
Ответ:
0*1*2*3*4*5*6*7*

12.

Задача
12
Что покажет приведенный ниже фрагмент кода?
result = 0
for i in range(10):
if i % 2 == 0:
continue
result += i
print(result)

13.

Задача
13
Что покажет приведенный ниже фрагмент кода?
result = 0
for i in range(10):
if i % 2 == 0:
continue
result += i
print(result)
Ответ:
25

14.

Задача
14
Что покажет приведенный ниже фрагмент кода?
mult = 1
for i in range(1, 11):
if i % 2 == 0:
continue
if i % 9 == 0:
break
mult *= i
print(mult)

15.

Задача
15
Что покажет приведенный ниже фрагмент кода?
mult = 1
for i in range(1, 11):
if i % 2 == 0:
continue
if i % 9 == 0:
break
mult *= i
print(mult)
Ответ:
105

16.

Задачи на программирование
1. Наименьший делитель;
2. Следуй правилам.
16

17.

Анализ оптимальности, поиск
ошибок и ревью кода

18.

Ревью кода
18
Ревью кода – проверка исходного кода программы с целью
обнаружения и исправления ошибок и неточностей, которые
остались незамеченными при начальной разработке.
В процессе ревью кода могут быть исправлены:
фактические ошибки кода;
производительность кода,
читабельность кода;
ошибки форматирования кода.
Целью ревью кода является улучшение качества программного кода
и совершенствование навыков программиста.

19.

Частые ошибки
1.
19
отсутствие начальной инициализации переменной;
2. неправильная начальная инициализация переменной;
3. отсутствие отступа;
4. неправильные числовые граничные значения (функции range);
5. неправильные граничные сравнения;
6. путаница логических операций or и and и т.д.

20.

Ревью кода
20
Требовалось написать программу, которая выводит символ А 10 раз.
Вы ревьюите следующий код. Что вы о нем скажете? Правильно ли
он работает? Как его улучшить?
print('A')
print('A')
print('A')
print('A')
print('A')
print('A')
print('A')
print('A')
print('A')
print('A')

21.

Ревью кода
21
Требовалось написать программу, которая выводит символ А 10 раз.
print('A')
print('A')
print('A')
print('A')
print('A')
print('A')
print('A')
print('A')
print('A')
print('A')
используем
цикл
for _ in range(10):
print('A')

22.

Ревью кода
Требовалось написать программу которая должна вывести все
числа от 1 до 100 кратные 7. Вы ревьюите следующий код. Что вы о
нем скажете? Правильно ли он работает? Как его улучшить?
i = 1
while i < 101:
if i % 7 == 0:
print(i)
i += 1
22

23.

Ревью кода
23
Требовалось написать программу которая должна вывести все
числа от 1 до 100 кратные 7. Вы ревьюите следующий код. Что вы о
нем скажете? Правильно ли он работает? Как его улучшить?
i = 1
while i < 101:
if i % 7 == 0:
print(i)
i += 1
i = 1
while i < 101:
if i % 7 == 0:
print(i)
i += 1

24.

Ревью кода
24
Требовалось написать программу которая должна вывести все
числа от 1 до 100 кратные 7. Вы ревьюите следующий код. Что вы о
нем скажете? Правильно ли он работает? Как его улучшить?
i = 1
while i < 101:
if i % 7 == 0:
print(i)
i += 1
i = 1
while i < 101:
if i % 7 == 0:
print(i)
i += 1
for i in range(7, 101, 7):
print(i)

25.

Ревью кода
25
Требовалось написать программу которая выводит все числа от 100
до 1 в порядке убывания. Вы ревьюите следующий код. Что вы о нем
скажете? Как его улучшить?
for i in range(1, 100):
print(101 - i)

26.

Ревью кода
26
Требовалось написать программу которая выводит все числа от 100
до 1 в порядке убывания. Вы ревьюите следующий код. Что вы о нем
скажете? Как его улучшить?
for i in range(1, 100):
print(101 - i)
for i in range(1, 101):
print(101 - i)

27.

Ревью кода
27
Требовалось написать программу которая выводит все числа от 100
до 1 в порядке убывания. Вы ревьюите следующий код. Что вы о нем
скажете? Как его улучшить?
for i in range(1, 100):
print(101 - i)
for i in range(1, 101):
print(101 - i)
for i in range(100, 0, -1):
print(i)

28.

Ревью кода
28
Требовалось написать программу которая находит сумму всех
нечетных чисел от 1 до 1000. Вы ревьюите следующий код. Что вы о
нем скажете? Как его улучшить?
a = 1
for i in range(1, 1000):
if i % 2 == 1:
a = a + 1
print(a)

29.

Ревью кода
29
Требовалось написать программу которая находит сумму всех
нечетных чисел от 1 до 1000. Вы ревьюите следующий код. Что вы о
нем скажете? Как его улучшить?
a = 1
for i in range(1, 1000):
if i % 2 == 1:
a = a + 1
print(a)
a = 0
for i in range(1, 1001):
if i % 2 == 1:
a = a + i
print(a)

30.

Ревью кода
30
Требовалось написать программу которая находит сумму всех
нечетных чисел от 1 до 1000. Вы ревьюите следующий код. Что вы о
нем скажете? Как его улучшить?
a = 1
for i in range(1, 1000):
if i % 2 == 1:
a = a + 1
print(a)
total = 0
for i in range(1, 1001):
if i % 2 == 1:
total += i
print(total)

31.

Ревью кода
31
Требовалось написать программу которая находит сумму всех
нечетных чисел от 1 до 1000. Вы ревьюите следующий код. Что вы о
нем скажете? Как его улучшить?
a = 1
for i in range(1, 1000):
if i % 2 == 1:
a = a + 1
print(a)
total = 0
for i in range(1, 1001, 2):
total += i
print(total)

32.

Ревью кода
32
Требовалось написать программу которая вычисляет факториал
числа. Вы ревьюите следующий код. Что вы о нем скажете? Как его
улучшить?
n = input()
a = 0
for i in range(n):
a = a * i
print(a)

33.

Ревью кода
33
Требовалось написать программу которая вычисляет факториал
числа. Вы ревьюите следующий код. Что вы о нем скажете? Как его
улучшить?
n = input()
a = 0
for i in range(n):
a = a * i
print(a)
n = int(input())
a = 1
for i in range(1, n + 1):
a *= i
print(a)

34.

Ревью кода
34
Требовалось написать программу которая вычисляет факториал
числа. Вы ревьюите следующий код. Что вы о нем скажете? Как его
улучшить?
n = input()
a = 0
for i in range(n):
a = a * i
print(a)
n = int(input())
factorial = 1
for i in range(1, n + 1):
factorial *= i
print(factorial)

35.

Ревью кода
35
Программа считывает числа пока не введено число -1 и вычисляет
среднее арифметическое чисел больших 7. Вы ревьюите следующий
код. Что вы о нем скажете? Как его улучшить?
a = -2
b = 1
c = 0
while a != -1:
a = input()
if a >= 7:
b = b + a
c = c + 1
print(c / b)

36.

Ревью кода
36
Программа считывает числа пока не введено число -1 и вычисляет
среднее арифметическое чисел больших 7. Вы ревьюите следующий
код. Что вы о нем скажете? Как его улучшить?
a = -2
b = 1
c = 0
while a != -1:
a = input()
if a >= 7:
b = b + a
c = c + 1
print(c / b)
a = int(input())
b = 0
c = 0
while a != -1:
if a > 7:
b = b + a
c = c + 1
a = int(input())
print(b / c)

37.

Ревью кода
37
Программа считывает числа пока не введено число -1 и вычисляет
среднее арифметическое чисел больших 7. Вы ревьюите следующий
код. Что вы о нем скажете? Как его улучшить?
a = -2
b = 1
c = 0
while a != -1:
a = input()
if a >= 7:
b = b + a
c = c + 1
print(c / b)
num = int(input())
total = 0
counter = 0
while num != -1:
if num > 7:
total += num
counter += 1
num = int(input())
print(total / counter)
English     Русский Правила