Пример:
python
def greet(*args):
for name in args:
print(f"Привет, {name}!")
greet('Alice', 'Bob', 'Charlie') # Выведет приветствия
для каждого имени
Здесь функция может принять любое количество аргументов, и их порядок важен. *args удобно использовать, когда заранее неизвестно, сколько аргументов будет передано в функцию.
Пример:
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Alice", age=30, city="New York")
Здесь можно передать любое количество аргументов с ключами (именами), и они будут собраны в словарь. Это полезно, когда вы не уверены, какие именно аргументы могут быть переданы.
#PyLearn
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
PyCode
Добро пожаловать на PyCode! Здесь мы вместе шаг за шагом изучаем основы языка программирования Python. От простых понятий до продвинутых тем, каждый урок будет наполнен понятными объяснениями, практическими примерами и, конечно же, юмором!
👨💻3
👨💻3
Пример:
numbers = [2, 4, 6, 8]
if all([x % 2 == 0 for x in numbers]): # == сравнивает делится ли число без остатка на два
print("Все числа чётные!")
#PyTips
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻3
В Python инкапсуляция реализуется через сокрытие атрибутов:
Приватные атрибуты (например, __атрибут) скрыты и недоступны вне класса.
Защищённые атрибуты (например, _атрибут) доступны, но не предназначены для прямого использования за пределами класса.
Пример приватного атрибута:
class BankAccount:
def __init__(self, balance):
self.__balance = balance # Приватный атрибут
В этом примере атрибут __balance скрыт и доступен только через методы, защищающие от неправильных изменений. Мы создаём чёткий интерфейс для взаимодействия с данными объекта, и другие объекты могут работать только через определённые методы, не зная, как всё устроено внутри.
Контроль доступа: Инкапсуляция защищает данные, гарантируя, что изменения в них происходят безопасно и через контролируемый интерфейс.
Упрощение интерфейса: Пользователь работает только с важными методами, не вникая в детали реализации.
Повышение надёжности кода: Защищённые данные и методы уменьшают вероятность ошибок, особенно при разработке сложных систем, где взаимодействие между объектами может быть сложным.
#PyLearn #ООП
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻3
Что выведет данный код?
Anonymous Quiz
11%
[1], [1, 2], [3]
33%
[1], [2], [3]
44%
[1], [1, 2], [1, 2, 3]
11%
[1], [1, 2], [3]
👨💻3
Lambda-функция состоит из:
Ключевого слова lambda
Аргументов функции
Выражения, которое будет выполнено и возвращено
Синтаксис:
lambda аргументы: выражение
Пример:
double = lambda x: x * 2
print(double(5)) # Выведет 10
Lambda-функция берёт один аргумент x и возвращает его удвоенное значение.
Пример с sorted():
pairs = [(1, 'one'), (2, 'two'), (3, 'three')]
pairs.sort(key=lambda pair: pair[1])
print(pairs) # [(1, 'one'), (3, 'three'), (2, 'two')]
Lambda-функции идеально подходят для небольших одноразовых вычислений, когда объявлять полноценную функцию через def излишне.
#PyLearn
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻3
тернарный оператор. Он позволяет писать условие в одну строку:result = 'Even' if number % 2 == 0 else 'Odd'
#PyTips
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻3
Синтаксис:
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]
Синтаксис:
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() — с любыми итерируемыми объектами.
#PyLearn
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻3
👨💻3
😵💫Полиморфизм — это один из ключевых принципов ООП, который позволяет методам и объектам вести себя по-разному в зависимости от контекста. Это означает, что одна и та же операция может выполняться по-разному для объектов различных классов.Виды полиморфизма:
Пример:
class Animal:
def speak(self):
return "Some sound"
class Dog(Animal):
def speak(self):
return "Bark"
class Cat(Animal):
def speak(self):
return "Meow"
В этом примере классы Dog и Cat переопределяют метод speak(), унаследованный от класса Animal. Хотя метод имеет одно и то же название, он возвращает разные результаты в зависимости от типа объекта.
Пример:
class Shape:
def area(self):
pass
class Square(Shape):
def area(self):
return "Calculating area of square"
class Circle(Shape):
def area(self):
return "Calculating area of circle"
Здесь классы Square и Circle реализуют метод area(), но их поведение различается в зависимости от фигуры.
Полиморфизм делает код более гибким и универсальным. Вы можете писать функции, которые работают с разными типами объектов, не зная их точных классов заранее. Это упрощает разработку и поддерживает принцип "написать код один раз, использовать везде".
#PyLearn #ООП
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻3
Пример:
for i in range(3):
if i == 2:
break
else:
print("Цикл завершён без break")
# Ничего не выведется, т.к. сработал break
#PyTips
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻3
Плюсы многопоточности
Параллелизм позволяет выполнять задачи в фоне, не блокируя основное выполнение программы.
Удобство использования стандартной библиотеки threading.
Пример:
import threading
def print_numbers():
for i in range(5):
print(i)
thread = threading.Thread(target=print_numbers)
thread.start()
Минусы многопоточности:
#PyLearn
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻4
Преимущества:
Python известен своим лаконичным и простым синтаксисом. Он ближе к естественному языку, что делает его доступным даже для новичков.
Python предоставляет мощную стандартную библиотеку, включающую инструменты для работы с файлами, операционными системами, сетями, протоколами, базами данных, веб-сервисами и многим другим. Это позволяет использовать Python практически в любой сфере разработки — от веб-программирования до машинного обучения.
Программы на Python можно легко запускать на различных операционных системах — Windows, macOS, Linux и др. Благодаря платформонезависимости его можно использовать для создания приложений, которые будут работать на любом устройстве без необходимости изменять код.
Недостатки:
Python — интерпретируемый язык, и это делает его значительно медленнее языков вроде C++ или Java. Python не подходит для задач, требующих высокой производительности, таких как сложные вычисления или обработка больших данных в реальном времени.
Один из главных недостатков Python — это GIL (Global Interpreter Lock). GIL не позволяет одновременно выполнять несколько потоков, что снижает эффективность многопоточности в задачах, связанных с процессором (CPU-bound задачи). В задачах с I/O (сетевые операции, работа с файлами) это не так критично, но при вычислениях на нескольких ядрах CPU GIL становится узким местом.
Python использует динамическую типизацию, что упрощает написание кода, но увеличивает потребление памяти. Это может стать проблемой в системах с ограниченными ресурсами или при работе с большими данными.
#PyLearn
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻3
Метод split() используется для разделения строки на части на основе разделителя (по умолчанию — пробелы). Это удобный способ разбить строку на слова или части для дальнейшей обработки.
Пример:
text = "Python is awesome"
words = text.split()
print(words) # ['Python', 'is', 'awesome']
Вы можете указать собственный разделитель:
date = "2024-10-02"
parts = date.split("-")
print(parts) # ['2024', '10', '02']
#PyTips
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻3
👨💻1
numbers = [1, 2, 3, 4, 5]
squared = map(lambda x: x**2, numbers)
print(list(squared)) # оборачиваем в список потому что map возвращает объект
[1, 4, 9, 16, 25]
Здесь map() проходит по списку чисел и возводит каждое в квадрат.
numbers = [1, 2, 3, 4, 5]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers)) # filter тоже возвращает объект
[2, 4]
Здесь filter() вернул только четные числа.
map() полезен, когда нужно применить одну и ту же операцию ко всем элементам списка, как в случае с трансформацией данных.
filter() хорош для ситуаций, когда необходимо отобрать элементы на основе условия
#PyLearn
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻4