Уроки на Python (часть 2, для начинающих, "Ветвление")
учебно-методический материал по информатике и икт (6, 7, 8 класс)

Курилов Игорь Анатольевич

Методическое пособие на 4 урока по теме "Ветвление на Python"

Скачать:


Предварительный просмотр:

Уроки на Python (часть 2 «Ветвление»)

1.Введение

Что такеое ветвление?

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

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

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

Полное и неполное ветвление

Пример 1: Рассмотрим запись ветвления на примере нахождения максимального значения из 2-х чисел.

Вариант 1:

if a > b: m = a

else: m = b

Вариант 2:

m = a if a > b else b

Вариант 1 и 2 используют полную форму ветвления, а можно обойтись неполной формой.

Вариант 3:

m = a

if b > a: m = b

Вариант 4:

Кроме всего в Python есть функция max (и min) и можно обойтись вовсе без ветвления:

m = max( a, b )

Аналогично можно найти max (min) из 3, 4-х и т.д чисел.

Составной оператор

Часто при выполнении какого-то условия нужно выполнить сразу несколько действий.

Пример 1: Обмен значений двух переменных (ячеек памяти):

if a > b:

   dop = a

   a = b

   b = dop

Пример 2: Определение максимума и минимума

Вариант 1:

if a > b:

     ma=a

     mi=b

else:

     ma=b

     mi=a

Вариант 2:

Заметим, что в Python, в отличие от многих других языков программирования, есть множественное присваивание, которое позволяет выполнить такой обмен значительно проще (пример 1): a, b = b, a

Аналогично можно производить более сложные перестановки, например:

a, b, c = b, с, a

Вложенные условные операторы

Условный оператор находящийся внутри блока «иначе» (else) называется вложенным условным оператором. Использование вложенных условных операторов позволяет выбрать один из нескольких (а не только из двух) вариантов.

Пример 1: A возраст Александра, B возраст Владимира. Нужно определить,

кто из них старше или оба одного возраста.

if A > B:

     print( "Александр старше" )

 else:

     if A == B:

        print( "Одного возраста" )

     else:

        print( "Владимир старше" )

Обратите внимание на отступы: слова if, elif и else находятся на одном уровне.

Пример 2:Скидка при 1500 рублей.

В цепочке операторов if-elif-elif-… срабатывает первое истинное условие.

cost = 1500

if cost < 1000:

   print( "Скидок нет." )

elif cost < 2000:

   print( "Скидка 2%." )

elif cost < 5000:

   print( "Скидка 5%." )

else:

   print( "Скидка 10%." )

Выводит «Скидка 2%.», хотя условие cost < 5000 тоже выполняется.

Сложные условия

В сложных условиях используется одна из логических операций: «И» (and), «ИЛИ» (or), «НЕ» (not).

Пример 1: Прием на работу

if age >= 21 and age <= 40:

   print( "подходит" )

else:

  print( "не подходит" )

В программе на языке Python можно сразу проверить выполнение двойного неравенства:

if  21 <= age <= 40:

    print("подходит")

else:

    print("не подходит")

Пример 2: Сложное условие с операцией «И»

Предположим, что нам надо убедиться, что значение целой переменной a – двухзначное число, которое делится на 5. Для этого нужно, чтобы одновременно выполнились три условия:

1) число не меньше 10;

2) число меньше 100;

3) число делится на 5, то есть остаток от его деления на 5 равен нулю.

В условном операторе эти три простых условия должны быть

связаны с помощью двух операций «И»:

if 10 <= a and a < 100 and a % 5 == 0:

   print( "Да!" )

else:

  print( "Нет." )

Пример 3: Сложное условие с операцией «ИЛИ»

Узнать, полетит ли самолет в этот день недели. Самолеты летают по вторникам и пятницам

if day == 2 or day == 5:

   print( "Полетит!" )

else:

   print( "Нет рейса." )

Пример 4: Сложное условие с операцией «НЕ»

Узнать, есть ли уроки физической культуры в этот день недели. Урок физической культуры есть во вторник, четверг и субботу.

if not( day == 2 or day == 4 or day==6 ):

   print( "Есть урок" )

else:

   print( "Урока нет" )

Если в сложном условии встречается несколько разных операций, они выполняются в следующем порядке:

1) операции в скобках;

2) операции «НЕ»;

3) операции «И»;

4) операции «ИЛИ».

Логические переменные

В языке Python можно использовать переменные, которые принимают только логические значения – True («истина») или False («ложь»):

b = True

b = False

В логической переменной можно хранить значение какого-то условия и затем использовать его в условном операторе:

fly = (d = 2) or (d = 5)

if not fly: print( "Нет рейса." )

else: print( "Полетит!" )

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

C:\Users\Игорь\Desktop\Незнайка-w1934.png

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

Задачи:

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

2. Напишите программу, которая получает четыре числа – рост 4-х школьников, и выводит сообщение «По росту.», если числа введены по возрастанию (неубыванию), или сообщение «Не по росту!», если они введены в другом порядке..

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

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

Задачи:C:\Users\Игорь\Desktop\225144-d3d9446802a44259755d38e6d163e820.jpg

1. Напишите программу, которая получает с клавиатуры целое число и выводит ответ на вопрос: «Верно ли, что было получено трёхзначное число?».

2. Напишите программу, которая определяет, принадлежит ли число x отрезку [a; b]. Все числа вещественные, значения x, a и b вводятся с клавиатуры. Разработайте два варианта программы: с использованием вложенных условных операторов и со сложным условием.

3. *Напишите программу, которая получает трёхзначное число и определяет, верно ли, что все его цифры разные (программа должна вывести ответ «да» или «нет»).

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

Случайные числа – это последовательность чисел, в которой невозможно предсказать следующее число, даже зная все предыдущие.

Функции для работы с псевдослучайными числами в языке Python собраны в модуле random. В библиотеке Python используется один из наиболее совершенных алгоритмов для генерации псевдослучайных чисел – «вихрь Мерсенна», разработанный в 1997 году.

Для получения псевдослучайных чисел в заданном диапазоне мы будем использовать функции из модуля random:

• randint(a,b) – случайное целое число на отрезке [a; b];

• uniform(a,b) – случайное вещественное число на отрезке [a; b].

Для того чтобы записать в переменную n случайное число на отрезке [1; 6] (результат бросания игрального кубика), можно использовать такие команды:

from random import randinthttp://70.dou.spb.ru/images/0_5ea51_1d883b86_L.png

n = randint( 1, 6 )

В первой строке из модуля random импортируется (загружается) функция randint, во второй она вызывается для получения случайного числа.

Вещественное случайное число на отрезке [5; 12] получается так:

from random import uniform

x = uniform( 5, 12 )

Задачи:

1. Напишите программу «Спортлото», которая выводит 5 чисел из 36 случайным образом.  

2.Напишите программу, которая получает с клавиатуры номер месяца и определяет, сколько дней в этом месяце. При вводе неверного номера месяца должно быть выведено сообщение об ошибке (ввод месяца можно осуществить случайным образом).

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

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

В языке Python работы со строками используется специальный тип данных str (от английского слова string), который позволяетhttps://avatars.mds.yandex.net/get-pdb/963318/e319e5c9-a792-46cb-a4aa-def648441d88/s1200

• работать с целой символьной строкой как с единым объектом;

• использовать строки переменной длины.

Символьная строка – это последовательность символов.

Для ввода значения строковой переменной с клавиатуры используется функция input:

s = input()

Обратите внимание по умолчанию ввод – это ввод символьной переменной!

Чтобы перевести из символьного типа строку из цифр в целочисленный тип достаточно написать n = int(s).

ЭТО УПРОЩАЕТ РЕШЕНИЕ МНОГИХ ЗАДАЧ!

Встроенная функция len определяет длину строки – количество символов в ней. Вот так в переменную n записывается длина строки s:

n = len(s)

Сравнение строк

Строки можно сравнивать между собой так же, как числа.

Например, можно проверить равенство двух строк, определить, какая из двух строк больше, какая – меньше. Если строки состоят только из русских или только из латинских букв, то меньше будет та строка, которая идет раньше в алфавитном списке. Например, слово «паровоз» будет «меньше», чем слово «пароход»: они отличаются в пятой букве и «в» < «х».

Сложение и умножение

Оператор «+» используется для «сложения» (объединения, сцепления) строк. Эта операция иногда называется конкатенация. Например:

s1 = "Привет"

s2 = "Вася"

s = s1 + ", " + s2 + "!"

В язык Python введена операция умножения строки на число: она заменяет многократное сложение. Например,

s = "Уа! Уа! Уа! Уа! Уа! Уа! Уа! Уа! Уа! Уа! "

можно заменить на

s = "Уа! "*10

или

s = 10*"Уа! "

Обращение к символам

В Python каждый символ строки имеет свой номер (индекс), причём нумерация, как и во многих других языках программирования (С, C++, Java), всегда начинается с нуля.

hello = " П р и в е т ! "

К любому символу можно обратиться по индексу, записав индекс в квадратных скобках после имени строки:

print( hello[1] ) # р

print( hello[5] + hello[2] + "к" ) # тик

В языке Python можно указывать отрицательные индексы.

Это значит, что отсчёт ведётся от конца строки, так что символ

hello[-1] – это последний символ строки hello:

индексы –7 –6 –5 –4 –3 –2 –1

hello = " П р и в е т ! "

Чтобы рассчитать «обычную» позицию символа в строке, к отрицательному индексу нужно добавить длину строки. Например,

hello[-1] = hello[len(hello)-1] = hello[6]

Предыдущую программу можно было переписать, используя отрицательные индексы:

print( hello[-6] ) # р

print( hello[-2] + hello[-5] + "к" ) # тик

Срезы

Для того, чтобы выделить часть строки (подстроку), в языке Python применяется операция получения среза (англ. slicing).

Например, s[3:8] означает «символы строки s с 3-го по 7-й» (то есть до 8-го, не включая его). Следующий фрагмент копирует в строку s1 символы строки s с 3-го по 7-й (всего 5 символов):

s = "0123456789"

s1 = s[3:8]http://www.playcast.ru/uploads/2017/03/28/22138419.png

Подробнее читайте в учебниках и сайтах по Python.

Задачи:

1. Напишите программу, определяющую, какое из двух введенных слов с клавиатуры больше.

2. Напишите программу, которая получает с клавиатуры 5-ое число и определяет какая цифра в числе больше (2-ая или 4-ая). Решить, используя обращение к символам.

3*. «Кто старше». Петя и Ваня записали свою дату рождения (день, месяц, год), но забыли поставить разделительную точку. Определите, кто из мальчиков старше по году рождения, либо они родились в один год.

Входные данные (N)

Выходные данные

12.12.2002

11.12.2002

В один год

12.12.2002

11.12.2003

Старший Петя

Учитель информатики высшей категории Курилов И.А.


По теме: методические разработки, презентации и конспекты

Уроки на Python (часть 1, для начинающих)

Для начинающих программировать на Python. Первые 4 урока "Линейные программы" (часть 1). Для 6-8 класса....

Уроки на Python (часть 3, для начинающих, "Циклы")

Методическое пособие на 4 урока по теме "Циклы на Python"...

Методическая разработка урока "Обобщающее повторение частей речи. Морфологический разбор самостоятельных и служебных частей речи" (10 класс)

Методическая разработка урока "Обобщающее повторение частей речи. морфологический разбор самостоятельных  служебных частей речи" (10 класс)...

Презентация к уроку математики "Нахождение части целого и целого по его части."

Презентация к уроку математики "Нахождение части целого и целого по его части."...

Уроки на Python (часть 4, "Массивы") НОВОЕ!

Методическое пособие на 4 урока по теме "Массивы на Python"...

Технологическая карта урока Учебный предмет: русский язык Класс: 6 Автор УМК: русский язык в 2-х частях М.Т. Баранов, Т.А. Ладыженская и др. Тема урока: «Местоимение как часть речи» Тип урока: урок «открытия» новых знаний

Технологическая карта урока Учебный предмет: русский языкКласс: 6Автор УМК: русский язык в 2-х частях М.Т. Баранов, Т.А. Ладыженская и др.Тема урока: «Местоимение как часть речи»Тип у...