PyCode
22 subscribers
22 photos
43 links
Добро пожаловать на PyCode! Здесь мы вместе шаг за шагом изучаем основы языка программирования Python. От простых понятий до продвинутых тем, каждый урок будет наполнен понятными объяснениями, практическими примерами и, конечно же, юмором!
Download Telegram
👨‍💻1
👩‍💻f-строки в Python

💡f-строки (или форматированные строки) — это один из самых удобных способов форматировать строки в Python. Они были введены в версии 3.6 и значительно упростили подстановку переменных и выражений в текст. Форматирование с помощью f-строк читается проще, быстрее пишется и зачастую работает эффективнее по сравнению с другими методами.

☄️Для создания f-строки перед открывающей кавычкой добавляется символ f, а внутри строки в фигурных скобках {} можно вставлять переменные и выражения.
x = 10
y = 20
print(f"Сумма {x} и {y} равна {x + y}") # Сумма 10 и 20 равна 30


🥺Сравнение с str.format():
name = "PyCode"
age = 5

# Старый метод format
formatted_string = "Привет, {0}, тебе {1} лет.".format(name, age)

# f-строка
formatted_string = f"Привет, {name}, тебе {age} лет."

С f-строками нет необходимости отслеживать порядок подстановок — код становится более читаемым и интуитивным.

❗️Полезные возможности f-строк:
Округление чисел: Можно легко управлять форматированием чисел прямо в f-строке.
pi = 3.14159
print(f"Число π: {pi:.2f}") # Вывод: Число π: 3.14


Вызов функций: Внутри f-строки можно вызывать функции и методы.
name = "pycode"
print(f"Имя в верхнем регистре: {name.upper()}") # Вывод: Имя в верхнем регистре: PYCODE


📖Использование f-строк упрощает работу с форматированием строк, делает код чище и быстрее. Это важный инструмент для любого Python-разработчика.
#PyLearn

🐍Питай код с PyCode
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻2
👩‍💻Функция enumerate

💡Когда ты итерируешься по списку и тебе нужно не только значение, но и его индекс, используй enumerate(). Этот метод возвращает пару: индекс и элемент, упрощая работу с циклами.
Пример:
fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")


Вывод:
0: apple
1: banana
2: cherry


💻Это помогает сделать код чище и избавляет от необходимости вручную отслеживать индексы!
#PyTips

🐍Питай код с PyCode
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻3
👨‍💻1
👩‍💻Аргументы в функциях

👍В Python существует несколько способов передавать данные в функции с помощью аргументов.
Разберём основные виды: позиционные, именованные, а также специальные аргументы *args и **kwargs (но их разберем чуть позже).

👀Позиционные аргументы
Это аргументы, которые передаются в функцию в определённом порядке. Важно, чтобы порядок их следования совпадал с порядком, в котором они указаны в определении функции.
def greet(name, age):
print(f"Привет, {name}! Тебе {age} лет.")

greet('Alex', 25) # Позиционные аргументы

Здесь, 'Alex' передаётся параметру name, а 25 — параметру age. Если поменять порядок аргументов при вызове функции, результат будет некорректным.

💻Именованные аргументы
Именованные аргументы позволяют явно указывать, какому параметру соответствует передаваемое значение. Это особенно полезно, когда у функции много параметров, или вы хотите передать значения не в порядке их объявления.
    print(f"Привет, {name}! Тебе {age} лет.")

pythongreet(age=25, name='Alex')

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

💡Аргументы по умолчанию
Если вы хотите сделать какой-то аргумент необязательным, можно задать для него значение по умолчанию. Тогда, если при вызове функции этот аргумент не будет указан, будет использовано значение по умолчанию.
def greet(name, age=30):
print(f"Привет, {name}. Тебе {age} лет.")

greet('Alex') # age будет 30 по умолчанию


🤩Понимание различных типов аргументов помогает писать гибкие и универсальные функции.
#PyLearn

🐍Питай код с PyCode
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻3
👩‍💻Функция zip() для объединения коллекций

🏎Функция zip() позволяет объединить несколько последовательностей (списки, кортежи) в один итератор, создавая из элементов кортежи.
Пример:
names = ['Alice', 'Bob', 'Charlie']
scores = [85, 92, 78]
for name, score in zip(names, scores):
print(f"{name}: {score}")


Вывод:
Alice: 85
Bob: 92
Charlie: 78


✨Это удобно, если нужно итерироваться по нескольким спискам одновременно.
#PyTips

🐍Питай код с PyCode
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻4
👩‍💻Аргументы *args и **kwargs в Python

💬Python предлагает гибкий механизм передачи аргументов в функции с помощью специальных аргументов: *args и **kwargs. Эти конструкции позволяют передавать в функции произвольное количество позиционных и именованных аргументов.

🤩args — позиционные аргументы *args используется, когда нужно передать в функцию произвольное количество позиционных аргументов. Аргументы, переданные через *args, собираются в кортеж.

Пример:
python
def greet(*args):
for name in args:
print(f"Привет, {name}!")

greet('Alice', 'Bob', 'Charlie') # Выведет приветствия

для каждого имени
Здесь функция может принять любое количество аргументов, и их порядок важен. *args удобно использовать, когда заранее неизвестно, сколько аргументов будет передано в функцию.

💪kwargs — именованные аргументы kwargs применяется для передачи произвольного количества именованных аргументов. Такие аргументы передаются в виде словаря, где ключами являются имена аргументов, а значениями — переданные данные.

Пример:
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")

print_info(name="Alice", age=30, city="New York")

Здесь можно передать любое количество аргументов с ключами (именами), и они будут собраны в словарь. Это полезно, когда вы не уверены, какие именно аргументы могут быть переданы.

🎧*args и **kwargs позволяют писать функции, которые могут принимать произвольное количество аргументов, что делает ваш код более гибким и универсальным. *args собирает позиционные аргументы в кортеж, а **kwargs сохраняет именованные аргументы в словарь. Эта функциональность позволяет обрабатывать различные ситуации и упрощает разработку сложных систем.
#PyLearn

🐍Питай код с PyCode
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻3
👨‍💻3
Что выведет данный код?
Anonymous Quiz
71%
[19, 13, 5]
29%
[14, 8, 0]
0%
[19, 13, 0]
0%
[19, 12, 5]
👨‍💻3
👩‍💻Упрощай проверки с all()

💡Функция all() проверяет, что все элементы коллекции истинны. Это удобно для сокращения условий в коде.
Пример:
numbers = [2, 4, 6, 8]
if all([x % 2 == 0 for x in numbers]): # == сравнивает делится ли число без остатка на два
print("Все числа чётные!")

🚽Здесь all() проверяет, что все числа в списке делятся на 2. Это делает код чище и позволяет избежать вложенных циклов.
💻Используй all(), чтобы упростить условия!
#PyTips

🐍Питай код с PyCode
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻3
👩‍💻Основные принципы ООП: Инкапсуляция (2/3)

🏎Инкапсуляция — это ключевой принцип объектно-ориентированного программирования (ООП), который позволяет скрывать внутренние детали объекта и контролировать доступ к его данным. Она помогает защищать важную информацию и организовать чёткий интерфейс класса — набор публичных методов, через которые другие объекты могут взаимодействовать с классом.

😵‍💫Как работает инкапсуляция?
В Python инкапсуляция реализуется через сокрытие атрибутов:
Приватные атрибуты (например, __атрибут) скрыты и недоступны вне класса.
Защищённые атрибуты (например, _атрибут) доступны, но не предназначены для прямого использования за пределами класса.
Пример приватного атрибута:
class BankAccount:
def __init__(self, balance):
self.__balance = balance # Приватный атрибут

В этом примере атрибут __balance скрыт и доступен только через методы, защищающие от неправильных изменений. Мы создаём чёткий интерфейс для взаимодействия с данными объекта, и другие объекты могут работать только через определённые методы, не зная, как всё устроено внутри.

🤩Зачем нужна инкапсуляция?
Контроль доступа: Инкапсуляция защищает данные, гарантируя, что изменения в них происходят безопасно и через контролируемый интерфейс.
Упрощение интерфейса: Пользователь работает только с важными методами, не вникая в детали реализации.
Повышение надёжности кода: Защищённые данные и методы уменьшают вероятность ошибок, особенно при разработке сложных систем, где взаимодействие между объектами может быть сложным.

👍Инкапсуляция — важный инструмент для защиты данных, упрощения взаимодействия с объектами и улучшения надёжности кода. Используя её, вы создаёте безопасные интерфейсы, которые не позволяют внешнему коду напрямую вмешиваться в работу объекта.
#PyLearn #ООП

🐍Питай код с PyCode
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻3
👨‍💻3
👨‍💻3
👩‍💻Lambda-функции в Python

🤩Lambda-функции — это небольшие анонимные функции в Python, которые создаются с помощью ключевого слова lambda. Они особенно полезны, когда нужно написать короткую функцию на месте, без её явного объявления через def.

🥺Как работает lambda?
Lambda-функция состоит из:
Ключевого слова lambda
Аргументов функции
Выражения, которое будет выполнено и возвращено

Синтаксис:
lambda аргументы: выражение


Пример:
double = lambda x: x * 2
print(double(5)) # Выведет 10
Lambda-функция берёт один аргумент x и возвращает его удвоенное значение.


💡Применение: Lambda часто используется с такими функциями, как map(), filter() и sorted(), для кратких операций.

Пример с sorted():
pairs = [(1, 'one'), (2, 'two'), (3, 'three')]
pairs.sort(key=lambda pair: pair[1])
print(pairs) # [(1, 'one'), (3, 'three'), (2, 'two')]

✨Здесь lambda позволяет отсортировать список по второму элементу кортежа.

💻Когда использовать?
Lambda-функции идеально подходят для небольших одноразовых вычислений, когда объявлять полноценную функцию через def излишне.
#PyLearn

🐍Питай код с PyCode
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻3
👩‍💻Сокращаем код с помощью тернарного оператора

📖В Python есть удобный способ сокращать простые условные выражения — это тернарный оператор. Он позволяет писать условие в одну строку:
result = 'Even' if number % 2 == 0 else 'Odd'

🤩Здесь переменная result будет равна "Even", если число чётное, и "Odd", если нет. Это упрощает код и делает его более читабельным, когда требуется небольшое условие.
#PyTips

🐍Питай код с PyCode
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻3
👩‍💻Сортировка в Python: sort() и sorted()

💡В Python есть два основных способа сортировки списков: метод списка sort() и функция sorted(). Оба они используются для упорядочивания элементов, но работают по-разному.

💻sort(). Метод sort() сортирует список на месте, изменяя его порядок. Это метод изменяет сам объект списка и не возвращает новый список.
Синтаксис:
python 
list.sort(key=None, reverse=False)

key — необязательный параметр. Указывает функцию для сортировки элементов.
reverse — если True, сортировка выполняется в обратном порядке.
Пример:
python 
numbers = [5, 3, 4, 2, -1]
numbers.sort()
print(numbers) # [-1, 2, 3, 4, 5]


🚽sorted(). Функция sorted() не изменяет исходный список, а возвращает новый отсортированный список. Она работает с любыми итерируемыми объектами (списки, кортежи, строки и т.д.).
Синтаксис:
python 
sorted(iterable, key=None, reverse=False)

Пример:
 
python
numbers = [3, 1, 4, 2]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # [1, 2, 3, 4]
print(numbers) # [3, 1, 4, 2] — исходный список не изменился


🥺Основные отличия:
sort() изменяет исходный список, sorted() создаёт новый.
sort() работает только со списками, sorted() — с любыми итерируемыми объектами.

🤩sort() и sorted() — мощные инструменты сортировки в Python, которые помогают эффективно организовать данные в ваших программах. Они гибкие благодаря параметрам key и reverse, что делает их идеальными для различных задач.
#PyLearn

🐍Питай код с PyCode
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻3
👨‍💻3
Что выведет данный код?
Anonymous Quiz
14%
5
29%
Ошибка операции
14%
True
43%
0
👨‍💻3