Forwarded from MoscowPython Conf Channel
βΠΡ ΡΠ°ΠΊ ΠΈ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈΡΡ, ΡΡΠΈΡΠ°ΡΡ Π»ΠΈ Python Core-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Π·Π°Π²Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Pytest ΠΈ Hypothesis, ΠΏΠΎΠΌΠΎΠ³ΠΈΡΠ΅ Π½Π°ΠΌ π€
Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ΠΌ, ΠΆΠ΄ΡΠΌ Π΄ΠΎΠΊΠ»Π°Π΄ Β«Sufficiently Advanced TestingΒ» Ρ Π½Π΅ΡΠ΅ΡΠΏΠ΅Π½ΠΈΠ΅ΠΌ.
π Zac Hatfield-Dodds β Core-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ unit-ΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΌΡΠΉΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Pytest. Π Ρ ΠΎΠ΄Π΅ Π΄ΠΎΠΊΠ»Π°Π΄Π° ΠΠ°ΠΊ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΌΠ½Π΅Π½ΠΈΠ΅ΠΌ ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΎΠ±ΡΡΠ΄ΠΈΡ Ρ Π³ΠΎΡΡΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ ΠΈΡ Π²ΠΎΠΏΡΠΎΡΡ.
Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ΠΌ, ΠΆΠ΄ΡΠΌ Π΄ΠΎΠΊΠ»Π°Π΄ Β«Sufficiently Advanced TestingΒ» Ρ Π½Π΅ΡΠ΅ΡΠΏΠ΅Π½ΠΈΠ΅ΠΌ.
π Zac Hatfield-Dodds β Core-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ unit-ΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΌΡΠΉΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Pytest. Π Ρ ΠΎΠ΄Π΅ Π΄ΠΎΠΊΠ»Π°Π΄Π° ΠΠ°ΠΊ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΌΠ½Π΅Π½ΠΈΠ΅ΠΌ ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΎΠ±ΡΡΠ΄ΠΈΡ Ρ Π³ΠΎΡΡΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ ΠΈΡ Π²ΠΎΠΏΡΠΎΡΡ.
Forwarded from Anton Ost
Π²ΠΈΠ΄ΠΈΠΌΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π½Π°ΠΊΠΎΡΡΡΠ»ΠΈΠ» ΡΠ΅Π±Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ)
https://github.com/shocking-rodents/magic-settings
https://github.com/shocking-rodents/magic-settings
GitHub
GitHub - shocking-rodents/magic-settings: Configuration manager for Python applications. Get config from yaml, environment variablesβ¦
Configuration manager for Python applications. Get config from yaml, environment variables or python modules. - shocking-rodents/magic-settings
ΠΠ±ΡΡΠΌΠ½Π°Ρ ΡΡΠ°ΡΡΡ ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ None Π² Python.
https://realpython.com/null-in-python/
https://realpython.com/null-in-python/
Realpython
Null in Python: Understanding Python's NoneType Object β Real Python
In this tutorial, you'll learn about the NoneType object None, which acts as the null in Python. This object represents emptiness, and you can use it to mark default parameters and even show when you have no result. None is a tool for doing everything withβ¦
Forwarded from Python Academy
ββΠΠ°Ρ
ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ Π² ΡΡΡΠΎΠΊΠ°Ρ
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΌΡ ΠΏΠΎΠΏΠ°Π»ΠΈ Π² ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΠΎΡΡ Π½Π°ΠΉΡΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅ ΡΠ»ΠΎΠ²Π°, ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ Π½Π° Π½Π΅ΠΊΡΡ Π²Ρ ΠΎΠ΄Π½ΡΡ ΡΡΡΠΎΠΊΡ. Π Π΅ΡΠΈΡΡ ΡΡΡ Π·Π°Π΄Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ built-in ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΠ°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΡΠ΅Ρ "Π½Π°ΠΈΠ»ΡΡΡΠΈΠ΅" Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ. ΠΠ΅ΡΠ²ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π·Π°Π΄Π°ΡΡ ΠΈΡΠΊΠΎΠΌΡΡ ΡΡΡΠΎΠΊΡ, Π²ΡΠΎΡΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π·Π°Π΄Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠΈΡΠΊ.
Π’Π°ΠΊΠΆΠ΅ Π² ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΌΡ ΠΏΠΎΠΏΠ°Π»ΠΈ Π² ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΠΎΡΡ Π½Π°ΠΉΡΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅ ΡΠ»ΠΎΠ²Π°, ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ Π½Π° Π½Π΅ΠΊΡΡ Π²Ρ ΠΎΠ΄Π½ΡΡ ΡΡΡΠΎΠΊΡ. Π Π΅ΡΠΈΡΡ ΡΡΡ Π·Π°Π΄Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ built-in ΠΌΠΎΠ΄ΡΠ»Ρ
difflib
.ΠΠ°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΡΠ΅Ρ "Π½Π°ΠΈΠ»ΡΡΡΠΈΠ΅" Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ. ΠΠ΅ΡΠ²ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π·Π°Π΄Π°ΡΡ ΠΈΡΠΊΠΎΠΌΡΡ ΡΡΡΠΎΠΊΡ, Π²ΡΠΎΡΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π·Π°Π΄Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠΈΡΠΊ.
Π’Π°ΠΊΠΆΠ΅ Π² ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ
n
, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π΄Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ
ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠΉ.Forwarded from Python Lounge: ΡΠ°Π±ΠΎΡΠ° ΠΈ ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²
Python ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ², ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ shift ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½ΠΈΡ
. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΠ΄Π΅ΡΡ ΡΡΠΈ Π·Π½Π°ΠΊΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ
:
collections import deque
from math import sqrt
class Compose:
def __init__(self):
self._functions = deque()
def __call__(self, *args, **kwargs):
result = None
for f in self._functions:
result = f(*args, **kwargs)
args = [result]
kwargs = dict()
return result
def __rshift__(self, f):
self._functions.append(f)
return self
def __lshift__(self, f):
self._functions.appendleft(f)
return self
compose = Compose
sqrt_abs = (compose() << sqrt << abs)
sqrt_abs2 = (compose() >> abs >> sqrt)
print(sqrt_abs(-4)) # 2.0
print(sqrt_abs2(-4)) # 2.0
Forwarded from Python Lounge: ΡΠ°Π±ΠΎΡΠ° ΠΈ ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²
ββΠΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡ Π²ΡΠ΅Ρ
!
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Python.
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ·ΡΠΊΠ° Python Π±ΡΠ»Π° Π½Π°ΡΠ°ΡΠ° Π² ΠΊΠΎΠ½ΡΠ΅ 1980-Ρ Π³ΠΎΠ΄ΠΎΠ² ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠΌ Π³ΠΎΠ»Π»Π°Π½Π΄ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΡΠΈΡΡΡΠ° CWI ΠΠ²ΠΈΠ΄ΠΎ Π²Π°Π½ Π ΠΎΡΡΡΠΌΠΎΠΌ.
ΠΠ»Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΠΠ‘ Amoeba ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΡΡ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ, ΠΈ ΠΠ²ΠΈΠ΄ΠΎ Π½Π°ΡΠ°Π» ΠΏΠΈΡΠ°ΡΡ Python Π½Π° Π΄ΠΎΡΡΠ³Π΅, ΠΏΠΎΠ·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π»Ρ ΡΠ·ΡΠΊΠ° ABC (ΠΠ²ΠΈΠ΄ΠΎ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°Π» Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ).
Π ΡΠ΅Π²ΡΠ°Π»Π΅ 1991 Π³ΠΎΠ΄Π° ΠΠ²ΠΈΠ΄ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ Π² Π³ΡΡΠΏΠΏΠ΅ Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ alt.sources.
Π‘ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π° Python ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π»ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ.
3 Π΄Π΅ΠΊΠ°Π±ΡΡ 2008 Π³ΠΎΠ΄Π°, ΠΏΠΎΡΠ»Π΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΡΡΠ»Π° ΠΏΠ΅ΡΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ Python 3000 (ΠΈΠ»ΠΈ Python 3.0, ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ Py3k).
Π Python 3000 ΡΡΡΡΠ°Π½Π΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ (Π½ΠΎ Π½Π΅ ΠΏΠΎΠ»Π½ΡΠΌ) ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΡΠΎ ΡΡΠ°ΡΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ Python.
ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΎΠ±Π΅ Π²Π΅ΡΠ²ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΡ (Python 3.x ΠΈ 2.x), Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Python 2.7 Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π² 2020 Π³ΠΎΠ΄Ρ.
ΠΡΠ°ΠΊ, ΠΌΡ ΡΠ·Π½Π°Π»ΠΈ Π½Π° ΡΡΡΠΎΡΠΊΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΎ Python!
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Python.
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ·ΡΠΊΠ° Python Π±ΡΠ»Π° Π½Π°ΡΠ°ΡΠ° Π² ΠΊΠΎΠ½ΡΠ΅ 1980-Ρ Π³ΠΎΠ΄ΠΎΠ² ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠΌ Π³ΠΎΠ»Π»Π°Π½Π΄ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΡΠΈΡΡΡΠ° CWI ΠΠ²ΠΈΠ΄ΠΎ Π²Π°Π½ Π ΠΎΡΡΡΠΌΠΎΠΌ.
ΠΠ»Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΠΠ‘ Amoeba ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΡΡ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ, ΠΈ ΠΠ²ΠΈΠ΄ΠΎ Π½Π°ΡΠ°Π» ΠΏΠΈΡΠ°ΡΡ Python Π½Π° Π΄ΠΎΡΡΠ³Π΅, ΠΏΠΎΠ·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π»Ρ ΡΠ·ΡΠΊΠ° ABC (ΠΠ²ΠΈΠ΄ΠΎ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°Π» Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ).
Π ΡΠ΅Π²ΡΠ°Π»Π΅ 1991 Π³ΠΎΠ΄Π° ΠΠ²ΠΈΠ΄ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ Π² Π³ΡΡΠΏΠΏΠ΅ Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ alt.sources.
Π‘ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π° Python ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π»ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ.
3 Π΄Π΅ΠΊΠ°Π±ΡΡ 2008 Π³ΠΎΠ΄Π°, ΠΏΠΎΡΠ»Π΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΡΡΠ»Π° ΠΏΠ΅ΡΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ Python 3000 (ΠΈΠ»ΠΈ Python 3.0, ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ Py3k).
Π Python 3000 ΡΡΡΡΠ°Π½Π΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ (Π½ΠΎ Π½Π΅ ΠΏΠΎΠ»Π½ΡΠΌ) ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΡΠΎ ΡΡΠ°ΡΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ Python.
ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΎΠ±Π΅ Π²Π΅ΡΠ²ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΡ (Python 3.x ΠΈ 2.x), Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Python 2.7 Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π² 2020 Π³ΠΎΠ΄Ρ.
ΠΡΠ°ΠΊ, ΠΌΡ ΡΠ·Π½Π°Π»ΠΈ Π½Π° ΡΡΡΠΎΡΠΊΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΎ Python!
Forwarded from Python Lounge: ΡΠ°Π±ΠΎΡΠ° ΠΈ ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²
ΠΠ½Π°Π»ΠΈΠ· Π΄Π°Π½Π½ΡΡ
Ρ ΠΏΠΎΠΌΠΎΡΡΡ pandas.
Π§Π°ΡΡΡ 1: Π§ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· csv ΡΠ°ΠΉΠ»Π°
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ pandas.
ΠΡΠ° ΡΠ°ΡΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ , Ρ ΡΠ°Π½ΡΡΠΈΡ ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ csv, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ².
Π§Π°ΡΡΡ 1: Π§ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· csv ΡΠ°ΠΉΠ»Π°
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ pandas.
ΠΡΠ° ΡΠ°ΡΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ , Ρ ΡΠ°Π½ΡΡΠΈΡ ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ csv, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ².
Forwarded from Python Lounge: ΡΠ°Π±ΠΎΡΠ° ΠΈ ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²
ΠΠ½Π°Π»ΠΈΠ· Π΄Π°Π½Π½ΡΡ
Ρ ΠΏΠΎΠΌΠΎΡΡΡ pandas.
Π§Π°ΡΡΡ 3: ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½ΡΡ
ΠΡΠ° ΡΠ°ΡΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΏΠΎΡΠΎΠ±Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
Π§Π°ΡΡΡ 3: ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½ΡΡ
ΠΡΠ° ΡΠ°ΡΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΏΠΎΡΠΎΠ±Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
Forwarded from Python Lounge: ΡΠ°Π±ΠΎΡΠ° ΠΈ ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²
ΠΠ½Π°Π»ΠΈΠ· Π΄Π°Π½Π½ΡΡ
Ρ ΠΏΠΎΠΌΠΎΡΡΡ pandas.
Π§Π°ΡΡΡ 4: ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ dataframe
Π ΠΊΠΎΠ½ΡΠ΅ ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ, ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΈΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΠΎΠ³ΠΎΠ΄Π΅ Π² ΠΠ°Π½Π°Π΄Π΅ Π·Π° Π²Π΅ΡΡ 2012 Π³ΠΎΠ΄, ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΠΌ Π² CSV ΡΠ°ΠΉΠ».
ΠΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ, Π·Π°Π³ΡΡΠ·ΠΈΠ² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠ΅ΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π² Π²ΡΠ΅ ΠΌΠ΅ΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅.
Π§Π°ΡΡΡ 4: ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ dataframe
Π ΠΊΠΎΠ½ΡΠ΅ ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ, ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΈΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΠΎΠ³ΠΎΠ΄Π΅ Π² ΠΠ°Π½Π°Π΄Π΅ Π·Π° Π²Π΅ΡΡ 2012 Π³ΠΎΠ΄, ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΠΌ Π² CSV ΡΠ°ΠΉΠ».
ΠΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ, Π·Π°Π³ΡΡΠ·ΠΈΠ² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠ΅ΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π² Π²ΡΠ΅ ΠΌΠ΅ΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅.
Forwarded from Python Lounge: ΡΠ°Π±ΠΎΡΠ° ΠΈ ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²
ΠΠ½Π°Π»ΠΈΠ· Π΄Π°Π½Π½ΡΡ
Ρ ΠΏΠΎΠΌΠΎΡΡΡ pandas.
Π§Π°ΡΡΡ 7: ΡΠ°Π±ΠΎΡΠ° Ρ Π΄Π°ΡΠ°ΠΌΠΈ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ
Π§Π°ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΈ Π΄Π°ΡΡ / Π²ΡΠ΅ΠΌΡ, ΠΏΡΠΈΡΡΠΌ Π² ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΡΠ°Π·Π½ΡΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ². pandas ΡΠΌΠ΅Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄Π°ΡΠ°ΠΌΠΈ; Π² ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ.
Π§Π°ΡΡΡ 7: ΡΠ°Π±ΠΎΡΠ° Ρ Π΄Π°ΡΠ°ΠΌΠΈ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ
Π§Π°ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΈ Π΄Π°ΡΡ / Π²ΡΠ΅ΠΌΡ, ΠΏΡΠΈΡΡΠΌ Π² ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΡΠ°Π·Π½ΡΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ². pandas ΡΠΌΠ΅Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄Π°ΡΠ°ΠΌΠΈ; Π² ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ.
Forwarded from Python Lounge: ΡΠ°Π±ΠΎΡΠ° ΠΈ ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²
ΠΠ½Π°Π»ΠΈΠ· Π΄Π°Π½Π½ΡΡ
Ρ ΠΏΠΎΠΌΠΎΡΡΡ pandas.
Π§Π°ΡΡΡ 8: ΡΠ°Π±ΠΎΡΠ° Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ SQL
ΠΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π»ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· csv ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ!
Pandas ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΠ· HTML, JSON, SQL, Excel (!!!), HDF5, Stata, ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΡΡΠ³ΠΈΡ Π²Π΅ΡΠ΅ΠΉ.
Π ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΠ· Π±Π°Π· Π΄Π°Π½Π½ΡΡ SQL.
Π§Π°ΡΡΡ 8: ΡΠ°Π±ΠΎΡΠ° Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ SQL
ΠΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π»ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· csv ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ!
Pandas ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΠ· HTML, JSON, SQL, Excel (!!!), HDF5, Stata, ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΡΡΠ³ΠΈΡ Π²Π΅ΡΠ΅ΠΉ.
Π ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΠ· Π±Π°Π· Π΄Π°Π½Π½ΡΡ SQL.
Forwarded from Python Lounge: ΡΠ°Π±ΠΎΡΠ° ΠΈ ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²
ΠΠ²ΡΠΎΠΏΠΎΡΡΠΈΠ½Π³ c ΠΠ Π² ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ
ΠΠΎ ΠΏΡΠΎΡΡΠ±Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠ°Π½Π°Π»Π° ΠΌΡ ΠΏΡΠΈΠ³ΠΎΡΠΎΠ²ΠΈΠ»ΠΈ Π΄Π»Ρ Π²Π°Ρ ΡΡΠ°ΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΆΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ Π°Π²ΡΠΎΠΏΠΎΡΡΠΈΠ½Π³ Ρ ΠΠ Π² ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ.
ΠΠΎ ΠΏΡΠΎΡΡΠ±Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠ°Π½Π°Π»Π° ΠΌΡ ΠΏΡΠΈΠ³ΠΎΡΠΎΠ²ΠΈΠ»ΠΈ Π΄Π»Ρ Π²Π°Ρ ΡΡΠ°ΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΆΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ Π°Π²ΡΠΎΠΏΠΎΡΡΠΈΠ½Π³ Ρ ΠΠ Π² ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ.
Forwarded from Python Lounge: ΡΠ°Π±ΠΎΡΠ° ΠΈ ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²
ΠΠ°Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ 10 Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΡΡ
ΡΠ»ΠΎΠ² Π½Π° web ΡΡΡΠ°Π½ΠΈΡΠ΅
Π Π΅ΡΠΈΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ Π·Π°Π΄Π°ΡΠΊΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅.
Π Π΅ΡΠΈΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ Π·Π°Π΄Π°ΡΠΊΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅.
Forwarded from Python Lounge: ΡΠ°Π±ΠΎΡΠ° ΠΈ ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²
HTML ΠΏΠ°ΡΡΠ΅Ρ Π½Π° Python
Π£ΡΠΈΡΡΠ²Π°Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°, Π±ΡΠ»ΠΎ Π±Ρ ΠΊΠΎΡΡΠ½ΡΡΠ²ΠΎΠΌ Π½Π΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠΎ Π²ΡΠ΅ΠΌΠΈΡΠ½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠ½ΠΎΠΉ.
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΠΈΠΉ html-ΠΏΠ°ΡΡΠ΅Ρ Π½Π° Python.
ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΉΡΠ° ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π²ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π² Π½Π΅ΠΉ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ».
ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ SEO-Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ°ΠΌ ΠΈ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ.
Π£ΡΠΈΡΡΠ²Π°Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°, Π±ΡΠ»ΠΎ Π±Ρ ΠΊΠΎΡΡΠ½ΡΡΠ²ΠΎΠΌ Π½Π΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠΎ Π²ΡΠ΅ΠΌΠΈΡΠ½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠ½ΠΎΠΉ.
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΠΈΠΉ html-ΠΏΠ°ΡΡΠ΅Ρ Π½Π° Python.
ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΉΡΠ° ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π²ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π² Π½Π΅ΠΉ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ».
ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ SEO-Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ°ΠΌ ΠΈ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ.
Forwarded from Hello World
ββΠ§ΡΠΎ Π½ΠΎΠ²Π΅Π½ΡΠΊΠΎΠ³ΠΎ?
ΠΠ΅Π΄Π°Π²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΉ Π·Π½Π°ΠΊΠΎΠΌΡΠΉ ΡΠΊΠΈΠ½ΡΠ» ΠΌΠ½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π½Π° C ΠΏΡΡΠΌΠΎ Π² ΡΡΠ½ΠΊΡΠΈΡΡ Python.
ΠΠΈΠ±Ρ Ρ Π³Π»ΡΠ½ΡΠ», Π½ΠΎ ΠΌΠ½Π΅ ΠΊΠΎΠ΅-ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΡΠ΅ΡΠΈΠ» Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
ΠΠΎΠΊΠ° Ρ ΠΊΠΎΠ²ΡΡΡΠ»ΡΡ Ρ ΡΡΠΈΠΌ, ΠΈΠ·ΡΡΠΈΠ» ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΡΠΊΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΌΠ΅ΡΠΎΠ΄
βοΈ ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΌΠΎΠ³Ρ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΎΠ΄Π½Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π° ΠΏΡΠΈ Π΅Π΅ Π²ΡΠ·ΠΎΠ²Π΅ Π·Π°Π΄Π°ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π΄ΡΡΠ³ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ.
Π‘ΡΡΠ»ΠΊΠ° Π½Π° Π³ΠΈΡΡ Π°Π±
ΠΡΠ΄Ρ ΠΎΡΠ΅Π½Ρ ΡΠ°Π΄, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΡΠ΅ΡΡ/ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π·Π²Π΅Π·Π΄ΠΎΡΠΊΡ Π² Π³ΠΈΡΡ Π°Π±Π΅. ΠΡΠ»ΠΈ ΡΡΠ΅Π΄ΠΈ Π²Π°Ρ Π΅ΡΡΡ ΠΎΠΏΡΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, ΡΠΎ Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ Π²Π½ΠΎΡΠΈΡΡ ΠΏΡΠ°Π²ΠΊΠΈ.
ΠΠ΅Π΄Π°Π²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΉ Π·Π½Π°ΠΊΠΎΠΌΡΠΉ ΡΠΊΠΈΠ½ΡΠ» ΠΌΠ½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π½Π° C ΠΏΡΡΠΌΠΎ Π² ΡΡΠ½ΠΊΡΠΈΡΡ Python.
ΠΠΈΠ±Ρ Ρ Π³Π»ΡΠ½ΡΠ», Π½ΠΎ ΠΌΠ½Π΅ ΠΊΠΎΠ΅-ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΡΠ΅ΡΠΈΠ» Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
ctypes
.ΠΠΎΠΊΠ° Ρ ΠΊΠΎΠ²ΡΡΡΠ»ΡΡ Ρ ΡΡΠΈΠΌ, ΠΈΠ·ΡΡΠΈΠ» ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΡΠΊΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΌΠ΅ΡΠΎΠ΄
__call__
ΠΈ ΠΏΠΎΠ½ΡΠ» ΡΡΠΎ Π΄Π΅ΠΊΠΎΡΠΈΡΡΡΡΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Python.βοΈ ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΌΠΎΠ³Ρ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΎΠ΄Π½Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π° ΠΏΡΠΈ Π΅Π΅ Π²ΡΠ·ΠΎΠ²Π΅ Π·Π°Π΄Π°ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π΄ΡΡΠ³ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ.
Π‘ΡΡΠ»ΠΊΠ° Π½Π° Π³ΠΈΡΡ Π°Π±
ΠΡΠ΄Ρ ΠΎΡΠ΅Π½Ρ ΡΠ°Π΄, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΡΠ΅ΡΡ/ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π·Π²Π΅Π·Π΄ΠΎΡΠΊΡ Π² Π³ΠΈΡΡ Π°Π±Π΅. ΠΡΠ»ΠΈ ΡΡΠ΅Π΄ΠΈ Π²Π°Ρ Π΅ΡΡΡ ΠΎΠΏΡΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, ΡΠΎ Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ Π²Π½ΠΎΡΠΈΡΡ ΠΏΡΠ°Π²ΠΊΠΈ.
Π€ΡΠ½ΠΊΡΠΈΡ complex() ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ:
>>> complex(3.5,4)
(3.5+4j)
Π€ΡΠ½ΠΊΡΠΈΡ eval() ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΡΠΎΠΊΡ:
>>> eval("print(max(22,22.0) β min(2,3))")
20
Π€ΡΠ½ΠΊΡΠΈΡ filter() ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²ΡΠ²Π°Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π²Π΅ΡΠ½ΠΎ.
>>> list(filter(lambda x: x%2 == 0,[1, 2, 0, False]))
[2, 0, False]
Π€ΡΠ½ΠΊΡΠΈΡ format() ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π·Π°Π΄Π°ΡΡ ΡΠΎΡΠΌΠ°Ρ ΡΡΡΠΎΠΊΠΈ:
>>> print("a = {0} but b = {1}".format(a, b))
a = 2 but b = 3
Π€ΡΠ½ΠΊΡΠΈΡ hash() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Ρ ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°:
>>> hash(3.7)
644245917
Π€ΡΠ½ΠΊΡΠΈΡ hex() ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π΅Ρ ΡΠΈΡΠ»ΠΎ Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ:
>>> hex(14)
"0xe"
Π€ΡΠ½ΠΊΡΠΈΡ input() ΡΠΈΡΠ°Π΅Ρ Π²Π²ΠΎΠ΄ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ:
>>> input("Enter a number")
Enter a number7
"7"
Π€ΡΠ½ΠΊΡΠΈΡ len() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅ Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΎΠΊΠΈ:
>>> len("Ayushi")
6
Π€ΡΠ½ΠΊΡΠΈΡ locals() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ ΠΈΠΌΠ΅Π½:
>>> locals()
{"__name__": "__main__", "__doc__": None, "__package__": None, "__loader__": <class "_frozen_importlib.BuiltinImporter">, "__spec__": None, "__annotations__": {}, "__builtins__": <module "builtins" (built-in)>, "a": 2, "b": 3}
Π€ΡΠ½ΠΊΡΠΈΡ open() ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠ°ΠΉΠ»:
>>> file = open("tabs.txt")
>>> complex(3.5,4)
(3.5+4j)
Π€ΡΠ½ΠΊΡΠΈΡ eval() ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΡΠΎΠΊΡ:
>>> eval("print(max(22,22.0) β min(2,3))")
20
Π€ΡΠ½ΠΊΡΠΈΡ filter() ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²ΡΠ²Π°Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π²Π΅ΡΠ½ΠΎ.
>>> list(filter(lambda x: x%2 == 0,[1, 2, 0, False]))
[2, 0, False]
Π€ΡΠ½ΠΊΡΠΈΡ format() ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π·Π°Π΄Π°ΡΡ ΡΠΎΡΠΌΠ°Ρ ΡΡΡΠΎΠΊΠΈ:
>>> print("a = {0} but b = {1}".format(a, b))
a = 2 but b = 3
Π€ΡΠ½ΠΊΡΠΈΡ hash() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Ρ ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°:
>>> hash(3.7)
644245917
Π€ΡΠ½ΠΊΡΠΈΡ hex() ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π΅Ρ ΡΠΈΡΠ»ΠΎ Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ:
>>> hex(14)
"0xe"
Π€ΡΠ½ΠΊΡΠΈΡ input() ΡΠΈΡΠ°Π΅Ρ Π²Π²ΠΎΠ΄ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ:
>>> input("Enter a number")
Enter a number7
"7"
Π€ΡΠ½ΠΊΡΠΈΡ len() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅ Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΎΠΊΠΈ:
>>> len("Ayushi")
6
Π€ΡΠ½ΠΊΡΠΈΡ locals() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ ΠΈΠΌΠ΅Π½:
>>> locals()
{"__name__": "__main__", "__doc__": None, "__package__": None, "__loader__": <class "_frozen_importlib.BuiltinImporter">, "__spec__": None, "__annotations__": {}, "__builtins__": <module "builtins" (built-in)>, "a": 2, "b": 3}
Π€ΡΠ½ΠΊΡΠΈΡ open() ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠ°ΠΉΠ»:
>>> file = open("tabs.txt")
12 ΠΌΠ°ΡΡΠ° Ρ 19:00 Π΄ΠΎ 22:00 ΠΌΠΈΡΠ°ΠΏ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Java ΠΈ Python Π² #ITX5
Π‘Π»ΡΡΠ°Π΅ΠΌ ΠΊΠ»Π°ΡΡΠ½ΡΠ΅ Π΄ΠΎΠΊΠ»Π°Π΄Ρ ΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΡΠ΅Π½Π΄Ρ. Π’Π΅ΠΌΡ Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ²:
β¬₯ Π ΡΡΠΌ ΠΌΠ΅ΡΡΠ°ΡΡ Java-ΡΠΎΠ±ΠΎΡΡ, Π³Π»ΡΠ΄Ρ Π½Π° Python
β¬₯ AOP β Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ
β¬₯ Π§ΠΈΡΡΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π² ΡΡΠ΅Π΄Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠΈΡ ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ
ΠΠ΅ΡΡΠΎ: ΠΠ¦ Β«ΠΠ°Π·ΠΈΡΒ» (ΠΠΎΡΠΎΠ²ΠΈΠΉ Π²Π°Π», 5). ΠΠ΅ΡΠΎΠΏΡΠΈΡΡΠΈΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ΅, Π½ΡΠΆΠ½ΠΎ Π»ΠΈΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ: https://prglb.ru/393of
Π‘Π»ΡΡΠ°Π΅ΠΌ ΠΊΠ»Π°ΡΡΠ½ΡΠ΅ Π΄ΠΎΠΊΠ»Π°Π΄Ρ ΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΡΠ΅Π½Π΄Ρ. Π’Π΅ΠΌΡ Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ²:
β¬₯ Π ΡΡΠΌ ΠΌΠ΅ΡΡΠ°ΡΡ Java-ΡΠΎΠ±ΠΎΡΡ, Π³Π»ΡΠ΄Ρ Π½Π° Python
β¬₯ AOP β Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ
β¬₯ Π§ΠΈΡΡΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π² ΡΡΠ΅Π΄Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠΈΡ ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ
ΠΠ΅ΡΡΠΎ: ΠΠ¦ Β«ΠΠ°Π·ΠΈΡΒ» (ΠΠΎΡΠΎΠ²ΠΈΠΉ Π²Π°Π», 5). ΠΠ΅ΡΠΎΠΏΡΠΈΡΡΠΈΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ΅, Π½ΡΠΆΠ½ΠΎ Π»ΠΈΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ: https://prglb.ru/393of
Forwarded from MoscowPython Conf Channel
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ DDD ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π² Π½Π΅ΠΌ Π΅ΡΡΡ, ΡΠΈΡΠ°ΠΉΡΠ΅ Π² ΡΡΠ°ΡΡΠ΅, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π΅ ΠΡΡΡΠΌΠ° ΠΠ°Π»ΡΡΠ΅Π²Π° Π½Π° Moscow Python Conf++ 2019.
Π ΡΡΠ°ΡΡΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ DDD Π² Python, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈ, ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π²ΠΎΠΊΡΡΠ³ ΡΠ΅ΡΠ°Π΅ΠΌΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°. ΠΡΡ, ΡΡΠΎΠ±Ρ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌ Π½Π° ΡΠΈΠ½Π΅Π³ΠΎ ΠΊΠΈΡΠ° β ΠΌΠΎΡΡΠΊΠΎΠ΅ ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π΄ΡΡΠ°ΡΡ ΠΏΠΎΠ΄ Π²ΠΎΠ΄ΠΎΠΉ.
Π ΡΡΠ°ΡΡΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ DDD Π² Python, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈ, ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π²ΠΎΠΊΡΡΠ³ ΡΠ΅ΡΠ°Π΅ΠΌΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°. ΠΡΡ, ΡΡΠΎΠ±Ρ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌ Π½Π° ΡΠΈΠ½Π΅Π³ΠΎ ΠΊΠΈΡΠ° β ΠΌΠΎΡΡΠΊΠΎΠ΅ ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π΄ΡΡΠ°ΡΡ ΠΏΠΎΠ΄ Π²ΠΎΠ΄ΠΎΠΉ.
Π₯Π°Π±Ρ
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Domain Driven Design
Π‘ΠΈΠ½ΠΈΠΉ ΠΊΠΈΡ β ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΠΏΠΎ ΠΏΠ»Π°Π½Ρ. ΠΠΈΡ Π²Π½Π΅ΡΠ½Π΅ ΠΏΠΎΡ
ΠΎΠΆ Π½Π° ΡΡΠ±Ρ, Π½ΠΎ ΠΎΠ½ ΠΌΠ»Π΅ΠΊΠΎΠΏΠΈΡΠ°ΡΡΠ΅Π΅: ΠΊΠΎΡΠΌΠΈΡ Π΄Π΅ΡΠ΅Π½ΡΡΠ΅ΠΉ ΠΌΠΎΠ»ΠΎΠΊΠΎΠΌ,...
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π² Python ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ Π΄ΡΠΌΠ°ΡΡ ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ
Π Π°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ Π½Π° Python? Π‘ ΡΡΠΈΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ Π²Ρ Π½Π΅ ΠΏΠΎΡΠΎΠ½Π΅ΡΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ . Π Π°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ pipenv ΠΈ Anaconda.
https://prglb.ru/3vk41
Π Π°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ Π½Π° Python? Π‘ ΡΡΠΈΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ Π²Ρ Π½Π΅ ΠΏΠΎΡΠΎΠ½Π΅ΡΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ . Π Π°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ pipenv ΠΈ Anaconda.
https://prglb.ru/3vk41
Forwarded from Python Academy
ββΠΡΠ²ΠΎΠΈΡΡ Python ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½ Π·Π° Π½Π΅Π΄Π΅Π»Ρ? ΠΠ΅Π³ΠΊΠΎ.
Π‘ 16 ΠΌΠ°ΡΡΠ° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π½Π°Ρ Π½ΠΎΠ²ΡΠΉ ΠΊΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ ΠΊΠ°ΠΊ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ, ΡΠ°ΠΊ ΠΈ Π»ΡΠ΄ΡΠΌ Ρ ΠΎΠΏΡΡΠΎΠΌ. ΠΡ ΡΠ°Π·Π±Π΅ΡΡΠΌ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ΅ΠΌΡ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠΎΠΉ ΠΠΠ.
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΡΡΡΠ° Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅:
βΆ ΠΠ±ΡΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΡΠ½ΠΎΠ²Ρ Python;
β· ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ Ρ ΡΠ°Π·Π±ΠΎΡΠΎΠΌ;
βΈ Π€ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ: Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½ Ρ Π½ΡΠ»Ρ.
Π¦Π΅Π½Π° Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠ°Π½Π°Π»Π° 490β½.
ΠΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ Π·Π°ΠΏΠΈΡΡ Π½Π° ΠΊΡΡΡ: @a1f20 ΠΈ @dartrisen
Π‘ 16 ΠΌΠ°ΡΡΠ° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π½Π°Ρ Π½ΠΎΠ²ΡΠΉ ΠΊΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ ΠΊΠ°ΠΊ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ, ΡΠ°ΠΊ ΠΈ Π»ΡΠ΄ΡΠΌ Ρ ΠΎΠΏΡΡΠΎΠΌ. ΠΡ ΡΠ°Π·Π±Π΅ΡΡΠΌ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ΅ΠΌΡ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠΎΠΉ ΠΠΠ.
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΡΡΡΠ° Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅:
βΆ ΠΠ±ΡΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΡΠ½ΠΎΠ²Ρ Python;
β· ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ Ρ ΡΠ°Π·Π±ΠΎΡΠΎΠΌ;
βΈ Π€ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ: Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½ Ρ Π½ΡΠ»Ρ.
Π¦Π΅Π½Π° Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠ°Π½Π°Π»Π° 490β½.
ΠΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ Π·Π°ΠΏΠΈΡΡ Π½Π° ΠΊΡΡΡ: @a1f20 ΠΈ @dartrisen
Forwarded from Moscow Python (Valentin Dombrovsky)
Π Π³ΠΎΡΡΡΡ
Ρ Moscow Python Podcast ΠΠ΅ΡΡ ΠΡΠΌΠ°ΠΊΠΎΠ², senior data scientist Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Lamoda, ΠΎΡΠ½ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΊΠΎΠ»Ρ DataGym. ΠΠ±ΡΡΠ΄ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ jupiter notebook ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
ΠΠ΅Π΄ΡΡΠΈΠ΅ Π²ΡΠΏΡΡΠΊΠ° β ΡΠΎΠΎΡΠ½ΠΎΠ²Π°ΡΠ΅Π»Ρ MoscowPython ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ DryLabs ΠΠ°Π»Π΅Π½ΡΠΈΠ½ ΠΠΎΠΌΠ±ΡΠΎΠ²ΡΠΊΠΈΠΉ, ΡΠΈΠΌΠ»ΠΈΠ΄ NVIDIA ΠΠ»Π°ΡΠ° ΠΠ±ΡΡ ΠΎΠ²ΡΠΊΠ°Ρ ΠΈ DevRel ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Evrone, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΈΡΠ΅ΡΠ° Moscow Python Conf++ ΠΡΠΈΠ³ΠΎΡΠΈΠΉ ΠΠ΅ΡΡΠΎΠ².
https://youtube.com/watch?v=V0XXiOooP_U
ΠΠ΅Π΄ΡΡΠΈΠ΅ Π²ΡΠΏΡΡΠΊΠ° β ΡΠΎΠΎΡΠ½ΠΎΠ²Π°ΡΠ΅Π»Ρ MoscowPython ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ DryLabs ΠΠ°Π»Π΅Π½ΡΠΈΠ½ ΠΠΎΠΌΠ±ΡΠΎΠ²ΡΠΊΠΈΠΉ, ΡΠΈΠΌΠ»ΠΈΠ΄ NVIDIA ΠΠ»Π°ΡΠ° ΠΠ±ΡΡ ΠΎΠ²ΡΠΊΠ°Ρ ΠΈ DevRel ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Evrone, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΈΡΠ΅ΡΠ° Moscow Python Conf++ ΠΡΠΈΠ³ΠΎΡΠΈΠΉ ΠΠ΅ΡΡΠΎΠ².
https://youtube.com/watch?v=V0XXiOooP_U
YouTube
Moscow Python Podcast. ΠΡΠΎΠ±Π»Π΅ΠΌΡ jupyter notebook ΠΈ ΠΈΡ
ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² production (level: junior)
Π Π³ΠΎΡΡΡΡ
Ρ Moscow Python Podcast ΠΠ΅ΡΡ ΠΡΠΌΠ°ΠΊΠΎΠ², senior data scientist Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Lamoda, ΠΎΡΠ½ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΊΠΎΠ»Ρ DataGym. ΠΠ±ΡΡΠ΄ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ jupyter notebook ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
ΠΠ΅Π΄ΡΡΠΈΠ΅ Π²ΡΠΏΡΡΠΊΠ° β ΡΠΎΠΎΡΠ½ΠΎΠ²Π°ΡΠ΅Π»Ρ MoscowPython ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ DryLabsβ¦
ΠΠ΅Π΄ΡΡΠΈΠ΅ Π²ΡΠΏΡΡΠΊΠ° β ΡΠΎΠΎΡΠ½ΠΎΠ²Π°ΡΠ΅Π»Ρ MoscowPython ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ DryLabsβ¦