Prometheus. Масовий онлайн курс "Основи програмування". Лекція 5Nikita Pavliuchenko
1. Концепція модульності
2. Функції
2.1. Оголошення та використання функцій
2.2. Області видимості змінних
2.3. Рекурсія
3. Модулі
4. Пакети модулів
Повний курс доступний на першому українському проекті масових відкритих онлайн курсів Prometheus:
http://edx.prometheus.org.ua/courses/KPI/Programming101/2015_T1/about
1. Графічні середовища Mandriva Linux
2. Офіс Linux
3. Використання Інтернету
4. Програми для керування файлами
5. Мультимедійні додатки
6. Додатки для роботи з графікою
7. Програми для настроювання і налагодження системи
8. Додатки для розробки програмних засобів
Дистрибутиви ОС Linux
2. Інформація про ОС Mandriva Linux
2.1. Основні відмінності ОС Mandriva Linux від інших ОС
2.2. Можливості ОС Mandriva Linux
2.3. Основні поняття ОС Linux
1. Загальні відомості і структура ОС UNIX
2. Основи роботи у UNIX
3. Типи оболонок
4. Маски
5. Трубопроводі UNIX - стандартне введення і стандартний вивід
1. Концепція об’єктно-орієнтованого програмування
2. Базові об'єкти Windows (файл, папка, додаток, документ)
3. Користувацький графічний інтерфейс Windows
1. Класи програмних продуктів
2. Системне програмне забезпечення
2.1. Базове програмне забезпечення
2.1.1. Операційні системи
2.1.2. Мережні операційні системи
2.1.3. Операційні оболонки
3. Еволюція ОС
Презентация доклада "Мультимедийные руководства в обучении компьютерным технологиям"
Загрузить руководства http://anotherlevel.profi.net.ua/Nav_mat.org_ru.html
This quick reference guide provides an overview of CSS properties for styling backgrounds, borders, boxes, fonts, margins, and padding. It lists various properties for backgrounds including background-color, background-image, and background-position. The guide also covers border properties such as border-width, border-style, and border-color and box model properties like width, height, padding, and margin.
Передвиборча програма Ковальової Катериниtetiana1958
Передвиборча програма Ковальової Катерини - кандидатки на посаду голови Студентського самоврядування Факультету переробних і харчових виробництв Державного біотехнологічного університету (м. Харків)
Випуск магістрів- науковців факультету мехатроніки та інжинірингу, 2024 р.tetiana1958
Державний біотехнологічний університет.
Випуск магістрів-науковців факультету мехатроніки та інжинірингу, 2024 р.
Спеціальність 133 "Галузеве машинобудування"
Безбар’єрність в бібліотеці – суспільна нормаssuser15a891
Виступ директора Арцизької міської публічної бібліотеки Галини Стоматової 08.06.2024 р. під час засідання круглого столу «Безбар’єрне середовище в публічній бібліотеці: комфорт для кожного», який відбувся в місті Чорноморськ, в рамках ХХІV Інтелект-форуму «Українська книга на Одещині»
До 190-річчя від дня нродження українського письменника Юрія Федьковича пропонуємо переглянути віртуальну книжкову виставку, на якій представлена література про його життєвий шлях і твори автора.
проєкту від Національної бібліотеки України для дітей «Подорож містами України», у якому ти відкриєш для себе найкращі краєзнавчі перлини Батьківщини. Дванадцята зупинка присвячена західному, колоритному, найменшому за розміром регіону України - Чернівецькій області, яку називають Буковиною.
Практика студентів на складі одягу H&M у Польщіtetiana1958
Пропонуємо студентам Державного біотехнологічного університету активно поринути у аспекти логістики складу одягу H&M.
Метою практики є не тільки отримання теоретичних знань, а й їх застосування практично.
Передвиборча програма Майора Станіславаtetiana1958
Передвиборча програма Майора Станіслава - кандидата на посаду голови Студентського самоврядування Факультету переробних і харчових виробництв Державного біотехнологічного університету (м. Харків)
2. Бібліотеки
• збірка об'єктів чи підпрограм для
вирішення близьких за тематикою
задач.
Залежно від мови програмування
бібліотеки містять об'єктні модулі чи
сирцевий код та дані, допоміжні для
задіяння та інтеграції нових
можливостей в програмні рішення.
3. Навіщо?
• Написання нового програмного
коду вимагає часу, тому зручно
повторно використовувати
частини готових програм.
• Ці фрагменти коду можна
зберігати у бібліотеках
4. Стандартна бібліотека Python
містить такі модулі
• subprocess
• fractions
• cmath
• glob
• copy
• os.path
• json
• calendar
• os
• pickle
• datetime
• bisect
• collections
• array
• itertools
• time
• sys
• random
• math
• socket…
5. Модуль random
• Цей модуль вибирає випадкові
числа або переставляє елементи
списку у випадковому порядку
8. Модуль time
• Підкаже поточний час і дату
• Може обчислювати дати:
наприклад, який день буде три дні
потому?
Модуль datetime
•надає класи для обробки часу і дати
різними способами
9. Приклад
>>> from datetime import datetime,
date, time
>>> d = date(2005, 7, 14)
>>> t = time(12, 30)
>>> datetime.combine(d, t)
datetime.datetime(2005, 7, 14, 12,
30)
10. Pygame
• Бібліотека для створення
відеоігор
• Дозволяє працювати зі звуком і
спеціальною ігровою графікою
11. Завантаження модулів
>>> import math >>>
math.e
2.718281828459045
>>> import time, random
>>> time.time() 1376047104.056417
>>> random.random()
0.9874550833306869
19. Зірка
from turtle import *
color('red', 'yellow')
begin_fill()
while True:
forward(200)
left(170)
if abs(pos()) < 1:
break
end_fill()
done()
Почати слідкувати за
черепашкою для
заповнення області
Заповнити кольором
область, пройдену
черепашкою,
починаючи
з begin_fill();
Повернутися поточне місце
розташування черепахи
20.
21. Черепашка навколо
сонця
1. from turtle import *
2. color("orange")
3. dot(10)
4. center = pos()
5. color("blue")
6. shape("turtle")
7. speed(0)
8. penup()
9. goto(200, 0)
10. pendown()
11. G = 800
12. v = Vec2D(0, 1)
13. t = 0
14. dt = 1
15.while t < 1100:
16. goto(pos() + v * dt)
17. setheading(towards(center))
18. r = distance(center)
19. acc = (-G / r ** 3) * pos()
20. v += acc * dt
21. t += dt
22.
23.mainloop()
Малювання точки діаметром
Завершити малювання
Почати малювання
Повернути
черепашку під
кутом
22.
23. Основні команди для
керування черепашкою
• forward(distance) Проповзти вперед на distance
пікселів;
• backward(distance) Проповзти назад на
distance пікселів;
• right(angle) Повернутися наліво на angle
градусів;
• left(angle) Повернутися направо на angle
градусів;
• goto(x, y) Перемістити черепашку в точку з
координатами (x,y);
• setx(x) Установити координату x черепашки;
• sety(y) Установити координату y черепашки;
24. Основні команди для
керування черепашкою
• setheading(to_angle) Повернути черепашку
під кутом to_angle до вертикалі (0 — наверх,
90 — направо);
• home() Повернути черепашку додому — в
точку з координатами (0,0);
• circle(radius) Намалювати коло радіуса |r|,
центр якої знаходиться зліва від черепашки,
якщо r>0 і праворуч, якщо r<1;
• dot(size, color) Намалювати точку діаметра
size кольору color;
• undo() Відкотити попереднє дію черепашки
Більше на http://server.179.ru/tasks/python/2017b1/pgm12.5_Turtle.html
26. Раціональні числа можна,
як int і float, складати,
множити, ділити
>>> from fractions import Fraction
>>> a = Fraction(1, 7)
>>> b = Fraction(1, 3)
>>> a + b
Fraction(10, 21)
>>> a * b
Fraction(1, 21)
27. fractions.gcd(a, b) -
найбільший спільний дільник
>>> from fractions import gcd
>>> gcd(1, 5)
1
>>> gcd(1000, 3)
1
>>> gcd(4, 6)
2
28. Модуль cmath
• надає функції для роботи з
комплексними числами.
Модуль glob
•знаходить всі шляхи, які збігаються з
заданим шаблоном у відповідності з
правилами, використовуваними
оболонкою Unix.
29. Модуль copy
• операція присвоювання не копіює
об'єкт, він лише створює
посилання на об'єкт.
• Для змінюваних колекцій, або для
колекцій, які містять змінні
елементи, часто необхідна така
копія, щоб її можна було змінити,
не змінюючи оригінал.
• Надає загальні (поверхнева та
глибока) операції копіювання
30. Модуль copy
• copy.copy(x) - повертає
поверхневу копію x.
• copy.deepcopy(x) - повертає повну
копію x.
• Исключениесору.error - виникає,
якщо об'єкт неможливо
скопіювати.
32. Модуль functools
• збірник функцій високого рівня:
взаємодіючих з іншими функціями або
повертають інші функції.
• @functools.lru_cache(maxsize=128,
typed=False) - декоратор, який зберігає
результати maxsize останніх викликів.
Це може заощадити час при дорогих
обчисленнях, якщо функція періодично
викликається з тими ж аргументами.
33. >>> from functools import lru_cache
>>> # Числа Фібоначчі
>>> @lru_cache(maxsize=None)
... def fib(n):
... if n < 2:
... return n
... return fib(n-1) + fib(n-2)
>>> print([fib(n) for n in range(100)])
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,...]
>>> print(fib.cache_info())
CacheInfo(hits=196, misses=100,
maxsize=None, currsize=100)
34. Модуль calendar
дозволяє надрукувати собі
календарик а також містить деякі
інші корисні функції для роботи з
календарями):
•calendar.setfirstweekday(weekday) -
встановлює перший день тижня
•calendar.firstweekday() - повертає
перший день тижня
•calendar.isleap(year) - є рік
високосним…
36. Модуль os
• надає безліч функцій для роботи з
операційною системою, причому
їх поведінка, як правило, не
залежить від ОС, тому програми
залишаються стерпними.
37. Модуль os
>>> import os
>>> os.getcwd()
'C:Python33‘ - поточна робоча
директорія.
>>> os.name
'nt' - ім'я операційної системи.
38. Модуль json
• JSON (JavaScript Object Notation) -
простий формат обміну даними,
що базується на підмножині
синтаксису JavaScript. Модуль
json дозволяє кодувати і
декодувати дані в зручному
форматі.
40. Модуль sys
забезпечує доступ до деяких змінних і
функцій, взаємодіючим з інтерпретатором
python.
•sys.argv - список аргументів командного
рядка, що передаються сценарієм Python.
•sys.copyright - рядок, що містить авторські
права, що належать до інтерпретатору
Python.
•sys.exec_prefix - каталог установки Python.
•sys.executable - шлях до інтерпретатору
Python.
42. Модуль array
• визначає масиви в python
from array import array
a = array("i", [10, 20, 30])
for value in a:
print(value)
10 20 30
43. Методи array
• array.append(х)
• array.count ()
• array.extend(iter) - додавання елементів об'єкта в
масив.
• array.fromfile(F, N) - читає N елементів з файлу і
додає їх в кінець масиву.
• array.fromlist(список) - додавання елементів зі
списку.
• array.index(х) - номер першого входження x в
масив.
• array.pop(i) - видаляє i-ий елемент масиву і
повертає його.
• array.remove(х) - видалити перше входження х з
масиву.
• array.reverse() - зворотний порядок елементів у
масиві.
44. Приклад
import array
a = array.array('i', xrange(5))
a.extend(xrange(5))
print 'Extended:', a
Extended: array('i', [0, 1, 2, 3, 4, 0, 1,
2, 3, 4])
45. Масив
• Набір однотипних елементів, що мають
спільне ім'я, доступ до яких що здійснюється
по індексу.
• Є структурою з довільним доступом по
індексу
• У Python масив реалізований за допомогою
типу даних «список»
• Вони використовуються рідко, коли потрібно
досягти високої швидкості роботи. В інших
випадках масиви можна замінити іншими
типами даних: списками, кортежами, рядками.
46. Масив (матриця)
Часто в задачах доводиться
зберігати прямокутні таблиці з
даними. Такі таблиці називаються
матрицями, або двовимірними
масивами. У мові програмування
Python таблицю можна представити
у вигляді списку рядків, кожен
елемент якого є в свою чергу
списком, наприклад, чисел
50. def printer(event):
print ("Очередной 'Hello World!'")
Завдання кнопки вивести якесь
повідомлення у потік виводу,
використовуючи функцію print.
Робити вона це буде при натисканні на
неї лівою кнопкою миші.
Дії (алгоритм), які відбуваються при цій чи
іншій події, оформляють у вигляді
функції, а потім викликають, коли вони
знадобляться.
Параметр event – це яка-небудь подія.
51. root = Tk()
Об'єкт вікна верхнього рівня створюється
при зверненні до класу Tk модулі tkinter.
Змінну пов'язану з об'єктом-вікном
прийнято називати root
but = Button(root)
Кнопка створюється при зверненні до
класу Button модулі tkinter. Об'єкт кнопка
зв'язується з якої-небудь змінною (but). У
класі Button є обов'язковий параметр —
об'єкт, якому кнопка належить (root).
52. but["text"] = "Печать"
У кнопки багато властивостей:
розмір, колір фону і напису та ін.
Поки встановимо лише одну
властивість — текст (text)
but.bind("<Button-1>",printer)
Подія натискання лівою кнопкою
миші виглядає так: <Button-1>.
Потрібно зв'язати цю подію з
обробником (функцією printer). Для
зв'язку призначений метод bind.
53. but.pack()
Для відображення кнопки у вікні
використовується методу pack.
root.mainloop()
Для відображення галвного вікна
використовується метод mainloop.
54. Імітатор кубика
from tkinter import *
from random import randint
def roll():
text.delete(0.0, END)
text.insert(END, str(randint(1,6)))
window = Tk()
text = Text(window, width=1, height=1)
buttonA = Button(window, text='Press to
roll!', command=roll)
text.pack()
buttonA.pack()
60. from random import *
from tkinter import *
size = 500
window = Tk()
canvas = Canvas(window, width=size, height=size)
canvas.pack()
while True:
col = choice(['pink', 'orange', 'purple', 'yellow',
'red', 'green', 'blue'])
x0 = randint(0, size)
y0 = randint(0, size)
d = randint(0, size/5)
canvas.create_oval(x0, y0, x0+d, y0+d, fill=col)
window.update()
61.
62. Реакція на події
<Button-1> <Right>
<Button-3>
<space>
<Left>
<Up>
<KeyPress-a>
<Down>
Події миші Події клавіатури
Клік
лівою
кнопкою
Клік
правою
кнопкою
Натиснута
стрілка
вправо
Натиснута
стрілка
вліво
Натиснута
клавіша
«пробіл»
Натиснута
стрілка
вверх
Натиснута
стрілка
вниз
Натиснута
клавіша а Можна
поставити
різні літери
63. li = ["red","green"]
def color(event):
fra.configure(bg=li[0])
li[0],li[1] = li[1],li[0]
def outgo(event):
root.destroy()
from tkinter import *
root = Tk()
fra = Frame(root,width=100,height=100)
but = Button(root,text="Выход")
fra.pack()
but.pack()
root.bind("<Return>",color)
but.bind("<Button-1>",outgo)
root.mainloop()
64.
65. Створення свого
модуля на Python
Створимо файл mymodule.py, в якій
визначимо які-небудь функції:
def hello():
print('Hello, world!')
def fib(n):
a = b = 1
for i in range(n - 2):
a, b = b, a + b
return b
66. Створення свого
модуля на Python
Тепер у цій же папці створимо
інший файл, наприклад, main.py:
import mymodule
mymodule.hello()
print(mymodule.fib(10))
67. Створення свого
модуля на Python
def hello():
print('Hello, world!')
def fib(n):
a = b = 1
for i in range(n - 2):
a, b = b, a + b
return b
if __name__ == "__main__":
hello()
for i in range(10):
print(fib(i))