Решение задач Аннотация. Урок посвящен циклу for
Скачать 3.04 Mb.
|
Сигнальные меткиСигнальная метка (флажок) может использоваться, когда надо чтобы одна часть программы узнала, о происходящем в другой части программы. Напишем программу, определяющую, что натуральное число является простым: num = int(input()) flag = True for i in range(2, num): if num % i == 0: # если исходное число делится на какое-либо отличное от 1 и самого себя flag = False if num == 1: print('Это единица, она не простая и не составная') elif flag == True: print('Число простое') else: print('Число составное') Напомним, что число является простым, если оно не имеет делителей, кроме 1 и самого себя. Вышеприведенная программа работает следующим образом: начальное значение переменной флага равно True, что говорит о том, что число является простым. Затем мы перебираем все числа от 2 до num - 1. Если одно из этих значений оказывается делителем числа num, тогда число num является составным и мы устанавливаем значение флага False. Как только цикл завершен, мы проверяем, установлен флаг или нет. Если это так, мы знаем, что был делитель, и число не является простым. В противном случае число должно быть простым. Флаговые переменные могут иметь более осмысленное название. Например, в случае с проверкой числа на простоту, название флаговой переменной могло бы быть is_prime. Максимум и минимумПоиск наибольшего или наименьшего значения в некоторой последовательности чисел, также частая задача в программировании. Напишем программу, которая считывает 10 положительных чисел и находит среди них наибольшее число. largest = -1 for i in range(10): num = int(input()) if num > largest: largest = num print('Наибольшее число равно', largest) Мы устанавливаем начальное значение переменной largest в -1. Далее программа считывает 10 чисел, и если какое-то из них оказывается больше текущего значения largest, переприсваивает его. В качестве начального значения взято число -1, поскольку мы знаем, что все числа положительны, таким образом уже первое сравнение приведет к переприсваиванию. Распространен подход, когда в качестве начального значения переменной, сразу принимается первый элемент последовательности. Напишем программу, которая считывает 10 чисел (необязательно положительных) и находит среди них наибольшее: largest = int(input()) # принимаем первое число за максимальное for i in range(9): num = int(input()) if num > largest: largest = num print('Наибольшее число равно', largest) Для нахождения наименьшего значения последовательности следует поменять знак неравенства (>) на противоположный (<). В таком случае название переменной largest стоит заменить на smallest. Для переменных, хранящих наибольшее и наименьшее значения, подходят имена largest и smallest. |