Главная страница

Решение задач Аннотация. Урок посвящен циклу for


Скачать 3.04 Mb.
НазваниеРешение задач Аннотация. Урок посвящен циклу for
Дата28.06.2022
Размер3.04 Mb.
Формат файлаdocx
Имя файла5. Python.docx
ТипРешение
#618203
страница8 из 23
1   ...   4   5   6   7   8   9   10   11   ...   23

Сигнальные метки


Сигнальная метка (флажок) может использоваться, когда надо чтобы одна часть программы узнала, о происходящем в другой части программы.
Напишем программу, определяющую, что натуральное число является простым:

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
1   ...   4   5   6   7   8   9   10   11   ...   23


написать администратору сайта