Python ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ: Python 3: ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠΌΠΏΠΎΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ import Π² Python? ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ
Π ΠΠ°ΠΉΡΠΎΠ½Π΅ ΠΈΠΌΠ΅Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΊΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ. ΠΠΎΠ΄ΡΠ»Ρ β ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ», ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΠ°ΠΉΡΠΎΠ½ΠΎΠΌ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΠ°ΠΊΠ΅ΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΡΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠΉ Π²Π°ΠΌΠΈ ΡΠΊΡΠΈΠΏΡ Π² ΠΠ°ΠΉΡΠΎΠ½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ. ΠΡΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΡΠ°ΠΌΡΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ, Π½ΠΎ ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
ΠΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ Β«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!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| 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! |
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΠ΅ΠΌ, Π²Ρ Π½Π°ΡΠ»ΠΈ Β«ΠΏΠ°ΡΡ Π°Π»ΡΠ½ΠΎΠ΅ ΡΠΉΡΠΎΒ» Π² ΠΠ°ΠΉΡΠΎΠ½Π΅, ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΠΊΠ°ΠΊ Β«ΠΠ·Π΅Π½Β». ΠΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π»ΡΡΡΠΈΡ Π½Π΅ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ Π² ΠΠ°ΠΉΡΠΎΠ½. Π‘Π°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ this Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΠ³ΠΎ, ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΠΌΠΏΠΎΡΡΠ° ΡΠ΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ. Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ, ΡΠ΅ΠΌ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΌΠΎΠ΄ΡΠ»Ρ math:
import math
print(math.sqrt(4)) # 2.0
| import math Β print(math.sqrt(4)) # 2.0 |
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ math ΠΈ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎ-ΡΠΎ Π½ΠΎΠ²ΠΎΠ΅. ΠΡ Π²ΡΠ·Π²Π°Π»ΠΈ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ β sqrt (Ρ.Π΅. square root β ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠΉ ΠΊΠΎΡΠ΅Π½Ρ). ΠΠ»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ: module_name.method_name(Π°ΡΠ³ΡΠΌΠ΅Π½Ρ). Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π½Π°ΡΠ»ΠΈ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠΉ ΠΊΠΎΡΠ΅Π½Ρ ΠΎΡ 4. Π ΠΌΠΎΠ΄ΡΠ»Π΅ math Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΈΠ½ΡΡΠ°, ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π», Π»ΠΎΠ³Π°ΡΠΈΡΠΌΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠ·ΡΠ²Π°ΡΡ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ sqrt. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, Π² ΡΠ΅ΠΌ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΡΡΡΡ β ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π»ΠΈ ΠΎΠ½ΠΈ Π±ΠΎΠ»ΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ»ΠΈ Π½Π΅Ρ. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΠΌΠΏΠΎΡΡΠ°.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ from Π² ΠΈΠΌΠΏΠΎΡΡΠ΅
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΡΠ΄ΠΈ Π½Π΅ ΠΎΡΠ΅Π½Ρ Π»ΡΠ±ΡΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ Π²ΡΠ΅, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΠΈΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΠΏΡΠΎΡΠ΅ΠΌ, Π² ΠΠ°ΠΉΡΠΎΠ½Π΅ Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ Π½ΡΠΆΠ½Ρ. ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΡ sqrt:
from math import sqrt
print( sqrt(16) ) # 4.0
| from math import sqrt Β print( sqrt(16) ) # 4.0 |
ΠΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΡΠΈΡΠ°Π΅ΡΡΡ: ΡΡΠ½ΠΊΡΠΈΡ sqrt ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ math. ΠΠΎΠΏΡΠΎΠ±ΡΡ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ ΡΡΠΎ ΠΈΠ½Π°ΡΠ΅. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ from Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ sqrt ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ math. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»ΡΒ math:
from math import pi, sqrt
| from math import pi, sqrt |
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΊΠ°ΠΊ sqrt ΡΠ°ΠΊ ΠΈ pi. ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ pi, ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅, Π° Π²Π΅Π»ΠΈΡΠΈΠ½Π°.
ΠΠ°ΠΊΠ°Π·Π°ΡΡ Π΄Π΅ΡΠ΅Π²ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² Π² Π³ΡΡΠΏΠΏΡ ΠΠ Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π° ΡΠ΅ΡΠ²ΠΈΡΠ΅ https://doctorsmm.com/. ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ ΡΠΈΡΠΎΠΊΠΈΠΉ Π²ΡΠ±ΠΎΡ ΡΠΎΡΠΌΠ°ΡΠ° ΡΠ΅ΡΡΡΡΠ° ΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ Π΅Π³ΠΎ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΠ»ΡΠ³Ρ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ Π²Π½ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΡΠΎΠ²ΡΠ΅ ΡΠΊΠΈΠ΄ΠΊΠΈ ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΠΈ. ΠΠ΅ ΡΠΏΡΡΡΠΈΡΠ΅ ΡΠ²ΠΎΠ΅ Π²ΡΠ³ΠΎΠ΄Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅!
ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ ΠΈΠΌΠΏΠΎΡΡ, Π²Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Π°ΠΌΠΈ, ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, Π΄Π°ΠΆΠ΅ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ. ΠΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΠΈΠΌΠΏΠΎΡΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ Π²ΡΡ!
ΠΡΡΡ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ Python?
ΠΠ° Π½Π°ΡΠ΅ΠΌ ΡΠΎΡΡΠΌΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ Π»ΡΠ±ΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠ²Π΅Ρ ΠΎΡ Π²ΡΠ΅Π³ΠΎ Π½Π°ΡΠ΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°!
Telegram Π§Π°Ρ & ΠΠ°Π½Π°Π»
ΠΡΡΡΠΏΠΈΡΠ΅ Π² Π½Π°Ρ Π΄ΡΡΠΆΠ½ΡΠΉ ΡΠ°Ρ ΠΏΠΎ Python ΠΈ Π½Π°ΡΠ½ΠΈΡΠ΅ ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ Π΅Π΄ΠΈΠ½ΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌΠΈ! Π‘ΡΠ°Π½ΡΡΠ΅ ΡΠ°ΡΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°!
ΠΠ°Π±Π»ΠΈΠΊ VK
ΠΠ΄Π½ΠΎ ΠΈΠ· ΡΠ°ΠΌΡΡ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ² ΠΏΠΎ Python Π² ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ ΠΠ. ΠΠΈΠ΄Π΅ΠΎ ΡΡΠΎΠΊΠΈ ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ Π΄Π»Ρ Π²Π°Ρ!
ΠΠΌΠΏΠΎΡΡ Π²ΡΠ΅Π³ΠΎ
Π ΠΠ°ΠΉΡΠΎΠ½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠ° Π²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π·Π° ΡΠ°Π·. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ»ΠΎΡ ΠΎΠΉ ΠΈΠ΄Π΅Π΅ΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΠΊΠΎΠΉ ΠΈΠΌΠΏΠΎΡΡ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΡΠΎΡΠΈΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½. ΠΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ β ΡΡΠΎ ΠΌΠ΅ΡΡΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π²ΡΠ΅ Π²Π°ΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΏΠΎΠΊΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ²ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ sqrt:
from math import sqrt
sqrt = 5
| from math import sqrt sqrt = 5 |
Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ sqrt ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ 5. ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π·Π°ΡΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ (shadowing). ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Ρ ΠΈΡΡΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΆΠΈΠ·Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ ΠΈΠΌΠΏΠΎΡΡ Π²ΡΠ΅Π³ΠΎ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ:
from math import *
sqrt = 5
sqrt(16)
| from math import * Β sqrt = 5 sqrt(16) |
ΠΡΠ΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°!
Traceback (most recent call last):
File β<string>β, line 1, in <fragment>
TypeError: βintβ object is not callable
| Traceback (most recent call last): File β<string>β, line 1, in <fragment> TypeError: βintβ object is not callable |
ΠΠ»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° Π²ΡΠ΅Π³ΠΎ, ΠΊΡΠΎΠΌΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π·Π½Π°ΠΊΒ *Β , ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅. Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π΅ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ math, ΠΌΡ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΠΎΠΉΠΌΠ΅ΠΌ, ΡΡΠΎ ΡΠ½ΠΈΡΡΠΎΠΆΠΈΠ»ΠΈ ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ sqrt ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ Π΅Ρ ΡΠ΅Π»ΠΎΠΌΡ ΡΠΈΡΠ»Ρ, ΠΌΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠΌ, ΡΡΠΎ ΠΎΠ½Π° Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅, Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ°. ΠΠΎ Π΅ΡΡΡ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΡ ΠΈΠΌΠΏΠΎΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ Π·Π°ΡΠ°Π½Π΅Π΅, ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ β*β. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ Tkinter β Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Ρ ΠΠ°ΠΉΡΠΎΠ½ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΡΠΎΠ»Π΅. ΠΡΠΈΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π· Tkinter Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π²ΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΈΠΌΠ΅Π½Π°, ΡΠ°ΠΊ ΡΡΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠ΅ΠΌΠΈΡΡΡ ΠΊ Π½ΡΠ»Ρ.
ΠΠΎΠ΄Π²Π΅Π΄Π΅ΠΌ ΠΈΡΠΎΠ³ΠΈ
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ Π²ΡΠ΅ ΠΎΠ± ΠΈΠΌΠΏΠΎΡΡΠ΅ Π² ΠΠ°ΠΉΡΠΎΠ½Π΅. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄Π΅ΡΡΡΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΠΠ°ΠΉΡΠΎΠ½ ΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄Π½ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π° ΡΠ²ΠΎΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΠ‘, ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· ΡΠ΅Π΅ΡΡΡΠ° Windows, Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΡΠΈΠ»ΠΈΡΡ Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»Π°, Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π°Π½Π°Π»ΠΈΠ· XML ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅, ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
ΠΡΠ½ΠΎΠ²Ρ Data Science Π½Π° Python #8: ΠΊΠ°ΠΊ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ python
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°Ρ
ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠ»ΠΈ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Python: ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΠΈΠΊΠ»Ρ for ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ if. ΠΡΠΎ Π²ΡΠ΅ β ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΄ΡΠΎ ΡΠ·ΡΠΊΠ°. ΠΠΎ ΡΡΠΎ Π»ΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΅ΡΡΡ Π² Python. Π‘Π°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΆΠ΄Π΅Ρ Π²ΠΏΠ΅ΡΠ΅Π΄ΠΈ. Π£ Python Π΅ΡΡΡ ΠΌΠΎΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ. Π§ΡΠΎ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ? ΠΠ± ΡΡΠΎΠΌ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ Π² ΡΡΠ°ΡΡΠ΅: ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ import
ΠΈ ΠΎ ΡΠ°ΠΌΡΡ
Π²Π°ΠΆΠ½ΡΡ
Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ
ΠΌΠΎΠ΄ΡΠ»ΡΡ
Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² ΡΡΠ΅ΡΠ΅ data science.
ΠΠ½ΡΡΡΡΠΊΡΠΈΡ import Π² Python
ΠΡΠ°ΠΊ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ import
, ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½Π° ΡΠ°ΠΊ Π²Π°ΠΆΠ½Π°?
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ LEGO.
ΠΠΎΠΊΠ° ΡΡΠΎ Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π½Π°Π±ΠΎΡΠ° LEGO. ΠΠΎ Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΡΡΠΎ-ΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ import
ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Β«ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΒ» Python, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ.
ΠΠ½ΠΈ Π΄Π΅Π»ΡΡΡΡ Π½Π° ΡΡΠΈ Π³ΡΡΠΏΠΏΡ:
- ΠΠΎΠ΄ΡΠ»ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Python:
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΊ Π½ΠΈΠΌ Π΄ΠΎΡΡΡΠΏ ΠΏΡΠΎΡΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΡΠ·ΡΠΊΠΎΠΌ Python3 ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠ΅ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ β Π²Π²Π΅ΡΡΠΈimport
ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ. Π‘ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠΎΠ΄Π΅. Π ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΄Π°Π»ΡΡΠ΅ Π² ΡΡΠ°ΡΡΠ΅. - ΠΡΡΠ³ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ:
ΠΡΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠ»Ρ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ΠΏΠ°ΠΊΠ΅ΡΡ
Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Π΄Π°Π½Π½ΡΡ . Π ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ data science ΡΠ°ΠΊΠΈΠ΅ Β«Π²Π½Π΅ΡΠ½ΠΈΠ΅Β» ΠΏΠ°ΠΊΠ΅ΡΡ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°ΡΡΠΎ. (ΠΡ ΠΌΠΎΠ³Π»ΠΈ ΡΠ»ΡΡΠ°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎ pandas, numpy, matplotlib, scikit-learn ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅). ΠΡΠΎΠΉ ΡΠ΅ΠΌΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ²ΡΡΠ΅Π½ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» - Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ:
ΠΠ°, ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ (ΠΎΠ± ΡΡΠΎΠΌ Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°Ρ ΠΏΠΎ Python)
import
β ΠΎΡΠ΅Π½Ρ ΠΌΠΎΡΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Python, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΈ ΠΏΠΎΡΡΠΈ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΡΠ°ΡΡΠΈΡΡΡΡ ΡΠ²ΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ.
Π‘Π°ΠΌΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Python Π΄Π»Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² Data Science
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΠΎ ΡΠ΅ΠΌ ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΊ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. Π ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Python Π΅ΡΡΡ Π΄Π΅ΡΡΡΠΊΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΠ΄Π½ΠΈΠΌΠΈ ΠΈΠ· ΡΠ°ΠΌΡΡ Π²Π°ΠΆΠ½ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² data science ΡΠ²Π»ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
- random
- statistics
- math
- datetime
- csv
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅ΡΡ Π½Π° ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ ΠΊΠ°Π½Π°Π»Ρ
ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
import [module_name]
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: import random
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΡΡΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅Ρ Π²Π΅ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π΅Π³ΠΎ ΡΠ°ΡΡΡ: from [module_name] import [item_name]
. ΠΠΎ ΠΏΠΎΠΊΠ° Π»ΡΡΡΠ΅ Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΎΠΆΠ½ΡΡΡ.
Π Π°Π·Π±Π΅ΡΠ΅ΠΌ ΡΡΠΈ ΠΏΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ.
ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ β1: random
Π Π°Π½Π΄ΠΎΠΌΠΈΠ·Π°ΡΠΈΡ (ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΡΡΠΈ) ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Π° Π² data scienceβ¦ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, A/B ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ random ΠΌΠΎΠΆΠ½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ ΡΠΈΡΠ»Π°, ΡΠ»Π΅Π΄ΡΡ ΡΠ°Π·Π½ΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ:
ΠΠ²Π΅Π΄Π΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π² Jupyter Notebook:
import random
ΠΠ°ΡΠ΅ΠΌ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ΅ΠΉΠΊΡ:
random.random()
ΠΡΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ ΠΎΡ 0 Π΄ΠΎ 1.
Π‘ΡΠΎΠΈΡ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΈ ΡΠ°ΠΊ ΡΠΎΠΆΠ΅:
random.randint(1, 10)
ΠΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΎΡ 1 Π΄ΠΎ 10.
ΠΠΎΠ»ΡΡΠ΅ ΠΎ random ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Π·Π΄Π΅ΡΡ.
ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ β2: statistics
ΠΡΠ»ΠΈ ΡΠ°Π½Π΄ΠΎΠΌΠΈΠ·Π°ΡΠΈΡ Π²Π°ΠΆΠ½Π°, ΡΠΎ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Π°. Π ΡΡΠ°ΡΡΡΡ, Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ: ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΌΠ΅Π΄ΠΈΠ°Π½Π°, Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ ΠΎΡΡΠ°ΡΠΊΠΎΠΌ, ΡΡΠ΅Π΄Π½Π΅ΠΊΠ²Π°Π΄ΡΠ°ΡΠΈΡΠ½ΠΎΠ΅ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅, Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅β¦
ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎ:
import statistics
ΠΠ°Π»ΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ:
a = [0, 1, 1, 3, 4, 9, 15]
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°:
ΠΠΎΠ»ΡΡΠ΅ ΠΎ statistics ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Π·Π΄Π΅ΡΡ.
ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ β3: math
ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ½ΠΎΡΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΊ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅, ΡΠ΅ΠΌ ΠΊ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ΅. ΠΠ»Ρ Π½ΠΈΡ Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠ½ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π», Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡΠ΅ΠΏΠ΅Π½Ρ, Π»ΠΎΠ³Π°ΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΈΠ³ΠΎΠ½ΠΎΠΌΠ΅ΡΡΠΈΡ ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ.
import math
Π ΡΠ°ΠΌ ΠΊΠΎΠ΄:
math.factorial(5)
math.pi
math.sqrt(5)
math.log(256, 2)
ΠΠΎΠ»ΡΡΠ΅ ΠΎ math ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Π·Π΄Π΅ΡΡ.
ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ β4: datetime
ΠΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΡΡΠ°ΡΡΠ°ΠΏΠ΅? Π’ΠΎΠ³Π΄Π° Π²Ρ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΠ΅ΡΡ Ρ ΠΆΡΡΠ½Π°Π»Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ . Π ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π΅ Π»Π΅ΠΆΠ°Ρ Π΄Π°ΡΠ° ΠΈ Π²ΡΠ΅ΠΌΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Python 3 Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π΄Π°ΡΠΎΠΉ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ, Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ datatime, ΡΠΎ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠΆΠ΅ ΡΡΠ°Π½ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ.
import datetime
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΌΠΎΠ΄ΡΠ»Ρ datetime ΡΠ»Π΅Π³ΠΊΠ° ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΎΠΆΠ½Π΅Π½. ΠΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ². Π§ΡΠΎΠ±Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π½ΠΈΠΌ, Π½ΡΠΆΠ΅Π½ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π». ΠΠΎ Π½Π°ΡΠ°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΡΠΈΡ Π΄Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ:
datetime.datetime.now()
datetime.datetime.now().strftime("%F")
ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ β5: csv
Β«csvΒ» ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Β«comma-separated valuesΒ». ΠΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»ΠΎΠ² Π΄Π°Π½Π½ΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ (ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°). ΠΠΎΡΡΠΎΠΌΡ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ» Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .csv Π² Python. ΠΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ .csv-ΡΠ°ΠΉΠ» (Π΅Π³ΠΎ Π΄Π°ΠΆΠ΅ Π² Jupyter ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ) ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ fruits.csv:
2018-04-10;1001;banana
2018-04-11;1002;orange
2018-04-12;1003;apple
Π§ΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ Π΅Π³ΠΎ Π² Jupyter Notebook, Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
import csv
with open('fruits.csv') as csvfile:
my_csv_file = csv.reader(csvfile, delimiter=';')
for row in my_csv_file:
print(row)
ΠΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΊΠΈ Python. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π²ΡΠ±ΠΎΡΠ° ΡΠΏΠΈΡΠΊΠΎΠ² ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΡΠΏΠΈΡΠΊΠ°, ΠΈΠ·ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠ°Π½ΡΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ .
ΠΠΎΠ»ΡΡΠ΅ ΠΎ ΠΌΠΎΠ΄ΡΠ»Π΅ csv ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Π·Π΄Π΅ΡΡ.
ΠΠΎΠ»ΡΡΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
ΠΠ΅ΠΏΠ»ΠΎΡ ΠΎΠ΅ Π½Π°ΡΠ°Π»ΠΎ, Π½ΠΎ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Python Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ½Π΅Π΅. Π‘ ΠΈΡ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡ ΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ, ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΡΠ΅ΡΠ΅Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ email, Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ JSON ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. Π§ΡΠΎΠ±Ρ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ, Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Python β ΡΡΠΎ ΡΠ°ΡΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΠ·ΡΠΊΠ°.
ΠΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ, Π½Π΅ ΡΠ²Π»ΡΡΡΠΈΠ΅ΡΡ ΡΠ°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (pandas, numpy, scipy ΠΈ Π΄ΡΡΠ³ΠΈΠ΅). Π Π½ΠΈΡ ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
ΠΡΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΡΠΈ Π²Π΅ΡΠΈ:
- Π ΡΠΊΡΠΈΠΏΡΠ°Ρ
Python Π²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ
import
Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠ°Π²Π»ΡΡΡ Π² Π½Π°ΡΠ°Π»Π΅. ΠΠΎΡΠ΅ΠΌΡ? Π§ΡΠΎΠ±Ρ Π²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½ΡΠΆΠ½Ρ ΠΊΠΎΠ΄Ρ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΈΠΌΠΏΠΎΡΡ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΠ΅: ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈimport
Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² Π½Π°ΡΠ°Π»Π΅. - Π ΡΡΠ°ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°:
module_name.function_name(parameters)
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,statistics.median(a)
ΠΈΠ»ΠΈcsv.reader(csvfile, delimiter=';')
ΠΡΠΎ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ. ΠΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠΈΡΡ Python, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ. ΠΠ½ΠΎΠ³Π΄Π° Π±ΡΠ²Π°ΡΡ Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° Π² ΠΌΠΎΠ΄ΡΠ»Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,datetime.datetime.now()
), Π½ΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΎΠ± ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π΄ΡΠΌΠ°ΡΡ. ΠΡΡΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π»ΡΠ±ΠΈΠΌΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΈΠ·ΡΡΠ°ΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΡΠ»ΠΈ Π½ΡΠΆΠ΅Π½ Π½ΠΎΠ²ΡΠΉ β ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Python, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π΅Π³ΠΎ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ. - ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ (ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°) Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°
as
:
ΠΡΠ»ΠΈ Π²Π²Π΅ΡΡΠΈ:import statistics as stat
, Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Β«statΒ». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,stat.median(a)
, Π° Π½Π΅statistics.median(a)
. ΠΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΈ Π΄Π²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΡΡΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Data Science, ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΡΡΡΡ Ρ ΡΠΊΠΎΡΠΎΡΠ΅Π½Π½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ: numpy (import numpy as np
) ΠΈ pandas (import pandas as pd
). ΠΠ± ΡΡΠΎΠΌ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
Π’Π°ΠΊ ΡΡΠΎ ΡΡΠΎ? ΠΠ°ΠΊΠ΅Ρ? ΠΠΎΠ΄ΡΠ»Ρ? Π€ΡΠ½ΠΊΡΠΈΡ? ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°?
ΠΠΎΠ½Π°ΡΠ°Π»Ρ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅. ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π½Π°Π·ΡΠ²Π°ΡΡ Β«ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈΒ», ΠΈΠ½ΠΎΠ³Π΄Π° β Β«ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈΒ», Β«ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈΒ» ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Β«Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈΒ».
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ°ΠΉΡΡ numpy ΠΈ pandas, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ Π½Π°Π·ΡΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ, Π° Π²ΡΠΎΡΠΎΠΉ β ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ.
ΠΠ΅ Π²ΡΠ΅ Π»ΡΠ±ΡΡ ΡΠ΅ΠΎΡΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΡΡ Π±Π΅ΡΠ΅Π΄Π°Ρ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ (ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π·Π°Π΄Π°Π²Π°ΡΡ Π³ΡΠ°ΠΌΠΎΡΠ½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ Π½Π° Stackoverflow), Π½ΡΠΆΠ½ΠΎ Ρ ΠΎΡΡ Π±Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΈ ΠΊΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ.
ΠΠΎΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ Π²Π΅ΡΠΈ:
- Π€ΡΠ½ΠΊΡΠΈΡ: ΡΡΠΎ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·, Π²ΡΠ·ΡΠ²Π°Ρ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
print()
β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ. - ΠΠΎΠ΄ΡΠ»Ρ: ΡΡΠΎ ΡΠ°ΠΉΠ» Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .py, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠΈΡΠΎΠΊ ΡΡΠ½ΠΊΡΠΈΠΉ (ΡΠ°ΠΊΠΆΠ΅ β ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ²). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²
statisctics.mean(a)
,mean
β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΌΠΎΠ΄ΡΠ»Π΅statistics
. - ΠΠ°ΠΊΠ΅Ρ: ΡΡΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Python. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
numpy.random.randint(2, size=10)
.randint()
β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΌΠΎΠ΄ΡΠ»Π΅random
Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ numpy. - ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°: ΡΡΠΎ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π² Python.
ΠΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²Π·ΡΡΠ° ΠΈΠ· Π²ΠΎΠΏΡΠΎΡΠ° Π½Π° Stackoverflow.
ΠΡΠ²ΠΎΠ΄Ρ
import
β ΡΡΠΎ Π²Π°ΠΆΠ½Π°Ρ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ Python. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ·Π½Π°Π²Π°ΡΡ ΠΎ data science, ΡΠ΅ΠΌ Π»ΡΡΡΠ΅ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°ΡΡΠΈΡΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. import
β ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΡΠΈΡ
ΡΠ΅Π»Π΅ΠΉ. ΠΠ½ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΡΡΡΡΡΠΈ Π΄Π²Π΅ΡΠ΅ΠΉ.
Π Π°Π±ΠΎΡΠ° Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ Π² Python
ΠΠΎΠ΄ΡΠ»Π΅ΠΌ Π² ΡΠ·ΡΠΊΠ΅ Python Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠ°ΠΉΠ» Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΏΠΎΠ»ΡΡΠ°Ρ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌ Π²Π½ΡΡΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ. Π‘Π»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠ·ΡΠΊΠ΅ Python. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ C.
ΠΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈ ΡΠ°Π½Π΅Π΅, Π±ΡΠ»ΠΈ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «__main__». ΠΠΎΠ»ΡΡΠΈΡΡ ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π°ΡΡΠΈΠ±ΡΡ __name__. ΠΡΡΠΈΠ±ΡΡ __name__ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ «__main__», Π° Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ — Π΅Π³ΠΎ ΠΈΠΌΡ. ΠΡΠ²Π΅Π΄Π΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ:
print __name__ # ΠΡΠ²Π΅Π΄Π΅Ρ: __main__
ΠΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠ΄, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ Π½ΠΈΠΆΠ΅.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΏΠΎΡΠΎΠ±Π° Π·Π°ΠΏΡΡΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ
if __name__ == "__main__":
print "ΠΡΠΎ Π³Π»Π°Π²Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°"
else:
print "ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ"
ΠΠ½ΡΡΡΡΠΊΡΠΈΡ import
ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ import. ΠΡ ΡΠΆΠ΅ Π½Π΅ ΡΠ°Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ time Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ strftime():
import time # ΠΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ
print time.strftime("%d.%m.%Y") # ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅ΠΊΡΡΡΡ Π΄Π°ΡΡ
ΠΠΎΡΠ»Π΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° import ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΈ ΠΏΡΡΠΈ ΠΊ ΡΠ°ΠΉΠ»Ρ. ΠΡΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΈΠΌΠΏΠΎΡΡΠ° ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌΡΡ Ρ ΡΠΈΡΡΡ, Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΡΠ΄Π΅Ρ Π½Π΅Π»ΡΠ·Ρ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ.
ΠΠ° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠ² ΠΈΡ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»ΠΈ time ΠΈ math.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΡΠ°Π·Ρ
import time, math # ΠΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΡΠ°Π·Ρ
print time.strftime("%d.%m.%Y") # Π’Π΅ΠΊΡΡΠ°Ρ Π΄Π°ΡΠ°
print math.pi # Π§ΠΈΡΠ»ΠΎ pi
ΠΠΎΡΠ»Π΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠΎΡΡΡΠΏ ΠΊ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΡΠ΅ΡΠ½ΠΎΠΉ Π½ΠΎΡΠ°ΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΡΠ°ΡΠΈΡΡΡ ΠΊ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ΅ pi, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ math, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊ:
math.pi
Π€ΡΠ½ΠΊΡΠΈΡ getattr() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎ Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ, Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠ° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π°ΡΡΠΈΠ±ΡΡ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ, Π²ΠΎΠ·Π±ΡΠΆΠ΄Π°Π΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ AttributeError. Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π² ΡΡΠ΅ΡΡΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ, Π΅ΡΠ»ΠΈ Π°ΡΡΠΈΠ±ΡΡ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΊΠΎΠ΄Π΅ Π½ΠΈΠΆΠ΅:
import math
print gatattr(math, "pi") # Π§ΠΈΡΠ»ΠΎ pi
print getattr(math, "x", 50) # Π§ΠΈΡΠ»ΠΎ 50, Ρ.ΠΊ. x Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΎΠ²
ΠΡΠ»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΈ Π΅Π³ΠΎ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ. ΠΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ Π·Π°Π΄Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° as. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Ρ math:
import math as m # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ°
print m.pi # Π§ΠΈΡΠ»ΠΎ pi
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ math ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° m. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ math Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΆΠ΅ Π½Π΅Π»ΡΠ·Ρ. ΠΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π²Π½ΡΡΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ import. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π»ΡΠ±Π°Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ.
ΠΡΠ»ΠΈ ΡΠ°Π½ΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π±Π°ΡΡΠ΅ΠΉΠ½ ΡΡΠΈΡΠ°Π»Π°ΡΡ ΡΠ°Π½ΡΠ°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΎΡΡΡ, ΡΠΎ Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΡΡΠΎ Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΊΠ°ΠΊ Π½ΠΈΠΊΠΎΠ³Π΄Π°. ΠΠ°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ ΡΡ Π°ΠΆΠΈΠ²Π°ΡΡ Π·Π° Π±Π°ΡΡΠ΅ΠΉΠ½ΠΎΠΌ, Ρ.ΠΊ. Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΊΠ°Π·Π°ΡΡ ΡΡΠ»ΡΠ³Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π±Π°ΡΡΠ΅ΠΉΠ½ΠΎΠ² ΠΈ ΠΎΡΠ΄ΡΡ Π°ΡΡ Π±Π΅Π· Π·Π°Π±ΠΎΡ. ΠΡΠΎΠ²Π΅Π΄ΠΈΡΠ΅ ΡΡΠΎ Π»Π΅ΡΠΎ Π² ΠΊΠΎΠΌΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π»Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π±Π°ΡΡΠ΅ΠΉΠ½Π°.
ΠΠΎΠ΄ΡΠ»ΠΈ Π² Python
ΠΠΎΠ΄ΡΠ»ΠΈ β ΡΡΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΎΠ½Π½Π°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΡΠ°ΠΌΠΎΠ³ΠΎ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π² Python. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΡ Π±Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ Python, Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠ²ΠΎΠΈ. Π§ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ? ΠΠΎΠ΄ΡΠ»ΠΈ β ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΡ, Ρ ΡΠ°Π½ΡΡΠΈΠ΅ ΠΊΠΎΠ΄ ΠΈ Π΄Π°Π½Π½ΡΠ΅, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Python ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΠΏΡΠΈ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΡΠ½ Π² Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ°Ρ . ΠΠ½ΠΈ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΠΈΡ ΠΈΠΌΠΏΠΎΡΡΠ°. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΈΠΌΡΠ½, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠ΅ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, Π»ΡΠ±ΠΎΠΉ ΡΠ°ΠΉΠ» Python Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ *.py ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π² Python Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ°ΠΉΠ» Ρ ΡΡΡΡΠΈΠΊΡΠΎΠΌ .py. Π₯ΠΎΡΡ Π½Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΠΉΠ» Python ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ. Π€Π°ΠΉΠ»Ρ Python, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Python (ΡΠ°ΠΉΠ»Ρ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ), ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π² Π²ΠΈΠ΄Π΅ ΡΠΊΡΠΈΠΏΡΠΎΠ², Π° ΠΈΠΌΠΏΠΎΡΡ ΠΈΡ , ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²Π½ΡΡΡΠΈ ΡΠΊΡΠΈΠΏΡΠ°.
ΠΠΎΠ΄ΡΠ»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° Π΄ΡΡΠ³ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π½Π΅ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ²ΠΎΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄Π²ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΈ Π·Π°ΠΏΡΡΠΊΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ΅Π½Π°ΡΠΈΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ.
Π₯ΠΎΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΠ»ΠΎΠ²Π½ΡΠ΅, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π΄Π»Ρ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² Python ΠΏΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠ΅ Π½Π΅ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ Python. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠ΄ΡΠ»Ρ for.py ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Β«forΒ» β Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ. ΠΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅ΠΌ Π²ΡΡ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ Ρ Β«Hello world!Β».
# Π€Π°ΠΉΠ» ΠΌΠΎΠ΄ΡΠ»Ρ: my_module.py
def hello_printer():
print("Hello world!")
name = "John"
# Π‘ΠΊΡΠΈΠΏΡ ΡΠ°ΠΉΠ»: my_script.py
import my_module
my_module.hello_printer()
print("Creator:", my_module.name)
My_module.py ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ Python. ΠΠ½ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΠΏΡΠΎΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. Β«my_script.pyΒ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΊΠ°ΠΊ ΡΠΊΡΠΈΠΏΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ hello_printer ΠΈ ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
ΠΠ°ΠΏΡΡΡΠΈΠΌ ΡΠ°ΠΉΠ» my_script.py Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅:
$ python my_script.py
Hello world!
Creator: John
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅ΡΠ°Π»ΠΎΡΡ ΡΠ°Π½Π΅Π΅, Π²Π°ΠΆΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° β ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Π²Π°ΠΆΠ½Ρ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΠΎΡΠ»Π΅ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΎΠ½ΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ/ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ ΠΈΠΌΠΏΠΎΡΡΠ΅ΡΠ°. ΠΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
ΠΠΎΠ΄ Β«Π²Π΅ΡΡ Π½ΠΈΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌΒ» ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ Π»ΡΠ±Π°Ρ Π΄ΡΡΠ³Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π° Π²Π½ΡΡΡΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡΠ°. ΠΠ°ΡΠ΅ΠΌ ΡΡΠΈ Π°ΡΡΠΈΠ±ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° <object>.<Attribute>.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΡΠ±Π°Ρ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ ΠΈΠΌΠΏΠΎΡΡΠ°ΠΌΠΈ. Python, ΠΊΠ°ΠΊ ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π³Π΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π³ΡΡΠΏΠΏΠΈΡΡΡΡΡΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΡ. Π Π°Π·Π»ΠΈΡΠ°ΡΡ ΡΡΠΈ ΡΠΈΠΏΠ° ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΌΠ½ΠΎΠ³ΠΎΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ:
- Π€Π°ΠΉΠ» Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ. Python ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ Π²Ρ ΠΎΠ΄Π° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
- ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ. Π€Π°ΠΉΠ»Ρ Python, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΡΡΡΡ Π² ΡΠ°ΠΉΠ» Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈΠ»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. Π’Π°ΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ·ΠΊΠΎΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π·Π°Π΄Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- ΠΠΎΠ΄ΡΠ»ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠΎΠ΄ΡΠ»ΠΈ, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π² ΡΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Python, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌΠΈ, ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΠ΅.
ΠΠ° ΡΡΠΎΠΌ ΡΠΈΡΡΠ½ΠΊΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ top_module.py β ΡΡΠΎ ΡΠ°ΠΉΠ» Python Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ module1, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠ½ΠΊΡΠΈΡΠΌ Π² module2 ΡΠ΅ΡΠ΅Π· module1. ΠΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ΅ΡΡΡΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Python. Π¦Π΅ΠΏΠΎΡΠΊΠ° ΠΈΠΌΠΏΠΎΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ΄ΡΠΈ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π³Π»ΡΠ±ΠΎΠΊΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΠΎ β Π½Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°, Ρ ΠΎΡΡ Π½ΡΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΡΠΌ Ρ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΈΠΌΠΏΠΎΡΡΠ°ΠΌΠΈ.
# top_module.py
import module1
module1.print_parameters()
print(module1.combinations(5, 2))
# module1.py
from module2 import k, print_parameters
from math import factorial
n = 5.0
def combinations(n, k):
return factorial(n) / factorial(k) / factorial(n-k)
# module2.py
import module1
k = 2.0
def print_parameters():
print('k = %.f n = %.f' % (k, module1.n))
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ top_module.py β ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΠΈ ΠΎΠ½ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΅ΡΠ΅Π· module1.py. module1 ΠΈ module2 ΡΠ²Π»ΡΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ, Π° ΠΌΠΎΠ΄ΡΠ»Ρ math ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠΊΡΠΈΠΏΡΠ° Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ:
$ python top_module.py
k = 2 n = 5
10.0
ΠΠΎΠ³Π΄Π° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΠ°ΠΉΠ» Python Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π΅Π³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π² ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΡΡ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ, ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΊΠ°ΠΊ Π±Π°ΠΉΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. Π€Π°ΠΉΠ»Ρ Π±Π°ΠΉΡ ΠΊΠΎΠ΄Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Ρ ΡΠ°Π½ΡΡΡΡ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .pyc Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΡΡΠΎ ΠΈ .py-ΡΠ°ΠΉΠ» Π΄Π»Ρ Π²Π΅ΡΡΠΈΠΉ Python Π΄ΠΎ 3.2, ΠΈ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ __pycache__/ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² Python 3.2+.
$ ls __pycache__/
module1.cpython-36.pyc module2.cpython-36.pyc
ΠΠ²ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄
ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ ΡΠ°Π½Π΅Π΅, ΡΠ°ΠΉΠ»Ρ Python ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ ΠΊΠ°ΠΊ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΠ°ΠΊ ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ. Π’ΠΎ Π΅ΡΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ Python Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π° ΠΏΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠ΅ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ.
ΠΡΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π°ΡΡΠΈΠ±ΡΡ __name__, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡΡΠΎΠ΅Π½ Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΡΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Π·Π°ΠΏΡΡΠ΅Π½ ΠΊΠ°ΠΊ ΡΠΊΡΠΈΠΏΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π°ΡΡΠΈΠ±ΡΡ __name__ Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π΅Π½ ΡΡΡΠΎΠΊΠ΅ Β«__main__Β», ΠΈΠ½Π°ΡΠ΅, Π΅ΡΠ»ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½, ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΈΠΌΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ.
ΠΡΠΈΠΌΠ΅Ρ Π΄Π²ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:
# hiprinter.py
# Π§Π°ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΈΠΌΠ΅Π½
multiply = 3
def print_hi():
print("Hi!" * multiply)
# Π‘ΡΡΠ½Π΄Π°Π»ΠΎΠ½ ΡΠ°ΡΡΡ ΡΠΊΡΠΈΠΏΡΠ°
if __name__ == '__main__':
print_hi()
ΠΡΠ»ΠΈ ΡΠ°ΠΉΠ» Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΡΠΎ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. Π Π°Π·Π½ΠΈΡΠ° Π·Π΄Π΅ΡΡ, ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ my_script.py Π² ΡΠ°Π·Π΄Π΅Π»Π΅ main, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° hiprinter.py ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ, ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠ΄, Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ if __name__ == ‘__main__’.
# Π’Π΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ
$ python hiprinter.py
Hi!Hi!Hi!
# ΠΈΠ½ΡΠ΅ΡΠΏΡΠΈΡΠ°ΡΠΎΡ Python
>> import hiprinter
>> hiprinter.print_hi()
Hi!Hi!Hi!
ΠΠ²ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΡΠ½ΠΈΡΡΠ΅ΡΡΠΎΠ², Ρ. Π΅. Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»Π° Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΡΠ°ΡΡΡ Π²Π½ΡΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° if ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΠΆΠΈΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΡΡΠΎΠ²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΈΠΌΡΠ½.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ import
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ import ΠΈ from Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ import Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π²Π΅ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π² Π²ΠΈΠ΄Π΅ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π° from Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠΌΠΏΠΎΡΡ ΠΈΠΌΠ΅Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° from ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ ΠΈΠΌΠΏΠΎΡΡΠ΅ΡΠ° Π±Π΅Π· Π²ΡΠ·ΠΎΠ²Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ from ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ°ΠΉΠ»Π΅ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Π² Python 3.x, Π° Π½Π΅ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. Python 2.x ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ Π²ΡΠ΄Π°Π΅Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ from ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ import, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²ΡΡ ΡΠ°Π±ΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ import ΡΠ΅ΡΠ΅Π· Π²Π΅ΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΈΠΌΡΠ½ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ°.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΅ΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈΠΌΠΏΠΎΡΡΠ° *, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° Π²ΡΠ΅Ρ ΠΈΠΌΠ΅Π½ Π² Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ· ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΊΠ»Π°ΡΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠ΅ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
from module2 import *
ΠΠΎΠ΄ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΠΈΠΌΠ΅Π½Π° (ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ) ΠΈΠ· ΡΠ°ΠΉΠ»Π° module2.py. ΠΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΠ·-Π·Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π½, ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Π² ΠΌΠΎΠ΄ΡΠ»Π΅ ΠΈΠΌΠΏΠΎΡΡΠ΅ΡΠ°.
ΠΠ°ΡΠ°Π»ΠΎΠ³ ΠΏΠΎΠΈΡΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²Π°ΠΆΠ½ΡΡ Π°ΡΠΏΠ΅ΠΊΡΠΎΠ² ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Python ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠΈΡΠΊ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. Π₯ΠΎΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Python Π½Π°ΡΡΡΠΎΠ΅Π½Ρ Π½Π° Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ, ΠΈΠΌΠΏΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π·Π° Π³ΡΠ°Π½ΠΈΡΠ΅ΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ»ΠΎΠΆΠ½ΠΈΡΡΡΡ.
Python ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ ΠΈΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΊΠ°ΠΊ ΠΏΡΡΡ ΠΏΠΎΠΈΡΠΊΠ°. ΠΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅:
- ΠΠΎΠΌΠ°ΡΠ½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠΈΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ.
- ΠΠ°ΡΠ°Π»ΠΎΠ³ΠΈ, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ PYTHONPATH.
- Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ. ΠΠ°ΡΠ°Π»ΠΎΠ³ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ Python ΠΈ Π² Π½ΠΈΡ Π²ΡΠ΅Π³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎΠΈΡΠΊ.
- ΠΠ°ΡΠ°Π»ΠΎΠ³ΠΈ, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π² *.pth ΡΠ°ΠΉΠ»Π°Ρ . ΠΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ PYTHONPATH, ΠΈ ΠΎΠ½ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π²Π°ΡΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Π² ΡΡΡΠΎΠΊΠ΅, Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΡΡΡΡΠΈΠΊΡΠΎΠΌ *.pth, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Python, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ /usr/local/lib/python3.6/ Π² Unix ΠΈΠ»ΠΈ C:\Python36\ Π² Windows.
- ΠΠ°ΡΠ°Π»ΠΎΠ³ site-packages. Π ΡΡΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π²ΡΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ.
PYTHONPATH, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅:
$ echo $PYTHONPATH
/Users/Code/Projects/:
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Ρ Windows, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² Β«ΠΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ -> Π‘ΠΈΡΡΠ΅ΠΌΠ° -> ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΒ», Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π² MacOS ΠΈ Π΄ΡΡΠ³ΠΈΡ Unix-ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΏΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ Π² ~ / .bashrc ΠΈΠ»ΠΈ ~ /. bash_profile, Π³Π΄Π΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½ΠΈΡΡΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡ («:»).
export PYTHONPATH=<Directory1:Directory2:...:DirectoryN>:$PYTHONPATH".
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΏΠΎΠΈΡΠΊΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ΄ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ, ΠΎΠ½ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ sys.path. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π² sys.path, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΏΠΎΠΈΡΠΊΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ PYTHONPATH ΠΈ .pth ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ Π΄ΠΎΠ»Π³ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΏΠΎΠΈΡΠΊΠ°. ΠΠ°ΠΆΠ½ΠΎ Π·Π½Π°ΡΡ, ΡΡΠΎ Python ΡΠΊΠ°Π½ΠΈΡΡΠ΅Ρ ΡΡΡΠΎΠΊΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΏΠΎΠΈΡΠΊΠ° ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² Π»Π΅Π²ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π² ΠΏΡΠ°Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΡ Π² ΡΠ°Π·Π½ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ .
ΠΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΏΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ° Π² Π½Π°ΡΠ°Π»Π΅ ΡΠΏΠΈΡΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³:
import sys
sys.path
['',
'/Users/Code/Projects',
'/Users/Code/Projects/Blogs',
'/Users/Code/anaconda3/lib/python36.zip',
'/Users/Code/anaconda3/lib/python3.6',
'/Users/Code/anaconda3/lib/python3.6/site-packages',
'/Users/Code/anaconda3/lib/python3.6/site-packages/IPython/extensions',
'/Users/Code/.ipython']
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Python Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Ρ ΠΎΡΠΎΡΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π°.
ΠΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ·ΡΠΊ Python ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ, ΠΎΠ½ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΊΠΎΠ΄ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ import. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ import Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΡ ΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Python) ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠ΄ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠ½ ΠΏΡΠΎΡΡΠΎ ΠΈΠ·Π²Π»Π΅ΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ· ΠΊΠ΅ΡΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΊΠΎΠ΄ Π² my_module.py Π² ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ΅ Python, Π·Π°ΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΠ°ΠΉΠ» ΠΈ ΡΠ½ΠΎΠ²Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ.
>> import my_module
>> print(my_module.name)
John
# Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ 'name' Π² 'my_module.py' name = 'Jack' ΠΈ ΡΠ΅ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ
>> import my_module
>> print(my_module.name)
John
Π§ΡΠΎΠ±Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΉ ΠΈΠΌΠΏΠΎΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, Python ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ reload. ΠΠΎΠ²ΡΠΎΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
>> from imp import reload # Python3.x
>> reload(my_module)
<module 'my_module' from '/Users/Code/Projects/small_example/my_module.py'>
>> print(my_module.name)
Jack
Π€ΡΠ½ΠΊΡΠΈΡ reload ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π° ΠΌΠ΅ΡΡΠ΅. Π’ΠΎ Π΅ΡΡΡ, Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΡΡΠ»Π°ΡΡΠΈΠ΅ΡΡ Π½Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠ±ΡΠ°ΡΠ°Π΅ΠΌ Π²Π°ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΊΠ°Π·ΡΠ²Π°Ρ Π΅Π³ΠΎ ΠΈΠΌΡ ΠΈ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π° Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΡΡΠΏΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½Π°Ρ ΡΠ²ΡΠ·Ρ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠ°ΠΊΠ΅ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
ΠΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠ΅ ΠΈΠΌΠ΅Π½ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ Python, Ρ ΡΠ°Π½ΡΡΠΈΠ΅ΡΡ Π³Π΄Π΅-ΡΠΎ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΠ°ΠΊ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ ΡΠ°Π½Π΅Π΅, ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·Π°Π½ Π² ΠΏΡΡΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ (sys.path). Π Python Π΅ΡΡΡ Π½Π΅ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅Π΅, ΡΠ΅ΠΌ Β«ΠΈΠΌΠΏΠΎΡΡ ΠΈΠΌΠ΅Π½Β» β Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠ°ΠΉΠ»Ρ Python, Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΡΠΎΡ ΠΈΠΌΠΏΠΎΡΡ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ°ΠΊ ΠΈΠΌΠΏΠΎΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
ΠΠ°ΠΊ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ? ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ mydir, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΌΠΎΠ΄ΡΠ»Ρ mod0.py ΠΈ Π΄Π²Π° ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° subdir1 ΠΈ subdir2, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»ΠΈ mod1.py ΠΈ mod2.py ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
$ ls -R mydir/
mod0.py subdir1 subdir2
my_dir/subdir1:
mod1.py
my_dir/subdir2:
mod2.py
ΠΠ±ΡΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΡΠ½ΡΠ»ΡΡ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ, Π·Π°ΠΊΠ»ΡΡΠ°Π»ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΡΠΈ mydir, subdir1 ΠΈ subdir2 ΠΊ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ (sys.path), ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ mod0.py, mod1. py ΠΈ mod2.py. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π±ΠΎΠ»ΡΡΠΈΠΌ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠΌ ΡΠ°ΡΡ ΠΎΠ΄Π°ΠΌΠΈ, Π΅ΡΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΏΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΡΠ°Π·Π½ΡΡ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ². Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΈΠΌΠΏΠΎΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΈΠΌΠΏΠΎΡΡΠΎΠΌ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΌΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ.
ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠ°Ρ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ InvalidSyntax:
>> import /Users/Code/Projects/mydir/
File "<stdin>", line 1
import /Users/Code/Projects/mydir/
^
SyntaxError: invalid syntax
ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠΎ β ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /Users/Code/Projects/ Π² ΠΏΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ (Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π΅Π³ΠΎ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ PYTHONPATH ΠΈΠ»ΠΈ ΡΠΊΠ°Π·Π°Π² Π΅Ρ Π² ΡΠ°ΠΉΠ»Π΅ .pth), Π° Π·Π°ΡΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ.
>> import mydir.mod0
>> import mydir.subdir1.mod1 as mod1
>> from mydir.subdir2.mod2 import print_name
ΠΡ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, ΡΠΆΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π»ΠΈ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Python ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠ°ΠΉΠ» __init__.py. ΠΡΠΎ Π±ΡΠ»ΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Python2.x, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ Python, ΡΡΠΎ Π²Π°Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΡΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ. Π€Π°ΠΉΠ» __init__.py ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ Python, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ, ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΡΡΡΡ. Π Python3.x ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ ΡΠ²Π»ΡΡΡΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ, ΠΈ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π°, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² __init__.py, ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (ΠΈΠΌΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ Π΅Π³ΠΎ).
# __init__.py file in mydir/subdir1/ :
param = "init subdir1"
print(param)
# ΠΠΌΠΏΠΎΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Python
>> import mydir.subdir1.mod1
init subdir1
# ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΊΠ°ΠΊ Π°ΡΡΠΈΠ±ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° mydir.subdir1
>> print(mydir.subdir1.param)
init subdir1
ΠΡΠ΅ ΠΎΠ΄Π½Π° Π²Π°ΠΆΠ½Π°Ρ ΡΠ΅ΠΌΠ°, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΡ ΠΈΠ΄ΡΡ ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΡ β ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠΌΠΏΠΎΡΡ. ΠΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠΌΠΏΠΎΡΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΏΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π²Π½ΡΡΡΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Python Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π²Π½ΡΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°, Π° Π½Π΅ Π² ΠΏΡΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ.
# mydir/subdir1/mod1.py
import mod2
# Π ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ΅ Python:
>> import mydir.subdir1.mod1
ModuleNotFoundError: No module named 'mod2'
Π‘ΡΡΠΎΠΊΠ° ΠΈΠΌΠΏΠΎΡΡΠ° mod2 ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Python ΠΎ ΠΏΠΎΠΈΡΠΊΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ mod2 Π² sys.path, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Π½Π΅ ΡΠ²Π΅Π½ΡΠ°Π»ΡΡ ΡΡΠΏΠ΅Ρ ΠΎΠΌ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠΌΠΏΠΎΡΡ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π²ΠΎΠΉΠ½ΡΡ ΡΠΎΡΠΊΡ («..»), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° (‘mydir /’). ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ mod2 Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ subdir2.
# mydir/subdir1/mod1.py
from ..subdir2 import mod2
ΠΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠΌΠΏΠΎΡΡ β ΡΡΠΎ ΠΎΠ³ΡΠΎΠΌΠ½Π°Ρ ΡΠ΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ ΡΠ΅Π»ΡΡ ΠΊΠ½ΠΈΠ³Ρ. ΠΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΡΠΈΡΠΌΠΈ Python2.x ΠΈ 3.x. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Python 2.x Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π² 2020 Π³ΠΎΠ΄Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΡΠΈΡΠΌΠΈ Python, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΈΠΌΠΏΠΎΡΡΠ΅, Π»ΡΡΡΠ΅ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ Π½Π° Π²Π΅ΡΡΠΈΠΈ 3.x.
ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ° Π² PyPi
ΠΠ° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²Ρ ΡΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Python, ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² Π³ΡΠ°Π½ΠΈΡΠ°Ρ
ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈ, ΠΊΡΠΎΠΌΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅Π³ΠΎ, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ/ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΏΠ°ΠΊΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΠΈΠΌ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ Python.
ΠΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ Python (PyPi) β ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠΉ, Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π±ΠΎΠ»Π΅Π΅ 120 ΡΡΡ. ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² (Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ). ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΡΠΆΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ pip.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ° Π·Π°Π³ΡΡΠ·ΠΈΡ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Numpy:
$ pip install numpy
ΠΠ°ΠΊ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠΈ?
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΠΊ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π²Π° ΡΡΠ»ΠΎΠ²ΠΈΡ: ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ pip, setuptools, wheel ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ twine, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² PyPi.
$ pip install twine
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°Π³ΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π ΠΎΠ±ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Python Π² ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Ρ. Π΄. ΠΠ°Π»Π΅Π΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΡΠ°ΠΌΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ:
setup.py. ΠΡΠΎΡ ΡΠ°ΠΉΠ» Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΊΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ setup(), ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠ°ΠΊΡΡ ΠΊΠ°ΠΊ: ΠΈΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π²Π΅ΡΡΠΈΡ, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅, Π»ΠΈΡΠ΅Π½Π·ΠΈΡ, Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Ρ. Π΄.
README.rst: ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ», ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ.
licence.txt: ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅.
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠΎΡΠΌΠ°ΡΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ wheel. ΠΠ°ΠΏΡΡΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° dist/ Π² ΠΊΠΎΡΠ½Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°ΠΉΠ»Ρ Π² ΠΏΠ°ΠΊΠ΅Ρ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² PyPi.
# ΠΠ°ΠΊΠ΅Ρ ΠΊΠ°ΠΊ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ
$ python setup.py sdist
# wheel ΠΏΠ°ΠΊΠ΅Ρ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠ΄Π½Ρ Π²Π΅ΡΡΠΈΡ Python
$ python setup.py bdist_wheel
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π³ β Π·Π°Π³ΡΡΠ·ΠΊΠ° Π²Π°ΡΠ΅Π³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Π² PyPi. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠ΄Π½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ Π½Π° ΡΠ°ΠΉΡΠ΅ PyPi ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° dist/, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π³Π΅.
twine upload dist/*
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΠ°ΠΉΡΡ PyPi.
ΠΠΎΠ΄ΡΠ»ΠΈ Π² Python Β» Nikulux
ΠΠΎΠ΄ΡΠ»Ρ Π² Python β ΡΡΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Π°Ρ Π² ΡΠ²ΠΎΡΠΌ ΡΠΎΠ΄Π΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΡΠ·ΡΠΊΠ°. ΠΠΎΠ΄ΡΠ»Ρ ΡΡΠΎ Π½ΠΈΡΡΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΠΎΠ΄ΡΠ»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ ΠΊΠΎΠ΄, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ Π΄Π»Ρ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ Π·Π°Π΄Π°Ρ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Β«ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈΒ» ΠΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Python ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΠ΅ Π±ΠΎΠ³Π°ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΡΡΠ΄ΠΎΠΌ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ: ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, web, Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΡΠΈ, ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
Β
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ import, ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ.
import time #ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ time
import timeΒ Β #ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ time |
ΠΡΠ»ΠΈ ΠΡ ΡΠ΅ΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΆΠ΅ Π΅ΡΡ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΡΡΠ³Π°ΡΡΡΡ.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
import time, os #ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ
import time, osΒ Β #ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ |
import os
import time
#ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅
import os import time Β Β Β Β Β Β Β Β Β Β Β Β #ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ |
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΎΡΠΊΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ (Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, ΡΠΎ Π½Π°ΠΆΠ°ΡΡ TAB Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ).
import time #ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ time
t = time.time() #Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ
print(t) #Π½Π° ΡΠΊΡΠ°Π½Π΅ Π±ΡΠ΄Π΅Ρ 1498979778.3202693
import timeΒ Β #ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ time t = time.time() #Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ print(t) #Π½Π° ΡΠΊΡΠ°Π½Π΅ Π±ΡΠ΄Π΅Ρ 1498979778.3202693 |
ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ Π·Π°Π΄Π°Ρ. Π ΡΠ²ΡΠ·ΠΈ Ρ ΡΡΠΈΠΌ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ Π±ΠΎΠ³Π°ΡΡΡΠ²ΠΎ ΠΎΡΡΠ°ΡΠ»Π΅ΠΉ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Python.
ΠΡΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΡ Π² ΠΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΡΠ΅Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π²ΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ β ΡΡΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Π²Π΅ΡΡΠΈΠΉ. ΠΠ΄Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½Ρ ΠΏΠΎΠ΄ Π²Π΅ΡΠΊΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° 2.x, Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ΄ 3.x, Π½ΠΎ Π΅ΡΡΡ ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅ Ρ ΠΎΠ±ΠΎΠΈΠΌΠΈ Π²Π΅ΡΠ²ΡΠΌΠΈ.
Β
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
Π§ΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ pip ΠΈ Π² Π½ΡΠΌ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ
pip install numpy #ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ numpy
pip install numpyΒ Β #ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ numpy |
ΠΈΠ»ΠΈ ΠΆΠ΅ ΡΠΊΠ°ΡΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ Β«ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡΒ» Π΅Π³ΠΎ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΠΏΠ°ΠΏΠΊΡ Π² ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ΅ (ΠΏΠ°ΠΏΠΊΠ°, Π³Π΄Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ -> ΠΏΠ°ΠΏΠΊΠ° Lib)
Β
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
Π§ΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ pip ΠΈ Π² Π½ΡΠΌ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ
pip uninstall numpy #ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ numpy
pip uninstall numpyΒ Β #ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ numpy |
ΠΈΠ»ΠΈ ΠΆΠ΅ Π½Π°ΠΉΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ΅ (ΠΏΠ°ΠΏΠΊΠ°, Π³Π΄Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ -> ΠΏΠ°ΠΏΠΊΠ° Lib) ΠΈ ΡΡΠ΅ΡΠ΅ΡΡ Π΅Π³ΠΎ Π²ΡΡΡΠ½ΡΡ.
Β
ΠΡΡΠ³ΠΎΠ΅ ΠΈΠΌΡ, Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ ΠΌΡ ΡΠΊΠ°ΡΠ°Π»ΠΈ Π΄Π²Π° ΡΠ°Π·Π½ΡΡ ΠΏΠΎ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ, Π½ΠΎ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ.
import integral
import integral
import integral import integral |
Π ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ integral Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ: ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ? Π£ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π²ΠΎΠΏΡΠΎΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡΠΊΠΎΠΌΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅.
ΠΠ° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ (ΡΡΠ»ΠΎΠ²Π½ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅) ΠΈ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ as.
Π‘Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ import, Π·Π°ΡΠ΅ΠΌ ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΏΠΎΡΠ»Π΅ Π²Π²ΠΎΠ΄ΠΈΠΌ as ΠΈ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ.
ΠΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠΎΠΏΠΈΡΠ°Π½ Π»Π°ΡΠΈΠ½ΠΈΡΠ΅ΠΉ ΠΈ, ΠΎΡΠ΅Π½Ρ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΈΠΌΠ΅Π» ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΌΡΡΠ».
import integral as integral1
import integral as integral2
#Π΄Π²Π° ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ° Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ
import integral as integral1 import integral as integral2 Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β #Π΄Π²Π° ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ° Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ |
Β
ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΎ ΠΌΡ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, Π° ΡΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΏΠ°ΠΌΡΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΡΡΡ. ΠΠΎ ΡΡΠΎ Π΅ΡΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΡΡΠ½ΠΊΡΠΈΡ, Π° Π½Π°ΠΌ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΡΡΠΎ?
Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ ΡΡΡ ΡΠ°ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ Π²ΡΡ! Π§ΡΠΎΠ±Ρ ΠΈΠ·Π²Π»Π΅ΡΡ, Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ from, Π·Π°ΡΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΏΠΎΡΠΎΠΌ Π²Π²Π΅ΡΡΠΈ import, Π° ΠΏΠΎΡΠ»Π΅, ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ, ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ.
ΠΠ·Π²Π»Π΅ΡΡΠΌ ΡΡΠ½ΠΊΡΠΈΡ, Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ ΡΠΈΡΠ»ΠΎ ΠΠΈ, ΠΈΠ· Π±ΠΎΠ³Π°ΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»ΡΒ math.
from math import pi #ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ²ΠΎΠ΄ΡΡΠ΅ΠΉ ΡΠΈΡΠ»ΠΎ ΠΠΈ
print(pi) #Π½Π° ΡΠΊΡΠ°Π½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΈΡΠ»ΠΎ ΠΠΈ
from math import piΒ Β #ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ²ΠΎΠ΄ΡΡΠ΅ΠΉ ΡΠΈΡΠ»ΠΎ ΠΠΈ print(pi)Β Β #Π½Π° ΡΠΊΡΠ°Π½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΈΡΠ»ΠΎ ΠΠΈ |
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ.
from math import pi as var_pi #ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ²ΠΎΠ΄ΡΡΠ΅ΠΉ ΡΠΈΡΠ»ΠΎ ΠΠΈ
print(var_pi) #Π½Π° ΡΠΊΡΠ°Π½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΈΡΠ»ΠΎ ΠΠΈ
from math import pi as var_piΒ Β #ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ²ΠΎΠ΄ΡΡΠ΅ΠΉ ΡΠΈΡΠ»ΠΎ ΠΠΈ print(var_pi)Β Β #Π½Π° ΡΠΊΡΠ°Π½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΈΡΠ»ΠΎ ΠΠΈ |
Β
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ
Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π΅ ΡΡΠΎΠ»Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .py ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ²ΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ hello.py, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» hello.py.
def hello():
print(‘Hello!’)
def hello(): Β Β print(‘Hello!’) |
Π ΡΡΠΎΠΉ ΠΆΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ (ΠΏΠ°ΠΏΠΊΠ΅) ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» Ρ Π»ΡΠ±ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π½ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .py. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΠ°ΠΉΠ»Π΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ
import hello #ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ
print(hello.hello()) #Π½Π° ΡΠΊΡΠ°Π½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΠ΅
import helloΒ Β #ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ print(hello.hello())Β Β #Π½Π° ΡΠΊΡΠ°Π½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ |
Π‘Π²ΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π΅Π³ΠΎ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ LibΒ Π² ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ.
Β
Π’Π°ΠΊΠΈΠΌ Π½Π΅Ρ ΠΈΡΡΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ Ρ Β«ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² PythonΒ«!
Python. Π£ΡΠΎΠΊ 13. ΠΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ
ΠΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°. ΠΠ»Π°ΡΡΡ, ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΈ, Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ, Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π΅Π³ΠΎ Π² ΡΠ²ΠΎΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ°ΠΊΠ΅ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ Π² Python?
ΠΠΎΠ΄ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ Π² Python ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠ°ΠΉΠ» Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .py. ΠΠΎΠ΄ΡΠ»ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π² Π½ΠΈΡ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΈ Ρ.ΠΏ. ΠΠΎΠΆΠ½ΠΎ ΡΡΠ»ΠΎΠ²Π½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°, Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡ Π² Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π‘ΡΠΎΠΈΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠ·ΡΠΊΠ΅ Python, Π½ΠΎ ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ C).
ΠΠ°ΠΊ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² Python?
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π² Python ΡΡΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ:
import ΠΈΠΌΡ_ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΠΌΠΏΠΎΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ math, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π²ΠΎΡ ΡΠ°ΠΊ.
>>> import math >>> math.factorial(5) 120
ΠΠ° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠ»ΠΎΠ²Π° import:
import ΠΈΠΌΡ_ΠΌΠΎΠ΄ΡΠ»Ρ1, ΠΈΠΌΡ_ΠΌΠΎΠ΄ΡΠ»Ρ2
>>> import math, datetime >>> math.cos(math.pi/4) 0.707106781186547 >>> datetime.date(2017, 3, 21) datetime.date(2017, 3, 21)
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°Π΄Π°ΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Π² Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΠΎΡ ΡΠ°ΠΊΠΈΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ:
import ΠΈΠΌΡ_ΠΌΠΎΠ΄ΡΠ»Ρ as Π½ΠΎΠ²ΠΎΠ΅_ΠΈΠΌΡ
>>> import math as m >>> m.sin(m.pi/3) 0.866025403784438
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ², ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, Π²Π°ΠΌ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ (ΠΈΠ»ΠΈ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ).Β ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π΄Π΅Π»Π°ΠΉΡΠ΅ ΠΈΠΌΠΏΠΎΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ from β¦ importβ¦
from ΠΈΠΌΡ_ΠΌΠΎΠ΄ΡΠ»Ρ import ΠΈΠΌΡ_ΠΎΠ±ΡΠ΅ΠΊΡΠ°
>>> from math import cos >>> cos(3.14) 0.999998731727539
ΠΡΠΈ ΡΡΠΎΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ (Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅: ΡΡΠ½ΠΊΡΠΈΡ cos), ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΏΡΠΈ ΠΈΡ Π²ΡΠ·ΠΎΠ²Π΅Β ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ.
>>> from math import cos >>> cos(3.14) -0.999998731727539 >>> sin(3.14) Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> sin(3.14) NameError: name 'sin' is not defined >>> math.sin(3.14) Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> math.sin(3.14) NameError: name 'math' is not defined
ΠΠ»Ρ ΠΈΠΌΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ ΠΈΡ ΠΈΠΌΠ΅Π½Π° ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ.
from ΠΈΠΌΡ_ΠΌΠΎΠ΄ΡΠ»Ρ import ΠΈΠΌΡ_ΠΎΠ±ΡΠ΅ΠΊΡΠ°1, ΠΈΠΌΡ_ΠΎΠ±ΡΠ΅ΠΊΡΠ°2
>>> from math import cos, sin, pi >>> cos(pi/3) 0.500000000000000 >>> sin(pi/3) 0.866025403784438
ΠΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ.
from ΠΈΠΌΡ_ΠΌΠΎΠ΄ΡΠ»Ρ import ΠΈΠΌΡ_ΠΎΠ±ΡΠ΅ΠΊΡΠ° as ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ_ΠΎΠ±ΡΠ΅ΠΊΡΠ°
>>> from math import factorial as f >>> f(4) 24
ΠΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΡΠΊΠ½ΡΠΈΠΈ, ΠΊΠ»Π°ΡΡΡ ΠΈ Ρ.ΠΏ. ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠΎΡΠΌΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° from β¦ import β¦
from ΠΈΠΌΡ_ΠΌΠΎΠ΄ΡΠ»Ρ import *
>>> from math import * >>> cos(pi/2) 6.123233995736766e-17 >>> sin(pi/4) 0.707106781186547 >>> factorial(6) 720
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠ°ΠΊΠ΅Ρ Π² Python?
ΠΠ°ΠΊΠ΅Ρ Π² Python β ΡΡΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ Π² ΡΠ΅Π±Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠ°ΠΉΠ» __init__.py. ΠΠ°ΠΊΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅ΡΒ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ΡΠ΅ΡΠ΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΡΡΠΎΠ²Π½Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ (ΡΠ΅ΡΠ΅Π· ΡΠΎΡΠΊΡ).
ΠΠ»Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΡΡΠΎ ΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π² Python
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ°:
fincalc |-- __init__.py |-- simper.py |-- compper.py |-- annuity.py
ΠΠ°ΠΊΠ΅Ρ fincal ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΡΡΡΠΌΠΈ ΠΏΡΠΎΡΠ΅Π½ΡΠ°ΠΌΠΈ (simper.py), ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅Π½ΡΠ°ΠΌΠΈ (compper.py) ΠΈ Π°Π½Π½ΡΠΈΡΠ΅ΡΠ°ΠΌΠΈ (annuity.py).
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΊΠ½ΡΠΈΠΈ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΡΡΡΠΌΠΈ ΠΏΡΠΎΡΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ²:
import fincalc.simper fv = fincalc.simper.fv(pv, i, n)
import fincalc.simper as sp fv =sp.fv(pv, i, n)
from fincalc import simper fv = simper.fv(pv, i, n)
Π€Π°ΠΉΠ» __init__.py ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΡΡΡΠΌ ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡΒ __all__, Ρ ΡΠ°Π½ΡΡΡΡΒ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ
from ΠΈΠΌΡ_ΠΏΠ°ΠΊΠ΅ΡΠ° import *
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ»ΡΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ __init__.py ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΠΎΡ ΡΠ°ΠΊΠΈΠΌ:
__all__ = ["simper", "compper", "annuity"]
P.S.
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° ΡΠ΅ΠΌΠ° Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½ΡΡ , ΡΠΎ ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ Pandas. ΠΠ° Π½Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π²Π²ΠΎΠ΄Π½ΡΠ΅ ΡΡΠΎΠΊΠΈ ΠΏΠΎ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅. ΠΡΠ΅ ΡΡΠΎΠΊΠΈ ΠΏΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Pandas ΡΠΎΠ±ΡΠ°Π½Ρ Π² ΠΊΠ½ΠΈΠ³Π΅ βPandas. Π Π°Π±ΠΎΡΠ° Ρ Π΄Π°Π½Π½ΡΠΌΠΈβ.
<<<Β Python. Π£ΡΠΎΠΊ 12. ΠΠ²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ . Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ
Π ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° Π² Python / Π₯Π°Π±Ρ
ΠΠ°ΡΠ°ΡΡ, Π²ΠΈΠ΄ΠΈΠΌΠΎ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ΅ΡΡ ΠΏΠΎΠΉΠ΄Π΅Ρ ΠΎΠ± ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ΅ CPython Π²Π΅ΡΡΠΈΠΈ 2.7.x (ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ»ΠΈΡΡ Π½Π° Π²Π΅ΡΡΠΈΠΈ 2.7.3).
ΠΠ° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅ ΠΈΠΌΠ΅ΡΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ import ΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π² Python:
ΠΠ· Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ, ΡΡΠΎ Π² Python ΠΈΠΌΠ΅ΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ (package), ΠΌΠΎΠ΄ΡΠ»ΠΈ (module) ΠΈ ΠΈΠΌΠ΅Π½Π°, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² ΠΌΠΎΠ΄ΡΠ»ΡΡ (names). Π’Π°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΡΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ (submodule), Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Ρ Π²Π½ΡΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°.
Π ΡΠ·ΡΠΊΠ΅ Python ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ import ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ, ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π° Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ import Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. ΠΡΠΈ ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ:
- ΠΠ· ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ import Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ²Π½ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ: ΠΏΠ°ΠΊΠ΅Ρ, ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ»ΠΈ ΠΈΠΌΡ
- Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ import Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΏΡΡΡ ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΌ ΠΏΡΡΠ΅ΠΌ (Ρ ΠΎΡΡ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΏΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π² ΡΠ°ΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠΌ. www.python.org/dev/peps/pep-0328 )
ΠΠ· ΡΡΠΈΡ Π΄Π²ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΠ»Π΅Π΄ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ import abcd:
- ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΠΠΠΠ’ abcd, Π»ΠΈΠ±ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΠΠΠ£ΠΠ¬ abcd
- ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅Ρ/ΠΌΠΎΠ΄ΡΠ»Ρ abcd ΠΈΠ· Π’ΠΠΠ£Π©ΠΠΠ ΠΠΠΠΠ’Π (ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ import abcd), Π»ΠΈΠ±ΠΎ ΠΠ ΠΠΠΠΠ’Π Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠ΅ΡΠ΅ΡΠ½Π΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² sys.path
ΠΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΠ΅ΠΉ:
- from abcd import defg: (ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ defg ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° abcd, Π»ΠΈΠ±ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅Ρ defg ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° abcd, Π»ΠΈΠ±ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠΌΡ defg ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° abcd, Π»ΠΈΠ±ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠΌΡ defg ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Ρ abcd) X (ΠΈΠ· ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°, Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ sys.path)
- import abcd.defg: (ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅Ρ defg ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° abcd, ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ defg ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° abcd) X (ΠΈΠ· ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°, Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ sys.path)
ΠΠ»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΡ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΠ΅ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ. Π’Π°ΠΊΠΎΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΎΠΏΠΈΡΠ°Π½ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Python.
ΠΠΎΠΈΡΠΊ ΠΈΠΌΠ΅Π½ΠΈ abcd Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ:
β | Π§ΡΠΎ ΠΈΡΠ΅ΠΌ | ΠΠ΄Π΅ ΠΈΡΠ΅ΠΌ* | ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ |
---|---|---|---|
1 | ΠΏΠ°ΠΊΠ΅Ρ abcd | Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ (ΠΌΠΎΠ΄ΡΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ import abcd) | ΡΠΎΠ»ΡΠΊΠΎ, Π΅ΡΠ»ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅** |
2 | ΠΌΠΎΠ΄ΡΠ»Ρ abcd | Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ (ΠΌΠΎΠ΄ΡΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ import abcd) | ΡΠΎΠ»ΡΠΊΠΎ, Π΅ΡΠ»ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅** |
3 | ΠΌΠΎΠ΄ΡΠ»Ρ abcd | Π²ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ (built-in) ΠΌΠΎΠ΄ΡΠ»ΡΡ | ΡΡΡΠ»ΠΊΠ° Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠΊΠ°Π·Π°Π½Π° Π² *** |
4 | ΠΏΠ°ΠΊΠ΅Ρ abcd | Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ , ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² sys.path | ΡΡΡΠ»ΠΊΠ° Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠΊΠ°Π·Π°Π½Π° Π² **** |
5 | ΠΌΠΎΠ΄ΡΠ»Ρ abcd | Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ , ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² sys.path | ΡΡΡΠ»ΠΊΠ° Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠΊΠ°Π·Π°Π½Π° Π² **** |
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠΈΠΉ ΠΏΠΎΠΈΡΠΊ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π²ΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΡΠ°Π³ΠΎΠ².
* ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ΅ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π°Π΄ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°Ρ ΠΎΠΏΡΡΠ½ΡΠΌ ΠΏΡΡΠ΅ΠΌ, Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΡΠΎ ΡΠ²Π½ΠΎ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ.
** Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ __package__ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°Π²Π½Π° Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΈΠ½Π°ΡΠ΅ ΠΎΠ½Π° ΡΠ°Π²Π½Π° None.
Π‘ΡΡΠ»ΠΊΠ° Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡΠΈΡ:
docs.python.org/2/tutorial/modules.html#intra-package-references
βIn fact, such references are so common that the import statement first looks in the containing package before looking in the standard module search path.β
(!!!) ΠΠ΄Π΅ΡΡ ΡΡΠΎΠΈΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠ° Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΡΠΎΠ³ΠΎ ΠΆΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° (http://docs.python.org/2/tutorial/modules.html#the-module-search-path), ΡΡΠΎ Π²Π²ΠΎΠ΄ΠΈΡ Π² Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ (ΡΠΌ. bugs.python.org/issue16891).
(!!!) ΠΡΠΎΡΠΎΠ΅, ΡΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ β ΡΡΠΎ ΡΡΠΎ Π΄Π°Π½Π½ΡΠΉ ΡΠ°Π³ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ import abcd ΡΠ°ΠΌ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° (Ρ.Π΅. Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ import <ΠΈΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΠ°>.<ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ>). Π ΡΠ»ΡΡΠ°ΡΡ
ΠΈΠΌΠΏΠΎΡΡΠ° ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°, Π»ΠΈΠ±ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΊΠ°ΠΊ ΡΠΊΡΠΈΠΏΡΠ° Π΄Π°Π½Π½ΡΠΉ ΡΠ°Π³ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΏΡΡΠ΅Π½. ΠΡΠΎ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ www.python.org/dev/peps/pep-0302/#id23:
βThe built-in __import__ function (known as PyImport_ImportModuleEx() in import.c) will then check to see whether the module doing the import is a package or a submodule of a package. If it is indeed a (submodule of a) package, it first tries to do the import relative to the package (the parent package for a submodule). For example if a package named Β«spamΒ» does Β«import eggsΒ», it will first look for a module named Β«spam.eggsΒ». If that fails, the import continues as an absolute import: it will look for a module named Β«eggsΒ».β
*** docs.python.org/2/tutorial/modules.html#the-module-search-path
βWhen a module named spam is imported, the interpreter first searches for a built-in module with that name.β
**** docs.python.org/2/tutorial/modules.html#the-module-search-path
βIf not found, it then searches for a file named spam.py in a list of directories given by the variable sys.path.β
Π‘Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ abcd Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π΄Π»Ρ import abcd.
ΠΡΠ»ΠΈ ΠΏΠΎΠΈΡΠΊ ΡΡΠΏΠ΅ΡΠ½ΡΠΉ, ΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ defg Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ:
β | Π§ΡΠΎ ΠΈΡΠ΅ΠΌ | ΠΠ΄Π΅ ΠΈΡΠ΅ΠΌ* | ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ |
---|---|---|---|
1 | ΠΏΠ°ΠΊΠ΅Ρ defg | Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ abcd | ΡΡΡΠ»ΠΊΠ° Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠΊΠ°Π·Π°Π½Π° Π² ** |
2 | ΠΌΠΎΠ΄ΡΠ»Ρ defg | Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ abcd | ΡΡΡΠ»ΠΊΠ° Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠΊΠ°Π·Π°Π½Π° Π² ** |
* Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΠΈΡΠΊΠ° abcd, ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΎΠΊΠ°Π·Π°Π»ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ, ΡΠΎ ΠΈΠΌΠΏΠΎΡΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ImportError: No module named defg, Ρ.ΠΊ. ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π»ΠΈΠ±ΠΎ ΠΏΠ°ΠΊΠ΅ΡΡ:
docs.python.org/2/reference/simple_stmts.html#import: βA package can contain other packages and modules while modules cannot contain other modules or packages.β
** www.python.org/dev/peps/pep-0302/#id23
βDeeper down in the mechanism, a dotted name import is split up by its components. For Β«import spam.hamΒ», first an Β«import spamΒ» is done, and only when that succeeds is Β«hamΒ» imported as a submodule of Β«spamΒ».β
Π‘Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ abcd.defg Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π΄Π»Ρ import abcd.defg:
β | Π§ΡΠΎ ΠΈΡΠ΅ΠΌ | ΠΠ΄Π΅ ΠΈΡΠ΅ΠΌ |
---|---|---|
1 | ΠΈΠΌΡ ghi | Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ defg |
2 | ΠΏΠ°ΠΊΠ΅Ρ ghi | Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ defg |
3 | ΠΌΠΎΠ΄ΡΠ»Ρ ghi | Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ defg |
Π₯ΠΎΡΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ². ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ: ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ abcd ΠΈ ΠΏΠ°ΠΊΠ΅Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ abcd, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΌΠΎΠ΄ΡΠ»Ρ defg, ΠΌΠΎΠ΄ΡΠ»Ρ abcd ΠΈ ΠΏΠ°ΠΊΠ΅Ρ abcd ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Ρ Π² ΡΠ°Π·Π½ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ , ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ abcd ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ΅, ΡΡΠΎ ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ import abcd.defg. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠΏΠΎΡΡΠ° Π·Π°Π²Π΅ΡΡΠΈΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Python ΡΠ½Π°ΡΠ°Π»Π° Π½Π°ΠΉΠ΄Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ abcd, ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ ΠΈΡΠΊΠ°ΡΡ Π² Π½Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ defg, ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
Π Π°Π·ΡΠΌΠ½Π΅Π΅ Π±ΡΠ»ΠΎ Π±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΈΠ· ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ import, ΡΡΠΎ abcd ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ (Ρ.ΠΊ. Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄ΠΎ ΡΠΎΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ) ΠΈ ΠΈΡΠΊΠ°ΡΡ abcd ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΠΊ ΠΏΠ°ΠΊΠ΅Ρ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ°ΠΊΠ΅Ρ abcd Π±ΡΠ» Π±Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, Π° Π² Π½Π΅ΠΌ Π±ΡΠ» Π±Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ ΠΌΠΎΠ΄ΡΠ»Ρ defg ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ»ΠΎΡΡ Π±Ρ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ.
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Python Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ. Π‘ΠΌ. bugs.python.org/issue16891#msg179353.
ΠΠ²ΡΠΎΡ ΡΡΠ°ΡΡΠΈ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, Π½ΠΎ Π² ΡΠ²ΡΠ·ΠΈ ΡΠ°Π·ΡΠ°Π·Π½Π΅Π½Π½ΠΎΡΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Python ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π½Π΅ΠΊΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ Π²ΡΡΡΠ½Π΅Π½ΠΈΡ ΠΏΡΠΈΡΠΈΠ½ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ stackoverflow.com/questions/14183541/why-python-finds-module-instead-of-package-if-they-have-the-same-name ΠΈ bugs.python.org/issue16891, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π΄Π°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ.
Π ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ ΠΈΠΌΠ΅Π½ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ:
- ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ, Π»ΠΈΠ±ΠΎ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π»ΠΎ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ, Ρ.Π΅. ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½
- ΠΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΡ ΠΏΡΡΠ΅ΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ from __future__ import absolute_import (Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π»ΠΈΡΡ ΠΏΠΎΠ²ΡΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΏΡΡΠ΅ΠΌ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² sys.path)
Π ΡΡΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΠΈΠΉ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π²ΡΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ: bitbucket.org/dmugtasimov/python_import.Π‘ΠΎΠΊΠ΅Ρ
— ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ — Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Python 3.8.6
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄: Lib / socket.py
ΠΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΡΠΎΠΊΠ΅ΡΠ° BSD . ΠΠ½ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½Π°
Π²ΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Unix, Windows, MacOS ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΠ΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π·Π²ΠΎΠ½ΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
API ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
ΡΠΎΠΊΠ΅ΡΠΎΠ².
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Python ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΡΠΌΡΡ ΡΡΠ°Π½ΡΠ»ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ Unix.
Π²ΡΠ·ΠΎΠ² ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠΎΠΊΠ΅ΡΠΎΠ² Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΡΠΈΠ»Π΅ Python:
Π€ΡΠ½ΠΊΡΠΈΡ socket ()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠΊΠ΅ΡΠ° , ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ
ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΠΎΠΊΠ΅ΡΠΎΠ².Π’ΠΈΠΏΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΡΠ΅, ΡΠ΅ΠΌ
Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ C: ΠΊΠ°ΠΊ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ read ()
ΠΈ write ()
Π½Π° Python
ΡΠ°ΠΉΠ»Ρ, ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±ΡΡΠ΅ΡΠ° ΠΏΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ
ΠΏΡΠΈΠ΅ΠΌΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π° Π΄Π»ΠΈΠ½Π° Π±ΡΡΠ΅ΡΠ°
Π½Π΅ΡΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ
ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ.
Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅
- ΠΠΎΠ΄ΡΠ»Ρ
socketserver
ΠΠ»Π°ΡΡΡ, ΡΠΏΡΠΎΡΠ°ΡΡΠΈΠ΅ Π·Π°ΠΏΠΈΡΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ².
- Module
ssl
ΠΠ±ΠΎΠ»ΠΎΡΠΊΠ° TLS / SSL Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΎΠΊΠ΅ΡΠ°.
Π‘Π΅ΠΌΠ΅ΠΉΡΡΠ²Π° ΡΠΎΠ·Π΅ΡΠΎΠΊ
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ±ΠΎΡΠΊΠΈ, ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ΡΠΎΠΊΠ΅ΡΠΎΠ²
ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΡΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ.
Π€ΠΎΡΠΌΠ°Ρ Π°Π΄ΡΠ΅ΡΠ°, ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΠΎΠΊΠ΅ΡΠ°, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ
Π²ΡΠ±ΡΠ°Π½ΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Π°Π΄ΡΠ΅ΡΠΎΠ², ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠΊΠ΅ΡΠ° Π±ΡΠ»
ΡΠΎΠ·Π΄Π°Π½. ΠΠ΄ΡΠ΅ΡΠ° ΡΠΎΠΊΠ΅ΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ΄ΡΠ΅Ρ ΡΠΎΠΊΠ΅ΡΠ°
AF_UNIX
, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊ ΡΠ·Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ
'surrogateescape'
ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ (ΡΠΌ. PEP 383 ).ΠΠ΄ΡΠ΅Ρ Π²
ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ Linux Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π±Π°ΠΉΡΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ
Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π½ΡΠ»Π΅Π²ΠΎΠΉ Π±Π°ΠΉΡ; ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠΎΠΊΠ΅ΡΡ Π² ΡΡΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ ΠΌΠΎΠ³ΡΡ
Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ
ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π² Linux ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΈΠΌΠ΅ΡΡ Π΄Π΅Π»ΠΎ Ρ ΠΎΠ±ΠΎΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π°Π΄ΡΠ΅ΡΠΎΠ². Π‘ΡΡΠΎΠΊΠ° ΠΈΠ»ΠΈ
Π±Π°ΠΉΡΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π°Π΄ΡΠ΅ΡΠ°, ΠΊΠΎΠ³Π΄Π°
ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ ΡΡΠΎ ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² Π²Π΅ΡΡΠΈΠΈ 3.3: Π Π°Π½ΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡ, ΡΡΠΎ ΠΏΡΡΠΈ ΡΠΎΠΊΠ΅ΡΠΎΠ²
AF_UNIX
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ UTF-8
ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
.
17,2. socket — Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ — Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Python 2.7.18
ΠΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ BSD socket . ΠΠ½ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½Π°
Π²ΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Unix, Windows, Mac OS X, BeOS, OS / 2 ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅
ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΠ΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π·Π²ΠΎΠ½ΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
API ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
ΡΠΎΠΊΠ΅ΡΠΎΠ².
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅ΡΠΎΠ² (Π½Π° C) ΡΠΌ. Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΡΡΠ°ΡΡΡΡ
:
ΠΠ²ΠΎΠ΄Π½ΡΠΉ 4.Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅ ΠΏΠΎ ΠΌΠ΅ΠΆΠΏΡΠΎΡΠ΅ΡΡΠ½ΠΎΠΌΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ 3BSD, Π‘ΡΡΠ°ΡΡ Π‘Π΅Ρ
ΡΠ΅ΡΡ ΠΈ
Π Π°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΌΠ΅ΠΆΠΏΡΠΎΡΠ΅ΡΡΠ½ΠΎΠΌΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ 4.3BSD, Π‘ΡΠΌΡΡΠ» ΠΠΆ. ΠΠ΅ΡΡΠ»Π΅Ρ ΠΈ Π΄Ρ.
al, ΠΎΠ±Π° Π² Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° UNIX, ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ 1 (ΡΠ°Π·Π΄Π΅Π»Ρ
PS1: 7 ΠΈ PS1: 8). Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅Π½Π½ΡΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ
Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΈ ΡΠΎΠΊΠ΅ΡΠ°. ΠΠ»Ρ Unix ΡΠΌ. Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ; Π΄Π»Ρ Windows,
ΡΠΌ. ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ WinSock (ΠΈΠ»ΠΈ Winsock 2).ΠΠ»Ρ API, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ
IPv6, ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ
Ρ
ΠΎΡΡ ΡΠΎΡΠ»Π°ΡΡΡΡ Π½Π° RFC 3493 ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠΎΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ IPv6Β».
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Python ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΡΠΌΡΡ ΡΡΠ°Π½ΡΠ»ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ Unix.
Π²ΡΠ·ΠΎΠ² ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠΎΠΊΠ΅ΡΠΎΠ² Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΡΠΈΠ»Π΅ Python:
Π€ΡΠ½ΠΊΡΠΈΡ socket ()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠΊΠ΅ΡΠ° , ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ
ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΠΎΠΊΠ΅ΡΠΎΠ². Π’ΠΈΠΏΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΡΠ΅, ΡΠ΅ΠΌ
Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ C: ΠΊΠ°ΠΊ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ read ()
ΠΈ write ()
Π½Π° Python
ΡΠ°ΠΉΠ»Ρ, ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±ΡΡΠ΅ΡΠ° ΠΏΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ
ΠΏΡΠΈΠ΅ΠΌΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π° Π΄Π»ΠΈΠ½Π° Π±ΡΡΠ΅ΡΠ°
Π½Π΅ΡΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ
ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ.
ΠΠ΄ΡΠ΅ΡΠ° ΡΠΎΠΊΠ΅ΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: ΠΎΠ΄Π½Π° ΡΡΡΠΎΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ
AF_UNIX
ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ Π°Π΄ΡΠ΅ΡΠΎΠ². ΠΠ°ΡΠ° (Ρ
ΠΎΡΡ, ΠΏΠΎΡΡ)
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ
AF_INET Π‘Π΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ Π°Π΄ΡΠ΅ΡΠΎΠ²
, Π³Π΄Π΅ host — ΡΡΡΠΎΠΊΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ°Ρ Π»ΠΈΠ±ΠΎ
ΠΈΠΌΡ Ρ
ΠΎΡΡΠ° Π² Π½ΠΎΡΠ°ΡΠΈΠΈ Π΄ΠΎΠΌΠ΅Π½Π° ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 'daring.cwi.nl'
ΠΈΠ»ΠΈ Π°Π΄ΡΠ΅Ρ IPv4
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, '100.50.200.5'
, Π° ΠΏΠΎΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π»ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ. ΠΠ°
AF_INET6
ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ Π°Π΄ΡΠ΅ΡΠΎΠ², ΡΠ΅ΡΡΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠ° (Ρ
ΠΎΡΡ, ΠΏΠΎΡΡ, flowinfo,
, Π³Π΄Π΅ flowinfo ΠΈ scopeid ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ
scopeid) sin6_flowinfo
ΠΈ sin6_scope_id
ΡΠ»Π΅Π½ Π² struct sockaddr_in6
Π² C.ΠΠ°
socket
ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠΎΠ΄ΡΠ»Ρ, flowinfo ΠΈ scopeid ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΡΡΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ
ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ scopeid ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π² ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π°Π΄ΡΠ΅ΡΠ°ΠΌΠΈ IPv6 Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΡΡ. ΠΡΡΠ³ΠΈΠ΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Π°Π΄ΡΠ΅ΡΠΎΠ² Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅
ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ. Π€ΠΎΡΠΌΠ°Ρ Π°Π΄ΡΠ΅ΡΠ°, ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΠΎΠΊΠ΅ΡΠ°, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Π°Π΄ΡΠ΅ΡΠΎΠ², ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠΊΠ΅Ρ
ΠΎΠ±ΡΠ΅ΠΊΡ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½.
ΠΠ»Ρ Π°Π΄ΡΠ΅ΡΠΎΠ² IPv4 Π²ΠΌΠ΅ΡΡΠΎ Π°Π΄ΡΠ΅ΡΠ° Ρ
ΠΎΡΡΠ° ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ Π΄Π²Π΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΎΡΠΌΡ:
ΠΏΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ INADDR_ANY
, Π° ΡΡΡΠΎΠΊΠ°
'
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ INADDR_BROADCAST
.ΠΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅
Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ IPv6 Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ
ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ IPv6 Π² ΡΠ²ΠΎΠΈΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ
Python.
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΈΠΌΡ Ρ
ΠΎΡΡΠ° Π² ΡΠ°ΡΡΠΈ host Π°Π΄ΡΠ΅ΡΠ° ΡΠΎΠΊΠ΅ΡΠ° IPv4 / v6,
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π΅Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Python ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ Π°Π΄ΡΠ΅Ρ
Π²Π΅ΡΠ½ΡΠ»ΡΡ ΠΈΠ· ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ DNS. ΠΠ΄ΡΠ΅Ρ ΡΠΎΠΊΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½
ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ Π² ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π΄ΡΠ΅Ρ IPv4 / v6, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² DNS
ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ / ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Ρ
ΠΎΡΡΠ°.
.
18,1. socket — Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ — Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Python 3.4.10
ΠΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ BSD socket . ΠΠ½ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½Π°
Π²ΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Unix, Windows, MacOS ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΠ΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π·Π²ΠΎΠ½ΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
API ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
ΡΠΎΠΊΠ΅ΡΠΎΠ².
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Python ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΡΠΌΡΡ ΡΡΠ°Π½ΡΠ»ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ Unix.
Π²ΡΠ·ΠΎΠ² ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠΎΠΊΠ΅ΡΠΎΠ² Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΡΠΈΠ»Π΅ Python:
Π€ΡΠ½ΠΊΡΠΈΡ socket () Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠΊΠ΅ΡΠ° , ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ
ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΠΎΠΊΠ΅ΡΠΎΠ².Π’ΠΈΠΏΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΡΠ΅, ΡΠ΅ΠΌ
Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ C: ΠΊΠ°ΠΊ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ read () ΠΈ write () Π² Python
ΡΠ°ΠΉΠ»Ρ, ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±ΡΡΠ΅ΡΠ° ΠΏΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ
ΠΏΡΠΈΠ΅ΠΌΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π° Π΄Π»ΠΈΠ½Π° Π±ΡΡΠ΅ΡΠ°
Π½Π΅ΡΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ
ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ.
Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅
- ΠΠΎΠ΄ΡΠ»Ρ socketserver
- ΠΠ»Π°ΡΡΡ, ΡΠΏΡΠΎΡΠ°ΡΡΠΈΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ².
- ΠΠΎΠ΄ΡΠ»Ρ ssl
- ΠΠ±ΠΎΠ»ΠΎΡΠΊΠ° TLS / SSL Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΎΠΊΠ΅ΡΠ°.
18.1.1. Π‘Π΅ΠΌΠ΅ΠΉΡΡΠ²Π° ΡΠΎΠ·Π΅ΡΠΎΠΊ
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ±ΠΎΡΠΊΠΈ, ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ΡΠΎΠΊΠ΅ΡΠΎΠ²
ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΡΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ.
Π€ΠΎΡΠΌΠ°Ρ Π°Π΄ΡΠ΅ΡΠ°, ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΠΎΠΊΠ΅ΡΠ°, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ
Π²ΡΠ±ΡΠ°Π½ΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Π°Π΄ΡΠ΅ΡΠΎΠ², ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠΊΠ΅ΡΠ° Π±ΡΠ»
ΡΠΎΠ·Π΄Π°Π½. ΠΠ΄ΡΠ΅ΡΠ° ΡΠΎΠΊΠ΅ΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ΄ΡΠ΅Ρ ΡΠΎΠΊΠ΅ΡΠ° AF_UNIX, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊ ΡΠ·Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ surrogateescape (ΡΠΌ. PEP 383 ). ΠΠ΄ΡΠ΅Ρ Π²
ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ Linux Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π±Π°ΠΉΡΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ
Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π½ΡΠ»Π΅Π²ΠΎΠΉ Π±Π°ΠΉΡ; ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠΎΠΊΠ΅ΡΡ Π² ΡΡΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ ΠΌΠΎΠ³ΡΡ
Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ
ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π² Linux ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΈΠΌΠ΅ΡΡ Π΄Π΅Π»ΠΎ Ρ ΠΎΠ±ΠΎΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π°Π΄ΡΠ΅ΡΠΎΠ².Π‘ΡΡΠΎΠΊΠ° ΠΈΠ»ΠΈ
ΠΎΠ±ΡΠ΅ΠΊΡ bytes ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π°Π΄ΡΠ΅ΡΠ°, ΠΊΠΎΠ³Π΄Π°
ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ ΡΡΠΎ ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² Π²Π΅ΡΡΠΈΠΈ 3.3: Π Π°Π½ΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡ, ΡΡΠΎ ΠΏΡΡΠΈ ΡΠΎΠΊΠ΅ΡΠΎΠ² AF_UNIX ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ UTF-8
ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.ΠΠ°ΡΠ° (Ρ ΠΎΡΡ, ΠΏΠΎΡΡ) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Π°Π΄ΡΠ΅ΡΠΎΠ² AF_INET,
Π³Π΄Π΅ host — ΡΡΠΎ ΡΡΡΠΎΠΊΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ°Ρ Π»ΠΈΠ±ΠΎ ΠΈΠΌΡ Ρ ΠΎΡΡΠ° Π² ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ-Π΄ΠΎΠΌΠ΅Π½Π΅
Π·Π°ΠΏΠΈΡΡ ΡΠΈΠΏΠ° daring.cwi.nl ΠΈΠ»ΠΈ IPv4-Π°Π΄ΡΠ΅Ρ ΡΠΈΠΏΠ° 100.50.200.5,
ΠΈ ΠΏΠΎΡΡ — ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ.ΠΠ»Ρ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Π°Π΄ΡΠ΅ΡΠΎΠ² AF_INET6, ΡΠ΅ΡΡΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠ° (Ρ ΠΎΡΡ, ΠΏΠΎΡΡ, flowinfo,
scopeid), Π³Π΄Π΅ flowinfo ΠΈ scopeid ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ sin6_flowinfo
ΠΈ ΡΠ»Π΅Π½Ρ sin6_scope_id Π² struct sockaddr_in6 Π² C. ΠΠ»Ρ
ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΠΊΠ΅ΡΠ°, flowinfo ΠΈ scopeid ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΡΡΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ
ba
.
18,1. socket — Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ — Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Python 3.3.7
ΠΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ BSD socket . ΠΠ½ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½Π°
Π²ΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Unix, Windows, MacOS, OS / 2 ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅
ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΠ΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π·Π²ΠΎΠ½ΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
API ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
ΡΠΎΠΊΠ΅ΡΠΎΠ².
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Python ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΡΠΌΡΡ ΡΡΠ°Π½ΡΠ»ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ Unix.
Π²ΡΠ·ΠΎΠ² ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠΎΠΊΠ΅ΡΠΎΠ² Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΡΠΈΠ»Π΅ Python:
Π€ΡΠ½ΠΊΡΠΈΡ socket () Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠΊΠ΅ΡΠ° , ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ
ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΠΎΠΊΠ΅ΡΠΎΠ².Π’ΠΈΠΏΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΡΠ΅, ΡΠ΅ΠΌ
Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ C: ΠΊΠ°ΠΊ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ read () ΠΈ write () Π² Python
ΡΠ°ΠΉΠ»Ρ, ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±ΡΡΠ΅ΡΠ° ΠΏΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ
ΠΏΡΠΈΠ΅ΠΌΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π° Π΄Π»ΠΈΠ½Π° Π±ΡΡΠ΅ΡΠ°
Π½Π΅ΡΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ
ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ.
Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅
- ΠΠΎΠ΄ΡΠ»Ρ socketserver
- ΠΠ»Π°ΡΡΡ, ΡΠΏΡΠΎΡΠ°ΡΡΠΈΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ².
- ΠΠΎΠ΄ΡΠ»Ρ ssl
- ΠΠ±ΠΎΠ»ΠΎΡΠΊΠ° TLS / SSL Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΎΠΊΠ΅ΡΠ°.
18.1.1. Π‘Π΅ΠΌΠ΅ΠΉΡΡΠ²Π° ΡΠΎΠ·Π΅ΡΠΎΠΊ
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ±ΠΎΡΠΊΠΈ, ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ΡΠΎΠΊΠ΅ΡΠΎΠ²
ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΡΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ.
Π€ΠΎΡΠΌΠ°Ρ Π°Π΄ΡΠ΅ΡΠ°, ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΠΎΠΊΠ΅ΡΠ°, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ
Π²ΡΠ±ΡΠ°Π½ΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Π°Π΄ΡΠ΅ΡΠΎΠ², ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠΊΠ΅ΡΠ° Π±ΡΠ»
ΡΠΎΠ·Π΄Π°Π½. ΠΠ΄ΡΠ΅ΡΠ° ΡΠΎΠΊΠ΅ΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ΄ΡΠ΅Ρ ΡΠΎΠΊΠ΅ΡΠ° AF_UNIX, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊ ΡΠ·Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ surrogateescape (ΡΠΌ. PEP 383 ). ΠΠ΄ΡΠ΅Ρ Π²
ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ Linux Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π±Π°ΠΉΡΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ
Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π½ΡΠ»Π΅Π²ΠΎΠΉ Π±Π°ΠΉΡ; ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠΎΠΊΠ΅ΡΡ Π² ΡΡΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ ΠΌΠΎΠ³ΡΡ
Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ
ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π² Linux ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΈΠΌΠ΅ΡΡ Π΄Π΅Π»ΠΎ Ρ ΠΎΠ±ΠΎΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π°Π΄ΡΠ΅ΡΠΎΠ².Π‘ΡΡΠΎΠΊΠ° ΠΈΠ»ΠΈ
ΠΎΠ±ΡΠ΅ΠΊΡ bytes ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π°Π΄ΡΠ΅ΡΠ°, ΠΊΠΎΠ³Π΄Π°
ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ ΡΡΠΎ ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² Π²Π΅ΡΡΠΈΠΈ 3.3: Π Π°Π½ΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡ, ΡΡΠΎ ΠΏΡΡΠΈ ΡΠΎΠΊΠ΅ΡΠΎΠ² AF_UNIX ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ UTF-8
ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.ΠΠ°ΡΠ° (Ρ ΠΎΡΡ, ΠΏΠΎΡΡ) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Π°Π΄ΡΠ΅ΡΠΎΠ² AF_INET,
Π³Π΄Π΅ host — ΡΡΠΎ ΡΡΡΠΎΠΊΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ°Ρ Π»ΠΈΠ±ΠΎ ΠΈΠΌΡ Ρ ΠΎΡΡΠ° Π² ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ-Π΄ΠΎΠΌΠ΅Π½Π΅
Π·Π°ΠΏΠΈΡΡ ΡΠΈΠΏΠ° daring.cwi.nl ΠΈΠ»ΠΈ IPv4-Π°Π΄ΡΠ΅Ρ ΡΠΈΠΏΠ° 100.50.200.5,
ΠΈ ΠΏΠΎΡΡ — ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ.ΠΠ»Ρ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Π°Π΄ΡΠ΅ΡΠΎΠ² AF_INET6, ΡΠ΅ΡΡΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠ° (Ρ ΠΎΡΡ, ΠΏΠΎΡΡ, flowinfo,
scopeid), Π³Π΄Π΅ flowinfo ΠΈ scopeid ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ sin6_flowinfo
ΠΈ ΡΠ»Π΅Π½Ρ sin6_scope_id Π² struct sockaddr_in6 Π² C. ΠΠ»Ρ
ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΠΊΠ΅ΡΠ°, flowinfo ΠΈ scopeid ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΡΡΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ
ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ scopeid ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π² ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π°Π΄ΡΠ΅ΡΠ°ΠΌΠΈ IPv6 Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΡΡ.ΡΠΎΠΊΠ΅ΡΡ AF_NETLINK ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΏΠ°ΡΠ°ΠΌΠΈ (pid,
.