Уроки на Python (часть 3 «Циклы»)

  • docx
  • 04.05.2020
Публикация в СМИ для учителей

Публикация в СМИ для учителей

Бесплатное участие. Свидетельство СМИ сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 2. Уроки на Python (часть 3 «Циклы»).docx

Уроки на Python (часть 3 «Циклы»)

1.Введение

Что такое циклы?

Цикл – это алгоритм, в котором несколько раз выполняется последовательности действий в зависимости от условия (или заранее известно количество повторяемых действий).

 

Основные циклические алгоритмы

         Алгоритм вычисления значения функции на интервале (с любым шагом).

         Алгоритм вычисления среднего значения из n чисел.

         Алгоритм вычисления max(min) из n чисел.

         Алгоритм вычисления факториала.

         Алгоритм вычисления значения xk.

         Алгоритм вычисления результатов связанных с четными и нечетными значениями (одно простое или составное условие).

         Алгоритм вычисления наибольшего общего делителя (Алгоритм Евклида).

         Алгоритм вычисления суммы цифр заданного числа.

         Алгоритм вычисления простых последовательностей и прогрессий.

         Алгоритм вычисления чисел Фибоначчи и т.д.

 

Как организовать циклы на Python?

Циклы с условием

Цикл, в котором проверка условия выполняется при входе (перед выполнением очередного шага) называется циклом с предусловием, то есть циклом с предварительной проверкой условия.

 

Пример 1: Сумма цифр n-значного числа

Вариант 1:

Где s=0 – входное значение переменной или инициализация переменной:

s += digit (классический вариант s=s+digit)

 

n = int( input("Введите число: ") )

s = 0

while n != 0:

   digit = n % 10

   s += digit

   n = n // 10

print( "Сумма цифр", s )

 

Вариант 2 (вариант с использованием символьных переменных):

s = input("Введите число: ")

n=len(s)

s = 0

for i in range(n) :

   s += int(s[i])

print( "Сумма цифр:", s )

 

 

 

 

 

Пример 2: Алгоритм Евклида - находит наибольший общий делитель (НОД) двух натуральных чисел (заменяет большее из двух заданных чисел на их разность до тех пор, пока они не станут равны).

 

while a != 0 and b != 0:

   if a > b:

       a = a % b

   else:

       b = b % a

print( "NOD=", a ) #можно и b

 

Циклы с переменной

Цикл, в котором заранее задается число повторений тела цикла (действия внутри цикла).

Пример 1: 10 раз выводит слово школа

for i in range(10):

    print( "школа" )

 

Здесь слово for означает «для», переменная i (её называют переменной цикла) изменяется в диапазоне (in range) от 0 до 10, не включая 10 (то есть от 0 до 9 включительно). Таким образом, цикл выполняется для i = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 – ровно 10 раз. Переменная i –это счётчик выполненных итераций цикла.

Можно было записать этот цикл и по-другому:

for i in [0,1,2,3,4,5,6,7,8,9]:

    print( "школа" )

В квадратных скобках через запятую перечислены все значения переменной, при которых выполняется цикл. Если их много, такой способ неудобен, лучше использовать встроенную функцию range.

 

Пример 2: Вывод чисел 2 в степени от 1 до 10

k = 2

for i in range(1,11):

   print( k )

   k*= 2

 

Пример 3: Квадраты всех чисел от 1 до 10 в обратном порядке.

for i in range(10,0,-1):

    print( i*i )

В этом примере шаг равен –1, также шаг может быть любым целым числом.

 

Практическое занятие №1 «Циклические алгоритмы»

 

Пример*: Сколько раз в числе встречается максимальная цифра.

s=input()

m=int(s[0])

for i in range(1,len(s)):

    if m>int(s[i]):m=int(s[i])

k=0

for i in range(len(s)):

    if m==int(s[i]):k+=1

print( k )

 

 

По примерам, которые приведены выше, решите следующие задания.

Задачи:

1. Напишите программу, которая получает с клавиатуры натуральное число и определяет, сколько раз в его десятичной записи встречается цифра 7.

2. Напишите программу, которая получает с клавиатуры натуральное число и находит наименьшую цифру в его десятичной записи.

3. *Напишите программу, которая получает с клавиатуры натуральное число и определяет, есть ли в его десятичной записи две одинаковые цифры, стоящие рядом.

 

Практическое занятие №2 «Циклические алгоритмы»

 

Пример: На вход программы поступает неизвестное количество целых чисел, ввод заканчивается нулем. Определить сумму всех двухзначных чисел.

summa = 0

a = int( input("Введите число: ") )

while a!= 0:

   if 9<a<100:summa+=a

   a = int( input("Введите число: ") )

print( "Сумма чисел 9<a<100:", summa )

 

Задачи:

1. На вход программы поступает неизвестное количество целых чисел, ввод заканчивается нулём. Определить сумму и среднее арифметическое этих чисел.

2. На вход программы поступает неизвестное количество целых чисел, ввод заканчивается нулём. Определить, сколько из этих чисел делятся на 8 и сколько оканчиваются на 8.

3. На вход программы поступает неизвестное количество целых чисел, ввод заканчивается нулём. Найти максимальное число из введённых нечётных чисел.

 

Практическое занятие №3 «Циклические алгоритмы»

 

Пример: Вывести первые десять членов геометрической прогрессии (каждое следующее число больше предыдущего в k раз).

summa = 0

a = float( input("Введите первый член последовательности: ") )

k = float( input("Введите шаг прогрессии: ") )

print(a)

for i in range(1,10):

     a*=k  

     print(a)

 

Задачи:

1. С клавиатуры вводится натуральное число N. Программа должна найти факториал этого числа (обозначается как N!) – произведение всех натуральных чисел от 1 до N.

2. Напишите программу, которая получает с клавиатуры натуральное число и определяет, простое оно или нет.

3. Напишите программу, которая находит N Фибоначчи. N вводится с клавиатуры.

 

http://70.dou.spb.ru/images/0_5ea51_1d883b86_L.png

 

 

 

 

Практическое занятие №4 «Циклические алгоритмы»

 

Пример: Напишите программу, которая выводит все возможные значение функции   на интервале от -5 до 5 с шагом 1

for i in range(-5,5,1):

     if (2-i)!=0:print(i, i/(2-i))

     else: print(i, "no")

 

Задачи:

1. Напишите программу, которая выводит значение функции y=x2-2x+1 на интервале от -10 до 10 с шагом 0,5.

2. Напишите программу, которая выводит все возможные значение функции   на интервале от -10 до 10 с шагом 1.

http://www.playcast.ru/uploads/2017/03/28/22138419.png3*. Напишите программу, которая вычисляет количество Незнайкиных оценок через N недель, если каждую следующую неделю он получал на k оценок больше предыдущей недели. В первую неделю Незнайка получил a оценок.

https://avatars.mds.yandex.net/get-pdb/963318/e319e5c9-a792-46cb-a4aa-def648441d88/s1200