TGViewer
Channel Public Channel
Python Community

Python Community

@python_community_ru

Python Community RU - СНГ сообщество Python-разработчиков

Чат канала: @python_community_chat

Сотрудничество: @cyberJohnny и @Sergey_bzd

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Subscribers
11.6K
Photos
1.5K
Videos
123
Links
1K

Showing posts older than #711 · Back to latest

Older Posts 20 shown
Post #710 5.12K
⚡️ Что такое __name__

Заглянув в большинство скриптов вы можете увидеть строку по типу __name__ == "__main__". Многие новички не понимают, зачем её добавлять, если и так всё работает.

Представим, что вы написали небольшой скрипт, который выводит hello world при запуске. А другой программист захотел импортировать ваш модуль, поскольку там была функция print_hello().

Но вместе с импортом он получил ненужную hello world в терминал. Почему так случилось? Потому что python-код также выполняется во время импорта. Чтобы этого избежать, используют __name__.

При импорте __name__ получает название модуля, а при прямом запуске (python3 script.py) его значение будет __main__. Подробнее вы, как обычно, можете почитать тут.

#теория
Post #707 4.59K
#python_quiz
Post #706 4.83K
⚡️Создаём файловые пути

Функционал os.path кому-то может показаться недостаточным и, чтобы не изобретать велосипед, стоит взглянуть на pathlib, добавленный с версии python 3.4.

Самый важный класс — Path. Он создаёт путь и выбирает подкласс (PosixPath, WindowsPath) на основе запущенной ОС. Подробнее можно почитать тут.

Работать с ним можно с помощью оператора "/", который добавляет второй аргумент в путь.

Ещё одной особенностью класса является совместимость с os, поскольку это PathLike объект.

P.S.
Если вы используете модуль glob, то можете его не импортировать, функционал хранится в функции pathlib.glob.

#миниурок #pathlib
  • 👍 1
Post #705 4.51K
⚡️ Ответ на предыдущую задачу
Post #703 4.73K
⚡️ Задачка с собеседования | #Easy

Условие:

Вам необходимо отсортировать список, но все парные числа должны остаться на месте.

Примеры:

sort_array([3, 1]) -> [1, 3]
sort_array([3, 2, -1, 4]) -> [-1, 2, 3, 4]
sort_array([5, 3, 2, 8, 1, 4]) -> [1, 3, 2, 8, 5, 4]
sort_array([0, -1, -2, -3, 4, 1]) -> [0, -3, -2, -1, 4, 1]

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
Post #702 5K
⚡️ Ищем файлы по шаблону

Если вы работали с Unix-подобными ОС, то наверняка знаете, что можно выбирать файлы используя шаблоны. Вот и в Python есть такая возможность — всё благодаря модулю glob.

glob.glob(pathname, recursive=False) — находит файлы по переданному шаблону. Кстати, о шаблонах можете почитать тут. recursive говорит функции, стоит ли проходить по под-директории, например при наличии ** в шаблоне.

glob.iglob(pathname, recursive=False) — делает то же самое, что и функция выше, но возвращает итератор, что позволяет сэкономить на памяти, если файлов много.

glob.escape(pathname) — экранирует особые символы (*, ?, [).

Подробнее о модуле вы, как обычно, можете почитать на сайте документации.

#миниурок #glob
Post #700 4.46K
#python_quiz
Post #699 4.86K
⚡️Создаём файловые пути

Если вы каким-то образом взаимодействуете с файлами в операционной системе, то вам необходимо создавать пути, что можно делать с помощью модуля os.path.

Вот парочка полезных функций из него:

join(path, *paths)
— объединяет все пути в один, используя разделитель, если необходимо.

expandvars(path) — заменяет имена переменных $NAME или ${NAME} на их значения. На ОС Windows разрешает использовать %NAME%.

expanduser(path) — заменяет такие компоненты как "~" или "~user" на директорию пользователя. На Linux это значение HOME, а на Windows — USERPROFILE или HOMEPATH + HOMEDRIVE.

Если вам что-то не понятно или же вам необходим больший функционал, то посетите страницу документации.

#миниурок #os
Post #698 4.4K
⚡️ Ответ на предыдущую задачу
Post #697 4.67K
⚡️ Задачка с собеседования | #Easy

Условие:

Ваша задача — написать функцию, которая проверяет, может ли такая переменная существовать. Переменная не может начинаться с цифры, состоит только из символов A-z, цифр и "_". Также, она не может быть ни одним из зарегистрированных слов. Их можно взять их keyword.kwlist.

Примеры:

check_var_name('I$Contain0*7') -> False
check_var_name('1wrong') -> False
check_var_name('_oKe') -> True
check_var_name('True') -> False

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
  • 👍 1
Post #696 4.78K
⚡️ Работаем с окружением

Внутри операционной системы существуют некие переменные окружения. Самая популярная — PATH, её вы могли видеть при установке языка. Что они значат я рассказывать не буду, а вот как с ними работать — расскажу.

Для этого нам потребуется модуль os, а если быть конкретнее — os.environ (или os.environb) и os.getenv() (или os.getenvb()).

os.environ — словарь, внутри которого можно брать значения переменных по ключу. Если вам нужно их байтовое представление, воспользуйтесь os.environb.

os.getenv(key, default=None) — берёт значение по ключу из os.environ, а если ключа не существует, возвращает default. os.getenvb() возвращает данные из os.environb.

#миниурок #os
  • 👍 1
Post #693 4.48K
#python_quiz
Post #692 4.97K
⚡️ Отображаем календарь

В языке Python есть интересный модуль, позволяющий выводить календарь так же, как и программа cal в unix-подобных системах.

TextCalendar и HTMLCalendar позволяют выводить календарь в текстовом и веб форматах. Вы можете их настроить, используя методы, записанные в документации.

calendar.weekday(year, month, day) — возвращает день недели в определённый день. Возвращает число от 0 до 6, что, соответственно, понедельник - суббота.

calendar.isleap(year) — позволяет узнать, является ли год високосным.

calendar.firstweekday() — сообщает день недели, с которого начинается неделя.

#миниурок #calendar
Post #690 4.91K
⚡️ Работаем с временем

Ранее я рассказывал о модулях для взаимодействия с временем, но их необходимо устанавливать, а вот datetime — нет.

Хоть с ним и неудобно работать в отличие от его конкурентов, с ним у вас в проекте будет меньше зависимостей. Объектов много, поэтому тут будут самые используемые.

date, time, datetime — классы, предоставляющие доступ к дате, времени или к всему сразу.

Получить их можно с помощью date.today(), datetime.today(), datetime.now() или создав их самостоятельно, передав нужные значения, которые можно почитать в документации.

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

#миниурок #datetime
Post #688 4.61K
#python_quiz
Post #687 5.04K
⚡️ Оператор with

Если вы работаете с файлами или соединениями, то их стоит закрывать после работы. Использовать try/except/finally — не красиво и занимает много места.

Поэтому, разработчики придумали оператор with, выполняющий обязательные функции по окончанию работы с классом. Можете почитать о нём в PEP 343.

Как и у любого оператора, у with есть свои методы. __enter__ вызывается в переданном классе с самого начала, для инициализации. А после, по окончанию работы, вызывается __exit__.

#теория #with
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →