ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΈΠΊΠ°
Yopiq kanal
ΠΡΡΡΠΈΠΉ ΠΊΠ°Π½Π°Π» ΠΏΡΠΎ python Π‘ΡΡΠ»ΠΊΠ° Π΄Π»Ρ Π΄ΡΡΠ³Π°: https://t.me/+Ai6ughKtf5g2ZmFi ΠΡΠΏΠΈΡΡ ΡΠ΅ΠΊΠ»Π°ΠΌΡ: https://telega.in/c/+Ai6ughKtf5g2ZmFi ΠΠ΄ΠΌΠΈΠ½: @JeyRahol ΠΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠ΅: @ReivuManager
Ko'proq ko'rsatish5 762
Obunachilar
-924 soatlar
-367 kun
-9130 kun
Postlar arxiv
π₯ ΠΡΠΎΠ΅ΠΊΡ: Π‘ΠΈΡΡΠ΅ΠΌΠ° Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ PDF-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ²
Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ - ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°, ΡΠ°ΠΊ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΆΠ΅ ΠΊ Π½Π΅ΠΉ ΠΏΡΠΈΡΡΡΠΏΠΈΠΌπΠ‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π½Π° Python, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ PDF-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°Π»ΠΈΡΠΈΠ΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ²) ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ. ΠΠΎΡ ΠΊΠ°ΠΊ Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» ΡΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ: π Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ @programistica // #project
π₯ ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Rich
Rich - ΡΡΠΎ ΠΌΠΎΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ Python, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½Π°Ρ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΡΠ°ΡΠΈΠ²ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ°, ΡΠ°Π±Π»ΠΈΡ, ΠΏΡΠΎΠ³ΡΠ΅ΡΡ-Π±Π°ΡΠΎΠ² ΠΈ Π΄Π°ΠΆΠ΅ Markdown. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π΄Π΅Π»Π°Ρ Π²ΡΠ²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ
Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ, Π½ΠΎ ΠΈ ΠΏΡΠΈΡΡΠ½ΡΠΌ Π΄Π»Ρ Π²ΠΎΡΠΏΡΠΈΡΡΠΈΡ.
π©βπ»ΠΡΠΈΠΌΠ΅Ρ:
from rich.console import Console
from rich.table import Table
from rich.progress import track
import time
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ
console = Console()
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ
table = Table(show_header=True, header_style="bold magenta")
table.add_column("ID", style="dim", width=6)
table.add_column("Name")
table.add_column("Description")
# ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ°Π±Π»ΠΈΡΡ
table.add_row("1", "Rich", "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal.")
table.add_row("2", "Requests", "Simple HTTP library for Python, built for human beings.")
table.add_row("3", "Pandas", "Powerful data structures for data analysis, time series, and statistics.")
# ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ
console.print(table)
# ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ-Π±Π°ΡΠ°
for _ in track(range(10), description="Processing..."):
time.sleep(1) # ΠΠΌΠΈΡΠ°ΡΠΈΡ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ
βΌοΈΠΡΠΎΡ ΡΠΊΡΠΈΠΏΡ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Rich, Π° Π·Π°ΡΠ΅ΠΌ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ-Π±Π°Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. Rich Π΄Π΅Π»Π°Π΅Ρ Π²ΡΠ²ΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠΌ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ CLI-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ², Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ
ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π΄Π°Π½Π½ΡΡ
.
@programistica // #Libraryπ ΠΠ½ΠΈΠ³Π°: ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Python
βΊΠΠ±ΡΠ΅ΠΊΡΡ Π² PythoΠΏ
βΊΠΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ
βΊΠΠΆΠΈΠ΄Π°Π΅ΠΌΡΠ΅ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΡΡΠΈ
βΊΠΠΎΠ³Π΄Π° Π±Π΅Π· ΠΠΠ Π½Π΅ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ
βΊΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ²
βΊΠ‘ΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
Python
βΊΠ‘ΡΡΠΎΠΊΠΈ, ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΏΡΡΠΈ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ
@programistica // #doc
π» ΠΠΎΠΏΡΠΎΡ ΠΈΠ· ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ: ΠΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· collections ΠΈ itertools Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅?
Π ΠΌΠΎΠ΄ΡΠ»ΡΡ
collections ΠΈ itertools Π² Python Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
Π·Π°Π΄Π°ΡΠ°Ρ
. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ Π²ΠΊΠ»ΡΡΠ°ΡΡ:
βΊdefaultdict: ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΡΠ»ΠΎΠ²Π°ΡΡ.
βΊCounter: ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π²ΡΡΡΠ΅ΡΠ°Π΅ΠΌΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΌ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅. ΠΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠ»ΠΎΠ²Π°ΡΡ, Π³Π΄Π΅ ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ - ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡ
Π²Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ.
βΊnamedtuple: ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΡΡΠ΅ΠΆ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠΌΠΈ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΡΡΡΠΊΡΡΡΡ, Π½ΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ°.
βΊitertools.chain: ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² Π΅Π΄ΠΈΠ½ΡΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ.
βΊitertools.groupby: ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΠΊΠ»ΡΡΡ.
βΊitertools.combinations ΠΈ itertools.permutations: Π³Π΅Π½Π΅ΡΠΈΡΡΡΡ Π²ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°.
from collections import defaultdict
d = defaultdict(int)
print(d['apple'])
d = defaultdict(list)
print(d['apple'])
d = defaultdict(set)
print(d['apple'])
# Π²ΡΠ²ΠΎΠ΄:
# 0
# []
# set()
from collections import Counter
cnt = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])
print(cnt)
print(dict(cnt))
# Π²ΡΠ²ΠΎΠ΄:
# Counter({'blue': 3, 'red': 2, 'green': 1})
# {'red': 2, 'blue': 3, 'green': 1}
from collections import namedtuple
Point = namedtuple("Point", "x y")
print(issubclass(Point, tuple))
point = Point(2, 4)
print(point)
print(point.x)
print(point.y)
print(point[0])
print(point[1])
# Π²ΡΠ²ΠΎΠ΄:
# True
# Point(x=2, y=4)
# 2
# 4
# 2
# 4
ΠΠ°Π΄Π΅ΡΡΡ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΡΠΎΠΉΡΠΈ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΆΠ΅Π»Π°Π΅ΠΌΡΡ Π²Π°ΠΌΠΈ ΡΠ°Π±ΠΎΡΡ, ΡΠ΄Π°ΡΠΈπ₯@programistica // #jobs
π¨βπ» ΠΠ·ΡΡΠ°Π΅ΡΡ Frontend? Π― ΡΠΎΠΆΠ΅!
idk Frontend - ΠΊΠ°Π½Π°Π», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΊΠΎΠ½ΡΠΏΠ΅ΠΊΡΠΈΡΡΡ Π²Π΅ΡΡ ΠΌΠΎΠΉ ΠΏΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΡΠ°ΡΡΠ°.
π€ Π‘ ΠΌΠ΅Π½Ρ:
β Π‘Π»ΠΎΠΆΠ½Π°Ρ ΡΠ΅ΠΎΡΠΈΡ ΠΏΡΠΎΡΡΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ;
β ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ;
β Π Π°Π·Π±ΠΎΡ Π½Π΅ΠΉΡΠΎΡΠ΅ΡΠ΅ΠΉ, ΠΏΠΎΠ»Π΅Π·Π½ΡΡ
Π² Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅;
β ΠΡΡΡΡΠ΅ Π²ΠΈΠΊΡΠΎΡΠΈΠ½Ρ ΠΏΠΎ JS ΠΈ ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΠΈ.
π€ Π‘ ΡΠ΅Π±Ρ:
β ΠΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ°: @idk_frontend
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΠΎΠ±ΡΡΠ°ΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅!
ΠΡΡΠ°ΡΠΈ ΡΡΠ΄Π° ΠΆΠ΅ Π²Ρ
ΠΎΠ΄ΠΈΡ ΠΈ Π½Π°Ρ ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ ΠΊΠ°Π½Π°Π»
Python Ρ Π½ΡΠ»Ρ: Π»ΡΡΡΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ Π΄Π»Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
Python - ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ
ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ
ΠΈ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΌΠΈΡΠ΅. ΠΠ³ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈ ΠΌΠΎΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ². ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΡΡΠΈΡΡ Python ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, Π²ΠΎΡ Π»ΡΡΡΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π½Π°ΡΠ°ΡΡ.
ΠΠ½Π»Π°ΠΉΠ½-ΠΊΡΡΡΡ
Codecademy - ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠ°Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΊΡΡΡ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ Π²Π°Ρ Ρ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ Python.
Coursera - ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΊΡΡΡΡ Python ΠΎΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠΎΠ² ΠΈ ΠΊΠΎΠ»Π»Π΅Π΄ΠΆΠ΅ΠΉ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ.
Udemy - Π¨ΠΈΡΠΎΠΊΠΈΠΉ Π²ΡΠ±ΠΎΡ ΠΊΡΡΡΠΎΠ² Python Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ
ΡΡΠΎΠ²Π½Π΅ΠΉ Π·Π½Π°Π½ΠΈΠΉ, ΠΎΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠ³ΠΎ, ΡΠ°ΡΡΠΎ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΠΎ ΡΠ½ΠΈΠΆΠ΅Π½Π½ΡΠΌ ΡΠ΅Π½Π°ΠΌ.
edX - ΠΡΡΡΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ Π²Π΅Π΄ΡΡΠΈΠΌΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ MIT ΠΈ ΠΠ°ΡΠ²Π°ΡΠ΄, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΡΠ»ΡΡΠ°Π½Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ.
Real Python - ΠΠ»Π°ΡΡΠΎΡΠΌΠ° Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°ΠΌΠΈ, Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊΠ°ΠΌΠΈ ΠΈ Π·Π°Π΄Π°Π½ΠΈΡΠΌΠΈ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Python.
ΠΠ½ΠΈΠ³ΠΈ
"Automate the Boring Stuff with Python" ΠΠ»Π° Π‘Π²Π΅ΠΉΠ³Π°ΡΡΠ° - ΠΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠ΅ΡΡΡΡ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
, ΠΆΠ΅Π»Π°ΡΡΠΈΡ
ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Python Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΡΡ
Π·Π°Π΄Π°Ρ.
"Python Crash Course" ΠΡΠΈΠΊΠ° ΠΡΡΡΠ΅ΡΠ° - ΠΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ ΠΊΠ½ΠΈΠ³Π° Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΡΠ°Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π°ΠΌ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ.
"Learning Python" ΠΠ°ΡΠΊΠ° ΠΡΡΡΠ° - ΠΠ±ΡΠ΅ΠΌΠ½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Python, ΠΎΡ
Π²Π°ΡΡΠ²Π°ΡΡΠ΅Π΅ Π²ΡΠ΅ ΠΎΡ ΠΎΡΠ½ΠΎΠ² Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ
ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ.
"Think Python" ΠΠ»Π»Π΅Π½Π° Π. ΠΠ°ΡΠ½ΠΈ - ΠΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ Ρ
ΠΎΡΠ΅Ρ ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Python Π½Π° Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡΠ±ΠΎΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅.
ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ
PyBites - ΠΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠ°Ρ Π½Π°Π±ΠΎΡ Π·Π°Π΄Π°Ρ Π½Π° Python Π΄Π»Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΈ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π½Π°Π²ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
CheckiO - ΠΠ³ΡΠΎΠ²Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΠΊΠΎΠ΄ΠΈΠ½Π³Π°, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠ°ΡΡ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΡΠΎΡΠ΅Π²Π½ΠΎΠ²Π°Π½ΠΈΡΡ
.
LeetCode - ΠΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π΄Π»Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΊ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡΠΌ, Ρ ΡΠΎΡΠ½ΡΠΌΠΈ Π·Π°Π΄Π°Ρ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Python.
HackerRank - ΠΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π°Π²ΡΠΊΠΎΠ².
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΡΡΡΡ ΠΈΠ»ΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ Ρ ΠΊΠ½ΠΈΠ³Π°ΠΌΠΈ ΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ, ΡΡΠΈ ΡΠ΅ΡΡΡΡΡ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π½Π°ΡΠ°ΡΡ ΠΏΡΡΡ Π² ΠΌΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Python. Π‘Π°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ - ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΈ ΡΠ΅ΡΠΏΠ΅Π½ΠΈΠ΅. ΠΠ°ΡΠ½ΠΈΡΠ΅ Ρ ΠΌΠ°Π»ΠΎΠ³ΠΎ, Π½Π΅ Π±ΠΎΠΉΡΠ΅ΡΡ Π΄Π΅Π»Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠ°ΠΊ ΡΠ°ΡΡΡΡ Π²Π°ΡΠΈ Π½Π°Π²ΡΠΊΠΈ. Π£Π΄Π°ΡΠΈ Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ Python!
@programistica // #articleπ₯ ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Peewee
Peewee β ΡΡΠΎ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ, Π²ΡΡΠ°Π·ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ORM (ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΠΉ ΠΌΠ°ΠΏΠΏΠ΅Ρ) Π΄Π»Ρ Python, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΡΡΡΡΠΎ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ Python Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΡΠΌΡΡ
SQL-Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π±Π°Π· Π΄Π°Π½Π½ΡΡ
, Π²ΠΊΠ»ΡΡΠ°Ρ SQLite, MySQL ΠΈ PostgreSQL, ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΉ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΡΡ
ΠΊΠ»ΡΡΠ΅ΠΉ.
from peewee import *
# ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
SQLite
db = SqliteDatabase('my_database.db')
# ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
class User(Model):
username = CharField(unique=True)
is_admin = BooleanField(default=False)
class Meta:
database = db # ΠΠΎΠ΄Π΅Π»Ρ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
'db'
# ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ
db.connect()
db.create_tables([User])
# ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
new_user = User.create(username='johndoe', is_admin=True)
# ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
new_user.username = 'john_doe'
new_user.save()
# ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ
user = User.get(User.username == 'john_doe')
print(user.is_admin)
# ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ
all_users = User.select()
for user in all_users:
print(user.username)
# ΠΠ°ΠΊΡΡΡΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ
db.close()
β‘οΈΠ ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
SQLite Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ User, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ»Ρ username ΠΈ is_admin. ΠΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π΄Π°Π½Π½ΡΠ΅, ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Π²ΡΠ²Π΅Π»ΠΈ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
βΌοΈPeewee Π΄Π΅Π»Π°Π΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
ΠΏΡΠΎΡΡΡΠΌ ΠΈ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° Π½Π΅ Π½Π° SQL-Π·Π°ΠΏΡΠΎΡΠ°Ρ
.
@programistica // #Libraryπ» ΠΠΎΠΏΡΠΎΡ ΠΈΠ· ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ: ΠΠ°ΠΊ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ Π½ΡΠ»Ρ?
ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ
ΡΡ-ΡΠ°Π±Π»ΠΈΡΡ. Π₯ΡΡ-ΡΠ°Π±Π»ΠΈΡΠ° - ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠΈΡΠΊ, Π²ΡΡΠ°Π²ΠΊΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ»ΡΡΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ρ
ΡΡ-ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ
ΡΠ°Π½ΡΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΡΡΠ΅ΠΉΠΊΠ°Ρ
ΠΏΠ°ΠΌΡΡΠΈ.
π©βπ»ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ:
class MyDictionary:
def __init__(self):
self.size = 10 # ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°Π±Π»ΠΈΡΡ
self.keys = [None] * self.size
self.values = [None] * self.size
def __setitem__(self, key, value):
index = hash(key) % self.size # Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡ
self.keys[index] = key
self.values[index] = value
def __getitem__(self, key):
index = hash(key) % self.size
return self.values[index]
π©βπ»Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ
, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ:
d = MyDictionary()
d['apple'] = 'red'
d['banana'] = 'yellow'
print(d['apple']) # Π²ΡΠ²Π΅Π΄Π΅Ρ 'red'
print(d['banana']) # Π²ΡΠ²Π΅Π΄Π΅Ρ 'yellow'
βΌοΈΠΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΠ»ΠΎΠ²Π°ΡΠΈ Π² Python ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π²ΡΡΠΎΠΊΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ°Π΄Π΅ΡΡΡ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΡΠΎΠΉΡΠΈ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΆΠ΅Π»Π°Π΅ΠΌΡΡ Π²Π°ΠΌΠΈ ΡΠ°Π±ΠΎΡΡ, ΡΠ΄Π°ΡΠΈπ₯@programistica // #jobs
π ΠΠ½ΠΈΠ³Π°: Python: Π±ΠΎΠ»ΡΡΠ°Ρ ΠΊΠ½ΠΈΠ³Π° ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ²
βΊΠ―Π·ΡΠΊΠΈ. ΠΠ±ΡΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ
βΊΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ python
βΊΠΠΌΠ΅Π½Π°
βΊΠΠΎΡΠ°ΡΠΈΡ Π² Python
βΊΠΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π² PEP8
βΊΠΠ»Π°ΡΡΡ
βΊΠ’ΠΈΠΏΡ ΠΈ ΠΊΠ»Π°ΡΡΡ
Π ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅
@programistica // #doc
π₯ ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° HTTPX
HTTPX - ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Python Π΄Π»Ρ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΡ
HTTP Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ HTTP/1.1 ΠΈ HTTP/2 ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΉ API Π΄Π»Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½Π° ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΡΠΈΠΈ Ρ ΠΊΡΠΊΠ°ΠΌΠΈ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠΈΠΏΠΎΠ² Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
πΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠ³ΠΎ GET-Π·Π°ΠΏΡΠΎΡΠ° ΠΊ Π²Π΅Π±-ΡΠ°ΠΉΡΡ:
import httpx
# Π‘ΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΉ GET-Π·Π°ΠΏΡΠΎΡ
response = httpx.get('https://www.example.com')
# ΠΡΠ²ΠΎΠ΄ ΠΎΡΠ²Π΅ΡΠ°
print(response.status_code)
print(response.headers)
print(response.text)
πΠ’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ async ΠΈ await:
import httpx
import asyncio
# ΠΡΠΈΠ½Ρ
ΡΠΎΠ½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ GET-Π·Π°ΠΏΡΠΎΡΠ°
async def fetch(url):
async with httpx.AsyncClient() as client:
response = await client.get(url)
return response
# ΠΠ°ΠΏΡΡΠΊ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π²ΡΠ²ΠΎΠ΄ ΠΎΡΠ²Π΅ΡΠ°
async def main():
response = await fetch('https://www.example.com')
print(response.status_code)
print(response.headers)
print(response.text)
# ΠΠ°ΠΏΡΡΠΊ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΡΠΎΠ±ΡΡΠΈΠΉ
asyncio.run(main())
βΌοΈΠΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ HTTPX Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° HTTPX ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΌ ΠΈ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
@programistica // #Libraryπ₯ Python Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΠΈΠ±Π΅ΡΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ: ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅
Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΌΠΈΡΠ΅, Π³Π΄Π΅ ΡΠΈΡΡΠΎΠ²ΡΠ΅ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΡΠΎΠ½ΠΈΠΊΠ°ΡΡ Π²ΠΎ Π²ΡΠ΅ ΡΡΠ΅ΡΡ Π½Π°ΡΠ΅ΠΉ ΠΆΠΈΠ·Π½ΠΈ, Π²ΠΎΠΏΡΠΎΡΡ ΠΊΠΈΠ±Π΅ΡΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π²ΡΡ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ. Python, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ²ΠΎΠ΅ΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΠΈ ΠΌΠΎΡΠ½ΠΎΠΌΡ Π½Π°Π±ΠΎΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π² Π°ΡΡΠ΅Π½Π°Π»Π΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΏΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
π£Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ Ρ Python
π£ΠΠ½Π°Π»ΠΈΠ· ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ
π£Π Π°ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠΎΠ²
π£ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΈΠΌΡΠ»ΡΡΠΈΡ Π°ΡΠ°ΠΊ
π Π§ΠΈΡΠ°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ
@programistica // #article
ΠΠΎΠ³ΡΡΠ·ΠΈΡΠ΅ΡΡ Π² ΠΌΠΈΡ Python Ρ Π½Π°ΡΠΈΠΌ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΌ ΠΊΡΡΡΠΎΠΌ!
π ΠΠΊΠ»ΡΡΠ΅Π½ΠΎ 45 ΡΡΠΎΠΊΠΎΠ², 56 ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠΉ Π² ΡΡΠ΅Π½Π°ΠΆΠ΅ΡΠ΅ ΠΈ 163 ΠΏΡΠΎΠ²Π΅ΡΠΎΡΠ½ΡΡ
ΡΠ΅ΡΡΠ°. Π£Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ.
Π§ΡΠΎ Π²Ρ ΠΎΡΠ²ΠΎΠΈΡΠ΅:
β Π‘ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ.
β ΠΠ½Π°Π»ΠΈΠ· ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΠΊΠΎΠ΄Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ°ΡΠΈ.
π ΠΡΡΡ ΠΎΡ
Π²Π°ΡΡΠ²Π°Π΅Ρ ΠΎΡΠ½ΠΎΠ²Ρ Python: ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΡΡΠ»ΠΎΠ²ΠΈΡ, ΡΠΈΠΊΠ»Ρ, ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ
ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡΠ°ΠΊΡΠΈΠΊΠ° Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ·ΡΠΊ.
ΠΠ°ΡΠ½ΠΈΡΠ΅ ΡΠ²ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΡΡΡΠ° Python ΠΈ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π° ΡΠ°ΠΊ ΠΆΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅!
π» ΠΠΎΠΏΡΠΎΡ ΠΈΠ· ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ: Π ΡΡΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² numpy ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ (Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ) ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ python?
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² NumPy ΠΏΠ΅ΡΠ΅Π΄ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ Python Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ NumPy ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΈ ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ (ΠΈΠ·-Π·Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° C), ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΌΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
ΠΈ Π½Π°ΡΡΠ½ΡΡ
Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ.
πΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ NumPy Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π±ΡΠΎΠ΄ΠΊΠ°ΡΡΠΈΠ½Π³ (broadcasting), ΠΌΠ°ΡΡΠΈΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π΅ΠΊΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ, ΡΠ΅ΠΌ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
ΡΠΏΠΈΡΠΊΠΎΠ².
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² NumPy:
βΊΠΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΠ°ΠΌΡΡΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ NumPy ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΡΡΡΡΠ΅Π΅ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ Π΄Π°Π½Π½ΡΡ
βΊΠΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ ΡΡΠΌΠΌΠ° ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ°Π·Ρ Π½Π°Π΄ Π²ΡΠ΅ΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ².
βΊΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΌΠ°ΡΡΠΈΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π΅ΠΊΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ.
βΊΠΡΠΎΡΡΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π°Π΄ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ.
βΊΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ²Ρ NumPy Π² Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΡΠΌΡ Π΄Π°Π½Π½ΡΡ
, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΊΠΈ Python ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΈΡΡ Pandas.
βΌοΈEΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π°ΡΡΠ½ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ NumPy Π±ΡΠ΄Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ, ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ² Python.
ΠΠ°Π΄Π΅ΡΡΡ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΡΠΎΠΉΡΠΈ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΆΠ΅Π»Π°Π΅ΠΌΡΡ Π²Π°ΠΌΠΈ ΡΠ°Π±ΠΎΡΡ, ΡΠ΄Π°ΡΠΈπ₯@programistica // #jobs
π₯ ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Tqdm
Tqdm β ΡΡΠΎ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½Π°Ρ ΠΈ ΠΌΠΎΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Python, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ-Π±Π°ΡΡ ΠΊ ΡΠΈΠΊΠ»Π°ΠΌ ΠΈ Π±Π»ΠΎΠΊΠ°ΠΌ ΠΊΠΎΠ΄Π° Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅. ΠΠ½Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΡΡΡΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠ²ΡΠ·Ρ ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠΌ.
π©βπ»ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
from tqdm import tqdm
import time
# ΠΠΌΠΈΡΠ°ΡΠΈΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠΊΠ»Π°
for i in tqdm(range(100)):
# ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° Π΄Π»Ρ ΠΈΠΌΠΈΡΠ°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ
time.sleep(0.1)
ΠΠΎΠ΄ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ-Π±Π°Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΈΠΊΠ»Π°. ΠΠ΄Π΅ΡΡ range(100) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ, Π° time.sleep(0.1) ΠΈΠΌΠΈΡΠΈΡΡΠ΅Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠ³Π»Π° Π±Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΊΠ»Π°.
Tqdm Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΎΡΡΠ°Π²ΡΠ΅Π΅ΡΡ Π²ΡΠ΅ΠΌΡ Π΄ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠΊΠ»Π° ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ-Π±Π°ΡΠΎΠΌ, Π΄Π΅Π»Π°Ρ Π΅Π³ΠΎ ΠΌΠΎΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ° Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π·Π°Π΄Π°Ρ.
@programistica // #Libraryβ‘οΈ RECURA - ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π»ΡΡΡΠΈΡ
ΠΊΠ°Π½Π°Π»ΠΎΠ² Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ².
ΠΠ°Π½Π°Π» Π²Π΅Π΄ΡΡ DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅Ρ:
β ΠΊΠΎΠ΄, ΠΏΠΎΠ²ΡΡΠ°ΡΡΠΈΠΉ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
β Π»Π°ΠΉΡΡ
Π°ΠΊΠΈ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΡΠΊΠΈ Π΄Π»Ρ Bashγ»Linuxγ»macOS
β ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ ΡΠΎΠ²Π΅ΡΡ ΠΏΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ
β Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ ΠΈΠ· ΠΌΠΈΡΠ° ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ Π½Π΅ΠΉΡΠΎΡΠ΅ΡΠ΅ΠΉ
ΠΠΎΠ΄ΠΏΠΈΡΠΈΡΡ Π½Π° @recura_tech, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ ΠΎΡΠΊΡΡΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ΅Π±Ρ ΡΡΠΎ-ΡΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΠΈ Π±ΡΡΡ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠΌ.
π ΠΠ½ΠΈΠ³Π°: Π’ΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Python Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
βΊΠ Π°Π½Π½Π΅Π΅ Π²ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ
βΊΠ§ΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ, ΠΏΠΎΠ½ΡΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΡΡΡ ΠΊΠΎΠ΄Π°
βΊΠΠΎΠΌΠΎΡΡ IDE ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅
βΊZen of Python
βΊΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΡΠΈΠΏΠΎΠ²
βΊΠ‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ mypy
Π ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅
@programistica // #doc
π₯ ΠΡΠΎΠ΅ΠΊΡ ΠΠ΅Π±-ΡΠΊΡΠ°ΠΏΠ΅Ρ Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ
Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ - ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°, ΡΠ°ΠΊ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΆΠ΅ ΠΊ Π½Π΅ΠΉ ΠΏΡΠΈΡΡΡΠΏΠΈΠΌπΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡ Π½ΠΎΠ²ΠΎΡΡΠΈ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ°ΠΉΡΠΎΠ², Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΊΡΠ°ΡΠΊΠΈΠ΅ ΡΠ²ΠΎΠ΄ΠΊΠΈ Π½Π° Π²Π°Ρ email. ΠΠΎΡ ΠΊΠ°ΠΊ Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» ΡΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ: πΠ‘ΡΡΠ»ΠΊΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ @programistica // #project
