Функции и модули в Python

Функции и модули в Python

Урок 3: Функции и модули в Python

В този урок ще се запознаем с функциите и модулите в Python. Ще разгледаме как да създаваме, използваме и организираме функции, както и как да използваме модули за структуриране на кода и повторно използване на функционалност.

Функции в Python

Функциите са основен елемент в програмирането, който ни позволява да организираме кода си в многократно използваеми блокове. Те се дефинират с ключовата дума def.

Дефиниране на функция

Ето пример за проста функция, която отпечатва съобщение:

def greet():
    print("Hello, world!")

Извикване на функция

За да използваме функцията, просто я извикваме по име:

greet()  # Отпечатва "Hello, world!"

Функции с параметри

Функциите могат да приемат параметри, които им позволяват да работят с различни входни данни. Ето пример:

def greet(name):
    print(f"Hello, {name}!")

greet("Alice")  # Отпечатва "Hello, Alice!"
greet("Bob")    # Отпечатва "Hello, Bob!"

Функции с връщане на стойност

Функциите могат да връщат стойности с помощта на ключовата дума return. Ето пример за функция, която изчислява квадрата на дадено число:

def square(number):
    return number * number

result = square(4)
print(result)  # Отпечатва 16

Обхват на променливите (Variable Scope)

Променливите в Python имат различен обхват в зависимост от това къде са дефинирани.

Локални променливи

Локалните променливи се дефинират вътре в функция и съществуват само в нейните граници:

def my_function():
    local_var = 10
    print(local_var)

my_function()  # Отпечатва 10
print(local_var)  # Грешка: local_var не е дефинирана извън функцията

Глобални променливи

Глобалните променливи се дефинират извън функциите и могат да бъдат достъпвани от всяка част на кода:

global_var = 20

def my_function():
    print(global_var)

my_function()  # Отпечатва 20
print(global_var)  # Отпечатва 20

Рекурсия

Рекурсията е техника, при която функция извиква самата себе си. Тя е полезна за решаване на задачи, които могат да бъдат разделени на по-малки подзадачи.

Пример за рекурсивна функция, която изчислява факториал на число:

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)

print(factorial(5))  # Отпечатва 120

Модули в Python

Модулите са начин за организиране на кода в отделни файлове и повторно използване на функционалност. Всеки файл с разширение .py е модул.

Импортиране на модули

Можем да импортираме съществуващи модули с ключовата дума import. Пример с вградения модул math:

import math

print(math.sqrt(16))  # Отпечатва 4.0

Импортиране на конкретни функции

Можем да импортираме конкретни функции от модул:

from math import sqrt

print(sqrt(25))  # Отпечатва 5.0

Създаване на собствен модул

За да създадем собствен модул, просто създаваме файл с Python код и го импортираме в друг файл.

Пример:

mymodule.py

def greet(name):
    print(f"Hello, {name}!")

main.py

import mymodule

mymodule.greet("Alice")  # Отпечатва "Hello, Alice!"

Полезни вградени модули

Python предоставя множество вградени модули, които можем да използваме за различни задачи.

Модулът os

Модулът os предоставя функции за работа с операционната система.

Пример:

import os

# Показване на текущата директория
print(os.getcwd())

# Създаване на нова директория
os.mkdir("new_directory")

# Промяна на текущата директория
os.chdir("new_directory")
print(os.getcwd())

Модулът datetime

Модулът datetime предоставя функции за работа с дати и часове.

Пример:

import datetime

# Получаване на текущата дата и час
now = datetime.datetime.now()
print(now)

# Форматиране на дата
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date)

Организация на кода

Добрата организация на кода прави проектите по-лесни за поддържане и разбиране. Използването на функции и модули е ключово за тази цел.

Структуриране на проект

Добра практика е да организирате кода си в папки и файлове по следния начин:

project/
├── main.py
├── mymodule.py
└── utils/
    └── helper.py

Използване на __init__.py

Файлът __init__.py се използва за обозначаване на директория като пакет. Това ни позволява да импортираме модули от тази директория.

utils/init.py

# Този файл може да бъде празен или да съдържа код за инициализация на пакета

main.py

from utils.helper import helper_function

helper_function()

Примерна програма: Управление на библиотека

Нека създадем програма за управление на библиотека с книги, която използва функции и модули.

library.py

books = []

def add_book(title, author):
    book = {"title": title, "author": author}
    books.append(book)

def remove_book(title):
    global books
    books = [book for book in books if book["title"] != title]

def list_books():
    for book in books:
        print(f"Title: {book['title']}, Author: {book['author']}")

main.py

import library

library.add_book("The Great Gatsby", "F. Scott Fitzgerald")
library.add_book("1984", "George Orwell")

print("Books in library:")
library.list_books()

library.remove_book("1984")

print("\nBooks in library after removal:")
library.list_books()

В този урок разгледахме как да създаваме и използваме функции и модули в Python. Научихме как да организираме кода си и как да използваме вградени модули за различни задачи. В следващите уроци ще продължим да разширяваме нашите знания за Python и ще се запознаем с по-напреднали теми като обектно-ориентираното програмиране и работа с файлове. Практикувайте редовно и експериментирайте с различни функции и модули, за да затвърдите наученото.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: