π The Zen of Python: ΡΡΠΎ ΡΡΠΎ ΠΈ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ
"The Zen of Python" (ΠΠ΅Π½ ΠΠΈΡΠΎΠ½Π°) - ΡΡΠΎ Π½Π°Π±ΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΠΈ ΡΠΈΠ»ΠΎΡΠΎΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ Ρ ΠΎΡΠΎΡΠΈΠΉ ΠΈ ΠΊΡΠ°ΡΠΈΠ²ΡΠΉ ΠΊΠΎΠ΄ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ "Zen of Python" ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΠ°ΠΌΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Python, Π·Π°ΠΏΡΡΡΠΈΠ² ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΈ Π²Π²Π΅Π΄Ρ "import this" Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
import this
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΠΎΡΠ²ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ:
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
ΠΡΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Python Π½Π° ΠΏΡΡΡ ΡΠΈΡΡΠΎΡΡ, ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ ΠΈ ΠΏΡΠΎΡΡΠΎΡΡ ΠΊΠΎΠ΄Π°, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
The Zen of Python - Π§ΡΠΎ ΡΡΠΎ?
ΠΡΠ»ΠΈ Π²Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π° ΡΠ·ΡΠΊΠ΅ Python, Π²Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π·Π½Π°ΠΊΠΎΠΌΡ Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ "The Zen of Python" ΠΈΠ»ΠΈ "ΠΠ·Π΅Π½ ΠΠΈΡΠΎΠ½Π°". ΠΡΠΎ Π½Π°Π±ΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Python. ΠΡΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π±ΡΠ»ΠΈ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½Ρ Π’ΠΈΠΌΠΎΠΌ ΠΠΈΡΠ΅ΡΡΠΎΠΌ, Π°Π²ΡΠΎΡΠΎΠΌ ΡΠ·ΡΠΊΠ° Python.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΈ ΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΊΠΎΠ΄. ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ ΡΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ, Π° Π½Π΅ ΠΆΠ΅ΡΡΠΊΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°, Π½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠΌ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΡΠΌ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ.
1. ΠΡΠ°ΡΠΈΠ²ΠΎΠ΅ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΡΡΠΎΠ΄Π»ΠΈΠ²ΠΎΠ΅.
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄, ΡΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ Π΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΠΊΡΠ°ΡΠΈΠ²ΡΠΌ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ. Π§ΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΊΠΎΠ΄ Π²Π°ΠΆΠ΅Π½ Π΄Π»Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²Π° Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ Π΄Π»Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ Π²Π·Π³Π»ΡΠ΄Π° Π½Π° ΠΊΠΎΠ΄. Π Python ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΎ ΡΡΠΈΠ»Π΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ PEP 8, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π΅Π΄ΠΈΠ½ΠΎΠΌΡ ΡΡΠΈΠ»Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
2. ΠΡΡΡΠ΅ ΡΠ²Π½ΠΎΠ΅, ΡΠ΅ΠΌ Π½Π΅ΡΠ²Π½ΠΎΠ΅.
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄, ΡΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ Π±ΡΡΡ ΡΠ²Π½ΡΠΌ ΠΈ ΡΡΠ½ΡΠΌ. ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ Π½Π΅ΡΠ²Π½ΡΡ ΠΈ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π·Π°ΡΡΡΠ΄Π½ΠΈΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ Π΄Π°ΠΆΠ΅ Π²Π°ΠΌΠΈ ΡΠ°ΠΌΠΈΠΌΠΈ ΡΠ΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
3. ΠΡΠΎΡΡΠΎΠ΅ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅.
ΠΡΠΎΡΡΠΎΡΠ° - ΡΡΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΡΠ·ΡΠΊΠ° Python. Π‘ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ Π΄Π΅Π»Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΡΡΡΠΌ, ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½ΡΠΌ. ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΠΈΠ·Π»ΠΈΡΠ½Π΅ΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
4. ΠΡΠΈΠ±ΠΊΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΌΠ°Π»ΡΠΈΠ²Π°ΡΡΡΡ.
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ·ΡΠΊΠ°ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Python ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄, Π²ΡΠ΅Π³Π΄Π° ΡΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΠΉΡΠ΅ ΠΈΡ , ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ ΠΈ ΡΠ»ΡΡΡΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ.
5. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΈΡΠ½Π΅Π³ΠΎ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΠΎΠΏΡΠΎΡΡ.
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΊ ΠΊΠΎΠ΄Ρ, ΡΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ Π±ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠΌ ΠΈ ΠΏΠΎΠ»Π½ΡΠΌ. Π₯ΠΎΡΠΎΡΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ Π²Π°Ρ ΠΊΠΎΠ΄ ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ.
6. ΠΠ΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, Π° Π½Π΅ ΠΏΡΡΠ°ΠΉΡΠ΅ΡΡ Π½Π°ΠΉΡΠΈ Π΄Π²ΡΡΠΌΡΡΠ»Π΅Π½Π½ΠΎΡΡΡ.
Python ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ Π·Π°Π΄Π°ΡΠΈ. Π‘ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΠΈ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π΅Π³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΡΡΠ°Π½ΠΈΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠΈΡΠ°ΡΡ Π²Π°Ρ ΠΊΠΎΠ΄.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
# ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π½Π° Python, ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡΠΈΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΠ·Π΅Π½ ΠΠΈΡΠΎΠ½Π°
# 1. ΠΡΠ°ΡΠΈΠ²ΠΎΠ΅ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΡΡΠΎΠ΄Π»ΠΈΠ²ΠΎΠ΅.
def greet(name):
"""ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ."""
print(f"ΠΡΠΈΠ²Π΅Ρ, {name}!")
# 2. ΠΡΡΡΠ΅ ΡΠ²Π½ΠΎΠ΅, ΡΠ΅ΠΌ Π½Π΅ΡΠ²Π½ΠΎΠ΅.
x = 5
y = 10
sum = x + y
# 3. ΠΡΠΎΡΡΠΎΠ΅ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅.
def calculate_square_area(side_length):
"""ΠΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΏΠ»ΠΎΡΠ°Π΄Ρ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°."""
return side_length ** 2
# 4. ΠΡΠΈΠ±ΠΊΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΌΠ°Π»ΡΠΈΠ²Π°ΡΡΡΡ.
try:
result = 10 / 0
except ZeroDivisionError as e:
print(f"ΠΡΠΈΠ±ΠΊΠ°: {str(e)}")
# 5. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΈΡΠ½Π΅Π³ΠΎ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΠΎΠΏΡΠΎΡΡ.
def divide_numbers(a, b):
"""ΠΠ΅Π»ΠΈΡ ΠΎΠ΄Π½ΠΎ ΡΠΈΡΠ»ΠΎ Π½Π° Π΄ΡΡΠ³ΠΎΠ΅."""
if b == 0:
raise ValueError("ΠΠ΅Π»ΠΈΡΠ΅Π»Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½ΡΠ»Π΅ΠΌ.")
return a / b
# 6. ΠΠ΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, Π° Π½Π΅ ΠΏΡΡΠ°ΠΉΡΠ΅ΡΡ Π½Π°ΠΉΡΠΈ Π΄Π²ΡΡΠΌΡΡΠ»Π΅Π½Π½ΠΎΡΡΡ.
def is_even(number):
"""ΠΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠΈΡΠ»ΠΎ ΡΠ΅ΡΠ½ΡΠΌ."""
return number % 2 == 0