Подсчет количества
Нередко нужно, чтобы наши программы подсчитывали, сколько раз что-либо произошло. К примеру, видеоигра может подсчитывать количество поворотов персонажа, или математическая программа может считать, как много чисел обладают некоторым свойством. Ключ к подсчету – использование переменной счетчика.
Напишем программу, которая считывает  чисел и определяет, сколько из них больше .
counter = 0
for _ in range(10):
    num = int(input())
    if num > 10:
        counter = counter + 1
print('Было введено', counter, 'чисел, больших 10.')
Каждый раз, когда мы считываем число, большее , мы добавляем  к нашему текущему значению переменной counter. В программе это реализовано в строке counter = counter + 1. Обратите внимание на начальное значение переменной счетчика counter = 0. Без начального значения мы получили бы ошибку, поскольку, дойдя до строки counter = counter + 1, Python ничего не знал бы о переменной counter. Строка кода counter = counter + 1 означает: возьми старое значение переменной counter, прибавь к нему  и переприсвой переменной это значение. Если не задать переменной начальное значение, то непонятно, к чему прибавлять  в самый первый раз.
Подсчет количества – это очень частый сценарий. Он состоит из двух шагов:
	- Создание переменной счетчика, и придание ей первоначального значения: counter = 0;
- Увеличение переменной счетчика на : counter = counter + 1.
Часто при написании программ требуется использовать несколько счетчиков. Модифицируем предыдущую программу: посчитаем еще и количество нулей среди введенных чисел.
counter1 = 0
counter2 = 0
for _ in range(10):
    num = int(input())
    if num > 10:
        counter1 = counter1 + 1
    if num == 0:
        counter2 = counter2 + 1
print('Было введено', counter1, 'чисел, больших 10.')
print('Было введено', counter2, 'нулей.' )
Рассмотрим еще один пример: подсчитать количество чисел из диапазона , квадрат которых оканчивается на .
counter = 0
for i in range(1, 101):
    if i**2 % 10 == 4:
        counter = counter + 1
print(counter)
Мы используем функцию range() с двумя параметрами для генерации последовательности чисел от  до . Каждый раз, когда переменная i последовательно принимает значения от  до , мы проверяем условие: i**2 % 10 == 4 (оканчивается ли квадрат числа i на ).
 Для переменной счетчика удобно использовать имя
   Для переменной счетчика удобно использовать имя counter (или более сокращенно cnt). 
Вычисление суммы и произведения
Наравне с подсчетом количества по частоте стоит задача вычисления суммы. К примеру, видеоигра должна считать сумму очков. В таком случае начальное значение переменной будет равно , а далее оно будет увеличиваться на некоторое количество заработанных очков, скажем на . Мы пишем следующий код:
score = 0
...
score = score + 10
Напишем программу, которая считывает  чисел и определяет сумму тех из них, которые больше .
total = 0
for _ in range(10):
    num = int(input())
    if num > 10:
        total = total + num
print('Сумма чисел больших 10 равна',  total)
Каждый раз, когда программа считывает число, большее , она добавляет его к текущему значению переменной total. Это реализовано в строке total = total + num. Обратите внимание на начальное значение переменной-сумматора total = 0. Без начального значения мы получили бы ошибку, поскольку, дойдя до строки total = total + num, Python ничего не знал бы о переменной total . Строка кода total = total + num означает: возьми старое значение переменной total, прибавь к нему num и переприсвой переменной это значение. Если не задать переменной начальное значение, то не к чему прибавлять num в самый первый раз.
Подсчет суммы состоит из двух шагов:
	- Создание переменной сумматора и придание ей первоначального значения: total = 0;
- Увеличение переменной сумматора на нужное число: total = total + num.
Напишем программу, которая считает сумму натуральных чисел от  до :
total = 0
for i in range(1, 101):
    total = total + i
print('Сумма равна', total)
Рассмотрим еще один пример: напишем программу, которая запрашивает  целых чисел и находит их среднее значение:
total = 0
for _ in range(10):
    num = int(input())
    total = total + num
average = total / 10
print('Среднее значение равно', average)
Аналогичным образом вычисляется произведение. При вычислении произведения начальное значение переменной мультипликатора мы устанавливаем равным , в отличие от сумматора, где оно равно .
  Для переменной сумматора и мультипликатора удобно использовать имя
   Для переменной сумматора и мультипликатора удобно использовать имя total. 
Обмен значений переменных
Очень часто нам требуется обменять значения двух переменных x и y. Начинающие программисты иногда пишут такой код:
x = y
y = x
Однако он не работает. Предположим, что x = 3 и y = 5. Первая строка присвоит переменной x значение , что правильно, однако вторая строка установит значение переменной y в , поскольку значение x уже равно . Для решения задачи мы можем использовать временную переменную:
temp = x
x = y
y = temp
Такой код пишут почти во всех языках программирования. Однако в Python есть и более простой способ. Мы можем написать так:
x, y = y, x
В результате выполнения такого кода Python поменяет значения переменных x и y местами.
Сигнальные метки
Сигнальная метка (флажок) может использоваться, когда надо, чтобы одна часть программы узнала о происходящем в другой части программы.
Напишем программу, определяющую, что натуральное число является простым:
num = int(input())
flag = True
for i in range(2, num):
    if num % i == 0:  
        flag = False
if num == 1:
    print('Это единица, она не простая и не составная') 
elif flag == True:
    print('Число простое')
else:
    print('Число составное')
Напомним, что число является простым, если оно не имеет делителей, кроме  и самого себя. Вышеприведенная программа работает следующим образом: начальное значение переменной флага равно True, что говорит о том, что число является простым. Затем мы перебираем все числа от  до num - 1 (включительно). Если одно из этих значений оказывается делителем числа num, тогда число num является составным и мы устанавливаем значение флага False. Как только цикл завершен, мы проверяем, установлен флаг в True или нет. Если это так, мы знаем, что делитель найден не был и число является простым. В противном случае число является составным.
Флаговые переменные могут иметь более осмысленное название. Например, в случае с проверкой числа на простоту, название флаговой переменной могло бы быть is_prime.
Максимум и минимум
Поиск наибольшего или наименьшего значения в некоторой последовательности чисел – также частая задача в программировании. Напишем программу, которая считывает  положительных чисел и находит среди них наибольшее число.
largest = 0
for _ in range(10):
    num = int(input())    
    if num > largest:
        largest = num
print('Наибольшее число равно', largest) 
Мы устанавливаем начальное значение переменной largest  в . Далее программа считывает  чисел, и если какое-то из них оказывается больше текущего значения largest, переприсваивает его. В качестве начального значения взято число , поскольку мы знаем, что все числа положительны (а  является максимальным неположительным числом). Таким образом, уже первое сравнение приведет к переприсваиванию.
Распространен подход, когда в качестве начального значения переменной сразу принимается первый элемент последовательности. Напишем программу, которая считывает  чисел (необязательно положительных) и находит среди них наибольшее:
largest = int(input())  
for _ in range(9):
    num = int(input())
    if num > largest:
        largest = num
print('Наибольшее число равно', largest) 
Для нахождения наименьшего значения последовательности следует поменять знак неравенства (>) на противоположный (<). В таком случае название переменной largest стоит заменить на smallest.
  Для переменных, хранящих наибольшее и наименьшее значения, подходят имена
   Для переменных, хранящих наибольшее и наименьшее значения, подходят имена largest и smallest соответственно.
Расширенные операторы присваивания
Довольно часто программы имеют инструкции присваивания, в которых переменная на левой стороне от оператора = также появляется на правой от него стороне. Например, 
counter = counter + 1
На правой стороне оператора присваивания 1 прибавляется к переменной counter. Полученный результат затем присваивается переменной counter, заменяя первоначальное значение. По сути, это строка кода добавляет 1 к counter. Еще один пример такой инструкции мы видели при подсчете суммы:
total = total + num
Эта инструкция присваивает значение выражения total + num переменной total. В результате исполнения этой инструкции число num прибавляется к значению total.
	Различные инструкции присваивания (в каждой инструкции x = 6)
	
		
			| Инструкция | Что она делает | Значение x после инструкции | 
	
	
		
			| x = x + 4 | Прибавляет 4 к x | 10 | 
		
			| x = x - 3 | Вычитает 3 из x | 3 | 
		
			| x = x * 10 | Умножает xна 10 | 60 | 
		
			| x = x / 4 | Делит xна 4 | 1.5 | 
		
			| x = x // 4 | Делит нацело xна 4 | 1 | 
		
			| x = x % 4 | Находит остаток от деления xна 4 | 2 | 
	
Эти типы операций находят широкое применение в программировании. Для удобства Python предлагает расширенные операторы присваивания. Расширенные операторы не требуют, чтобы программист дважды набирал имя переменной. Приведенную ниже инструкцию:
total = total + num
 можно переписать как
total += num
Точно так же инструкцию
counter = counter + 1
можно переписать как
counter += 1
	
		
			| Оператор | Пример использования | Эквивалент | 
	
	
		
			| += | x += 5 | x = x + 5 | 
		
			| -= | x -= 2 | x = x - 2 | 
		
			| *= | x *= 10 | x = x * 10 | 
		
			| /= | x /= 4 | x = x / 4 | 
		
			| //= | x //= 4 | x = x // 4 | 
		
			| %= | x %= 4 | x = x % 4 | 
	
Примечания
Примечание 1. Аналогичным образом можно менять местами значения трех и более переменных.
a, b, c, d = b, c, d, a
Примечание 2. Очень часто сигнальные метки называют flag.
Примечание 3. Поскольку в Python есть встроенные функции max() и min(), то давать такие названия для максимального и минимального значения не очень хорошо. Куда лучше использовать названия largest и smallest или mx и mn.
Примечание 4. Сумму чисел от 1 до 100, можно вычислить и без цикла: Действительно, числа от  до , можно разбить на  пар, сумма в которых равна : В начальной школе, где учился математик Карл Фридрих Гаусс (6 лет), учитель, чтобы занять класс на продолжительное время самостоятельной работой, дал задание ученикам – вычислить сумму всех натуральных чисел от  до . Маленький Гаусс ответил на вопрос почти мгновенно, применив указанный способ подсчета, чем невероятно удивил всех и, прежде всего, учителя.
