Уроки на Python (часть 2, для начинающих, "Ветвление")
учебно-методический материал по информатике и икт (6, 7, 8 класс)
Методическое пособие на 4 урока по теме "Ветвление на Python"
Скачать:
Вложение | Размер |
---|---|
Методическое пособие на 4 урока по теме "Ветвление на Python" | 299.74 КБ |
Предварительный просмотр:
Уроки на 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 «Ветвляющие алгоритмы»
По примерам, которые приведены во введении, решите следующие задания.
Задачи:
1. Напишите программу, которая получает с клавиатуры три целых числа и находит наибольшее и наименьшее из них.
2. Напишите программу, которая получает четыре числа – рост 4-х школьников, и выводит сообщение «По росту.», если числа введены по возрастанию (неубыванию), или сообщение «Не по росту!», если они введены в другом порядке..
3. *Напишите программу, которая получает с клавиатуры номер месяца и выводит название соответствующего ему времени года или сообщение об ошибке.
Практическое занятие №2 «Ветвляющие алгоритмы»
Задачи:
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 randint
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), который позволяет
• работать с целой символьной строкой как с единым объектом;
• использовать строки переменной длины.
Символьная строка – это последовательность символов.
Для ввода значения строковой переменной с клавиатуры используется функция 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]
Подробнее читайте в учебниках и сайтах по Python.
Задачи:
1. Напишите программу, определяющую, какое из двух введенных слов с клавиатуры больше.
2. Напишите программу, которая получает с клавиатуры 5-ое число и определяет какая цифра в числе больше (2-ая или 4-ая). Решить, используя обращение к символам.
3*. «Кто старше». Петя и Ваня записали свою дату рождения (день, месяц, год), но забыли поставить разделительную точку. Определите, кто из мальчиков старше по году рождения, либо они родились в один год.
Входные данные (N) | Выходные данные |
12.12.2002 11.12.2002 | В один год |
12.12.2002 11.12.2003 | Старший Петя |
Учитель информатики высшей категории Курилов И.А.
По теме: методические разработки, презентации и конспекты
Презентация к уроку в 5 классе «Смешанные числа 2 урок» из двух частей
Презентация к уроку двух частей...
Уроки на Python (часть 1, для начинающих)
Для начинающих программировать на Python. Первые 4 урока "Линейные программы" (часть 1). Для 6-8 класса....
Уроки на Python (часть 3, для начинающих, "Циклы")
Методическое пособие на 4 урока по теме "Циклы на Python"...
Методическая разработка урока "Обобщающее повторение частей речи. Морфологический разбор самостоятельных и служебных частей речи" (10 класс)
Методическая разработка урока "Обобщающее повторение частей речи. морфологический разбор самостоятельных служебных частей речи" (10 класс)...
Презентация к уроку математики "Нахождение части целого и целого по его части."
Презентация к уроку математики "Нахождение части целого и целого по его части."...
Уроки на Python (часть 4, "Массивы") НОВОЕ!
Методическое пособие на 4 урока по теме "Массивы на Python"...
Технологическая карта урока Учебный предмет: русский язык Класс: 6 Автор УМК: русский язык в 2-х частях М.Т. Баранов, Т.А. Ладыженская и др. Тема урока: «Местоимение как часть речи» Тип урока: урок «открытия» новых знаний
Технологическая карта урока Учебный предмет: русский языкКласс: 6Автор УМК: русский язык в 2-х частях М.Т. Баранов, Т.А. Ладыженская и др.Тема урока: «Местоимение как часть речи»Тип у...