
Це фрагмент книги Python з нуля, яка допоможе вам навчитися програмуванню з нуля. Ви можете знайти його на Allegro, Empik та в інтернет-книгарнях.
tax може містити все, що стосується податків), або використання (наприклад, папка views може містити всі визначення елементів перегляду, тобто як має виглядати наш застосунок). Якщо над нашим проєктом працюють дві окремі команди, ми прагнемо, щоб вони працювали над різними файлами чи папками.salaries.py — файл, який містить список працівників та їхніхньої заробітної платні. Цей файл створений та ведеться відділом кадрів.finance.py — файл, який містить функції для розрахунку суми виплати, податків і відображення для переказів наприкінці місяця. Цей файл створений і ведеться фінансовим відділом.finance.py потрібно мати доступ до переліку співробітників, щоб мати можливість переглядати їхню заробітну платню. Для цього нам потрібен імпорт, який ми невдовзі представимо. Але почнемо з зовнішнього вигляду файлу salaries.py, який ми будемо імпортувати.# salaries.py class Person: def __init__(self, full_name, salary): self.full_name = full_name self.salary = salary def __str__(self): return self.full_name workers = [ Person("Aleksander Brown", 3456.78), Person("Celina Drozd", 4567.89), # ... ]
A в папці a, модуль матиме назву a.A).salaries (тобто файл salaries.py) — вжити слово import і назву цього модуля, тобто import salaries. В результаті цієї інструкції ми отримуємо об’єкт salaries, який містить усі елементи, визначені у файлі salaries.py.import salaries for person in salaries.workers: print(person) # Aleksander Brown # Celina Drozd print(salaries.Person("Ala Mała", 5678)) # Ala Mała
workers і використати її для перегляду списку виплат:import salaries def brutto_to_netto(brutto): # Дуже спрощена функція return brutto * 0.75 if __name__ == '__main__': for worker in salaries.workers: salary_netto = brutto_to_netto(worker.salary) print(f"{salary_netto} для {worker.full_name}") # 2592.0 для Aleksander Brown # 3425.25 для Celina Drozd
salaries може бути хорошою назвою для модуля, але не обов’язково для об’єкта, який містить те, що в цьому модулі зберігається. Для працівників фінансового відділу було б інтуїтивно зручно називати цей об’єкт hr, тому що всі говорять, що це дані з відділу HR [^205_1]. Щоб зробити це, ми можемо додати ключове слово as, яке вказує, під якою назвою має відображатися імпортований об’єкт. Цей спосіб імпортування дуже популярний, оскільки він не лише чітко показує, звідки походять елементи, але й скорочує посилання на них.import salaries as hr for person in hr.workers: print(person) # Aleksander Brown # Celina Drozd print(hr.Person("Ala Mała", 5678)) # Ala Mała
import salaries as hr def brutto_to_netto(brutto): # Дуже спрощена функція return brutto * 0.75 if __name__ == '__main__': for worker in hr.workers: salary_netto = brutto_to_netto(worker.salary) print(f"{salary_netto} для {worker.full_name}") # 2592.0 для Aleksander Brown # 3425.25 для Celina Drozd
from, потім вказуємо назву модуля, використовуємо слово import і зазначаємо назву елемента, який потрібно імпортувати. Ось як буде виглядати імпорт класу Person:from salaries import Person print(Person("Ala Mała", 5678)) # Ala Mała
workers:from salaries import workers for person in workers: print(person) # Aleksander Brown # Celina Drozd
workers:from salaries import workers def calculate_salary(brutto): # Дуже спрощена функція return brutto * 0.75 if __name__ == '__main__': for worker in workers: salary_netto = calculate_salary(worker.salary) print(f"{salary_netto} для {worker.full_name}") # 2592.0 для Aleksander Brown # 3425.25 для Celina Drozd
workers ми можемо посилатися на нього без указування назви модуля.
math, який містить різноманітні математичні функції. До нього входить, наприклад функція factorial, яку ми самі реалізували в розділі Функції. Щоб імпортувати пакет, замість назви файлу ми використовуємо назву цього пакета.import math print(math.factorial(5)) # 120
sin, тобто синус, дуже важлива в математиці функція. Замість того, щоб імпортувати весь пакет, ми імпортуємо лише функцію sin через from math import sin.from math import sin print(sin(2.3)) # 0.7457052121767203
random, який надає функції, що повертають випадкові значення. Наприклад, якщо ми використовуємо функцію randit, визначену в цьому пакеті, ми отримаємо випадкове ціле число в заданому діапазоні.import random print(random.randint(1, 10)) # Випадкове число від 1 до 10 (включно з 10)
random широко використовуються в різноманітних азартних іграх. Коли хтось проводить вікторину, він може використовувати функцію shuffle, щоб перетасувати запитання. Особливо популярна функція random, яка повертає дійсне число більше, ніж 0, але менше, ніж 1.from random import random print(random()) # Число, яке більше, ніж 0, або дорівнює 0, # але менше, ніж 1
datetime. Він дозволяє нам працювати з часом, часовими поясами, датами тощо. Клас datetime, що в ньому міститься, визначає дату. Якщо ми хочемо визначити, які зараз дата й час (на основі часу нашого комп’ютера), ми можемо використовувати datetime.now(). Об’єкт datetime має, серед іншого, атрибути year, month та day, які дозволяють посилатися на певний компонент дати.from datetime import datetime battle = datetime(1410, 7, 15) print(battle) # 1410-07-15 00:00:00 print(battle.year) # 1410 print(battle.month) # 7 print(battle.day) # 15 now = datetime.now() print(now) # np. 2022-02-02 12:23:17.058498
[^205_2]: Концепція пакета використовується подібно, як і в багатьох інших мовах програмування, — ідея бібліотек. Іноді ці два терміни вважаються взаємозамінними, але в Python більше прийнято вживати термін "пакет".
