практические работы по питону. МУ_ИНФОРМАТИКА_ПРОГРАММИРОВАНИЕ_ПИТОН Коренюгина_2021. Методические указания по подготовке к практическим занятиям, в том числе в интерактивной форме, и самостоятельному изучению дисциплины для школьников 911 классов общеобразовательных средних учебных заведений
Скачать 2.38 Mb.
|
Примеры использования: ГОРОД >>> x = {'Москва': 1, 'Питер': 2, 'Красноярск': 3, 'Новосибирск': 4} >>> x['Питер'] # 2 >>> x['Новосибирск'] # 4 >>> x['Кемерово'] # Traceback (most recent call last): # File " # KeyError: 'Кемерово' d = { 1: '1', '2': 2, 3: '3', } def get_key(d, value): for k, v in d.items(): if v == value: return k print(get_key(d, '1')) print(get_key(d, 2)) print(get_key(d, 42)) когда нужно получать значение по ключу и ключ по значению, нужно завести два словаря. temp = {'response': [555, {'nomer': 750, 'name': 'Оля'}, {'nomer': 24, 'name': 'Петя'}, {'nomer': 741, 'name': 'Игорь'}, {'nomer': 11, 'name': 'Юля'}, {'nomer': 254, 'name': 'Лена'},]} for t in temp['response'][1:]: print("{:<4} {}".format(t['nomer'], t['name'])) 35 from random import randint A=25*[0] K=0 for i in range(len(A)): A[i]=randint(1,5) if A[i]>3:K+=1 print(A) print("K=",K) Решение одним из вариантов может быть 1 2 for t in temp['response'][1:]: print(("{:<6} "*len(t)).format(t.get('nomer'), t.get('name'), t.get('city'))) 1 2 for t in temp['response'][1:]: print("{:<4} {:<6} {}".format(t.get('nomer'), t.get('name'), t.get('city', ''))) 1 2 3 4 5 for t in temp['response'][1:]: print(('{{:<{}}} {{:<{}}} {{}}'.format(max([len(str(x.get('nomer'))) for x in temp['response'][1:]]) + 1, max([len(str(x.get('name'))) for x in temp['response'][1:]]) + 1)).format( t.get('nomer'), t.get('name'), t.get('city', '') )) Практическая работа №4 к уроку 4 Массивы Задание 1 Таблица умножения Таблица 12 Таблица умножения Программа+результат import math print('таблица умножения') s1 = 10 for i in range(1, s1+1): print(*range(i, i*s1+1, i), sep='\t') 36 n = int(input('Введите n (число элементов):')) d = int(input('Введите d (разность):') or -2) a = 2 # a - первый член последовательности, # d - разность прогрессии, # n - число элементов последовательности print( (2 * a + d * (n - 1))/2 * n, list(range(a, a + d * (n - 1) , d)) ) УРОК 5 Методы сортировки переменных Практическая работа №5 к уроку 5 Методы сортировки переменных for i in range(10,100,1): a1=i%10 a2=i//10 sum=a1+a2 rez=sum+(sum)**2 if rez==i: print(i) print('Ваша ФАМИЛИЯ') 37 Список литературы 1. https://pythonworld.ru/tipy-dannyx-v-python/vse-o-funkciyax-i-ix-argumentax.html 2. http://labs.org.ru/python-3/ 3. http://www.4stud.info/add-ons/define-a-function-in-python.html 4. https://python-scripts.com/functions-python УРОК 6 Подпрограммы, функции и процедуры в Python Практическая работа 6 к уроку 6 Функции и процедуры в Python Пример 1( ДЗ) ЗАПИСАТЬ РЕШЕНИЕ Определите значение переменной а после выполнения данного алгоритма: а := 17 b := 23 b := a+b+1 а := b+a В ответе укажите одно целое число — значение переменной а. Решение: а := 17 b := 23 b := a+b+1=17+23+1=41 а := b+a=41+17=58 Ответ: 58 Пример 2 (решить самостоятельно) Определите значение переменной b после выполнения данного алгоритма: а := 3 b := 5 а := 6+а*b b := b+а/3 В ответе укажите одно целое число — значение переменной b. 38 Урок 2 УРОК Графические объекты в Python. Модуль Turtle (черепашка) Классная работа 1) Сделать в тетрадь конспект основных команд 2) Переписать в тетрадь коды программ Практическая работа 3) Выполнить программы на сайте Мета школа черепашка https://metaschool.ru/pub/konkurs/python/turtle/index.p hp Вместо слова фамилия писать свою фамилию 4) Прислать фотографии работ в элжур Домашнее задание Нарисовать на ваш выбор кораблик , самолет или любое транспортное средство на сайте https://metaschool.ru/pub/konkurs/python/turtle/index.p hp и прислать скриншот программы и результата в течение пяти дней в элжур Классная работа Системы координат в Pascal и Python : отличия program korablik; uses graphabc; begin moveto( 100 , 100 ); lineto( 300 , 100 ); lineto( 260 , 160 ); lineto( 140 , 160 ); lineto( 100 , 100 ); end. import turtle t = turtle.Turtle() t.shape('turtle') t.up() t.goto(-100,20) t.down() t.goto(100,20) t.goto(60,-40) t.goto(-60,-40) t.goto(-100,20) t.screen.exitonclick() t.screen.mainloop() 39 Основные команды модуля Turtle (черепашка) в Python Turtle модуль для Питон, позволяющий создавать графические объекты, рисунки в специальном окне. Чтобы начать работу с модулем, нужно ввести объект Turtle() import turtle t = turtle.Turtle() Чтобы программа с модулем turtle на Python работала корректно, в самом конце программы всегда нужно прописывать две команды. t.screen.exitonclick() t.screen.mainloop() С помощью команды t.screen.exitonclick() программа на Python реагирует на нажатие кнопки мыши после исполнения программы. Если пользователь нажмѐт на левую кнопку мыши, пока курсор находится в окне для графики модуля turtle, то окно закроется. t.screen.mainloop() останавливает выполнение программы. Черепаха умеет выполнять небольшой набор команд, а именно: Таблица 13 Команда Значение forward(X) Пройти вперѐд X пикселей backward(X) Пройти назад X пикселей left(X) Повернуться налево на X градусов right(X) Повернуться направо на X градусов penup() Не оставлять след при движении pendown() Оставлять след при движении shape(X) Изменить значок черепахи (―arrow‖, ―turtle‖, ―circle‖, ―square‖, ―triangle‖, ―classic‖) stamp() Нарисовать копию черепахи в текущем месте color() Установить цвет begin_fill() Необходимо вызвать перед рисованием фигуры, которую надо закрасить end_fill() Вызвать после окончания рисования фигуры width() Установить толщину линии goto(x, y) Переместить черепашку в точку (x, y) Можно писать сокращенные команды t.fd(x)-вперед на х пикселей t.bk(x)-назад на х пикселей t.left(x) влево на х градусов 40 t.right(x) вправо t.goto(x, y) перемещение в заданную точку, где x и y – координаты точки, в которую должна переместиться черепашка t.up() без отображения t.down() с отображением t.begin_fill(), t.end_fill() t.up() Поднять перо t.goto(-100,-30) Переместиться на 100 пикселей влево и на 30 пикселей вниз t.down() Опустить перо t.color('red') Поменять цвет на красный t.circle(30) Нарисовать окружность Начать и остановить заливку. Например, нарисовать жѐлтый круг с красным контуром: t.color('red') t.fillcolor('yellow') t.begin_fill() t.circle(100) t.end_fill() Или, например, нарисовать жѐлтый пятиугольник с красным контуром: t.color('red') t.fillcolor('yellow') t.begin_fill() t.circle(100, 360, 5) t.end_fill() t.color(c) Изменить цвет на c. Рекомендуемые цвета: -black, -blue, -brown, -cyan, -gold, -green, -grey, -magenta, -orange, -pink, -red, -violet, -yellow. Цвет ставится в кавычки. Например, изменим цвет на красный: t.color('red') t.forward(d) Передвинуться вперѐд на d пикселей, например, на 50: t.forward(50) t.goto(x,y) Перейти в точку с координатами (x,y), например, (100,15): t.goto(100, 150) t.left(angle) Повернуть налево на угол angle, например, на 90 градусов: t.left(90) t.penup() Поднять перо. Если перо поднято, черепашка не оставляет след при движении: t.penup() t.pendown() Опустить перо. Если перо опущено, черепашка оставляет след при движении: t.pendown() t.right(angle) Повернуть направо на угол angle, например, на 60 градусов: t.right(60) t.stamp() Поставить отпечаток, эта команда без параметров: 41 t.stamp() Практическая работа Задание 1. Правильный треугольник Рисуем правильный треугольник со стороной 100 пикселей Код Результат import turtle t = turtle.Turtle() t.shape('turtle') t.write("Фамилия",font=('arial',24)) t.fd(100) t.left(120) t.fd(100) t.left(120) t.fd(100) t.left(120) t.screen.exitonclick() t.screen.mainloop() Задание 2. Квадрат Рисуем квадрат со стороной 100 пикселей Код Результат import turtle t = turtle.Turtle() t.shape('turtle') t.write("Фамилия",font=('arial',24)) 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() Задание 3. Цветок из окружностей Рисуем окружности радиуса 30 пикселей с поворотом на 90 градусов Код Результат import turtle t = turtle.Turtle() t.shape('turtle') t.write("Фамилия",font=('arial',24)) t.circle(30) t.left(90) t.circle(30) t.left(90) t.circle(30) t.left(90) t.circle(30) t.screen.exitonclick() 42 t.screen.mainloop() Задание 4. Домик разноцветный Код Результат import turtle t = turtle.Turtle() t.shape('turtle') t.color("yellow") t.begin_fill() def rectangle(n): for (i) in range(n): t.forward(200) t.right(90) rectangle(4) t.end_fill() t.color('orange') t.begin_fill() t.left(45) t.forward(140) t.right(90) t.forward(140) t.end_fill() t.penup() t.left(45) t.goto(100,-130) t.pendown() t.color('cyan') t.begin_fill() t.circle(40) t.end_fill() t.color('green') t.write("Фамилия",font=('arial',24)) t.end_fill() Домашнее задание Нарисовать на ваш выбор кораблик , самолет или любое транспортное средство на сайте https://metaschool.ru/pub/konkurs/python/turtle/index.php и прислать скриншот программы и результата в течение пяти дней в элжур 43 import turtle t = turtle.Turtle() t.shape('turtle') t.circle(30) t.left(90) t.circle(30) t.left(90) t.circle(30) t.left(90) t.circle(30) t.screen.exitonclick() t.screen.mainloop() Таблица 14 from turtle import * t = Turtle() t.screen.setup(800, 800) for i in range(20): t.fd(8) t.up() t.fd(8) t.down() t.screen.exitonclick() t.screen.mainloop() Таблица 15 from turtle import * t = Turtle() t.screen.setup(800, 800) def rectangle(w, h): for i in range(2): t.left(90) t.fd(h) t.left(90) t.fd(w) rectangle(320, 200) t.screen.exitonclick() t.screen.mainloop() Таблица 16 44 from turtle import * t = Turtle() t.screen.setup(800, 800) def sq_cr(side): for i in range(4): t.left(90) t.fd(side) t.bk(side / 2) t.circle(side / 2, 360) t.left(180) t.circle(side / 2, 360) sq_cr(250) t.screen.exitonclick() t.screen.mainloop() from turtle import * t = Turtle() t.screen.setup(800, 800) def sq_cr(side): for i in range(6): t.left(60) t.fd(side) t.left(180) sq_cr(100) t.screen.exitonclick() t.screen.mainloop() https://metaschool.ru/pub/konkurs/python/turtle/index.php 45 import turtle t = turtle.Turtle() t.shape('turtle') def sq_cr(side): for i in range(3): t.fd(side) t.left(120) sq_cr(150) t.screen.exitonclick() t.screen.mainloop() Таблица 17 import turtle t = turtle.Turtle() t.shape('turtle') t.circle(30) t.circle(40) t.circle(50) t.circle(60) t.circle(70) t.circle(80) t.screen.exitonclick() t.screen.mainloop() 46 import turtle t = turtle.Turtle() t.shape('turtle') t.left(90) t.circle(30) t.circle(40) t.circle(50) t.circle(60) t.circle(70) t.circle(80) t.screen.exitonclick() t.screen.mainloop() import turtle t = turtle.Turtle() t.shape('turtle') def rectangle(r): for i in range(4): t.fd(r) t.left(90) rectangle(30) rectangle(40) rectangle(50) rectangle(60) rectangle(70) t.screen.exitonclick() t.screen.mainloop() import turtle t = turtle.Turtle() t.shape('turtle') def rectangle(r): for i in range(4): t.fd(r) t.left(90) rectangle(30) t.penup() t.goto(-10,-10) t.pendown() rectangle(50) 47 t.penup() t.goto(-20,-20) t.pendown() rectangle(70) t.penup() t.goto(-30,-30) t.pendown() rectangle(90) t.screen.exitonclick() t.screen.mainloop() import turtle t = turtle.Turtle() t.shape('turtle') t.circle(30) t.penup() t.goto(0,-30) t.pendown() t.circle(60) t.penup() t.goto(0,-60) t.pendown() t.circle(90) t.screen.exitonclick() t.screen.mainloop() import turtle t = turtle.Turtle() t.shape('turtle') t.color('red') t.circle(60) t.penup() t.goto(-100,0) t.pendown() t.color('orange') t.circle(60) t.penup() t.goto(+100,0) t.pendown() 48 t.color('blue') t.circle(60) t.penup() t.goto(-60,-80) t.pendown() t.color('green') t.circle(60) t.penup() t.goto(+60,-80) t.pendown() t.color('yellow') t.circle(60) t.screen.exitonclick() t.screen.mainloop() import turtle t=turtle.Turtle() t.shape('turtle') t.up() t.goto(-200,-100) t.down() def zabor(n): for i in range(n): t.fd(40) t.left(90) t.fd(200) t.left(30) t.fd(40) t.left(120) t.fd(40) t.left(30) t. fd(200) t.left(90) t.up() t.goto(-200+60*(i+1),-100) t.down() zabor(7) t.screen.exitonclick() t.screen.mainloop() import turtle t=turtle.Turtle() t.shape('turtle') t.up() t.goto(-320,0) t.down() def zabor(n): for i in range(n): t.fd(100) 49 t.left(90) t.fd(40) t.left(90) t.fd(100) t.left(90) t.fd(40) t.left(90) t.penup() t.fd(20) t.right(90) t.fd(40) t.left(90) t.pendown() t.circle(20) t.penup() t.fd(60) t.down() t.circle(20) t.up() t.goto(-320+140*(i+1),0) t.pendown() zabor(7) t.screen.exitonclick() t.screen.mainloop() import turtle t=turtle.Turtle() t.shape('turtle') t.up() t.goto(-120,0) t.down() def krug(n): for i in range(n): t.circle(20) t.up() t.fd(40) t.down() t.circle(20) t.up() t.fd(40) t.down() t.circle(20) t.up() t.fd(40) t.down() t.circle(20) t.up() t.fd(40) t.down() 50 t.up() t.goto(-120,0-40*(1+i)) t.down() krug(7) t.screen.exitonclick() t.screen.mainloop() import turtle t = turtle.Turtle() t.shape('turtle') import random zwet=['red','green','blue','orange'] def krugi(n): for i in range(n): t.up() t.goto(-200+i*40,0) t.down() t.color(random.choice (zwet)) t.circle(20) krugi(7) t.screen.exitonclick() t.screen.mainloop() 51 import turtle t = turtle.Turtle() t.shape('turtle') import random t.up() t.goto(random.randint(-100,100), random.randint(-100,100)) t.down() t.color('red') t.circle(30) t.up() t.goto(random.randint(-20,50),-30) t.down() t.color('blue') t.circle(30) t.up() t.goto(-100,30) t.down() t.color('green') t.circle(30) t.up() t.goto(random.randint(-20,150),50) t.down() t.color('yellow') t.circle(30) t.screen.exitonclick() t.screen.mainloop() import turtle t = turtle.Turtle() t.shape('turtle') t.color("yellow") t.begin_fill() def rectangle(n): for (i) in range(n): t.forward(200) t.right(90) rectangle(4) t.end_fill() t.color('orange') t.begin_fill() t.left(45) t.forward(140) t.right(90) t.forward(140) t.end_fill() 52 t.penup() t.left(45) t.goto(100,-130) t.pendown() t.color('cyan') t.begin_fill() t.circle(40) t.end_fill() Красный прямоугольник зеленый круг import turtle t = turtle.Turtle() t.shape('turtle') t.color("red") t.begin_fill() t.fd(100) t.left(90) t.fd(50) t.left(90) t.fd(100) t.left(90) t.fd(50) t.left(90) t.end_fill() t.color("green") t.begin_fill() t.circle(100) t.end_fill() t.screen.exitonclick() t.screen.mainloop() 53 Таблица 18 import turtle t = turtle.Turtle() t.shape('turtle') t.fd(100) t.right(90) t.fd(40) t.left(90) t.fd(60) t.right(90) t.fd(40) t.right(90) t.fd(160) t.right(90) t.fd(80) t.penup() t.goto(60,-110) t.pendown() t.circle(30) t.penup() t.goto(160,-110) t.pendown() t.circle(30) t.screen.exitonclick() t.screen.mainloop() import turtle t = turtle.Turtle() t.shape('turtle') import random colors=['red','green','blue','orange'] t.color(random.choice (colors)) t.circle(30) t.up() t.goto(random.randint(-100,100),30) t.down() t.color(random.choice (colors)) t.circle(30) t.up() t.goto(random.randint(-100,100),30) t.down() t.color(random.choice (colors)) t.circle(30) t.up() 54 t.goto(random.randint(-100,100),30) t.down() t.color(random.choice (colors)) t.circle(30) t.screen.exitonclick() t.screen.mainloop() Пункт Вставка текста исполнитель черепашка в питон Python Turtle, нарисуйте текст на экране с большим шрифтом import turtle t = turtle.Turtle() t.shape('turtle') import turtle t = turtle.Turtle() t.shape('turtle') turtle.fillcolor("blue") turtle.write("ПРИВЕТ", font=('arial',16,)) t.screen.exitonclick() t.screen.mainloop() Размер шрифта слишком мал. Как увеличить размер шрифта? метод записи python turtle для записи текста на экране следующим образом: turtle.write("messi fan") Используйте необязательный аргумент font для turtle.write() из документов: turtle.write( arg, move = False, align = "left", font = ( "Arial", 8, "normal" ) ) Параметры: arg - объект, который будет записан на TurtleScreen move - True/False align - одна из строк "влево", "в центре" или вправо " font - тройной (fontname, fontsize, fonttype) Итак, вы можете сделать что-то вроде turtle.write("messi fan", font=("Arial", 16, "normal")), чтобы изменить размер шрифта до 16 (по умолчанию 8). Здесь вы также можете использовать "жирный" и "курсив" вместо "нормальный". "Verdana" может использоваться для имени шрифта.. Но еще один вопрос: как вы устанавливаете цвет текста, который вы пишете? Ответ. Вы используете метод turtle.color() или turtle.fillcolor(), например: turtle.fillcolor("blue") или просто: turtle.color("orange") Цвет текста Эти вызовы должны выполняться перед командой turtle.write(). 55 Таблица 19 import turtle t = turtle.Turtle() t.shape('turtle') def risunok(d, r, rBig): for i in range(d): t.circle(rBig, 360 / d) t.dot(r, "red") risunok(45, 10, 50) t.screen.exitonclick() t.screen.mainloop() Таблица 20 from turtle import * t = Turtle() t.screen.setup(800, 500) t.up() t.goto(-250, 0) t.down() t.setheading(270) for i in range(5): t.circle(50, 180) t.begin_fill() t.circle(-50, 180) t.end_fill() t.screen.exitonclick() t.screen.mainloop() from turtle import * t = Turtle() t.screen.setup(800, 800) t.shape("turtle") t.color("blue") t.stamp() t.color("black") t.up() t.fd(50) t.down() t.circle(200, 70) t.screen.exitonclick() t.screen.mainloop() import turtle t = turtle.Turtle() t.shape('turtle') 56 import turtle t = turtle.Turtle() t.shape('turtle') t.fillcolor("blue") t.up() t.goto(-100,-30) t.down() t.circle(30) t.up() t.goto(100,-30) t.down() t.circle(70) t.goto(100,30) t.down() t.circle(30) t.write("ПРИВЕТ",font=('arial',24)) t.screen.exitonclick() t.screen.mainloop() Таблица 21 import turtle t = turtle.Turtle() t.shape('turtle') import random def risunok(d, r, rBig): for i in range(d): t.fd(d) t.dot(r, "red") risunok(50, 10, random.randint(-50,50)) t.screen.exitonclick() t.screen.mainloop() 57 УРОК 6 Циклы с параметром и циклы с предусловием Цикл это многократное повторение каких-то действий Телом цикла называется та последовательность кода, которую нужно выполнить несколько раз. Единоразовое выполнение – это итерация. Цикл «while» While с английского языка переводится, как «до тех пор, как». Это достаточно универсальный цикл, он немного похож на условие if, но его код выполняется не один раз. Его условие записывается до тела цикла. После того, как оно выполнено первый раз, программа возвращается к заголовку и снова повторяет все действия. Этот процесс заканчивается тогда, когда условие цикла больше не может быть соблюдено, иными словами перестает быть истинным. Тем, что заранее неизвестно количество проверок, он отличается от предыдущего цикла for. Кстати, еще его называют циклом с предусловием. for [элемент] in [последовательность]: [сделать указанное] while [условие истинно]: [сделать указанное] Практическая работа №6 к уроку 6 Циклы с параметром и циклы с предусловием. Гомотетия и движение Задание 1 Написать программу, которая рисует из окружностей цветочный рисунок из окружностей Рисунок 1 Программа без цикла Программа с циклом с пр 58 import turtle t = turtle.Turtle() t.shape('turtle') t.circle(30) t.left(90) t.circle(30) t.left(90) t.circle(30) t.left(90) t.circle(30) t.left(90) t.screen.exitonclick() t.screen.mainloop() import turtle t = turtle.Turtle() t.shape('turtle') def risunok(r,n): for i in range(n): t.circle(r) t.left(360/n) risunok(30,4) t.screen.exitonclick() t.screen.mainloop() Таблица 22 import turtle t = turtle.Turtle() t.shape('turtle') def risunok(r,n): for i in range(n): t.circle(r) t.left(360/n) risunok(30,10) t.screen.exitonclick() t.screen.mainloop() Задание 3 Написать программу, которая рисует множество окружностей с увеличением размера окружностей в цикле Без цикла import turtle t = turtle.Turtle() t.shape('turtle') t.circle(20) t.circle(40) t.circle(60) t.circle(80) t.circle(100) t.screen.exitonclick() t.screen.mainloop() 59 С циклом import turtle t = turtle.Turtle() t.shape('turtle') def risunok(n): for i in range(n): t.circle(20*n) risunok(5) t.screen.exitonclick() t.screen.mainloop() 60 Задание 4 Написать программу, которая рисует множество окружностей с поворотом и увеличением размера окружностей в цикле import turtle t = turtle.Turtle() t.shape('turtle') def risunok(n): for i in range(n): t.fd(10*i) t.left(120) t.fd(10*i) t.left(120) t.fd(10*i) t.left(120) risunok(10) t.screen.exitonclick() t.screen.mainloop() Задание 5 Написать программу, которая рисует множество отрезков с поворотом и увеличением размера отрезка в цикле Таблица 23 import turtle t = turtle.Turtle() t.shape('turtle') t.fd(10) t.goto(0,0) t.left(10) t.fd(20) t.goto(0,0) t.left(10) t.fd(30) t.goto(0,0) t.left(10) t.fd(40) t.goto(0,0) t.left(10) t.fd(50) t.goto(0,0) t.left(10) t.screen.exitonclick() t.screen.mainloop() import turtle t = turtle.Turtle() t.shape('turtle') def risunok(n): for i in range(n): t.fd(10*(i+1)) t.goto(0,0) t.left(10) risunok(5) t.screen.exitonclick() t.screen.mainloop() 61 import turtle t = turtle.Turtle() t.shape('turtle') def risunok(n): for i in range(n): t.fd(20*i) t.left(120) t.fd(20*i) t.left(120) t.fd(20*i) t.left(120) risunok(10) t.screen.exitonclick() t.screen.mainloop() import turtle t = turtle.Turtle() t.shape('turtle') i = 1 while i <= 10: t.circle(int(10*i)) t.left(20) i += 1 t.screen.exitonclick() t.screen.mainloop() a = int(input()) while a != 0: if a < 0: print('Встретилось отрицательное число', a) break a = int(input()) else: print('Ни одного отрицательного числа не встретилось') n = int(input()) for i in range(n): a = int(input()) if a < 0: print('Встретилось отрицательное число', a) break else: print('Ни одного отрицательного числа не встретилось') import turtle t = turtle.Turtle() 62 t.shape('turtle') def tree(k): for j in range(k): t.up() t.goto(50*(j+1),-100) t.down() t.fd(10) t.left(90) t.fd(40) t.left(90) t.fd(10) t.left(90) t.fd(40) t.left(90) t.up() t.goto(5+50*(j+1),-60) t.down() t.circle(30) tree(4) t.screen.exitonclick() t.screen.mainloop() УРОК 7 Вложенные циклы Практическая работа №7 к уроку 7 Вложенные циклы https://pythontutor.ru/lessons/while/ УРОК 8 Тексты и надписи в в Python Пример вывода текста черепашкой в Python 63 УРОК 9 Модуль random и его применение в Python Задание 1 Случайные круги import turtle t = turtle.Turtle() t.shape('turtle') turtle.write("Ваша фамилия", font=('arial',16,)) colors=['red','green','blue','orange'] import random t.up() t.goto(random.randint(-100,100), random.randint(-100,100)) t.down() t.color(random.choice (colors)) t.circle(20) t.screen.exitonclick() t.screen.mainloop() 64 Таблица 24 Случайные круги в цикле import turtle t = turtle.Turtle() t.shape('turtle') import random def risunok(n): for i in range(n): t.up() t.goto(random.randint(-100,100),random.randint(-100,100)) t.down() t.circle(10) risunok(15) t.screen.exitonclick() t.screen.mainloop() 65 Задание Случайные треугольники в цикле Таблица 25 Случайные треугольники в цикле import turtle t = turtle.Turtle() t.shape('turtle') import random def risunok(n): for i in range(n): t.up() t.goto(random.randint(-100,100),random.randint(-100,100)) t.down() t.fd(10) t.left(120) t.fd(10) t.left(120) t.fd(10) t.left(120) risunok(10) t.screen.exitonclick() t.screen.mainloop() 66 import turtle t = turtle.Turtle() t.shape('turtle') import random def risunok(n): for i in range(n): t.goto(random.randint(-100,100),random.randint(-100,100)) t.goto(0,0) risunok(20) t.screen.exitonclick() t.screen.mainloop() 67 import turtle t = turtle.Turtle() t.shape('turtle') import random def risunok(n): for i in range(n): t.up() t.goto(random.randint(-100,100),random.randint(-100,100)) t.down() t.circle(15) risunok(10) t.screen.exitonclick() t.screen.mainloop() 68 Практическая работа Задание Движение по окружности будильник тайм время import turtle t = turtle.Turtle() t.shape('turtle') t.left(180) t.up() t.goto(0,50) t.down() def time(R,n): for i in range(n): t.circle(R, -360/n) t.write(i+1,font=('arial',14)) t.dot(10,"red") time(100,12) t.screen.mainloop() import turtle t = turtle.Turtle() t.shape('turtle') t.left(180) t.penup() t.goto(0,50) t.pendown() def time(R,n): for i in range(n): t.circle(R, -360/n) t.write(i+1, font=('arial', 14)) t.left(90) t.fd(20) t.left(180) t.fd(20) t.left(90) 69 time(100,12) t.screen.mainloop() import turtle t = turtle.Turtle() t.shape('turtle') t.left(180) t.up() t.goto(0,50) t.down() def time(R,n): for i in range(n): t.circle(R,-360/n) t.write(i+1, font=('arial',14)) t.left(90) t.fd(10) t.right(180) t.fd(10) t.left(90) t.bk(10) time(100,12) t.screen.mainloop() t.screen.exitonclick() ОЧИСТКА ЭКРАНА TURTLE.CLEAR() Задание Стрелка часов со стиранием Стрелка часов со стиранием import turtle t = turtle.Turtle() t.shape('turtle') t.left(90) def strelka (n): 70 for i in range(n): t.fd(80) t.bk(80) t.right(6) t.clear() strelka(60) t.sckeen.exitonclick() t.sckeen.exitonclick() import turtle t = turtle.Turtle() t.shape('turtle') def risunok(n): for i in range(n): t.clear() t.up() t.goto(-100+i*30,0) t.down() t.circle(15+i*5) risunok(10) t.screen.exitonclick() t.screen.mainloop() Рисуем pendown() Начать рисовать; penup() Закончить рисовать; pensize(width) Установить диаметр пера в width; pencolor(colorstring) Установить цвет линии, которая рисует черепашка (например, 'brown' или '#32c18f' ); fillcolor(colorstring) Установить цвет заполнения; 71 begin_fill() Начать следить за черепашкой для заполнения области; end_fill() Заполнить цветом fillcolor область, пройденную черепашкой начиная с begin_fill(); showturtle() Показать черепашку; hideturtle() Спрятать черепашку; write(text) Вывести текст text; Узнать про черепашку position() Получить текущие координаты черепашки; towards(x, y) Получить угол между текущим направление черепашки и прямой от черепашки к точке (x,y); xcor() Получить x координату черепашки; ycor() Получить y координату черепашки; heading() Получить текущий угол к вертикали; distance(x, y) Получить расстояние до точки (x,y); isdown() Узнать, рисует ли сейчас черепашка; isvisible() Узнать, видима ли сейчас черепашка; Интерактив onkey(function, key) Выполнить функцию function (принимающей два аргумента, x и y — координаты черепашки) после нажатия кнопки key (например, 'a', 'Up', 'space'); listen() Начать следить на нажатиями клавиш и кликами мыши; ontimer(function, time) Выполнить функцию function через time миллисекунд; textinput(title, prompt) Вывести окно с заголовком title и текстом prompt, вернуть введѐнное значение; Задание ПОДПРОГРАММЫ ДОРОГА import turtle t = turtle.Turtle() t.shape('turtle') def kadr(x,y): t.fd(100) t.left(90) t.fd(40) t.left(90) 72 t.fd(60) t.right(90) t.fd(20) t.left(90) t.fd(40) t.left(90) t.fd(60) t.left(90) def doroga(n): for i in range(n): t.penup() t.goto(-300 + i*150, 0) t.pendown() kadr(-300 + i*150, 0) doroga(5) t.screen.exitonclick() import turtle t = turtle.Turtle() t.shape('turtle') def kadr(x,y): t.pencolor('green') t.fd(24) t.left(90) t.fd(60) t.right(90) t.fd(20) t.left(135) t.fd(45) t.left(90) t.fd(45) t.left(135) t.fd(20) t.right(90) t.fd(60) t.left(90) def doroga(n): 73 for i in range(n): t.penup() t.goto(-300 + i*100, 0) t.pendown() kadr(-300 + i*100, 0) doroga(5) t.screen.exitonclick() Задание ПРИМЕР СТРЕЛКА ЧАСОВ с Очисткой экрана import turtle t = turtle.Turtle() t.shape('turtle') t.circle(80) t.up() t.goto(0,80) t.down() t.left(90) def strelka(n): for i in range(n): t.pencolor("red") t.fd(70) t.pencolor("white") t.bk(70) t.right(6) t.clear() strelka(60) t.screen.exitonclick() t.screen.mainloop() import turtle t = turtle.Turtle() t.shape('turtle') import random def risunok(n): for i in range(n): 74 t.up() t.goto(random.randint(-100,100),random.randint(-100,100)) t.down() t.write("УРА",font=('arial',24)) risunok(20) t.screen.exitonclick() t.screen.mainloop() СЛУЧАЙНЫЙ import turtle t = turtle.Turtle() t.shape('turtle') import random city = ['Питер', 'Москва', 'Новосиб', 'Красноярск', 'Абакан'] def risunok(n): for i in range(n): t.up() t.goto(random.randint(-100,100),random.randint(-100,100)) t.down() t.write(random.choice(city),font=('arial',24)) risunok(15) t.screen.exitonclick() t.screen.mainloop() 75 import turtle t = turtle.Turtle() t.shape('turtle') import random city = ['Питер', 'Москва', 'Новосиб', 'Красноярск', 'Абакан'] zvet = ['red', 'blue', 'green', 'yellow'] def risunok(n): for i in range(n): t.up() t.goto(random.randint(-100,100),random.randint(-100,100)) t.down() t.color(random.choice(zvet)) t.write(random.choice(city),font=('arial',24)) risunok(15) t.screen.exitonclick() t.screen.mainloop() УРОК 8 Имитация движения графических объектов по прямой Практическая работа №8 к уроку 8 Имитация движения графических объектов по прямой УРОК 9 Имитация движения объектов при столкновении с препятствиями УРОК 10 Процедуры и подпрограммы Практическая работа №10 к уроку 10 Процедуры и подпрограммы УРОК 11 Построение графиков функций Практическая работа №11 к уроку 11 Построение графиков функций УРОК 12 Имитация движения графических объектов по окружности Практическая работа №12 к уроку 12 Имитация движения графических объектов по окружности УРОК 13 Имитация движения графических объектов по дуге и сложным траекториям Практическая работа №13 к уроку 13 Имитация движения графических объектов по дуге и сложным траекториям УРОК 14 События модуля GraphABC. Управление графическими объектами с помощью клавиш и мыши 76 Практическая работа №14 к уроку 14 События модуля GraphABC. Управление графическими объектами с помощью клавиш и мыши УРОК 15 Звуковое сопровождение программ https://pypi.org/project/pyttsx3/ Практическая работа №15 к уроку 15 Звуковое сопровождение программ УРОК 16 Объектно-ориентированное программирование Краткий обзор ооп python Программа/скрипт/код, написанные с использованием парадигмы объектно- ориентированного программирования, должны состоять из объектов, классов (описания объектов), взаимодействий объектов между собой, в результате которых меняются их свойства. Что такое класс в ооп python? Класс = данные + методы Класс — это тип данных, состоящий из набора атрибутов (свойств) и методов — функций для работы с этими атрибутами. Схематично класс можно представить следующим образом: Для создания классов предусмотрена инструкция class. Тело класса состоит из блока различных инструкций. class ИмяКласса: ПеременнаяКласса = Значение … def ИмяМетода(self, ...): self.ПеременнаяКласса = Значение Методы в классах — это те же функции, которые принимают один обязательный параметр — self (с англ. можно перевести как «собственная личность»). Он нужен для связи с конкретным объектом. Атрибуты класса — это имена переменных вне функций и имена функций. Эти атрибуты наследуются всеми объектами, созданными на основе данного класса. Атрибуты обеспечивают свойства и поведение объекта. Объекты могут иметь атрибуты, которые создаются в теле метода, если данный метод будет вызван для конкретного объекта. Пример класса (ООП) на Python 3: class Second: color = "red" form = "circle" def changecolor(self,newcolor): self.color = newcolor def changeform(self,newform): self.form = newform obj1 = Second() obj2 = Second() print (obj1.color, obj1.form) # вывод на экран "red circle" print (obj2.color, obj2.form) # вывод на экран "red circle" obj1.changecolor("green") # изменение цвета первого объекта obj2.changecolor("blue") # изменение цвет второго объекта obj2.changeform("oval") # изменение формы второго объекта print (obj1.color, obj1.form) # вывод на экран "green circle" print (obj2.color, obj2.form) # вывод на экран "blue oval" Результат выполнения скрипта Python 3: red circle red circle green circle 77 blue oval Конструктор класса — метод __init__ Большинство классов имеют специальный метод, который автоматически при создании объекта создает ему атрибуты. Т.е. вызывать данный метод не нужно, т.к. он сам запускается при вызове класса. (Вызов класса происходит, когда создается объект.) Такой метод называется конструктором класса и в языке программирования Python носит имя __init__. (В начале и конце по два знака подчеркивания.) Первым параметром, как и у любого другого метода, у __init__ является self, на место которого подставляется объект в момент его создания. Второй и последующие (если есть) параметры заменяются аргументами, переданными в конструктор при вызове класса. Рассмотрим два класса: в одном будет использоваться конструктор, а в другом нет. Требуется создать два атрибута объекта. Рассмотрим два класса: в одном будет использоваться конструктор, а в другом нет. Требуется создать два атрибута объекта. Пример 1: class YesInit: def __init__(self,one,two): self.fname = one self.sname = two obj1 = YesInit("Peter","Ok") print (obj1.fname, obj1.sname) Пример 2: class NoInit: def names(self,one,two): self.fname = one self.sname = two obj2 = NoInit() obj2.names("Peter","Ok") print (obj2.fname, obj2.sname) Результат выполнения двух скриптов: Peter Ok Что значит аргумент self в Python 3 в методе класса Аргумент self — это ссылка на создаваемый в памяти компьютера объект. from tkinter import * window = Tk() window.title("Добро пожаловать в приложение PythonRu") lbl = Label(window, text="Привет") lbl.grid(column=0, row=0) window.mainloop() print("Ноль в качестве знака операции" "\nзавершит работу программы") while True: s = input("Знак (+,-,*,/): ") if s == '0': break if s in ('+', '-', '*', '/'): x = float(input("x=")) y = float(input("y=")) if s == '+': print("%.2f" % (x+y)) |