практические работы по питону. МУ_ИНФОРМАТИКА_ПРОГРАММИРОВАНИЕ_ПИТОН Коренюгина_2021. Методические указания по подготовке к практическим занятиям, в том числе в интерактивной форме, и самостоятельному изучению дисциплины для школьников 911 классов общеобразовательных средних учебных заведений
Скачать 2.38 Mb.
|
Пример 6. Объем прямоугольного параллелепипеда Составить программу для вычисления и вывода объема прямоугольного параллелепипеда по трем сторонам, значения длин сторон пользователь вводит с клавиатуры Таблица 6 Формулы и чертеж Программа Формулы: Объем прямоугольного параллелепипеда c b a V import math print('введите стороны прямоугольного параллелепипеда') a = int(input('a=')) b = int(input('b=')) c = int(input('c=')) v = a*b*c print('v=',v) print('Ваша ФАМИЛИЯ') 18 Пример 7. Объем конуса Составить программу для вычисления и вывода объема конуса по радиусу основания и высоте, значения длин которых пользователь вводит с клавиатуры План действий в программе 1) Подключить математический модуль 2) Запросить у пользователя значение радиуса R= 3) Запросить у пользователя значение высоты h= 4) Вычислить объем по формуле V=(1/3)*3.14*R*R*h 5) напечатать сообщение 'Объем конуса V=' и указать значение Таблица 7 Программа Результат import math print('введите радиус основания конуса R=') R = int(input('R=')) print('введите высоту конуса h=') h = int(input('h=')) V =(1/3)*3.14*R*R*h print('Объем конуса V=',V) print('Ваша ФАМИЛИЯ') Пример 8. Площадь полной поверхности прямоугольного параллелепипеда Составить программу для вычисления и вывода площади полной поверхности прямоугольного параллелепипеда по трем сторонам, значения длин сторон пользователь вводит с клавиатуры. Таблица 8 Программа+ Результат import math print('введите стороны прямоугольного параллелепипеда') a = int(input('a=')) b = int(input('b=')) c = int(input('c=')) s = 2*(a*b+a*c+b*c) print('s=',s) 19 print('Ваша ФАМИЛИЯ') Пример 9. Диагональ прямоугольного параллелепипеда Составить программу для вычисления и вывода диагонали прямоугольного параллелепипеда по трем сторонам, значения длин сторон пользователь вводит с клавиатуры Программа+ Результат import math print('введите стороны прямоугольного параллелепипеда') a = int(input('a=')) b = int(input('b=')) c = int(input('c=')) d = math.sqrt(a*a+b*b+c*c) print('d=',d) print('Ваша ФАМИЛИЯ') Домашнее задание Задание ДЗ 1. Составить программу для вычисления и вывода площади прямоугольника по двум сторонам, значения длин сторон пользователь вводит с клавиатуры. Программа Результат Практическая работа №2 к уроку 2 Вычислительная геометрия Python 1. Построение прямой по двум точкам; 2. Построение точки пересечения двух прямых; 3. Построение прямой, перпендикулярной (параллельной) данной, и проходящей через заданную точку; 4. Проверка принадлежности точки отрезку; 5. Проверка принадлежности точки многоугольнику; 6. Вычисление площади треугольника; 7. Вычисление площади многоугольника; 8. Построение выпуклой оболочки; 9. Вычисление угла между векторами; 10. Вычисление скалярного, векторного и смешанного произведений; 11. Сложение и вычитание векторов, умножение вектора на число; 12. Вычисление полярного угла точки; 13. Построение точек пересечения двух окружностей. 20 Пример 1 Построить график прямой линии Программа Результат import turtle t = turtle.Turtle() t.shape('turtle') import math def graphics (n): for i in range(n): y = 50*i +3 t.goto(i*10,y) graphics(6) turtle.write('Ваша ФАМИЛИЯ') Урок 3 Линейные алгоритмы в языке Python 3 Практическая работа №3 к уроку 3 Линейные алгоритмы в языке Python 3 Задание 1. Правильный треугольник Рисуем правильный треугольник со стороной 100 пикселей Программа Результат import turtle t = turtle.Turtle() t.shape('turtle') t.fd(100) t.left(120) t.fd(100) t.left(120) t.fd(100) t.left(120) t.screen.exitonclick() t.screen.mainloop() 21 Задание 2. Квадрат Рисуем квадрат со стороной 100 пикселей Программа Результат import turtle t = turtle.Turtle() t.shape('turtle') t.fd(100) t.left(90) t.fd(100) t.left(90) t.fd(100) t.left(90) t.fd(100) t.left(90) t.screen.exitonclick() t.screen.mainloop() УРОК 4 Алгоритмическая структура ветвление в Python Условная инструкция if-elif-else (еѐ ещѐ иногда называют оператором ветвления) выполняет определенный набор инструкций в зависимости от некоторого условия. Конструкция if – else Конструкция if – elif – else if логическое выражение: команда_1 команда_2 команда_n if логическое выражение: команда_1 команда_2 команда_n else: команда_1 команда_2 команда_n if логическое выражение_1: команда_1 команда_2 команда_n elif логическое выражение_2: команда_1 команда_2 команда_n elif логическое выражение_3: команда_1 команда_2 команда_n else: команда_1 команда_2 команда_n 22 Синтаксис инструкции ветвление (if, if-else, if-elif-else) Сначала записывается часть if с условным выражением, далее могут следовать одна или более необязательных частей elif, и, наконец, необязательная часть else. Общая форма записи условной инструкции if выглядит следующим образом: Условный оператор ветвления if, if-else, if-elif-else Задача Дано 3 числа. Найти минимальное среди них и вывести на экран Задача Запросить возраст человека. В зависимости от возраста он подходит для работы или не подходит для работы. Подходящий возраст в промежутке от import math print (" Введите возраст ") age = float(input("age= ")) if age >= 25 and age <=40: print ("подходит") else: print("не подходит") Задача Запросить летный день. import math print (" Введите день ") day = float(input("day= ")) if day == 1 or day ==4: print ("fly") 23 else: print("not fly") Задача Написать программу, которая вводит с клавиатуры номер месяца и выводит количество дней в месяце i = int(input()) if i == 1 or i == 3 or i == 5 or i == 7 or i == 8 or i == 10 or i == 12: print(31) elif i == 4 or i == 6 or i == 9 or i == 11: print(30) elif i == 2: print(28) else: print('такого месяца нет!') Задача Доработать и исправить программу, которая вводит с клавиатуры номер месяца и выводит название и количество дней в месяце MonthDict={ 1 : "January" , 2 : "February" , 3 : "March" , 4 : "April" , 5 : "May" , 6 : "June" , 7 : "July" , 8 : "August" , 9 : "September" , 10 : "October" , 11 : "November" , 12 : "December" } if i == 1 or i == 3 or i == 5 or i == 7 or i == 8 or i == 10 or i == 12: print(31) elif i == 4 or i == 6 or i == 9 or i == 11: print(30) elif i == 2: print(28) else: print('такого месяца нет!') Задача Написать программу, которая вводит с клавиатуры номер месяца и выводит количество дней в месяце fruits = ["яблоко", "банан", "вишня"] for x in fruits: print(x) Написать программу в Питон У пользователя с клавиатуры запросить номер дня недели . В зависимости от номера дня выходной или рабочий z = 1 for dni in 'понедельник,', 'вторник,', 'среда,', 'четверг,', 'пятница,', 'суббота,', 'воскресенье,': z = str(z) 24 if dni == 'суббота,' or 'воскресенье,': print(z + '-й', 'день недели -', dni, 'выходной') else: print(z + '-й', 'день недели -', dni, 'рабочий день') z = int(z) z += 1 Вложенный цикл Вложенный цикл — это цикл в цикле. Он будет запускаться при каждой итерации основного цикла. Выведем все фрукты с каждым прилагательным: adj = ["желтый", "большой", "вкусный"] fruits = ["апельсин", "банан", "ананас"] for x in adj : for y in fruits : print( x , y ) Программа Результат import turtle t = turtle.Turtle() t.shape('turtle') for j in range (8): for i in range (5): t.circle(10) t.up() t.goto(i*30,j*20) t.down() Таблица 9 Программа Результат import turtle t = turtle.Turtle() t.shape('turtle') for j in range (8): for i in range (5): t.write('*') t.up() t.goto(i*30,j*20) t.down() 25 Практическая работа №4 к уроку 4 Операции ветвления Задание 4-1. Корни квадратного уравнения Таблица 10 К заданию 1 Найти корни квадратного уравнения Формулы и выводы Программа ax 2 + bx + c = 0 D = b 2 - 4ac Если D > 0, то квадратное уравнение имеет два корня; если D = 0, то 1 корень; если D < 0, то действительных корней нет. import math print("Введите коэффициенты для уравнения") print("ax^2 + bx + c = 0:") a = float(input("a = ")) b = float(input("b = ")) c = float(input("c = ")) d = b ** 2 - 4 * a * c print("Дискриминант D = %.2f" % d) if d > 0: x1 = (-b + math.sqrt(d)) / (2 * a) x2 = (-b - math.sqrt(d)) / (2 * a) print("x1 = %.2f \nx2 = %.2f" % (x1, x2)) elif d == 0: x = -b / (2 * a) print("x = %.2f" % x) else: print("Корней нет") Функция float() преобразует переданный ей аргумент в вещественное число. 26 Задание 4-2. В зависимости от введенного числа строит круг треугольник или квадрат import turtle t = turtle.Turtle() t.shape('turtle') import math x = int(input(' Введите номер города из списка 1 2 или 3 =')) if x == 1: d=200 else: if x == 2: d=400 else: d=350 t.screen.exitonclick() t.screen.mainloop() def stoimost(): gorod = int(entry_1()) if gorod == 1: tarif=200 s=tarif*1000 elif: gorod == 2: tarif=400 s=tarif*800 else: tarif=350 s=tarif*900 entry_3.delete(0, END) # очищаем текстовое поле полностью entry_3.insert(0, result) # вставляем результат t.screen.exitonclick() t.screen.mainloop() Задание 4-3 В зависимости от введенного числа ПОЖЕЛАНИЕ import turtle t = turtle.Turtle() t.shape('turtle') import math x = int(input(' Введите число 1 2 или 3 =')) if x == 1: t.write("ДОБРОЕ УТРО",font=('arial',24,'red')) else: if x == 2: t.write("ДОБРЫЙ ДЕНЬ",font=('arial',24,'green')) 27 else: t.write("СПОКОЙНОЙ НОЧИ",font=('arial',24,'blue')) t.screen.exitonclick() t.screen.mainloop() Задание 4-4 Вычислить площади фигур в зависимости от номера выбранной фигуры import math tip=str(input("Введите название фигуры =")) if tip=="1": a=float(input("Введите сторону a =")) b=float(input("Введите сторону b =")) c=float(input("Введите сторону c =")) p=(a+b+c)/2 s=math.sqrt((p*(p-a)*(p-b)*(p-c))) elif tip=="2": a=float(input("Введите сторону a =")) b=float(input("Введите сторону b =")) s=a*b elif tip=="3": r=float(input("Введите радиус r =")) s=math.pi*(r**2) print(s) Простой пример (напечатает 'true', так как 1 - истина): >>> if 1: ... print('true') ... else: ... print('false') true Чуть более сложный пример (его результат будет зависеть от того, что ввѐл пользователь): a = int(input()) if a < -5: print('Low') elif -5 <= a <= 5: print('Mid') else: print('High') Конструкция с несколькими elif может также служить отличной заменой конструкции switch - case в других языках программирования. Таблица 11 Программа Результат import math x = int(input(' Введите значение x=')) y = int(input('Введите значение y=')) if x > 0: if y > 0: # x>0, y>0 print("Первая четверть") else: # x>0, y<0 print("Четвертая четверть") 28 else: if y > 0: # x<0, y>0 print("Вторая четверть") else: # x<0, y<0 print("Третья четверть") Следующая инструкция: if X: A = Y else: A = Z довольно короткая, но, тем не менее, занимает целых 4 строки. Специально для таких случаев и было придумано выражение if/else: A = Y if X else Z В данной инструкции интерпретатор выполнит выражение Y, если X истинно, в противном случае выполнится выражение Z. >>> >>> A = 't' if 'spam' else 'f' Задание 4 Пинкод карты в кинотеатре Присвоить переменной пинкод. Запросить у пользователя код, сравнить их и выдать сообщение пользователю, если коды совпадают, то код верный, если коды не совпадают, то код неверный import math pin=321 x = int(input(' Введите значение кода=')) if x==pin: print("верно") else: print("неверно") Задание 5 Логин и пароль карты В словарь ввести логин и пароль. Запросить у пользователя логин и пароль, сравнить их и выдать сообщение пользователю, если совпадают, по все верно, если не совпадают, то логин или код неверный import math my={'Логин':444,'Пароль':555} a=my['Логин'] b=my['Пароль'] x = int(input(' Введите Логин=')) y = int(input(' Введите Пароль=')) if (x==a) and (y==b): print("верно") else: print("неверно") Задание 6 Бронирование билета ввести количество свободных мест в кинотеатре спросить у пользователя, сколько мест он хочет забронировать, сравнить количество свободных мест с количеством бронирования 29 Если количество мест бронирования меньше или равно количества свободных мест, то выдать сообщение места забронированы, и остаток свободных мест если количество мест бронирования больше свободных мест , то написать что мест не хватает и написать сколько разницу от мест бронирования отнять количество свободных мест УРОК 4 Строки в Python Задание 1. Присвоить Отдельно переменным фамилия имя и отчество и склеить ФИО fam="scobnikov" name="andrew" oth="Konstantinovich" fio=fam+" "+name+" "+oth+" " print(fio) Задание 2. По введенным фамилии имени и отчеству вывести фамилию и инициалы с точками. print("введите ваши фамилию имя и отчество через пробелы") fio=input() n1=fio.find(" ") fam=fio[:n1] io=fio[n1+1:] n2=io.find(" ") name=io[:n2] oth=io[n2+1:] finiz=fam+" "+name[0]+"."+oth[0]+"." print(finiz) УРОК 5 Массивы, списки, кортежи и словари в Python Списки Списки Python схожи с массивами в других языках. В Python, пустой список может быть создан следующим образом: создать список при помощи квадратных скобок, или при помощи встроенного инструмента Python – list. Список состоит из таких элементов, как строки, цифры, объекты и смеси типов. Таблица "методы списков" Метод Что делает list.append(x) Добавляет элемент в конец списка list.extend(L) Расширяет список list, добавляя в конец все элементы списка L list.insert(i, x) Вставляет на i-ый элемент значение x list.remove(x) Удаляет первый элемент в списке, имеющий значение x. ValueError, если такого элемента не существует 30 Метод Что делает list.pop([i]) Удаляет i-ый элемент и возвращает его. Если индекс не указан, удаляется последний элемент list.index(x, [start [, end]]) Возвращает положение первого элемента со значением x (при этом поиск ведется от start до end) list.count(x) Возвращает количество элементов со значением x list.sort([key=функция]) Сортирует список на основе функции list.reverse() Разворачивает список list.copy() Поверхностная копия списка list.clear() Очищает список В какой-то момент вам может понадобиться скомбинировать два списка вместе. Первый способ сделать это – при помощи метода extend: сортировать список от всех пар ключ-значение: >>> d = {'a': 10, 'b': 20, 'c': 30} >>> d {'a': 10, 'b': 20, 'c': 30} >>> d.clear() >>> d {} d.get( Возвращает значение ключа, если он существует в словаре. Метод Python dictionary .get() предоставляет удобный способ получения значения ключа из словаря без предварительной проверки существования ключа и без возникновения ошибки. d.get( Если >>> d = {'a': 10, 'b': 20, 'c': 30} >>> print(d.get('b')) 20 >>> print(d.get('z')) None Если >>> print(d.get('z', -1)) -1 d.items() Возвращает список пар ключ-значение в словаре. d.items() возвращает список кортежей, содержащих пары ключ-значение в d. Первый элемент в каждом кортеже – это ключ, а второй элемент – значение ключа: >>> d = {'a': 10, 'b': 20, 'c': 30} >>> d {'a': 10, 'b': 20, 'c': 30} >>> list(d.items()) [('a', 10), ('b', 20), ('c', 30)] 31 >>> list(d.items())[1][0] 'b' >>> list(d.items())[1][1] 20 d.keys() Возвращает список ключей в словаре. d.keys() возвращает список всех ключей в d: >>> d = {'a': 10, 'b': 20, 'c': 30} >>> d {'a': 10, 'b': 20, 'c': 30} >>> list(d.keys()) ['a', 'b', 'c'] d.values() Возвращает список значений в словаре. d.values() возвращает список всех значений в d: >>> d = {'a': 10, 'b': 20, 'c': 30} >>> d {'a': 10, 'b': 20, 'c': 30} >>> list(d.values()) [10, 20, 30] ГОРОДА Возвращает список значений в словаре. d.values() возвращает список всех значений в d: >>> d = {'a': 10, 'b': 20, 'c': 30} >>> d {'a': 10, 'b': 20, 'c': 30} >>> list(d.values()) [10, 20, 30] Любые повторяющиеся значения в d будут возвращаться столько раз, сколько они встречаются: >>> d = {'a': 10, 'b': 10, 'c': 10} >>> d {'a': 10, 'b': 10, 'c': 10} >>> list(d.values()) [10, 10, 10] Техническое примечание: методы .items(), .keys() и .values() на самом деле возвращают нечто, называемое объектом представления. Объект представления словаря более или менее похож на окно с ключами и значениями. Для практических целей эти методы можно рассматривать как возвращающие списки ключей и значений словаря. d.pop( Удаляет ключ из словаря, если он присутствует, и возвращает его значение. Если >>> d = {'a': 10, 'b': 20, 'c': 30} >>> d.pop('b') 20 >>> d 32 {'a': 10, 'c': 30} d.pop( >>> d = {'a': 10, 'b': 20, 'c': 30} >>> d.pop('z') Traceback (most recent call last): File " ", line 1, in KeyError: 'z' Если >>> d = {'a': 10, 'b': 20, 'c': 30} >>> d.pop('z', -1) -1 >>> d {'a': 10, 'b': 20, 'c': 30} d.popitem() Удаляет пару ключ-значение из словаря d.popitem() удаляет последнюю пару ключ-значение, добавленную из d, и возвращает ее как кортеж: >>> d = {'a': 10, 'b': 20, 'c': 30} >>> d.popitem() ('c', 30) >>> d {'a': 10, 'b': 20} >>> d.popitem() ('b', 20) >>> d {'a': 10} Если в d пусто, d.popitem() вызывает исключение KeyError: >>> d = {} >>> d.popitem() Traceback (most recent call last): File " ", line 1, in KeyError: 'popitem(): dictionary is empty' Примечание. В версиях Python менее 3.6 popitem () будет возвращать произвольную (случайную) пару ключ-значение, поскольку словари Python были неупорядоченными до версии 3.6. d.update( Объединяет словарь с другим словарем или с итерацией пар ключ-значение. Если Если ключ отсутствует в d, пара ключ-значение из Если ключ уже присутствует в d, соответствующее значение в d для этого ключа обновляется до значения из Вот пример объединения двух словарей: >>> d1 = {'a': 10, 'b': 20, 'c': 30} >>> d2 = {'b': 200, 'd': 400} 33 >>> d1.update(d2) >>> d1 {'a': 10, 'b': 200, 'c': 30, 'd': 400} В этом примере ключ ‗b‘ уже существует в d1, поэтому его значение обновляется до 200, значение для этого ключа из d2. Однако в d1 нет ключа ‗d‘, поэтому эта пара ―ключ- значение‖ добавляется из d2. >>> d1 = {'a': 10, 'b': 20, 'c': 30} >>> d1.update([('b', 200), ('d', 400)]) >>> d1 {'a': 10, 'b': 200, 'c': 30, 'd': 400} Или значения для объединения можно указать в виде списка аргументов ключевого слова: >>> d1 = {'a': 10, 'b': 20, 'c': 30} >>> d1.update(b=200, d=400) >>> d1 {'a': 10, 'b': 200, 'c': 30, 'd': 400} Вывод Списки и словари – два наиболее часто используемых типа Python. Доступ к элементам списков осуществляется по числовому индексу в зависимости от порядка, а к элементам словаря – по ключу. stoliza={'Russia':'Moskva','USA':'Vashington'} y=stoliza.get('Russia') print(y) x = stoliza['USA'] print(x) Извлечение элементов словаря по ключу dict[key] в Python. Справочник по языку Python3 Операции над словарями dict в Python. Извлечение элементов словаря по ключу dict[key] в Python. Синтаксис: dict[key] Параметры: key - ключ словаря Возвращаемое значение: элемент словаря, соответствующий ключу key Описание: Операция dict[key] вернет элемент словаря dict с ключом key. Операция вызывает исключение KeyError, если ключ key отсутствует в словаре. Если подкласс dict определяет метод __missing__() и ключ отсутствует, операция d[key] вызывает этот метод с ключом key в качестве аргумента. Затем операция d[key] возвращает или вызывает все, что было возвращено или вызвано вызовом __missing__(key). Никакие другие операции или методы не вызывают __missing__(). Если __missing__() не определен, то возникает KeyError. __missing__() должен быть методом, он не может быть переменной экземпляра. >>> class Counter(dict): ... def __missing__(self, key): ... return 0 >>> c = Counter() |