😵💫Полиморфизм — это один из ключевых принципов ООП, который позволяет методам и объектам вести себя по-разному в зависимости от контекста. Это означает, что одна и та же операция может выполняться по-разному для объектов различных классов.Виды полиморфизма:
Пример:
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
print("Python", "is", "awesome", sep=" - ")
# Вывод: Python - is - awesome
print("Hello", end="!")
# Вывод: Hello!
#PyTips
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻5
👨💻3
1. Положительные индексы
Пример:
text = "Python"
print(text[0]) # 'P'
print(text[1]) # 'y'
Здесь text[0] вернет первый символ строки — "P", а text[1] вернет "y".
Этот принцип применим не только к строкам, но и к другим итерируемым объектам, таким как списки:
numbers = [10, 20, 30, 40]
print(numbers[0]) # 10
print(numbers[2]) # 30
2. Отрицательные индексы
Пример:
text = "Python"
print(text[-1]) # 'n'
print(text[-2]) # 'o'
В данном примере text[-1] возвращает последний символ строки — "n", а text[-2] — предпоследний символ "o". Этот подход особенно полезен, когда длина коллекции неизвестна, но нужно получить доступ к её последним элементам.
Списки (и другие итерируемые объекты) также поддерживают отрицательные индексы
3. Срезы
start — это начальный индекс (включительно), stop — конечный индекс (не включительно), step — шаг, который определяет, сколько элементов пропускать при итерации.
Пример:
text = "Python"
print(text[1:4]) # 'yth'
Здесь text[1:4] вернет подстроку с 1-го по 3-й индексы, то есть "yth". Важно отметить, что символ с индексом 4 не включается в результат.
4. Шаги
Пример:
text = "Python"
print(text[::2]) # 'Pto'
Здесь используется шаг 2, что приводит к выбору каждого второго символа строки. Результат — "Pto".
Вы также можете использовать отрицательные шаги, чтобы развернуть строку:
print(text[::-1]) # 'nohtyP'
5. Изменение элементов с помощью индексов (в списках)
Пример:
numbers = [1, 2, 3, 4, 5]
numbers[0] = 10
print(numbers) # [10, 2, 3, 4, 5]
#PyLearn
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻4
Пример:
words = ['Python', 'is', 'awesome']
sentence = ' '.join(words)
print(sentence) # 'Python is awesome'
Здесь мы соединили список слов с пробелом в качестве разделителя. Вы можете использовать любой символ, например, запятую или тире:
print(', '.join(words)) # 'Python, is, awesome'
#PyTips
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻4
👨💻2
Импорты в Python — важный инструмент для организации кода и повторного использования модулей. Импортируя библиотеки или отдельные функции, вы можете значительно упростить свою программу.
1. Как импортировать библиотеку
import math
Теперь доступ к функциям библиотеки осуществляется через точечную нотацию:
print(math.sqrt(16)) # Вывод: 4.0
2. Импортирование отдельной функции
from math import sqrt
print(sqrt(16)) # Вывод: 4.0
Такой способ удобен, когда нужна одна или несколько функций, и не нужно импортировать всю библиотеку.
3. Импортирование с псевдонимом (as)
import math as m
print(m.sqrt(16)) # Вывод: 4.0
Это сокращает код и делает его более читаемым, особенно если часто используется одна и та же библиотека.
4. Импорт всех элементов модуля с помощью *
pythonКопировать кодfrom math import *
print(sqrt(16)) # Вывод: 4.0
print(factorial(5)) # Вывод: 120
Этот метод позволяет обращаться к функциям без префикса библиотеки. Однако его использование не рекомендуется, так как он может привести к конфликтам имен, если несколько импортируемых модулей содержат функции с одинаковыми именами.
#PyLearn
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻3
Пример использования:
from pprint import pprint
data = [{'name': 'Alice', 'age': 30}, {'name': 'Bob', 'age': 25}]
pprint(data)
Вывод будет отформатирован для лучшей читаемости:
[{'age': 30, 'name': 'Alice'},
{'age': 25, 'name': 'Bob'}]
#PyTips
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻3
👨💻2
pip — это пакетный менеджер для Python, который используется для установки, управления и обновления пакетов и библиотек. Он позволяет разработчикам легко интегрировать сторонние инструменты и расширять функциональность своих программ.
Установка пакетов:pip install package_name
Обновление пакетов:pip install --upgrade package_name
Удаление пакетов:pip uninstall package_name
Список установленных библиотек:pip list
#PyLearn
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻3