π Π£ΠΊΡΡ ΠΏΠΈΡΠΎΠ½Π° π
ΠΡΠΊΡΡΡΡ Π² Telegram
π ΠΠ°Π½Π°Π» ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ Python. Π’Π΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠΎΠΊΠΈ ΠΈ Π»Π°ΠΉΡΡ Π°ΠΊΠΈ. π½ ΠΠ΄ΠΌΠΈΠ½ - @tg_adminisrator π ΠΡΠΏΠΈΡΡ ΡΠ΅ΠΊΠ»Π°ΠΌΡ: https://telega.in/c/byteofpython π Π§Π°Ρ: @abyteofpython π ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Ρ Π΄ΡΡΠ·ΡΡΠΌΠΈ: @byteofpython
ΠΠΎΠ»ΡΡΠ΅2 334
ΠΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΈ
ΠΠ΅Ρ Π΄Π°Π½Π½ΡΡ
24 ΡΠ°ΡΠ°
-117 Π΄Π½Π΅ΠΉ
-3730 Π΄Π½Π΅ΠΉ
ΠΡΡ
ΠΈΠ² ΠΏΠΎΡΡΠΎΠ²
π©βπ» Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ Π² Python
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° yield.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠΏΠΈΡΠΊΠΎΠ², ΠΎΠ½ΠΈ Π½Π΅ Ρ ΡΠ°Π½ΡΡ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ ΡΡΠ°Π·Ρ, Π° ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΡ "Π½Π° Π»Π΅ΡΡ".β‘οΈ ΠΡΠΈΠΌΠ΅Ρ:
def count_up_to(n):
for i in range(1, n + 1):
yield i
for num in count_up_to(5):
print(num)
π ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠΊΠΎΠ½ΠΎΠΌΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΈ ΡΡΠΊΠΎΡΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ.
π©βπ» List Comprehensions β ΠΊΡΠ°ΡΠΊΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΏΠΈΡΠΊΠΈ
List comprehension Π² Python ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΏΠΈΡΠΊΠΈ Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΈΠΊΠ»ΠΎΠ². ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½Π΅Π΅ ΠΈ ΡΠΈΡΠ°Π΅ΠΌΠ΅Π΅
β‘οΈ ΠΡΠΈΠΌΠ΅Ρ:
# ΠΠ±ΡΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±
squares = []
for i in range(1, 6):
squares.append(i**2)
# List comprehension
squares_compact = [i**2 for i in range(1, 6)]
print(squares_compact) # [1, 4, 9, 16, 25]
π ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² Python.
π©βπ» ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡΡ Π² Python β ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°Π΄ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ
Π Python Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΡ
ΠΊΠΎΠ΄Π°.
ΠΡΠΎ "ΠΎΠ±ΡΡΡΠΊΠΈ", ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.β‘οΈ ΠΡΠΈΠΌΠ΅Ρ:
def logger(func):
def wrapper(*args, **kwargs):
print(f"ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ {func.__name__}")
return func(*args, **kwargs)
return wrapper
@logger
def say_hello(name):
print(f"ΠΡΠΈΠ²Π΅Ρ, {name}!")
say_hello("ΠΠ½Π½Π°")
π ΠΠ΄Π΅ΡΡ @logger Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ say_hello, Π½Π΅ ΠΌΠ΅Π½ΡΡ Π΅Ρ ΠΊΠΎΠ΄.
β ΠΠ°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ
enumerate() Π² Python ΠΈ ΠΊΠΎΠ³Π΄Π° Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ?
Π€ΡΠ½ΠΊΡΠΈΡ enumerate() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΈΡ
ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ. ΠΡΠΎ ΠΈΠ·Π±Π°Π²Π»ΡΠ΅Ρ ΠΎΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΡΡΠ½ΡΡ Π²Π΅ΡΡΠΈ ΡΡΡΡΡΠΈΠΊ ΠΈ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΡΡΠΌ ΠΈ ΡΠΈΡΠ°Π΅ΠΌΡΠΌ.
β
ΠΡΠΈΠΌΠ΅Ρ:
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits, start=1):
print(index, fruit)
# ΠΡΠ²ΠΎΠ΄:
# 1 apple
# 2 banana
# 3 cherry
πΠ ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ enumerate() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠ°ΡΡ (ΠΈΠ½Π΄Π΅ΠΊΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅), ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠΈΠΊΠ»Π°ΠΌΠΈ.
enumerate() ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ΅Π½ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΈ ΡΠ°ΠΌΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅, Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΡΠΎΠΊ, ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°Π±Π»ΠΈΡ ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΎΠ². ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΈΡΠΎΠ½ΠΈΡΠ½ΡΠΌ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΌ.
π©βπ» dataclass β ΠΌΠ΅Π½ΡΡΠ΅ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ²
@dataclass ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ dataclasses Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ __init__, __repr__, __eq__ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΉ ΠΏΠΎΠ»Π΅ΠΉ.
β‘οΈ ΠΡΠΈΠΌΠ΅Ρ:
from dataclasses import dataclass
@dataclass
class User:
name: str
age: int
u = User("ΠΠ½Π½Π°", 25)
print(u) # User(name='ΠΠ½Π½Π°', age=25)
π Π£Π΄ΠΎΠ±Π½ΠΎ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ : ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ.
π©βπ» chain β ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ
itertools.chain() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ°ΠΊ, Π±ΡΠ΄ΡΠΎ ΡΡΠΎ ΠΎΠ΄ΠΈΠ½.
β‘οΈ ΠΡΠΈΠΌΠ΅Ρ:
from itertools import chain
a = [1, 2]
b = [3, 4]
c = [5]
for x in chain(a, b, c):
print(x, end=" ")
1 2 3 4 5
π Π£Π΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΉΡΠΈΡΡ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΡΠΏΠΈΡΠΊΠ°ΠΌ ΠΏΠΎΠ΄ΡΡΠ΄ Π±Π΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ½Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°.
π©βπ» setdefault β Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ°, Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ Π½Π΅Ρ
ΠΠ΅ΡΠΎΠ΄ ΡΠ»ΠΎΠ²Π°ΡΡ
setdefault() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠ»ΡΡΡ, Π° Π΅ΡΠ»ΠΈ ΠΊΠ»ΡΡ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ β ΡΠΎΠ·Π΄Π°ΡΡ Π΅Π³ΠΎ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ.
β‘οΈ ΠΡΠΈΠΌΠ΅Ρ:
user = {"name": "ΠΠ½Π½Π°"}
city = user.setdefault("city", "ΠΠΎΡΠΊΠ²Π°")
print(city) # ΠΠΎΡΠΊΠ²Π°
print(user) # {'name': 'ΠΠ½Π½Π°', 'city': 'ΠΠΎΡΠΊΠ²Π°'}
π Π£Π΄ΠΎΠ±Π½ΠΎ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅ Π±Π΅Π· Π»ΠΈΡΠ½ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ if key not in dict.
