Python Hub - сборище Питонистов
1.71K subscribers
657 photos
1 video
37 files
276 links
Уголок счастья для любого питониста.

Сотрудничество или заказы: @leshunist

https://shcoder.dev - студия разработки ShcoderDevelopment

https://t.me/pythonhub_chat - чат
Download Telegram
Что выдаст код выше?
Anonymous Quiz
12%
1 3
50%
2 3
2%
1 2
8%
2 4
5%
3 4
5%
1 4
17%
Error
👍2
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

В тексте переменной txt есть 4 буквы —> индекс последней —> [3]
Заходим в первый try, сразу же запрыгиваем во второй. Пробуем получить txt[5] —> не можем—> ошибку ловит except.
В except'e выводим число 2.

Далее выходим из внутреннего try-except'a и пытаемся получить txt[3] —> удачно —> на следующей строке выводим 3.

В except не заходим, так как все прошло успешно.
Ответ: 2 3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
👩‍💻 Что будет, если написать import this в Python?

Когда мы пишем `import this` в Python, происходит загрузка модуля под названием "this". Однако, вместо того, чтобы импортировать какие-то функции или переменные, этот модуль выводит на экран "The Zen of Python" - набор принципов и философии языка программирования Python.

А ты знал?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
🧹 Что такое "чистая" функция?


"Чистая" функция - это функция, которая при выполнении одного и того же входного значения всегда возвращает одинаковый результат и не имеет побочных эффектов. То есть, она не влияет на состояние программы или внешние переменные. Результат работы "чистой" функции зависит только от переданных ей аргументов.

Пример чистой функции

Давайте рассмотрим пример простой чистой функции на языке Python. Предположим, у нас есть функция double, которая удваивает переданное число:

def double(number):
return number * 2


Эта функция является "чистой", потому что она всегда возвращает удвоенное значение переданного числа и не имеет побочных эффектов. Независимо от контекста выполнения и внешних переменных, результат работы этой функции будет одинаковым при одинаковом входном значении.

Пример нечистой функции

Рассмотрим теперь пример нечистой функции на языке Python. Предположим, у нас есть функция add_to_list, которая добавляет переданное значение в глобальный список:

my_list = []

def add_to_list(value):
my_list.append(value)


Эта функция не является "чистой", потому что она изменяет состояние программы путем добавления значения в глобальный список my_list. Результат работы этой функции зависит не только от переданного аргумента, но и от текущего состояния списка my_list.
Please open Telegram to view this post
VIEW IN TELEGRAM
5
🚀 Оптимизация кода Python

🤔 Многие сталкиваются с проблемой, что кол очень долго выполняется, тобиж не оптимизирован. Сейчас мы это исправим.

➡️ Для примера возьмём функцию вычисления последовательности Фибоначчи:
def fibonacci(n): 
if n <= 1:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)

for i in range(50):
print(i, fibonacci(i))





😰 Если сейчас мы запустим код, то он будет выполняться ну очень долго. 😦

🧠 Теперь давайте изучим код. Если подумать, то понятно что у нас много раз просчитывается одни и те же значения. Так давайте будем сохранять то что уже посчитали! Для этого можно использовать декоратор lru_cache из встроенного модуля functools:
from functools import lru_cache


@lru_cache
def fibonacci(n):
if n <= 1:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)

for i in range(50):
print(i, fibonacci(i))




😀 Так, данный код будет выполняться в рааазы быстрее.
Подробнее про этот декоратор можно почитать здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🐍 Ещё одна пасхалка в виде встроенного модуля

Все смотришь как люди "hello world" пишут через print? А зачем, если можно сделать так:
import __hello__



А какие пасхалки знаете Вы?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🤨 Для чего нам создавать ошибку? Raise exception в Python.


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


Когда мы пишем программы, мы стараемся их делать максимально надежными и безопасными. Однако, иногда может возникнуть ситуация, когда мы хотим явно указать на наличие проблемы. Например, если в функции передаются некорректные аргументы или программа не может продолжить выполнение из-за некорректного состояния. В таких случаях мы можем создать исключение с помощью оператора raise, чтобы прервать нормальное выполнение программы и показать, что что-то пошло не так.

➡️ Использование оператора raise

Оператор raise в Python позволяет нам создавать исключения вручную. Мы можем указать тип исключения и дополнительное сообщение, которое будет содержаться в исключении. Например, мы можем создать исключение типа ValueError, если функция получила некорректное значение аргумента. Мы также можем наследовать собственные классы исключений от встроенных классов, чтобы создать более специфичные исключения для наших нужд.

Вот пример использования оператора raise:

def divide_numbers(a, b):
if b == 0:
raise ValueError("Делитель не может быть нулем")
return a / b

try:
result = divide_numbers(10, 0)
print("Результат:", result)
except ValueError as e:
print("Ошибка:", str(e))


В этом примере мы определяем функцию divide_numbers, которая делит одно число на другое. Если второе число равно нулю, мы вызываем исключение ValueError с сообщением "Делитель не может быть нулем". Затем мы обрабатываем это исключение с помощью блока try-except, чтобы поймать и обработать ошибку.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41
Что выдаст код выше?
Anonymous Quiz
52%
1
15%
2
3%
1 2
20%
Error
11%
Не знаю
👍5
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

'b' in 'bbbb' выдаст нам True —> потому что левый элемент действительно присутствует в правом.
Перед этим выражением есть not, который превратит True в False
Перед not'ом есть еще not —> превратит назад в True
Еще not —> False
еще not —> True
Получится в конце if True —> условие выполняется.

Выдаст 1.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🕸 Что такое pywebcopy?


PyWebCopy - это инструмент на языке Python, который позволяет скачивать целые веб-сайты и их содержимое для локального использования.

Основные возможности pywebcopy

PyWebCopy обладает несколькими основными функциями, которые делают его полезным инструментом для скачивания веб-сайтов:

1. Полное скачивание сайта: С помощью pywebcopy вы можете скачать целый веб-сайт, включая все его страницы, изображения, стили CSS и другие ресурсы. Это особенно полезно, когда требуется сохранить копию веб-сайта или работать с ним офлайн.

2. Обработка ссылок: PyWebCopy автоматически обрабатывает ссылки на другие страницы внутри веб-сайта и корректно настраивает их, чтобы они указывали на локально скачанные версии страниц. Это позволяет вам легко навигировать по веб-сайту и просматривать его содержимое в офлайн-режиме.

3. Поддержка фильтров: Вы можете настроить pywebcopy так, чтобы он скачивал только определенные типы файлов или игнорировал некоторые страницы. Это полезно, если вы хотите ограничить размер скачанного веб-сайта или избежать скачивания ненужной информации.

Как использовать pywebcopy

Для использования pywebcopy вам потребуется установить его с помощью pip. После установки вы можете импортировать его в свой код Python и использовать.

Давайте рассмотрим простой пример использования pywebcopy для скачивания веб-сайта. Предположим, что у нас есть веб-сайт с URL-адресом "[https://www.example.com](https://www.example.com/)" и мы хотим скачать его для дальнейшего использования офлайн.

from pywebcopy import save_webpage

url = '<https://www.example.com>'
project_folder = 'example_website'

save_webpage(url, project_folder)


В этом примере мы использовали метод save_webpage из pywebcopy для скачивания веб-сайта по указанному URL и сохранения его в папке проекта "example_website". После выполнения этого кода, мы получим локальную копию веб-сайта, включая все его страницы и ресурсы.

https://pypi.org/project/pywebcopy/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
⌨️ Transliterate в Python

Библиотека Transliterate обеспечивает простой перевод текста между кириллицей и латиницей в Python. Установка производится командой pip install transliterate.

from transliterate import translit

text = "Привет, мир!"
transliterated_text = translit(text, 'ru', reversed=True)
print(transliterated_text)


🧑‍💻 Это удобное средство при работе с многоязычными данными. 📚Документация содержит дополнительные сведения и примеры использования.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
1 февраля мир отмечает праздник – День изменения пароля.

А какой пароль стоит у вас и на какой соц. сети?🤤
👍5
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Важно знать, что (2) —> просто 2. (2,) —> кортеж с элементом 2
В круглых скобках запятая сильно решает.

Умножая 'a' * 2 —> 'aa'
Список всегда список, поэтому b —> ['b', 'b']

Ну и f-строка выведет это все, предварительно отформатировав в текст.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5