Forwarded from DE
Загадка
```py t = (1, 2, [3, 4]) t[2] += [5, 6] ``` Что случится в результате? #python
```py t = (1, 2, [3, 4]) t[2] += [5, 6] ``` Что случится в результате? #python
Final Results
47%
`t` принимает значение `(1, 2, [3, 4, 5, 6])`
35%
Исключение `'tuple' object does not support item assignment`
8%
Ни то, ни другое
10%
И то, и другое
Forwarded from DE
Опросы в телеге не поддерживают форматирование кода, дублирую код для проверки:
Это патология Python.
Из такого примера ты можешь сделать следующие выводы:
1️⃣ Не помещай изменяемые элементы в кортежи.
2️⃣ Составное присваивание -- не атомарная операция
3️⃣ Иногда следует изучать байт-код, чтобы понять, что происходит под капотом
Удобный ресурс для пошагового исполнения кода с визуализацией - pythontutor.com
#python #quiz #blowmymind
t = (1, 2, [3, 4])
try:
t[2] += [5, 6]
except TypeError as err:
print(err)
print(t)
Это патология Python.
Из такого примера ты можешь сделать следующие выводы:
Удобный ресурс для пошагового исполнения кода с визуализацией - pythontutor.com
#python #quiz #blowmymind
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DE
И в дополнение к патологии выше, есть целый репозиторий с подобными штуками - ссылка
#python #wtfpython
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - satwikkansal/wtfpython: What the f*ck Python? 😱
What the f*ck Python? 😱. Contribute to satwikkansal/wtfpython development by creating an account on GitHub.
Forwarded from DE
Если тебе интересно заглянуть под капот Python и узнать, как устроены списки - есть отличная статья, которая начинается с достаточно простого примера и потом плавно погружает в глубины C-шной реализации списков в Python.
Автор статьи серьёзно подошёл к делу: он не только детально всё расписал, но и приложил кучу наглядных иллюстраций.
Даже если ты никогда не программировал на C, тебе будет понятен и интересен материал.
Ссылка на статью, рекомендую ознакомиться — это на самом деле увлекательно🙂
#python
Автор статьи серьёзно подошёл к делу: он не только детально всё расписал, но и приложил кучу наглядных иллюстраций.
Даже если ты никогда не программировал на C, тебе будет понятен и интересен материал.
Ссылка на статью, рекомендую ознакомиться — это на самом деле увлекательно
#python
Please open Telegram to view this post
VIEW IN TELEGRAM
Codingconfessions
Why Do Python Lists Multiply Oddly? Exploring the CPython Source Code
A look at the internals of list implementation in CPython to understand this weird quirk about them
Forwarded from DE
И ещё немного про Python.
Полезно тем, кто уже освоился с f-строками в Python и использует их для форматирования. Часто ты останавливаешься на чём-то вроде
Например, представь, что тебе нужно превратить число в строку, где оно всегда будет занимать три позиции, дополняясь нулями спереди, если это необходимо. С f-строками это сделать проще простого! Если у тебя число 5, ты получишь
Гайд от PyBites показывает, на что способны f-строки. Если ты ещё не раскрыл для себя все возможности этого удобного инструмента - бегом читать🙃
Ссылка
А ещё по f-строкам у меня была ссылка на другой хороший материал в посте
#python
Полезно тем, кто уже освоился с f-строками в Python и использует их для форматирования. Часто ты останавливаешься на чём-то вроде
f"string {variable}"
, но знаешь ли ты, что f-строки скрывают в себе гораздо больше возможностей?Например, представь, что тебе нужно превратить число в строку, где оно всегда будет занимать три позиции, дополняясь нулями спереди, если это необходимо. С f-строками это сделать проще простого! Если у тебя число 5, ты получишь
"005"
, а если 123, то останется просто "123"
.Гайд от PyBites показывает, на что способны f-строки. Если ты ещё не раскрыл для себя все возможности этого удобного инструмента - бегом читать
Ссылка
А ещё по f-строкам у меня была ссылка на другой хороший материал в посте
#python
Please open Telegram to view this post
VIEW IN TELEGRAM
Pybites
Python F-String Codes I Use Every Day - Pybites
I use f-strings every day. The irony is I also every day end up searching the Web to find the correct format to use. Until one day I thought a
Forwarded from Книголюб | Литература
Декоратор override
Это может быть полезно для:
— Повышения читабельности кода, так как сразу видно, какие методы переопределены.
— Выявления ошибок: если имя метода в дочернем классе не совпадает с именем в родительском, будет выдана ошибка.
— Проверки типов аргументов: декоратор гарантирует, что типы аргументов совпадают с базовым методом.
#python #decorators
@override
используется для переопределения методов в классах-наследниках. Он позволяет указать, что метод в подклассе переопределяет метод базового класса.Это может быть полезно для:
— Повышения читабельности кода, так как сразу видно, какие методы переопределены.
— Выявления ошибок: если имя метода в дочернем классе не совпадает с именем в родительском, будет выдана ошибка.
— Проверки типов аргументов: декоратор гарантирует, что типы аргументов совпадают с базовым методом.
#python #decorators
Forwarded from Data Советы
✅🖥 Pydantic vs. Attrs
Pydantic имеет встроенную функцию для проверки данных, но она использует много памяти.
Attrs не имеет встроенной проверки данных, но обеспечивает лучшую производительность и меньшее потребление памяти, что делает его идеальным для внутренних структур данных и простого создания классов в Python.
📌 Пример (https://codecut.ai/python-data-models-pydantic-or-attrs)
#python
Pydantic имеет встроенную функцию для проверки данных, но она использует много памяти.
Attrs не имеет встроенной проверки данных, но обеспечивает лучшую производительность и меньшее потребление памяти, что делает его идеальным для внутренних структур данных и простого создания классов в Python.
from attrs import define, field
@define
class UserAttrs:
name: str
age: int = field()
@age.validator
def check_age(self, attribute, value):
if value < 0:
raise ValueError("Возраст не может быть отрицательным")
return value # принимает любой положительный возраст
try:
user = UserAttrs(name="Bob", age=-1)
except ValueError as e:
print("ValueError:", e)
📌 Пример (https://codecut.ai/python-data-models-pydantic-or-attrs)
#python
Forwarded from Николай Крупий
#python python... PYTHON 🔛 🚀
Black? Если вкратце, то что это? А то будет тяжеловато сформировать вопрос в Гугле/чатгпт на основе "black"
Учись)
- https://chatgpt.com/share/67a1b96c-82a8-8009-b207-2ca96f740405
И isort сразу добавь.
Ну, кстати, давай уж и #mypy сразу осилить попробуй!) Вообще
- тема типизации в питон и вообще в любых других ЯП очень большая, сложная и не однозначная
- в питоне типизация опциональная (не обязательная), в отличие от многих других ЯП
- но в целом они все (ранее не «типизированные» ЯП) движутся к ней (напр, js -> ts)
- и тебе она может сначала показаться какой-то излишней
- но на всех больших и серьёзных проектах сейчас принято её использовать!
- поэтому лучше уже сейчас начать с ней разбираться
- тем более что у тебя очень простой проект, и начать с него будет отличным вариантом!
- со временем к тебе начнёт приходить и полезность типизации😁
- поГПТи на эту тему самостоятельно
#типизация (правильнее говорить «аннотации типов») в #python
- https://chatgpt.com/share/67a1b96c-82a8-8009-b207-2ca96f740405
И isort сразу добавь.
Ну, кстати, давай уж и #mypy сразу осилить попробуй!) Вообще
- тема типизации в питон и вообще в любых других ЯП очень большая, сложная и не однозначная
- в питоне типизация опциональная (не обязательная), в отличие от многих других ЯП
- но в целом они все (ранее не «типизированные» ЯП) движутся к ней (напр, js -> ts)
- и тебе она может сначала показаться какой-то излишней
- но на всех больших и серьёзных проектах сейчас принято её использовать!
- поэтому лучше уже сейчас начать с ней разбираться
- тем более что у тебя очень простой проект, и начать с него будет отличным вариантом!
- со временем к тебе начнёт приходить и полезность типизации
- поГПТи на эту тему самостоятельно
#типизация (правильнее говорить «аннотации типов») в #python
Please open Telegram to view this post
VIEW IN TELEGRAM
ChatGPT
ChatGPT - Black настройка и интеграция
Shared via ChatGPT
Forwarded from дата инженеретта
А вы знали, что в питоне так можно?
Собрала несколько кейсов, о которых вы могли даже не подозревать:
1️⃣ Имя функции - это переменная, и этому имени мы можем присвоить что угодно:
Естественно, после переопределения все предыдущие возможности перестают действовать
2️⃣ Та же история с модулями:
3️⃣ При импорте модулей существующие переменные перезаписываются:
4️⃣ А переменные после цикла остаются существовать:
#python_tips
Собрала несколько кейсов, о которых вы могли даже не подозревать:
def func():
print('hi')
func()
# hi
func = -1
func()
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: 'int' object is not callable
Естественно, после переопределения все предыдущие возможности перестают действовать
import math
type(math)
# <class 'module'>
math = -1
type(math)
# <class 'int'>
x = 2
from mymodule import x
print(x)
# 'new_value'
for i in range(2):
print(i)
print(i) # 2
#python_tips
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Python/ django
1. 30-Days-Of-Python — 30-дневный челлендж по основам Python.
2. Python Basics — азы Python для новичков, просто и с примерами.
3. Learn Python — справочник с кодом, пояснениями и практикой.
4. Python Guide — гайд по практикам, инструментам и сложным темам.
5. Learn Python 3 — руководство по Python 3 с практикой для начинающих.
6. Python Programming Exercises — 100+ задач по Python.
7. Coding Problems — алгоритмы и структуры данных для собесов.
8. Project-Based-Learning — Python через реальные проекты.
9. Projects — идеи проектов для прокачки навыков.
10. 100-Days-Of-ML-Code — ML на Python шаг за шагом.
11. TheAlgorithms/Python — алгоритмы и структуры данных на Python.
12. Amazing-Python-Scripts — полезные скрипты: от утилит до автоматизации.
13. Geekcomputers/Python — скрипты для сети, файлов и задач.
14. Materials — код и проекты от Real Python.
15. Awesome Python — топ фреймворков, библиотек и ресурсов.
16. 30-Seconds-of-Python — короткие сниппеты для быстрых решений.
17. Python Reference — скрипты, туториалы и лайфхаки.
#python #github #learning
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM