Π‘Π»ΠΎΠ²Π°ΡΠ΅ΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ: ΠΡΠ΅ ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ -Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°Ρ , Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°Ρ ΡΠΏΠΈΡΠΊΠΎΠ², ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΠΈ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ / Π₯Π°Π±Ρ
ΠΡΠ΅ ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ -Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°Ρ , Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°Ρ ΡΠΏΠΈΡΠΊΠΎΠ², ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΠΈ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ / Π₯Π°Π±Ρ
ΠΠ°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΠΌΠΎΠ΅Π³ΠΎ ΡΠΈΠΊΠ»Π°, ΠΏΠΎΡΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΠΌΠΈ. ΠΠ°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½Π°Ρ, ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΡΡΠ°ΡΡΡΡ ΠΈ Π±Π΅Π· ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ .
ΠΡΠ° ΡΡΠ°ΡΡΡ Π³Π»ΡΠ±ΠΆΠ΅ ΠΈ Π΄Π΅ΡΠ°Π»ΡΠ½Π΅ΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ, Π½ΠΎ ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΡΠ½ΡΠΌ Python-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ.
ΠΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ: Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ, Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠΏΠΈΡΠΊΠ°, ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°, Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ (5 Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ²), ΡΠ°Π±ΠΎΡΠ° Ρ enumerate(), range().
Π ΡΠ°ΠΊΠΆΠ΅: ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, Π°Π½Π°Π»ΠΎΠ³ΠΈ Π² Π²ΠΈΠ΄Π΅ ΡΠΈΠΊΠ»ΠΎΠ² ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ.
Π― ΠΏΠΎΡΡΠ°ΡΠ°Π»ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΎΠ½ΠΊΠΎΡΡΠΈ ΠΈ Π½ΡΠ°Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ²Π΅ΡΠ°ΡΡΡΡ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΠΎ Π²ΡΠ΅Ρ ΠΊΠ½ΠΈΠ³Π°Ρ ΠΈ ΠΊΡΡΡΠ°Ρ , ΠΈ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅, ΠΎΡΡΡΡΡΡΠ²ΡΡΡ Π² ΡΠΆΠ΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ Π½Π° Habrahabr ΡΡΠ°ΡΡΡΡ Π½Π° ΡΡΡ ΡΠ΅ΠΌΡ.
ΠΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅:
1. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ.
2. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ.
3. ΠΠ½Π°Π»ΠΎΠ³ΠΈ Π² Π²ΠΈΠ΄Π΅ ΡΠΈΠΊΠ»Π° for ΠΈ Π² Π²ΠΈΠ΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΉ.
4. ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ.
5. ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ.
6. ΠΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎΡΡΡ ΠΈ ΡΠ°ΡΡΠΈΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅Π±ΠΎΡ.
7. ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΊΠ»Ρ ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ.
8. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ range().
9. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ.
10. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2. Π‘ΡΡΠ»ΠΊΠΈ ΠΏΠΎ ΡΠ΅ΠΌΠ΅.
1. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ
1.1 Π§ΡΠΎ ΠΈ Π·Π°ΡΠ΅ΠΌ
- ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ Π² Π΄ΡΡΠ³ΠΎΠΉ.
- Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
- ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ°Ρ Π°ΡΠΎΠΌ ΠΈ Π½Π΅ ΡΠ΅ΡΠ°ΡΡ Π·Π°Π΄Π°Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ»ΠΎ Π±Ρ ΡΠ΅ΡΠΈΡΡ Π±Π΅Π· ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
1.2 ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
- ΠΠΎΠ»Π΅Π΅ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΡΠ΅ΠΌ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π² ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΡΠΈΠΊΠ»Π΅.
- ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΈ ΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΎΠ³ ΡΠΎΡΠ΅ΡΠ°ΡΡΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ map(), filter() ΠΈ lambda.
- Π ΡΠ΅Π»ΠΎΠΌ: Π±ΡΡΡΡΠ΅Π΅ Π½Π°Π±ΠΈΡΠ°ΡΡ, Π»Π΅Π³ΡΠ΅ ΡΠΈΡΠ°ΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΌΠ½ΠΎΠ³ΠΎ Π² ΠΊΠΎΠ΄Π΅.
1.3 ΠΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ
Π‘ΡΠ°Π·Ρ ΡΠΊΠ°ΠΆΡ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΡΠ°Π½ΠΈΡΠ° Π² ΡΡΡΡΠΊΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΡΡ ΡΠΎΠ³ΠΎ, ΠΎ ΡΠ΅ΠΌ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡΡ.
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ:
- Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ (generator expression) β Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΡΡΠ³Π»ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΄Π°Π΅Ρ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ Π½ΠΎΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ.
- Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ β ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠΏΠΈΡΠΊΠ° (list comprehension), Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ»ΠΎΠ²Π°ΡΡ (dictionary comprehension) ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° (set comprehension).
Π ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΌΠ΅ΡΡΠ°Ρ , ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π°Π³ΡΠΎΠΌΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ², Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½ Β«Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΒ» Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠΎΡΠ½Π΅Π½ΠΈΠΉ.
2. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΏΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°.
ΠΠ°ΠΆΠ½ΠΎ: ΡΡΠΎΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ² ΠΈ Π΄Π»Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΡΡΠ΅Ρ
ΡΠΈΠΏΠΎΠ² Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ, ΡΠ°Π·Π½ΠΈΡΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ, Π² ΠΊΠ°ΠΊΠΈΡ
ΡΠΊΠΎΠ±ΠΊΠ°Ρ
ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ (ΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ).
ΠΠ±ΡΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π²Π°ΠΆΠ½ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ:
- ΠΠ²ΠΎΠ΄ β ΡΡΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ β ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ, ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ β Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎ Π½Π΅ΠΌΡ.
- Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ β ΡΡΠΎ ΡΠΈΠ»ΡΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎΠΉΠ΄Π΅Ρ Π² ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΅ΠΌΡ Π½Π΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ, ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΏΡΡΠ΅Π½.
- Π€ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ β ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΠ΅ΡΠ΅Π΄ Π΅Π³ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ²ΠΎΠ΄ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
2.1 ΠΠ°Π·ΠΎΠ²ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
list_a = [-2, -1, 0, 1, 2, 3, 4, 5] # ΠΡΡΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ
list_b = [x for x in list_a] # Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠΏΠΈΡΠΊΠ°
print(list_b) # [-2, -1, 0, 1, 2, 3, 4, 5]
print(list_a is list_b) # False - ΡΡΠΎ ΡΠ°Π·Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ!
ΠΠΎ ΡΡΡΠΈ, Π½ΠΈΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΡΡ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ, ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡ ΡΠΏΠΈΡΠΊΠ°. ΠΠ΅Π»Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π³ΠΎΠ½ΡΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΈΠ· ΡΠΈΠΏΠ° Π² ΡΠΈΠΏ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π° Π½Π΅Ρ β ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ (ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈΡΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠΈΠΊΠ»Π°).
ΠΠΎΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡ Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² Π½ΠΎΠ²ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π΅Π³ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ (Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π² Π½ΠΎΠ²ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ).
2.2 ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ
ΠΠ°ΠΆΠ½ΠΎ: Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΅ΠΌΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠΈΠ΅ ΠΈΠ΄ΡΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ.
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ β Π±ΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
# if x % 2 == 0 - ΠΎΡΡΠ°ΡΠΎΠΊ ΠΎΡ Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π° 2 ΡΠ°Π²Π΅Π½ Π½ΡΠ»Ρ - ΡΠΈΡΠ»ΠΎ ΡΠ΅ΡΠ½ΠΎΠ΅
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
list_b = [x for x in list_a if x % 2 == 0]
print(list_b) # [-2, 0, 2, 4]
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠΉ, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΡΡ ΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ:
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
list_b = [x for x in list_a if x % 2 == 0 and x > 0]
# Π±Π΅ΡΠ΅ΠΌ ΡΠ΅ x, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ΡΠ½ΡΠ΅ ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½ΡΠ»Ρ
print(list_b) # [2, 4]
2.3 ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΡΠ°Π²Π»ΡΡΡ Π½Π΅ ΡΠ°ΠΌ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΏΡΠΎΡΠ΅Π΄ΡΠΈΠΉ ΡΠΈΠ»ΡΡΡ, Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ Π½ΠΈΠΌ ΠΈΠ»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ.
ΠΠ°ΠΆΠ½ΠΎ: ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°:
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
list_b = [x**2 for x in list_a]
print(list_b) # [4, 1, 0, 1, 4, 9, 16, 25]
ΠΠ»ΠΈ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΎΠΊ c ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ len()
list_a = ['a', 'abc', 'abcde']
list_b = [len(x) for x in list_a]
print(list_b) # [1, 3, 5]
2.4 ΠΠ΅ΡΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ (Π½Π°ΡΠΈΠ½Π°Ρ Ρ Python 2. 5) Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ if-else Π΄Π»Ρ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅:
- Π£ΡΠ»ΠΎΠ²ΠΈΡ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΈΡΡΡΡΡ Π½Π΅ ΠΏΠΎΡΠ»Π΅, Π° ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ.
- Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ if-else ΡΡΠΎ Π½Π΅ ΡΠΈΠ»ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π° Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠΎ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΆΠ΅ ΠΏΡΠΎΡΠ»Π° ΡΠΈΠ»ΡΡΡ, Π½ΠΎ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π° ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ!
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
list_b = [x if x < 0 else x**2 for x in list_a]
# ΠΡΠ»ΠΈ x-ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ - Π±Π΅ΡΠ΅ΠΌ x, Π² ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
ΡΠ»ΡΡΠ°ΡΡ
- Π±Π΅ΡΠ΅ΠΌ ΠΊΠ²Π°Π΄ΡΠ°Ρ x
print(list_b) # [-2, -1, 0, 1, 4, 9, 16, 25]
ΠΠΈΠΊΡΠΎ Π½Π΅ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΈ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠ΅:
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
list_b = [x**3 if x < 0 else x**2 for x in list_a if x % 2 == 0]
# Π²Π½Π°ΡΠ°Π»Π΅ ΡΠΈΠ»ΡΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅Ρ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
# ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠ΅ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π΄Π»Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ
Π²ΠΎΠ·Π²ΠΎΠ΄ΠΈΡ Π² ΠΊΡΠ±, Π° Π΄Π»Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
Π² ΠΊΠ²Π°Π΄ΡΠ°Ρ
print(list_b) # [-8, 0, 4, 16]
ΠΡΠΎΡ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ Π² Π²ΠΈΠ΄Π΅ ΡΠΈΠΊΠ»Π°
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
list_b = []
for x in list_a:
if x % 2 == 0:
if x < 0:
list_b.append(x ** 3)
else:
list_b.append(x ** 2)
print(list_b) # [-8, 0, 4, 16]
2.5 Π£Π»ΡΡΡΠ°Π΅ΠΌ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ
ΠΠ΅ Π·Π°Π±ΡΠ²Π°Π΅ΠΌ, ΡΡΠΎ Π² Python ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡ ΡΡΡΠΎΠΊ Π²Π½ΡΡΡΠΈ ΡΠΊΠΎΠ±ΠΎΠΊ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΈΠΌ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ:
numbers = range(10)
# Before
squared_evens = [n ** 2 for n in numbers if n % 2 == 0]
# After
squared_evens = [
n ** 2
for n in numbers
if n % 2 == 0
]
3. ΠΠ½Π°Π»ΠΎΠ³ΠΈ Π² Π²ΠΈΠ΄Π΅ ΡΠΈΠΊΠ»Π° for ΠΈ Π² Π²ΠΈΠ΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΉ
ΠΠ°ΠΊ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ Π²ΡΡΠ΅, Π·Π°Π΄Π°ΡΠΈ ΡΠ΅ΡΠ°Π΅ΠΌΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ ΠΈ Π±Π΅Π· Π½ΠΈΡ . ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅Ρ ΠΆΠ΅ Π·Π°Π΄Π°Ρ.
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ ΠΏΡΠΎΡΡΡΡ Π·Π°Π΄Π°ΡΡ β ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΡΠΈΡΠ΅Π» ΡΠΏΠΈΡΠΎΠΊ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ² ΡΠ΅ΡΠ½ΡΡ ΡΠΈΡΠ΅Π» ΠΈ ΡΠ΅ΡΠΈΠΌ Π΅Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅Ρ ΡΠ°Π·Π½ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ²:
3.
1 Π Π΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠΏΠΈΡΠΊΠ°
numbers = range(10)
squared_evens = [n ** 2 for n in numbers if n % 2 == 0]
print(squared_evens) # [0, 4, 16, 36, 64]
3.2. Π Π΅ΡΠ΅Π½ΠΈΠ΅ c ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° for
ΠΠ°ΠΆΠ½ΠΎ: ΠΠ°ΠΆΠ΄ΡΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΈΠΊΠ»Π° for, Π½ΠΎ Π½Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΊΠ» for ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ°ΠΊΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
numbers = range(10)
squared_evens = []
for n in numbers:
if n % 2 == 0:
squared_evens.append(n ** 2)
print(squared_evens) # [0, 4, 16, 36, 64]
Π ΡΠ΅Π»ΠΎΠΌ, Π΄Π»Ρ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΡ Π·Π°Π΄Π°Ρ, ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ ΡΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ½ΡΡΠ½Π΅ΠΉ ΠΈ ΠΏΡΠΎΡΠ΅ Π² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ ΠΈ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠ΅. ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΡ Π·Π°Π΄Π°Ρ, ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½Π΅ΠΉ ΠΈ Π»Π΅Π³ΡΠ΅ Π² ΡΡΠ΅Π½ΠΈΠΈ.
3.3. Π Π΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π°, Π·Π°ΠΌΠ΅ΡΡ, ΡΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ β ΡΡΠΎ ΡΠΎΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΡΠΈΠ»Ρ, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΠΉ ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ.
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅Ρ ΠΆΠ΅ Π·Π°Π΄Π°Ρ, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΡΡ map(), lambda ΠΈ filter().
numbers = range(10)
squared_evens = map(lambda n: n ** 2, filter(lambda n: n % 2 == 0, numbers))
print(squared_evens) # <map object at 0x7f661e5dba20>
print(list(squared_evens)) # [0, 4, 16, 36, 64]
# ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π² Python 2 Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ squared_evens ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΡΠ°Π·Ρ ΡΠΏΠΈΡΠΎΠΊ, Π° Π² Python 3 Β«map objectΒ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΠΌ Π² ΡΠΏΠΈΡΠΎΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ list()
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ°Π±ΠΎΡΠΈΠΉ, ΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΠ½ ΡΡΠΆΠ΅Π»ΠΎ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π±ΡΠ΄Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ.
4. ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ (generator expressions) Π΄ΠΎΡΡΡΠΏΠ½Ρ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Python 2.4. ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΈΡ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ Π²ΡΠ΄Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎ-ΠΎΠ΄Π½ΠΎΠΌΡ, Π½Π΅ Π·Π°Π³ΡΡΠΆΠ°Ρ Π² ΠΏΠ°ΠΌΡΡΡ ΡΡΠ°Π·Ρ Π²ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ.
UPD: ΠΡΠ΅ ΡΠ°Π· ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ: Π΅ΡΠ»ΠΈ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π±ΠΎΠ»ΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°, ΡΠΎ ΠΎΠ½Π° Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π² ΠΏΠ°ΠΌΡΡΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΠ°ΡΡ ΠΎΠ΄ ΠΏΠ°ΠΌΡΡΠΈ ΠΠ°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π° Π² ΠΊΡΠ°ΠΉΠ½ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΡΠΎ Π½Π΅ Ρ Π²Π°ΡΠΈΡΡ ΠΈ ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Β«ΡΠΏΠ°Π΄Π΅ΡΒ» Ρ MemoryError. Π ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°, ΡΠ°ΠΊΠΎΠ³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΠΎ-ΠΎΠ΄Π½ΠΎΠΌΡ, Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°:
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
my_gen = (i for i in list_a) # Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ
print(next(my_gen)) # -2 - ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°
print(next(my_gen)) # -1 - ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ²
- ΠΠ΅Π½Π°ΡΠ°ΡΠΎΡ Π½Π΅Π»ΡΠ·Ρ ΠΏΠΈΡΠ°ΡΡ Π±Π΅Π· ΡΠΊΠΎΠ±ΠΎΠΊ β ΡΡΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ°.
# my_gen = i for i in list_a # SyntaxError: invalid syntax
- ΠΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ Π² ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Ρ
list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_sum = sum(i for i in list_a) # my_sum = sum((i for i in list_a)) # ΡΠ°ΠΊ ΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ print(my_sum) # 12
- ΠΠ΅Π»ΡΠ·Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π»ΠΈΠ½Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ len()
# my_len = len(i for i in list_a) # TypeError: object of type 'generator' has no len()
- ΠΠ΅Π»ΡΠ·Ρ ΡΠ°ΡΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ print()
print(my_gen) # <generator object <genexpr> at 0x7f162db32af0>
- ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΎΠ½ΠΎ ΠΎΡΡΠ°Π΅ΡΡΡ ΠΏΡΡΡΡΠΌ!
list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_gen = (i for i in list_a) print(sum(my_gen)) # 12 print(sum(my_gen)) # 0
- ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ.
import itertools inf_gen = (x for x in itertools.count()) # Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΎΡ 0 to Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΠΈ!
ΠΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈ Π½Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Β«ΡΡΡΠ΅ΠΊΡΒ» Π±ΡΠ΄Π΅Ρ ΠΊΠ°ΠΊ ΠΎΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°.
- Π Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ ΡΡΠ΅Π·Ρ!
list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_gen = (i for i in list_a) my_gen_sliced = my_gen[1:3] # TypeError: 'generator' object is not subscriptable
- ΠΠ· Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π½ΡΠΆΠ½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ. ΠΡΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅.
5. ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ
5.1 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ ΠΈΠ· Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ ΠΈΠ· Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ list(), tuple(), set(), frozenset()
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π’Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈ ΠΊΠΎΡΡΠ΅ΠΆ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΎΠ½ΠΈ ΡΡΠ°Π½Π΅Ρ ΡΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ.
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΠ»Ρ ΡΡΡΠΎΠΊΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ! Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ, ΠΎΠ½ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΠΎΠ΄-ΡΠ°Π·Π΄Π΅Π»Π΅.
- ΠΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ Π³ΠΎΡΠΎΠ²ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_gen = (i for i in list_a) # Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ my_list = list(my_gen) print(my_list) # [-2, -1, 0, 1, 2, 3, 4, 5]
- ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΡΠ°Π·Ρ Π²Π½ΡΡΡΠΈ ΡΠΊΠΎΠ±ΠΎΠΊ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_list = list(i for i in list_a) print(my_list) # [-2, -1, 0, 1, 2, 3, 4, 5]
Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΆΠ°, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°
# ΠΊΠΎΡΡΠ΅ΠΆ my_tuple = tuple(i for i in list_a) print(my_tuple) # (-2, -1, 0, 1, 2, 3, 4, 5) # ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ my_set = set(i for i in list_a) print(my_set) # {0, 1, 2, 3, 4, 5, -1, -2} # Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ my_frozenset = frozenset(i for i in list_a) print(my_frozenset) # frozenset({0, 1, 2, 3, 4, 5, -1, -2})
5.2 Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ
Π ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΄Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ-ΠΎΠ΄Π½ΠΎΠΌΡ, Π½Π΅ Π·Π°Π³ΡΡΠΆΠ°Ρ Π²ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ Π² ΠΏΠ°ΠΌΡΡΡ, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ, ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΡΡΠ°Π·Ρ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ.
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π²ΠΌΠ΅ΡΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π²ΡΡΠ΅, ΡΠ°ΠΊΠ°Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π²ΡΠ΅ΠΌΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΠΌΠΈ Π΄Π»Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΈ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ, ΡΠ°Π·Π½ΠΈΡΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠ»ΡΡ: Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
- ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠΏΠΈΡΠΊΠ° (list comprehension)
list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_list = [i for i in list_a] print(my_list) # [-2, -1, 0, 1, 2, 3, 4, 5]
ΠΠ΅ ΠΏΠΈΡΠΈΡΠ΅ ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ !list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_list = [(i for i in list_a)] print(my_list) # [<generator object <genexpr> at 0x7fb81103bf68>]
- ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° (set comprehension)
list_a = [-2, -1, 0, 1, 2, 3, 4, 5] my_set= {i for i in list_a} print(my_set) # {0, 1, 2, 3, 4, 5, -1, -2} - ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ»ΡΡΠ°Π΅Π½
- ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΠΎΠ²Π°ΡΡ (dictionary comprehension)
ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡdict_abc = {'a': 1, 'b': 2, 'c': 3, 'd': 3} dict_123 = {v: k for k, v in dict_abc.items()} print(dict_123) # {1: 'a', 2: 'b', 3: 'd'} # ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΌΡ ΠΏΠΎΡΠ΅ΡΡΠ»ΠΈ "Ρ"! Π’Π°ΠΊ ΠΊΠ°ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±ΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ, # ΡΠΎ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΡΡΠ°Π»ΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ, ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΠΎΡΡ.
Π‘Π»ΠΎΠ²Π°ΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°:list_a = [-2, -1, 0, 1, 2, 3, 4, 5] dict_a = {x: x**2 for x in list_a} print(dict_a) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, -2: 4, -1: 1, 5: 25}
ΠΠ°ΠΆΠ½ΠΎ! Π’Π°ΠΊΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΈΠ³ΡΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ , Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅Π»ΡΠ·Ρ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ (Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ longclaps Π·Π° ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ):
# dict_gen = (x: x**2 for x in list_a) # SyntaxError: invalid syntax dict_gen = ((x, x ** 2) for x in list_a) # ΠΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ»ΠΎΠ²Π°ΡΡ # dict_a = dict(x: x**2 for x in list_a) # SyntaxError: invalid syntax dict_a = dict((x, x ** 2) for x in list_a) # ΠΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΎΡ @longclaps
5.3 ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΡΡΠΎΠΊ
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΡΠΎΠΊΠΈ . join(), ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π² ΡΡΡΠΎΠΊΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ!
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
# ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΏΡΡΠΌΠΎ Π² .join() ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠΌΡ ΡΠΈΠΏΡ
my_str = ''.join(str(x) for x in list_a)
print(my_str) # -2-1012345
6. ΠΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎΡΡΡ ΠΈ ΡΠ°ΡΡΠΈΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅Π±ΠΎΡ
6.1 Π Π°Π±ΠΎΡΠ° Ρ enumerate()
ΠΠ½ΠΎΠ³Π΄Π° Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π·Π°Π΄Π°ΡΠΈ Π² ΡΡΠ»ΠΎΠ²ΠΈΠΈ-ΡΠΈΠ»ΡΡΡΠ΅ Π½ΡΠΆΠ½Π° Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎΡΡΡ, ΡΠΎ Π΅ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΡΠΆΠ½ΠΎ Π±ΡΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΡΠ΅ΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ.
ΠΠ»Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π·Π°Π΄Π°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ enumerate(), Π·Π°Π΄Π°ΡΡΡΡ ΡΡΠ΅ΡΡΠΈΠΊ ΠΏΡΠΈ ΠΎΠ±Ρ ΠΎΠ΄Π΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ° Π² ΡΠΈΠΊΠ»Π΅:
for i, x in enumerate(iterable)
Π·Π΄Π΅ΡΡ x β ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ i β Π΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π½ΡΠ»Ρ
ΠΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ:
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
list_d = [(i, x) for i, x in enumerate(list_a)]
print(list_d) # [(0, -2), (1, -1), (2, 0), (3, 1), (4, 2), (5, 3), (6, 4), (7, 5)]
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ΅ΡΠΈΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΡ Π·Π°Π΄Π°ΡΡ β Π²ΡΠ±Π΅ΡΠ΅ΠΌ Π² Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΡΠ΅ΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°:
list_a = [-2, -1, 0, 1, 2, 3, 4, 5]
list_e = [x for i, x in enumerate(list_a, 1) if i % 3 == 0]
print(list_e) # [0, 3]
ΠΠ°ΠΆΠ½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ enumerate():
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ enumerate():
- enumerate(iterator) Π±Π΅Π· Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΡΠΈΡΠ°Π΅Ρ Ρ 0.
- enumerate(iterator, start) β Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΡΠΈΡΠ°ΡΡ Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ start. Π£Π΄ΠΎΠ±Π½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΡΡΠΈΡΠ°ΡΡ Ρ 1, Π° Π½Π΅ 0.
- enumerate() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΆ ΠΈΠ· ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅ΡΠ° ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΠΎΡΡΠ΅ΠΆ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
- (i, j) for i, j in enumerate(iterator) β ΡΠΊΠΎΠ±ΠΊΠΈ Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΠ°ΡΠ΅ Π½ΡΠΆΠ½Ρ!
- pair for pair in enumerate(mylist) β ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΡΡΠ°Π·Ρ Ρ ΠΏΠ°ΡΠΎΠΉ
- ΠΠ½Π΄Π΅ΠΊΡΡ ΡΡΠΈΡΠ°ΡΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π±Π΅Π· ΡΡΠ΅ΡΠ° ΠΏΡΠΎΡΠ»ΠΈ ΠΎΠ½ΠΈ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π΅Ρ!
first_ten_even = [(i, x) for i, x in enumerate(range(10)) if x % 2 == 0] print(first_ten_even) # [(0, 0), (2, 2), (4, 4), (6, 6), (8, 8)]
- Π€ΡΠ½ΠΊΡΠΈΡ enumerate() Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, Π° ΠΏΡΠΎΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΡΠ΅ΡΡΠΈΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π½Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ.
- ΠΡΠ»ΠΈ ΠΌΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎ enumerate() ΡΡΠ΅ΡΡΠΈΠΊΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ if i < 10), ΡΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ, ΡΡΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΡΠ΅ΡΡΡΡ-Π·Π°ΡΡΠ°ΡΠ½ΠΎ. Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π½ΠΈΠΆΠ΅ Π² ΠΏΠΎΠ΄-ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠ΅ΡΠ΅Π±ΠΎΡ ΡΠ°ΡΡΠΈ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎΒ».
6.2 ΠΠ΅ΡΠ΅Π±ΠΎΡ ΡΠ°ΡΡΠΈ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ.
ΠΠ½ΠΎΠ³Π΄Π° Π±ΡΠ²Π°Π΅Ρ Π·Π°Π΄Π°ΡΠ° ΠΈΠ· ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ±ΠΎΡΠΊΡ ΠΏΠ΅ΡΠ²ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΡ.
ΠΡΠ»ΠΈ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ enumerate() ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΈΠ»ΠΈ ΡΡΠ΅Π· ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΡΠΎ Π½Π°ΠΌ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΡΠΎΠΉΡΠΈ Π²ΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΈ ΠΏΠΎΡΡΠ°ΡΠΈΡΡ Π½Π° ΡΡΠΎ ΡΠΉΠΌΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ².
ΠΡΡ ΠΎΠ΄ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ islice() ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° itertools.
import itertools
first_ten = (itertools.islice((x for x in range(1000000000) if x % 2 == 0), 10))
print(list(first_ten)) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
ΠΠ»Ρ ΡΠΎΠΌΠ½Π΅Π²Π°ΡΡΠΈΡ ΡΡ: ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
import time
import itertools
# ΠΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ΅ Ρ ΠΌΠ°Π»ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
start_time = time.time()
first_ten = (itertools.islice((x for x in range(100) if x % 2 == 0), 10))
print(list(first_ten)) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
elapsed_time = time.time() - start_time
print(elapsed_time) # 3.409385681152344e-05
# ΠΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ΅ Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
start_time = time.time()
first_ten = (itertools.islice((x for x in range(100000000) if x % 2 == 0), 10))
print(list(first_ten)) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
elapsed_time = time.time() - start_time
print(elapsed_time) # 1.1205673217773438e-05
# Π’ΠΎ Π΅ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ΅ range() ΠΌΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ»ΠΈ Π½Π° 6 ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²,
# Π° Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠ°
7. ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΊΠ»Ρ ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ ΡΠΈΠΊΠ»Ρ ΠΈΠ»ΠΈ ΡΠ°ΠΌΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠ²Π»ΡΡΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ. Π’ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ², ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌΠΈ ΠΈ ΡΡΠ΅ΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΎ ΠΏΡΡΠ°Π½ΠΈΡΡ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΡ ΠΏΠΎ-ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ, Π° ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΎΠ±ΡΡΡ ΡΡ Π΅ΠΌΡ.
7.1 ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΊΠ»Ρ
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ.
ΠΠ°ΠΆΠ½ΠΎ! ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅ Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ ΡΠΈΠΊΠ»Π°ΠΌΠΈ Π²Π½ΡΡΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ for in Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ (ΡΠ»Π΅Π²Π°-Π½Π°ΠΏΡΠ°Π²ΠΎ), ΠΊΠ°ΠΊ ΠΈ Π² Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π±Π΅Π· Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°, ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠΈΠΊΠ»Π°Ρ (ΡΠ²Π΅ΡΡ Ρ-Π²Π½ΠΈΠ·)! Π’ΠΎΠΆΠ΅ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ ΠΈ ΠΏΡΠΈ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡΠ±ΠΎΠΊΠΈΡ ΡΡΠΎΠ²Π½ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ.
7.1.1 ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΊΠ»Ρ for Π³Π΄Π΅ ΡΠΈΠΊΠ»Ρ ΠΈΠ΄ΡΡ ΠΏΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌ
ΠΠ±ΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ: [expression for x in iter1 for y in iter2]
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π΄Π²ΡΡ
ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ².
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ»ΠΎΠ²Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΊΠ°ΠΊ ΠΊΠ»ΡΡΠΈ, Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ² Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½ΡΠ»ΡΠΌΠΈ.
rows = 1, 2, 3
cols = 'a', 'b'
my_dict = {(col, row): 0 for row in rows for col in cols}
print(my_dict) # {('a', 1): 0, ('b', 2): 0, ('b', 3): 0, ('b', 1): 0, ('a', 3): 0, ('a', 2): 0}
ΠΠ°Π»ΡΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΡ
my_dict['b', 2] = 10 # Π·Π°Π΄Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΠΎΠΌΡ ΠΊΠ»ΡΡΡ-ΠΊΠΎΡΡΠ΅ΠΆΡ
print(my_dict['b', 2]) # 10 - ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΠΎΠΌΡ ΠΊΠ»ΡΡΡ-ΠΊΠΎΡΡΠ΅ΠΆΡ
Π’ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈ Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ-ΡΠΈΠ»ΡΡΡΠ°ΠΌΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠΈΠΊΠ»Π΅:
rows = 1, 2, 3, -4, -5
cols = 'a', 'b', 'abc'
# ΠΠ»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ ΡΠ°Π·Π½Π΅ΡΠ΅ΠΌ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ
my_dict = {
(col, row): 0 # ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΊΠ»ΡΡΠ°-ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΈ Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ Π·Π½Π°Π΅ΡΠ½ΠΈΡ
for row in rows if row > 0 # Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
for col in cols if len(col) == 1 # Π’ΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅
}
print(my_dict) # {('a', 1): 0, ('b', 2): 0, ('b', 3): 0, ('b', 1): 0, ('a', 3): 0, ('a', 2): 0}
ΠΡΠ° ΠΆΠ΅ Π·Π°Π΄Π°ΡΠ° ΡΠ΅ΡΠ΅Π½Π½Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π°
rows = 1, 2, 3, -4, -5
cols = 'a', 'b', 'abc'
my_dict = {}
for row in rows:
if row > 0:
for col in cols:
if len(col) == 1:
my_dict[col, row] = 0
print(my_dict) # {('a', 1): 0, ('b', 2): 0, ('b', 3): 0, ('b', 1): 0, ('a', 3): 0, ('a', 2): 0}
7.
2))
# ΠΈ ΠΏΠΎΡΠΎΠΌΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ
ΡΠ΅Π»Π΅ΠΉ
7.2 ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΊΠ»Ρ for Π²Π½ΡΡΡΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°, Π½ΠΎ ΠΈ ΡΠ°ΠΌΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ.
Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΡΡΡΠΎΠΈΡΡ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ.
ΠΠ°ΠΆΠ½ΠΎ!: Π ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π²ΡΡΠ΅ Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ ΡΠΈΠΊΠ»Π°ΠΌΠΈ, Π΄Π»Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ², Π²Π½Π°ΡΠ°Π»Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ, ΠΏΠΎΡΠΎΠΌ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ, ΡΠΎ Π΅ΡΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈΠ΄Π΅Ρ ΡΠΏΡΠ°Π²Π°-Π½Π°Π»Π΅Π²ΠΎ.
ΠΠΈΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
7.2.1 β ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π²Π½ΡΡΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° β Π΄Π²ΡΠΌΠ΅ΡΠ½Π°Ρ ΠΈΠ· Π΄Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΡ
ΠΠ±ΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ: [[expression for y in iter2] for x in iter1]
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π΄Π²ΡΡ
ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΡ
ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ².
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΌΠ°ΡΡΠΈΡΡ ΠΈΠ· 5 ΡΡΠΎΠ»Π±ΡΠΎΠ² ΠΈ 3 ΡΡΡΠΎΠΊ ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ Π΅Π΅ Π½ΡΠ»ΡΠΌΠΈ:
w, h = 5, 3 # Π·Π°Π΄Π°Π΄ΠΈΠΌ ΡΠΈΡΠΈΠ½Ρ ΠΈ Π²ΡΡΠΎΡΠΊΡ ΠΌΠ°ΡΡΠΈΡΡ
matrix = [[0 for x in range(w)] for y in range(h)]
print(matrix) # [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΆΠ΅ ΠΌΠ°ΡΡΠΈΡΡ Π΄Π²ΡΠΌΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ ΡΠΈΠΊΠ»Π°ΠΌΠΈ — ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΡ
matrix = []
for y in range(h):
new_row = []
for x in range(w):
new_row.append(0)
matrix.append(new_row)
print(matrix) # [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΌΠ°ΡΡΠΈΡΠ΅ΠΉ ΠΊΠ°ΠΊ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ
# ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌ (ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ - ΠΈΠ½Π΄Π΅ΠΊΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ²)
matrix[0][0] = 1
matrix[1][3] = 3
print(matrix) # [[1, 0, 0, 0, 0], [0, 0, 0, 3, 0], [0, 0, 0, 0, 0]]
# ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌ
x, y = 1, 3
print(matrix[x][y]) # 3
7.2.2 β ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π²Π½ΡΡΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° β Π΄Π²ΡΠΌΠ΅ΡΠ½Π°Ρ ΠΈΠ· Π΄Π²ΡΠΌΠ΅ΡΠ½ΠΎΠΉ
ΠΠ±ΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ: [[expression for y in x] for x in iterator]
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: ΠΠ±Ρ
ΠΎΠ΄ΠΈΠΌ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
, ΡΠΎΡ
ΡΠ°Π½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² Π΄ΡΡΠ³ΡΡ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ.
ΠΠΎΠ·ΡΠΌΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΡΡ:
matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
ΠΠΎΠ·Π²Π΅Π΄Π΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΡΡ Π² ΠΊΠ²Π°Π΄ΡΠ°Ρ:
squared = [[cell**2 for cell in row] for row in matrix]
print(squared) # [[1, 4, 9, 16], [25, 36, 49, 64], [81, 100, 121, 144]]
ΠΡΠ° ΠΆΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π² Π²ΠΈΠ΄Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΠΈΠΊΠ»ΠΎΠ²
squared = []
for row in matrix:
new_row = []
for cell in row:
new_row.append(cell**2)
squared.append(new_row)
print(squared) # [[1, 4, 9, 16], [25, 36, 49, 64], [81, 100, 121, 144]]
ΠΠ±ΠΎΠ±ΡΠΈΠΌ Π²ΡΠ΅ Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ (ΠΏΠΎΠ»Π½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎ ΠΊΠ»ΠΈΠΊΡ):
7.3 β ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΈΡΠ΅ΡΠΈΡΡΡΡΠΈΠΉΡΡ ΠΏΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π»ΡΠ±ΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ Π² ΡΠΈΠΊΠ»Π΅ for, ΡΡΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΏΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ.
ΠΡΠΈ ΡΡΠΎΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² Π΄Π²Π° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ.
ΠΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡ ΠΈ ΡΠ°ΠΊΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ.
ΠΠΎΠΏΡΡΡΠΈΠΌ Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄Π²Π° ΡΠ°ΠΊΠΈΡ
Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠΏΠΈΡΠΊΠΎΠ²:
list_a = [x for x in range(-2, 4)] # Π’Π°ΠΊ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°,
# ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ Π΄ΠΎΡΡΠΎΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ range(-2, 4)
list_b = [x**2 for x in list_a]
Π’ΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΈ Π² ΠΎΠ΄Π½ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΠ² Π²ΠΌΠ΅ΡΡΠΎ list_a Π΅Π³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠΏΠΈΡΠΊΠ°:
list_c = [x**2 for x in [x for x in range(-2, 4)]]
print(list_c) # [4, 1, 0, 1, 4, 9]
UPD ΠΎΡ longclaps: ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΎΡ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ f(x) = u(v(x))
list_c = [t + t ** 2 for t in (x ** 3 + x ** 4 for x in range(-2, 4))]
8. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ range()
ΠΠΎΠ²ΠΎΡΡ ΠΎ ΡΠΏΠΎΡΠΎΠ±Π°Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ, Π½Π΅Π»ΡΠ·Ρ ΠΎΠ±ΠΎΠΉΡΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΡΡΡΡ ΠΈ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ range(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ range():
- ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ range() ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΈΠΊΠ»Π° for Π½ΡΠΆΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΌΠΎΡΡΠΈΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π²ΡΡΠ΅.
- Π Python 3 range() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊ Π½Π΅ΠΌΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ.
- ΠΡΠΏΠΎΠ»Π»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Ρ ΡΠ°ΠΊΠΎΠ²ΡΠΌ Π² ΡΡΠ΅Π·Π°Ρ
(ΠΊΡΠΎΠΌΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ):
- range(stop) β Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ 0 Π΄ΠΎ stop-1;
- range(start, stop) β ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΡ Π²ΡΡΠ΅, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Π½Π°ΡΠ°Π»ΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΎΡ Π½ΡΠ»Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅;
- range(start, stop, step) β ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ°Π³Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ, ΡΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅Π±ΠΎΡ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
- Π Python 2 Π±ΡΠ»ΠΈ 2 ΡΡΠ½ΠΊΡΠΈΠΈ:
- range(…) ΠΊΠΎΡΠΎΡΠ°Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ list(range(…)) Π² Python 3 β ΡΠΎ Π΅ΡΡΡ ΠΎΠ½Π° Π²ΡΠ΄Π°Π²Π°Π»Π° Π½Π΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ, Π° ΡΡΠ°Π·Ρ Π³ΠΎΡΠΎΠ²ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ. Π’ΠΎ Π΅ΡΡΡ Π²ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ Π½Π΅Ρ Π²Π°ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 4 Π°ΠΊΡΡΠ°Π»ΡΠ½Ρ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ Π² Python 2 Π½Π°Π΄ΠΎ ΠΎΡΠ΅Π½Ρ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎ!
- xrange(…) β ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π»Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ range(…) Π² Python 3 ΠΈ ΠΈΠ· 3 Π²Π΅ΡΡΠΈΠΈ Π±ΡΠ»Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½Π°.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
print(list(range(5))) # [0, 1, 2, 3, 4]
print(list(range(-2, 5))) # [-2, -1, 0, 1, 2, 3, 4]
print(list(range(5, -2, -2))) # [5, 3, 1, -1]
9. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ
9.1 ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡ ΠΎΠ΄ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΡΠΏΠΈΡΠΊΠ°ΠΌ
import itertools
l1 = [1,2,3]
l2 = [10,20,30]
result = [l*2 for l in itertools.chain(l1, l2)]
print(result) # [2, 4, 6, 20, 40, 60]
9.2 Π’ΡΠ°Π½ΡΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ
(ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΡΠΎΠΊΠΈ ΠΌΠ΅Π½ΡΡΡΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΠΎ ΡΡΠΎΠ»Π±ΡΠ°ΠΌΠΈ).
ΠΠΎΠ·ΡΠΌΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΡΡ.
matrix = [[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]]
Π‘Π΄Π΅Π»Π°Π΅ΠΌ Π΅Π΅ ΡΡΠ°Π½ΡΠΏΠΎΠ·ΠΈΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ:
transposed = [[row[i] for row in matrix] for i in range(len(matrix[0]))]
print(transposed) # [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
ΠΡΠ° ΠΆΠ΅ ΡΡΠ°Π½ΡΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΈΠΊΠ»Π°
transposed = []
for i in range(len(matrix[0])):
new_row = []
for row in matrix:
new_row. append(row[i])
transposed.append(new_row)
print(transposed) # [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
Π Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ½ΠΎΠΉ ΠΌΠ°Π³ΠΈΠΈ ΠΎΡ @longclaps
transposed = list(map(list, zip(*matrix)))
print(transposed) # [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
9.3 ΠΠ°Π΄Π°ΡΠ° Π²ΡΠ±ΠΎΡΠ° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈΡ Π΄Π½Π΅ΠΉ
# Π€ΠΎΡΠΌΠΈΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ Π΄Π½Π΅ΠΉ ΠΎΡ 1 Π΄ΠΎ 31 Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ
days = [d for d in range(1, 32)]
# ΠΠ΅Π»ΠΈΠΌ ΡΠΏΠΈΡΠΎΠΊ Π΄Π½Π΅ΠΉ Π½Π° Π½Π΅Π΄Π΅Π»ΠΈ
weeks = [days[i:i+7] for i in range(0, len(days), 7)]
print(weeks) # [[1, 2, 3, 4, 5, 6, 7], [8, 9, 10, 11, 12, 13, 14], [15, 16, 17, 18, 19, 20, 21], [22, 23, 24, 25, 26, 27, 28], [29, 30, 31]]
# ΠΡΠ±ΠΈΡΠ°Π΅ΠΌ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΡΠ΅ 5 ΡΠ°Π±ΠΎΡΠΈΡ
Π΄Π½Π΅ΠΉ, ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅
work_weeks = [week[0:5] for week in weeks]
print(work_weeks) # [[1, 2, 3, 4, 5], [8, 9, 10, 11, 12], [15, 16, 17, 18, 19], [22, 23, 24, 25, 26], [29, 30, 31]]
# ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ Π΄Π½Π΅ΠΉ - ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ
wdays = [item for sublist in work_weeks for item in sublist]
print(wdays) # [1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 29, 30, 31]
ΠΠΎΠΆΠ½ΠΎ ΡΠ±ΡΠ°ΡΡ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ·ΡΡΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ
# Π€ΠΎΡΠΌΠΈΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ Π΄Π½Π΅ΠΉ ΠΎΡ 1 Π΄ΠΎ 31 Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ
days = [d for d in range(1, 32)]
wdays6 = [wd for (i, wd) in enumerate(days, 1) if i % 7 != 0] # Π£Π΄Π°Π»ΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ 7-ΠΉ Π΄Π΅Π½Ρ
# Π£Π΄Π°Π»ΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ 6 Π΄Π΅Π½Ρ Π² ΠΎΡΡΠ°Π²ΡΠΈΡ
ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ:
wdays5 = [wd for (i, wd) in enumerate(wdays6, 1) if i % 6 != 0]
print(wdays5)
# [1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 29, 30, 31]
# ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΄Π²Π° ΡΡΠ»ΠΎΠ²ΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΌ if Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ,
# ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ 12-ΠΉ Π΄Π΅Π½Ρ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° 6, Π½ΠΎ Π½Π΅ Π²ΡΠΏΠ°Π΄Π°Π΅Ρ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ 2 Π΄Π½Ρ Π½Π΅Π΄Π΅Π»ΠΈ!
# Π¨ΠΈΠΊΠ°ΡΠ½ΠΎΠ΅ ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ @sophist:
days = [d + 1 for d in range(31) if d % 7 < 5]
10. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2. Π‘ΡΡΠ»ΠΊΠΈ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
- Π₯ΠΎΡΠΎΡΠ°Ρ Π°Π½Π³Π»ΠΎΡΠ·ΡΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ Ρ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡΠΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ ΠΈΠ· ΡΡΠ°ΡΡΠΈ:
- ΠΡΠ»ΠΈ Ρ ΠΠ°Ρ Π΅ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ½ΡΠΌΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ Π°Π½Π³Π»ΠΎΡΠ·ΡΡΠ½ΡΡ ΡΡΠ°ΡΡΡ, Π³Π΄Π΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΡΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ½ΡΠΌΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΡΠ°Π±ΠΎΡΠΎΠΉ Ρ SQL ΠΈ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ Excel. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊ:
squared_evens = [n ** 2 # SELECT for n in numbers # FROM if n % 2 == 0] # WHERE
- UPD ΠΎΡ fireSparrow: Π‘ΡΡΠ΅ΡΡΠ²ΡΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Python β PythonQL, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ Π² ΡΡΠΈΠ»Π΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ.
- ΠΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
- ΠΡΠ»ΠΈ ΡΡΠ΅Π±ΡΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΠΎ ΡΠ΅ΠΌΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (ΡΡΠ°ΡΡΡ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ).
ΠΡΠΈΠ³Π»Π°ΡΠ°Ρ ΠΊ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ:
- ΠΡΠ»ΠΈ Ρ Π³Π΄Π΅-ΡΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠ» Π½Π΅ΡΠΎΡΠ½ΠΎΡΡΡ ΠΈΠ»ΠΈ Π½Π΅ ΡΡΡΠ» ΡΡΠΎ-ΡΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ β ΠΏΠΈΡΠΈΡΠ΅ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ , Π²Π°ΠΆΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ·ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ΡΡΠ°ΡΡΡ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π²Π°ΡΠ΅Π³ΠΎ Π°Π²ΡΠΎΡΡΡΠ²Π°.
- ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π½Π΅ ΠΏΠΎΠ½ΡΡΠ½Ρ ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠΎΡΠ½Π΅Π½ΠΈΠ΅ β ΠΏΠΈΡΠΈΡΠ΅ Π²Π°ΡΠΈ Π²ΠΎΠΏΡΠΎΡΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ β ΠΈΠ»ΠΈ Ρ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ Π΄Π°Π΄ΡΡ ΠΎΡΠ²Π΅Ρ, Π° Π΄Π΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ Ρ ΠΎΡΠ²Π΅ΡΠ°ΠΌΠΈ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ·ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ΡΡΠ°ΡΡΡ.
Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΠΏΡΠΎΡΡΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΠΎΠ²Π°ΡΡ Python
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅Π³ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ.
>>> d = {'lol': {'12': '3', '35':''}, 'w': {'12': '3', '35':''}}
>>> def iteritems(s):
... keys = s.keys()
... for key in keys:
... yield key, s[key]
...
>>> for k, v in iteritems(d):
... print k, v
...
w {'12': '3', '35': ''}
lol {'12': '3', '35': ''}
ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ. ΠΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ iteritems
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ·Π²Π°ΡΡ s.keys()
, ΡΡΠΎΠ±Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΊΠ»ΡΡΠΈ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅. ΠΡΠ»ΠΈ ΡΠ»ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ (Π±ΠΎΠ»Π΅Π΅ 100 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²), ΡΡΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π΄Π»Ρ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ»ΠΎΠ²Π°ΡΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ, Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° ΠΊΠ»ΡΡΠ΅ΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ.
ΠΠΎΠΆΠ½ΠΎ Π²ΠΎΠ·ΡΠ°Π·ΠΈΡΡ: ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ»ΡΡΠ΅ΠΉ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°ΡΡΠΈΡ ΠΊΠ»ΡΡΠΈ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ? ΠΠ»ΠΈ Π»ΡΡΡΠ΅ (ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ, Π½ΠΎ ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΎΠ΅ Π΄Π΅Π»ΠΎ).
python
dictionary
generator
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
ΠΡΡΠΎΡΠ½ΠΈΠΊ
CppLearner Β Β
04 ΡΠ΅Π½ΡΡΠ±ΡΡ 2012 Π² 19:56
2 ΠΎΡΠ²Π΅ΡΠ°
- Python Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ²
ΠΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± Π² Python ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ new_list = [x for x in items] (ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ°) Π΄Π»Ρ ΡΠ»ΠΎΠ²Π°ΡΡ? Π§ΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ new_dict = [x=>y for x, y in items.iteritems()] ΡΠ°ΠΊ ΡΡΠΎ Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ {x: y}
- ΠΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π² python
Π― ΠΏΠΈΡΡ ΠΏΡΠΎΡΡΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π»ΡΠ±ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π² ΡΡΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π² Python Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΏΡΠΎΡΡΡΡ ΡΠΈΡΠ΅Π» ΠΠΎΡ ΠΌΠΎΠΉ ΠΊΠΎΠ΄ def sequence(): i = 1 while True: i += 2 yield i def prime_generator(n): i = 2 it = sequence() while i < n: it= filter(lambda x: x % i, it) i = next(it) yield i…
11
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ .iterkeys()
Π² python 2.x; Π² python 3.x .keys()
— ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ , Π° Π½Π΅ Π½ΠΎΠ²ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ. Π python 2.7 Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ viewkeys()
, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ .iteritems()
, Π΄Π΅Π»Π°ΡΡΠΈΠΉ Π²Π°Ρ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΡΠΌ. π Π’Π΅ ΠΆΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ Π·Π΄Π΅ΡΡ Π΄Π»Ρ python 3.x ΠΈ 2.7, ΡΠΌ. ΠΏΡΠΈΠ»Π°Π³Π°Π΅ΠΌΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Martijn Pieters Β Β
04 ΡΠ΅Π½ΡΡΠ±ΡΡ 2012 Π² 19:57
3
ΠΡ ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ°Π΅ΡΠ΅ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄ Π·Π°Π½ΠΎΠ²ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π² Python 2.x ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅:
for k, v in d.iteritems():
print k, v
Π Python 3.x ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ:
for k, v in d.items():
print(k, v)
ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ .items()
Π² ΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ .
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
martineau Β Β
05 ΡΠ΅Π½ΡΡΠ±ΡΡ 2012 Π² 01:42
ΠΠΎΡ ΠΎΠΆΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ:
ΠΡΠΎΡΡΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΏΡΠΎΡΡΡΡ ΡΠΈΡΠ΅Π» Π² Python
ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΌΠ½Π΅, ΡΡΠΎ Ρ Π΄Π΅Π»Π°Ρ Π½Π΅ ΡΠ°ΠΊ Ρ ΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ? Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ°ΡΡ ‘count’. ΠΠ½Π΅ ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ΅Π½ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΏΡΠΎΡΡΡΡ ΡΠΈΡΠ΅Π» (Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΠ³ΠΎ). import math…
Π½ΡΠΆΠ΅Π½ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠ»ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ
Π― Π΄Π΅Π»Π°Ρ ΠΈΠ³ΡΡ ΠΏΠ°Π»Π°ΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠ½Π΅ Π½ΡΠΆΠ΅Π½ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠ»ΠΎΠ². ΠΠΎΡ ΡΠ΅Π»Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΊΠ°Π·Π°Π», ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΡΠΊΠ² ΠΎΠ½ Ρ ΠΎΡΠ΅Ρ Π² ΡΠ»ΠΎΠ²Π΅, ΠΈ Π²ΡΠ²Π΅Π» ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π±ΡΠΊΠ². Π―…
Python ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ
Π― ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» (ΠΏΡΠΎΡΡΠΎΠΉ) Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ python. Π’Π΅ΠΏΠ΅ΡΡ Ρ Ρ ΠΎΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ (ΠΈΠ· Π½Π΅Π³ΠΎ), ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ. def gen(x): # Generate the interval [x, 10] if x <= 10:…
Python Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ²
ΠΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± Π² Python ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ new_list = [x for x in items] (ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ°) Π΄Π»Ρ ΡΠ»ΠΎΠ²Π°ΡΡ? Π§ΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ new_dict = [x=>y for x, y in items.iteritems()] ΡΠ°ΠΊ ΡΡΠΎ Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ {x: y}
ΠΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π² python
Π― ΠΏΠΈΡΡ ΠΏΡΠΎΡΡΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π»ΡΠ±ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π² ΡΡΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π² Python Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΏΡΠΎΡΡΡΡ ΡΠΈΡΠ΅Π» ΠΠΎΡ ΠΌΠΎΠΉ ΠΊΠΎΠ΄ def sequence(): i = 1 while True: i += 2 yield i def…
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠ»Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ Π² Swift Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ²
SWIFT / IOS / Π‘Π»ΠΎΠ²Π°ΡΡ / ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ / ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π― ΡΠΎΠ·Π΄Π°Π» ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ blogpost http://timekl.com/blog/2014/06/02/learning-swift-ordered-dictionaries / ΠΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² Π±Π»ΠΎΠ³Π΅,…
Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Python
Ρ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠ°ΠΉΡΠΎΠ², ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ. import string from random import * characters = string.ascii_letters + string.punctuation + string.digits password =…
Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΏΠΈΠΉ Π² python
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ python d = { ‘facets’:{‘style’:collared,’pocket’:yes}, ‘vars’:[ {‘facets’:{‘color’:blue, ‘size’:XL}}, {‘facets’:{‘color’:blue, ‘size’:L}} ] } ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΠΊΠ»ΡΡΠ΅ ‘vars’ Π΅ΡΡΡ 2…
ΠΠ°ΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ Π² python (Π½Π΅ ΠΏΡΠΎΡΡΠΎΠΉ, Π° Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ)?
Π― ΠΏΡΠΎΡΡΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π» ΡΠ»ΠΎΠ²Π°ΡΡ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ python(ΠΆΠ΅ΡΡΠΊΠΎ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π² ΠΊΠΎΠ΄Π΅ python). a = {‘b’:{‘d’:3, ‘c’:4}, ‘a’:2} Π½ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠ΅Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ…
Python ΠΏΡΠΎΡΡΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π·Π²ΡΠΊΠΎΠ²ΡΡ ΡΠΎΠ½ΠΎΠ²
ΠΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ (ΠΏΡΠΎΡΡΠΎΠΉ) Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠΎΠ½ΠΎΠ² python Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡΠ΅, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΌ Π½Π° raspi Ρ Π·Π²ΡΠΊΠΎΠ²ΠΎΠΉ ΠΊΠ°ΡΡΠΎΠΉ USB. ΠΠ° Π»Π΅ΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅/Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ½Π° ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΎΡΡ….
python — ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΠΎΠ²Π°ΡΡ?
Π‘Π΄Π΅Π»Π°Π» ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΈΠ½Π°ΡΠ΅.
import json
import urllib
import os
import copy
import ast
import operator
import requests
DISTANCE_MATRIX_URL = "http://maps.googleapis.com/maps/api/distancematrix/"
class DM(object):
def __init__(self, api_key=None, url=DISTANCE_MATRIX_URL):
self.api_key = api_key
self.url = url
self.response = ''
self.dict_response = {'distance': {'value': {}, 'text': {}, },
'duration': {'value': {}, 'text': {}, },
}
self.origins = ''
self.destinations = ''
def make_request(self, origins, destinations, mode='driving'):
data = {}
self.origins = [origins] if type(origins) == str else origins
self.destinations = [destinations] if type(destinations) == str else destinations
data['origins'] = origins if type(origins) == str else '|'.join(origins)
data['destinations'] = destinations if type(destinations) == str else '|'.join(destinations)
data['mode'] = mode
url_values = urllib.parse.urlencode(data)
output_format = 'json'
url = os.path.join(self.url, output_format)
self.response = ast.literal_eval((urllib.request.urlopen(url + '?' + url_values).read()).decode("utf-8"))['rows']
self.dict_response = {'distance': {'value': {}, 'text': {}, }, # Reset temporary dict
'duration': {'value': {}, 'text': {}, },
}
def __get_response_element_data(self, key1, key2):
if not self. dict_response[key1][key2]:
l = self.response
for i, orig in enumerate(self.origins):
self.dict_response[key1][key2][orig] = {}
for j, dest in enumerate(self.destinations):
if l[i]['elements'][j]['status'] == 'OK':
self.dict_response[key1][key2][orig][dest] = l[i]['elements'][j][key1][key2]
else:
self.dict_response[key1][key2][orig][dest] = l[i]['elements'][j]['status']
return self.dict_response[key1][key2]
def get_distance_values(self):
return self.__get_response_element_data('distance', 'value')
def get_distance_texts(self):
return self.__get_response_element_data('distance', 'text')
def get_time_values(self):
return self.__get_response_element_data('duration', 'value')
def get_time_texts(self):
return self.__get_response_element_data('duration', 'text')
def get_closest_points(self, max_distance=None, num=10, origin_index=0, origin_raw=None):
if not self.dict_response['distance']['value']:
self.get_distance_values()
if origin_raw:
origin = copy.deepcopy(self.dict_response['distance']['value'][origin_raw])
else:
origin = copy.deepcopy(self.dict_response['distance']['value'][self.origins[origin_index]])
tmp_origin = copy.deepcopy(origin)
if max_distance:
for k, v in tmp_origin.iteritems():
if v > max_distance:
del(origin[k])
if origin:
return sorted(origin.iteritems(), key=operator.itemgetter(1))[:num]
Π Π°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠΎ ΡΠ°ΠΊ:
a = DM()
a.make_request(['Minsk'], ['Moscow'])
# ΠΡΠ΄Π°ΡΠΌ ΠΎΠ΄ΠΈΠ½ origin
(ΡΠΎΡΠΊΠ°, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠΈΡΠ°Π΅ΠΌ) ΠΈ ΠΎΠ΄ΠΈΠ½ destination
(ΠΏΡΠ½ΠΊΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ).
ΠΡΠ»ΠΈ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ (ΠΎΠ½ ΠΌΠ΅Π½Π΅Π΅ ΡΠΎΡΠ½ΡΠΉ), ΡΠΎ Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ°ΠΊ:
a. get_distance_texts()
ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
{'Minsk': {'Moscow': '717 km'}}
ΠΡΠ»ΠΈ ΠΆΠ΅, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ΄Π½ΠΈΠΌ origin
ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ destination
, ΡΠΎ Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ°ΠΊ:
a.make_request(['Minsk'], ['Moscow', 'Sankt-Peterburg'])
a.get_distance_texts()
{'Minsk': {'Moscow': '717 km', 'Sankt-Peterburg': '795 km'}}
Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ½ΠΎΠ΅. ΠΠΎ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΠΎΡΠΊΠ²ΠΎΠΉ ΠΈ Π‘ΠΠ± Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΡΠΎΡΠ½Π°Ρ.
ΠΠΎΡ ΡΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΌΠ΅ΡΡΠ°Ρ :
a.get_distance_values()
{'Minsk': {'Moscow': 717038, 'Sankt-Peterburg': 795481}}
Π Π²ΠΎΡ ΡΠ°ΠΊ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ duration
a.get_time_values()
{'Minsk': {'Moscow': 28751, 'Sankt-Peterburg': 36415}}
Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ:
a.get_time_texts()
{'Minsk': {'Moscow': '7 hours 59 mins', 'Sankt-Peterburg': '10 hours 7 mins'}}
ΠΡΠ»ΠΈ ΠΆΠ΅ Π½Π°Π΄ΠΎ ΡΠ·Π½Π°ΡΡ ΠΏΡΠΎ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎΠΈΠΌΠΈ origins
ΠΈ destinations
, ΡΠΎ ΡΠ°ΠΊ:
a.make_request(['Minsk', 'Moscow'], ['Moscow', 'Varshava'])
a.get_distance_texts()
{'Minsk': {'Moscow': '717 km', 'Varshava': '554 km'}, 'Moscow': {'Moscow': '1 m', 'Varshava': '1,264 km'}}
Π Π²ΠΎΡ ΡΠ°ΠΊ:
a.get_closest_points()
ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ· ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ, Π³Π΄Π΅ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ — ΠΏΡΠ½ΠΊΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π° Π²ΡΠΎΡΠΎΠΉ — ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ origin
[('Varshava', 553521), ('Moscow', 717038)]
ΠΠΎΠΊΠΎΡΡΠ΅ΠΌ Python — ΡΡΠΎΠΊΠΈ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ : ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΠΈ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ
Π‘Π΅ΠΉΡΠ°Ρ 2 ΡΠ°ΡΠ° Β Π½ΠΎΡΠΈ, Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Python, Π½ΠΎ ΠΏΠΈΡΡ ΡΡΠΎΡ ΠΏΠΎΡΡ… Π½Π°Π΄Π΅ΡΡΡ ΠΊΠΎΠΌΡ ΡΠΎ ΠΎΠ½ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ.
>>> {x * x for x in range(10)} Β Β Β Β # ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ
{0, 1, 4, 81, 64, 9, 16, 49, 25, 36}
>>> set(x * x for x in range(10)) # ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΈΠΏΠ°
{0, 1, 4, 81, 64, 9, 16, 49, 25, 36}
>>> {x: x * x for x in range(10)}
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
>>> dict((x, x * x) for x in range(10))
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
ΠΡ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π²ΡΡΡΠ½ΡΡ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Π° Π΄Π²ΡΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°ΠΌ:
>>> res = set()
>>> for x in range(10): Β # ΠΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²
… Β Β res.add(x * x)
…
>>> res
{0, 1, 4, 81, 64, 9, 16, 49, 25, 36}
————————————-
>>> res = {}
>>> for x in range(10): Β # ΠΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ
… Β Β res[x] = x * x
…
>>> res
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΊΠ»ΡΡΠΈ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ,Β
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ:
>>> G = ((x, x * x) for x in range(10))
>>> next(G)
(0, 0)
>>> next(G)
(1, 1)
Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΒ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΠΈ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ
ΠΠ°ΠΊ Β ΠΈ Β Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ Β ΡΠΏΠΈΡΠΊΠΎΠ², Β Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ Β ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΠΈ Β ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ Β ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ if, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ Β ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²ΡΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½
ΡΡ, β ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΡ ΡΠ΅ΡΠ½ΡΡ Β
ΡΠΈΡΠ΅Π» (ΡΠΎ Π΅ΡΡΡ ΡΠΈΡΠ΅Π», ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»ΡΡΡΡ Π½Π° 2 Π±Π΅Π· ΠΎΡΡΠ°ΡΠΊΠ°) Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅:
>>> [x * x for x in range(10) if x % 2 == 0] # Π‘ΠΏΠΈΡΠΊΠΈ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Ρ
[0, 4, 16, 36, 64]
>>> {x * x for x in range(10) if x % 2 == 0} # Π ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° — Π½Π΅Ρ
{0, 16, 4, 64, 36}
>>> {x: x * x for x in range(10) if x % 2 == 0}# ΠΠ°ΠΊ ΠΈ ΠΊΠ»ΡΡΠΈ
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β # ΡΠ»ΠΎΠ²Π°ΡΡ
{0: 0, 8: 64, 2: 4, 4: 16, 6: 36}
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΊΠ»Ρ for ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌΠΈ, Ρ ΠΎΡΡ Π½Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠ΅Β ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ , Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΠΎΠ², ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ»ΠΎΠΆΠ½ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²:
>>> [x + y for x in [1, 2, 3] for y in [4, 5, 6]] # Π‘ΠΏΠΈΡΠΊΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΡ
[5, 6, 7, 6, 7, 8, 7, 8, 9]
>>> {x + y for x in [1, 2, 3] for y in [4, 5, 6]} # Π ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° — Π½Π΅Ρ
{8, 9, 5, 6, 7}
>>> {x: y for x in [1, 2, 3] for y in [4, 5, 6]} # ΠΠ°ΠΊ ΠΈ ΠΊΠ»ΡΡΠΈ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ
{1: 6, 2: 6, 3: 6}
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°ΠΌ ΡΠΏΠΈΡΠΊΠΎΠ², Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΠΈ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ ΡΠΏΠΎΡΠΎΠ±Π½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌ Π»ΡΠ±ΡΡ
ΡΠΈΠΏΠΎΠ² β ΡΠΏΠΈΡΠΊΠ°ΠΌ, ΡΡΡΠΎΠΊΠ°ΠΌ, ΡΠ°ΠΉΠ»Π°ΠΌ,Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌ ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ΅Π» ΠΈ Π»ΡΠ±ΡΠΌ Π΄ΡΡΠ³ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ:
>>> {x + y for x in βabβ for y in βcdβ}
{βbdβ, βacβ, βadβ, βbcβ}
>>> {x + y: (ord(x), ord(y)) for x in βabβ for y in βcdβ}
{βbdβ: (98, 100), βacβ: (97, 99), βadβ: (97, 100), βbcβ: (98, 99)}
>>> {k * 2 for k in [βspamβ, βhamβ, βsausageβ] if k[0] == βsβ}
{βsausagesausageβ, βspamspamβ}
>>> {k. upper(): k * 2 for k in [βspamβ, βhamβ, βsausageβ] if k[0] == βsβ}
{βSAUSAGEβ: βsausagesausageβ, βSPAMβ: βspamspamβ}
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΠ»ΠΎΠ², Π΅ΡΠ»ΠΈ ΡΡ Π½Π΅ Π±ΠΎΡ Π΄Π»Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ ΡΠΎΠ³Π΄Π° ΡΠΈΡΠ°ΡΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ!!!
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python, Python, Python3.0, Python3, Python3.x, Python3.1, Python3.2, Python3.3, Python 3.x, Python, Python 3.0, Python 3, Python 3.1, Python 3.2, Python 3.3, Python 3.3.1
Python. Π Π°Π±ΠΎΡΠ° ΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΡΠΌΠΈ. ΠΠ±Ρ ΠΎΠ΄. ΠΠ΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠΈΠΌΠ΅ΡΡ
Π Π°Π±ΠΎΡΠ° ΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΡΠΌΠΈ. ΠΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ list(), zip(). ΠΠ±Ρ ΠΎΠ΄ ΡΠ»ΠΎΠ²Π°ΡΡ. ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ. Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°. Π‘ΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΠΎΠΈΡΠΊ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΡΡΡΠ°Ρ :
1. ΠΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ list(). ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΡΠΌΠΈ
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ list() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΏΠΈΡΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΠΏΠ°Ρ (ΠΊΠ»ΡΡ:Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅). Π§ΡΠΎΠ±Ρ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ list() Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²:
- ΠΌΠ΅ΡΠΎΠ΄ values() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ;
- ΠΌΠ΅ΡΠΎΠ΄ keys() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠ»ΡΡΠ΅ΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ;
- ΠΌΠ΅ΡΠΎΠ΄ items() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°Ρ (ΠΊΠ»ΡΡ:Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅).
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² values(), keys(), items() ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π·Π΄Π΅ΡΡ.
ΠΡΠΈΠΌΠ΅Ρ.
# Π Π°Π±ΠΎΡΠ° ΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΡΠΌΠΈ # ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ list() # ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ Figures = { 1:'Rectangle', 2:'Triangle', 3:'Circle'} # 1. ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ values = list(Figures.values()) print(values) # ['Rectangle', 'Triangle', 'Circle'] # 2. ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠ»ΡΡΠ΅ΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ keys = list(Figures.keys()) # keys = [1, 2, 3, 4] print(keys) # 3. ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°Ρ (ΠΊΠ»ΡΡ:Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅) pairs = list(Figures.items()) print(pairs) # [(1,'Rectangle'),(2,'Triangle'),(3,'Circle')]
Β β
2.
ΠΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ zip(). ΠΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ
Π€ΡΠ½ΠΊΡΠΈΡ zip() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
ΠΡΠΈΠΌΠ΅Ρ.
# Π‘Π»ΠΎΠ²Π°ΡΠΈ. Π€ΡΠ½ΠΊΡΠΈΡ zip() # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠΎΠ² ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Numbers = dict(zip([1, 2, 3], ['One', 'Two', 'Three'])) print(Numbers) # {1: 'One', 2: 'Two', 3: 'Three'}
Β β
3. ΠΠ±Ρ ΠΎΠ΄ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° for. ΠΡΠΈΠΌΠ΅Ρ
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΡΡΡ ΠΎΠ±Ρ ΠΎΠ΄ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° for ΠΈ Π²ΡΠ²ΠΎΠ΄ Π²ΡΠ΅Ρ ΠΏΠ°Ρ (ΠΊΠ»ΡΡ:Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅).
ΠΡΠΈΠΌΠ΅Ρ.
# Π Π°Π±ΠΎΡΠ° ΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΡΠΌΠΈ # ΠΠ±Ρ ΠΎΠ΄ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° for # ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ Months = { 1:'Jan', 2:'Feb', 3:'Mar', 4:'Apr', 5:'May', 6:'Jun', 7:'Jul', 8:'Aug', 9:'Sep', 10:'Oct', 11:'Nov', 12:'Dec' } # Π¦ΠΈΠΊΠ» for ΠΎΠ±Ρ ΠΎΠ΄Π° ΡΠ»ΠΎΠ²Π°ΡΡ # Π² ΡΠΈΠΊΠ»Π΅ mn - ΠΊΠ»ΡΡ, Months[mn] - Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ for mn in Months: print(mn, ': ', Months[mn])
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
1 : Jan 2 : Feb 3 : Mar 4 : Apr 5 : May 6 : Jun 7 : Jul 8 : Aug 9 : Sep 10 : Oct 11 : Nov 12 : Dec
Β β
4. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ Π΄Π»Ρ ΡΠ°Π·ΡΠ΅ΠΆΠ΅Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈΠΌΠ΅Ρ
Π‘Π»ΠΎΠ²Π°ΡΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°Π·ΡΠ΅ΠΆΠ΅Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠ°ΠΊΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠΌΠ΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ΅ΠΆΠ΅Π½Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ ΡΠΈΡΠ΅Π» Π² Π²ΠΈΠ΄Π΅ ΡΠ»ΠΎΠ²Π°ΡΡ. ΠΡΡΡΡ Π·Π°Π΄Π°Π½Π° ΠΌΠ°ΡΡΠΈΡΠ°
,
ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ»ΠΎΠ²Π°ΡΡ. Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
# Π‘Π»ΠΎΠ²Π°ΡΠΈ. ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ΅ΠΆΠ΅Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ # ΠΠ°ΡΡΠΈΡΠ° M M = {} # ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΡΡΠΎΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ M[(0, 1)] = 1 # ΠΊΠ»ΡΡ=(0,1): Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅=1 M[(1, 2)] = 3 # ΠΏΠ°ΡΠ° (ΠΊΠ»ΡΡ:Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅) = ((1,2):3) M[(2, 0)] = 2 # ΠΏΠ°ΡΠ° (ΠΊΠ»ΡΡ:Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅) = ((2,0):2) print(M) # {(0, 1): 1, (1, 2): 3, (2, 0): 2}
Π Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π½Π΅ΠΏΡΡΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Π’Π°ΠΊ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° (2, 0) ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ 2, ΡΡΠΎΠ»Π±Π΅Ρ 0.
Β β
5. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ. ΠΡΠΈΠΌΠ΅ΡΡ
Π‘Π»ΠΎΠ²Π°ΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΠΆΠ΅ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ²:
- ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ;
- ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°;
- ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠΎΠ² ΠΊΠ»ΡΡΠ΅ΠΉ;
- ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ zip().
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ².
ΠΡΠΈΠΌΠ΅Ρ.
# Π‘Π»ΠΎΠ²Π°ΡΠΈ. ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ # 1. Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ # ΠΠ΅Π½Π΅ΡΠΈΡΡΡΡΡΡ ΠΏΠ°ΡΡ (ΠΊΠ»ΡΡ: Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅) = (i: 5*i) A = { i: i*5 for i in [10,20,30,40] } print(A) # {10: 50, 20: 100, 30: 150, 40: 200} # 2. Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΠΎ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ (ΡΡΡΠΎΠΊΠ΅) s = 'Hello' B = { sym: sym*3 for sym in s } # ΠΏΠ°ΡΠ° (sym:sym*3) print(B) # {'H': 'HHH', 'e': 'eee', 'l': 'lll', 'o': 'ooo'} numbers = [ 15, 25, 30 ] C = { num: str(num) for num in numbers } print(C) # {15: '15', 25: '25', 30: '30'} # 3. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΊΠ»ΡΡΠ΅ΠΉ # ΠΠ°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠ»ΡΡΠ΅ΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, Π²Π²Π΅Π΄Π΅Π½Π½ΡΠΌ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ value = int(input('Input value: ')) listKeys = [ 1, 2, 3, 4 ] D = { lk:value for lk in listKeys } print(D) # ΠΠ°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠ»ΡΡΠ΅ΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ None value = None listKeys = [ 'a', 'b', 'c' ] E = { lk:value for lk in listKeys } print(E) # {'a': None, 'b': None, 'c': None} # 4. Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ zip() WMonths = [ 'Dec', 'Jan', 'Feb'] NumMonths = [ 12, 1, 2 ] F = { nm:wm for (nm,wm) in zip(NumMonths,WMonths) } print(F) # {12: 'Dec', 1: 'Jan', 2: 'Feb'}
Β β
6. Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ»ΠΎΠ²Π°ΡΡ. ΠΡΠΈΠΌΠ΅Ρ
ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΠΊΠ»ΡΡΠΈ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. .
# Π‘Π»ΠΎΠ²Π°ΡΠΈ. ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² # ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ A = { 1:'One', 2:'Two', 3:'Three', 4:'Four', 5:'Five' } # ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ², # ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ # 1. ΠΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉ keys = A.keys() # keys = dict_keys([1, 2, 3, 4, 5]) # 2. Π‘ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΈΡΠ»ΠΎ 2 B = keys & {2} # B = {2} - Π½ΠΎΠ²ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ # 3. Π‘ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠ»ΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΈΡΠ»Π° 3, 5 C = keys {3, 5} # {1, 2, 4} # 4. ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΠΊΠ»ΡΡΠ΅ΠΉ ΡΠΈΡΠ»Π° 8, 11 D = keys | { 8, 11 } # D = {1, 2, 3, 4, 5, 8, 11}
Β β
Π‘Π²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠ΅ΠΌΡ
Β β
Β
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ | Python
Π Python ΠΏΡΠΎΡΡΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² —Β ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΠΈ. ΠΠ΄Π΅ΡΡ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° Ρ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ. Π’ΠΎ, ΡΡΠΎ ΠΌΡ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ Π½Π°Π·ΡΠ²Π°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠΌΒ ΡΠΏΠΈΡΠΊΠ°, Π² Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ Π·Π²ΡΡΠΈΡ ΠΊΠ°ΠΊ «list comprehension» ΠΈ ΠΊ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ.
Π‘Π»ΠΎΠ²ΠΎ «comprehension» (ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΎΡΠΌΡΡΠ»Π΅Π½ΠΈΠ΅) ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π±Ρ Π½Π΅ Π² ΡΠ΅ΠΌΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π΅ Π½Π° ΡΡΡΡΠΊΠΈΠΉ. ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ «ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ°». ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ «Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠΏΠΈΡΠΊΠ°», ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ ΠΏΠΎΠ΄ ΡΠ»ΠΎΠ²ΠΎΠΌ «Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ» Π½Π΅ ΠΎΠ±ΡΠ΅ΠΊΡ, Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ, ΡΠΎ Π΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π΅Ρ, ΡΠΏΠΈΡΠΎΠΊ.
Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΎΠ±ΡΠ΅ΠΊΡΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ — ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ-ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. Π ΡΠΈΠΊΠ»Π΅ for ΠΎΠ½ΠΈΒ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΡΠΏΠΈΡΠΊΠΈ, ΡΠ»ΠΎΠ²Π°ΡΠΈ, ΡΡΡΠΎΠΊΠΈ ΠΈ Π΄Ρ. ΠΠ΄Π½Π°ΠΊΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ __next__(), Π° Π·Π½Π°ΡΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ².Β
ΠΡΡΡΡΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΡ Β ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠ²Π»ΡΡΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ — generator expressions. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉΒ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠΏΠΈΡΠΊΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ΅ΡΠ²ΡΠΉ — ΠΎΠ±ΡΠ΅ΠΊΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ. ΠΡΠΎΡΠΎΠΉ — ΡΠΏΠΈΡΠΎΠΊ.
Π‘Π½Π°ΡΠ°Π»Π° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠΏΠΈΡΠΊΠΎΠ², ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ²ΡΠΊΠ½ΡΡΡ ΠΊ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠΏΠΈΡΠΊΠΎΠ²
Π Python Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ Π±ΡΡΡΡΠΎ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡ ΡΠΏΠΈΡΠΊΠΈ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ°, Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΡΡΠΎ-ΡΠΎ Π΄Π΅Π»Π°ΡΡ Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π½ΡΠΌΠΈ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊΒ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΡ Β Π² ΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠΏΠΈΡΠΎΠΊ.Β
>>> a = [1, 2, 3] >>> b = [i+10 for i in a] >>> a [1, 2, 3] >>> b [11, 12, 13]
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠΌ ΡΠΏΠΈΡΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ [i+10 for i in a]
. ΠΠ΄Π΅ΡΡ a — ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ. ΠΠ· Π½Π΅Π³ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΠΈΠΊΠ»Π΅ for. ΠΠ΅ΡΠ΅Π΄ for ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡΒ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π°Π΄ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄ Π΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π² Π½ΠΎΠ²ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ, Π° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ. ΠΡΠ»ΠΈ Π½Π°Π΄ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, Π΅ΠΉ Π½Π°Π΄ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅:
>>> a = [1, 2, 3] >>> a = [i+10 for i in a] >>> a [11, 12, 13]
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΡΠ°Π·ΡΡΠ΄Ρ «ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°Ρ Π°ΡΠ°» ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π±Π΅Π· Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ:
>>> for index, value in enumerate(a): ... a[index] = value + 10 ... >>> a [11, 12, 13]
ΠΡΠ»ΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡΒ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΡΠΏΠΈΡΠΎΠΊ, Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ Π½Π°Π΄ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ:
>>> ls0 = [1,2,3] >>> ls1 = ls0 >>> ls1.append(4) >>> ls0 [1, 2, 3, 4] >>> ls1 = [i+1 for i in ls1] >>> ls1 [2, 3, 4, 5] >>> ls0 [1, 2, 3, 4]
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΡΠ΅ΡΠ΅Π· ΠΎΠ΄Π½Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, Π±ΡΠ΄ΡΡ Π²ΠΈΠ΄Π½Ρ ΡΠ΅ΡΠ΅Π· Π΄ΡΡΠ³ΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠΌ, ΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅Β Π±ΡΠ΄ΡΡΒ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠ°Π·Π½ΡΠ΅Β ΡΠΏΠΈΡΠΊΠΈ.
ΠΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΠΌΡΠΌ Π² ΡΠΈΠΊΠ»Π΅ for ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌΒ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΈΡΠΎΠΊ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅ Π² ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ ΡΡΡΠΎΠΊΠΈ ΡΠ°ΠΉΠ»Π°.
>>> lines = [line.strip() for line in open('text.txt')] >>> lines ['one', 'two', 'three']
Π Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠΏΠΈΡΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠ΅:
>>> from random import randint >>> nums = [randint(10, 20) for i in range(10)] >>> nums [18, 17, 11, 11, 15, 18, 11, 20, 10, 19] >>> nums = [i for i in nums if i%2 == 0] >>> nums [18, 18, 20, 10]
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅Β ΡΠΈΠΊΠ»Ρ:
>>> a = "12" >>> b = "3" >>> c = "456" >>> comb = [i+j+k for i in a for j in b for k in c] >>> comb ['134', '135', '136', '234', '235', '236']
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²
ΠΡΠ»ΠΈ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠΏΠΈΡΠΊΠ° Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ Π½Π° ΡΠΈΠ³ΡΡΠ½ΡΠ΅, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅ ΡΠΏΠΈΡΠΎΠΊ, Π° ΡΠ»ΠΎΠ²Π°ΡΡ:
>>> a = {i:i**2 for i in range(11,15)} >>> a {11: 121, 12: 144, 13: 169, 14: 196}
ΠΡΠΈ ΡΡΠΎΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄ΠΎ for Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ, ΡΠΎ Π΅ΡΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΊΠ»ΡΡ ΠΈ ΡΠ΅ΡΠ΅Π· Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅Ρ, Π±ΡΠ΄Π΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΎΒ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ:
>>> a = {i for i in range(11,15)} >>> a set([11, 12, 13, 14]) >>> b = {1, 2, 3} >>> b set([1, 2, 3])
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ, ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΈ, ΡΠ»ΠΎΠ²Π°ΡΠΈ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π·Π° ΠΎΠ΄Π½ΠΈΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ. Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ:
>>> a = (i for i in range(2, 8)) >>> a <generator object <genexpr> at 0x7efc88787910> >>> for i in a: ... print(i) ... 2 3 4 5 6 7
ΠΡΠΎΡΠΎΠΉ ΡΠ°Π· ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π² ΡΠΈΠΊΠ»Π΅ for Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠΆΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π» Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ Π·Π°Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π² Π½Π΅Π³ΠΎ «ΡΠΎΡΠΌΡΠ»Π΅». ΠΠΎΡΡΠΎΠΌΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ Π΅Π΄ΠΈΠ½ΠΎΠΆΠ΄Ρ ΠΏΡΠΎΠΉΡΠΈΡΡ ΠΏΠΎ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠΊΠΎΠ½ΠΎΠΌΡΡ ΠΏΠ°ΠΌΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² Π½Π΅ΠΉ Ρ ΡΠ°Π½ΡΡΡΡ Π½Π΅ Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΊΠ°ΠΆΠ΅ΠΌ,Β Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°, Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΏΡΠ΅Π΄Π΅Π» ΠΈΒ ΡΠΎΡΠΌΡΠ»Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ.Β
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΠ·Π΄Π°ΡΡΠ΅Π΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ, ΡΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½Π°Ρ Π·Π°ΠΏΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ:
>>> def func(start, finish): ... while start < finish: ... yield start * 0.33 ... start += 1 ... >>> a = func(1, 4) >>> a <generator object func at 0x7efc88787a50> >>> for i in a: ... print(i) ... 0.33 0.66 0.99
Π€ΡΠ½ΠΊΡΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ yield,Β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ, Π° Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ ΡΡΠ°Π·Ρ. Π’Π΅Π»ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° __next__(). Π ΡΠΈΠΊΠ»Π΅ for ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΒ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π°.
ΠΡΠ»ΠΈ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ, ΠΏΡΠΎΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅:
>>> b = (i*0.33 for i in range(1,4)) >>> b <generator object <genexpr> at 0x7efc88787960> >>> for i in b: ... print(i) ... 0.33 0.66 0.99
ΠΠ»Π°Π²Π° 3. ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 4 Π°ΠΏΡΠ΅Π»Ρ 2020 Π² 01:43
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
ΠΠ°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠΈΠ»ΡΠ½Π΅Π΅ Π½Π°ΠΏΡΡΠ³Π°ΡΡ ΡΠ²ΠΎΠ΅ Π²ΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ, ΠΊΠ°ΠΊ Π² Ρ ΡΠ΄ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ΅, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅Π±Π΅ ΡΠΎ, ΡΠ΅Π³ΠΎ Π½Π΅Ρ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π° Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΠΈΡΡ ΡΠΎ, ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ.
Π ΠΈΡΠ°ΡΠ΄ Π€Π΅ΠΉΠ½ΠΌΠ°Π½
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Π³Π»Π°Π²Ρ
ΠΠ°ΠΌ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ ΡΠΈΠ»ΡΠ½Π΅Π΅ Π½Π°ΠΏΡΡΠ³Π°ΡΡ ΡΠ²ΠΎΠ΅ Π²ΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ, ΠΊΠ°ΠΊ Π² Ρ
ΡΠ΄ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ΅, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅Π±Π΅ ΡΠΎ, ΡΠ΅Π³ΠΎ Π½Π΅Ρ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π° Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΠΈΡΡ ΡΠΎ, ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ.
Π ΠΈΡΠ°ΡΠ΄ Π€Π΅ΠΉΠ½ΠΌΠ°Π½
ΠΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΠ΅
Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΡΠ°ΠΊΠ°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ, ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΡΡΡΠΎΠ΅Π½Π½Π°Ρ, Π½ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠ½Π½Π°Ρ ΡΡΡΠΊΠ°. ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π½ΡΡΠ΅ ΠΏΠΈΡΠ°Π»ΠΈ Π½Π° Π΄ΡΡΠ³ΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈ Π½Π΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π½Π° ΡΡΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Π°Ρ ΡΡΠ°ΡΡΠΉ ΡΠ·ΡΠΊ Π½Π΅ ΡΠ°ΠΊ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π» ΡΡΡ ΡΡΡΠΊΡ (ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ Π±ΡΠ» Π·Π°Π½ΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π» ΡΡΠΎ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠ΅). Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π²Ρ ΠΈΠ·ΡΡΠΈΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠΏΠΈΡΠΊΠΎΠ², ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² β ΡΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ, ΡΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π²ΠΎΠΊΡΡΠ³ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΡΠ΅Π½Ρ ΠΌΠΎΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. ΠΠΎ ΡΠ½Π°ΡΠ°Π»Π° Ρ Ρ ΠΎΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠΊΠ»ΠΎΠ½ΠΈΡΡΡΡ ΠΎΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΠΎΠ²Π΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ Π²Π°ΠΌ ΠΎ Π΄Π²ΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠ³Π°ΡΡΡΡ ΠΏΠΎ Π²Π°ΡΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
3.2 Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌΠΈ
Python 3 ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ os
, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°Β». ΠΠΎΠ΄ΡΠ»Ρ os
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ
, ΡΠ°ΠΉΠ»Π°Ρ
, ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ
ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ (Π° Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
, ΠΈ Π΄Π»Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠΌΠΈ). Python ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΎΡΠ΅Π½Ρ Ρ
ΠΎΡΠΎΡΠΈΠΉ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌ, ΡΠ°ΠΊ ΡΡΠΎ Π²Π°ΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π½Π° Π»ΡΠ±ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎ-Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
3.2.1 Π’Π΅ΠΊΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³
ΠΡΠ΅Π³Π΄Π° Π΅ΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³.
ΠΠΎΠ³Π΄Π° Π²Π°ΡΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ Python ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ, Π²Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅ Python. ΠΠ° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅ΠΉ ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π²ΡΠ³Π»ΡΠ΄ΡΡΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
- ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ²
- ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ
- ΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°
ΠΡΠ»ΠΈ Π²Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ°Π³ 1 ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π΅ΡΠ΄Π°ΡΠ½ΡΠΌ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° ImportError
. ΠΠΎΡΠ΅ΠΌΡ? ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Python Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΠΏΡΡΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° import
, Π½ΠΎ Π½Π΅ Π½Π°ΠΉΠ΄ΡΡ Π΅Π³ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ examples Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΠΏΡΡΡΡ
ΠΏΠΎΠΈΡΠΊΠ°. Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΄Π²ΡΡ
:
- Π»ΠΈΠ±ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠ°ΠΏΠΊΡ examples Π² ΠΏΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°
import
; - Π»ΠΈΠ±ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠΈΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ ΠΏΠ°ΠΏΠΊΡ examples.
Π’Π΅ΠΊΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΡΠ²Π½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Python ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Ρ ΡΠ°Π½ΠΈΡ Π² ΠΏΠ°ΠΌΡΡΠΈ. Π’Π΅ΠΊΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΅ΡΡΡ Π²ΡΠ΅Π³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅ Python, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΡΠ²ΠΎΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ CGI-ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π³Π΄Π΅-ΡΠΎ Π½Π° Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ΅.
ΠΠΎΠ΄ΡΠ»Ρ os
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠΈΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ.
>>> import os β
>>> print(os.getcwd()) β‘
C:\Python31
>>> os.chdir('/Users/pilgrim/diveintopython3/examples') β’
>>> print(os.getcwd()) β£
C:\Users\pilgrim\diveintopython3\examples
- Π‘ΡΡΠΎΠΊΠ° 1. ΠΠΎΠ΄ΡΠ»Ρ
os
ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Python; Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΊΠΎΠ³Π΄Π° ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΈ Π³Π΄Π΅ ΡΠ³ΠΎΠ΄Π½ΠΎ. - Π‘ΡΡΠΎΠΊΠ° 2. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ
os.getcwd()
Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°. ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅ Python, ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠΈΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½Π° Π±ΡΠ»Π° Π·Π°ΠΏΡΡΠ΅Π½Π°. Π Windows ΡΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΡΠ΄Π° Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Python; ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ c:\Python31. ΠΡΠ»ΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° Python Π·Π°ΠΏΡΡΠ΅Π½Π° ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠΈΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠΎΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈ Π΅Ρ. - Π‘ΡΡΠΎΠΊΠ° 4. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ
os.chdir()
ΡΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. - Π‘ΡΡΠΎΠΊΠ° 5. ΠΠΎΠ³Π΄Π° Ρ Π²ΡΠ·ΡΠ²Π°Π» ΡΡΠ½ΠΊΡΠΈΡ
os.chdir()
, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΏΡΡΡ Π² ΡΡΠΈΠ»Π΅ Linux (ΠΊΠΎΡΠ°Ρ ΡΠ΅ΡΡΠ°, Π½Π΅Ρ Π±ΡΠΊΠ²Ρ Π΄ΠΈΡΠΊΠ°), Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ°Π±ΠΎΡΠ°Π» Π² Windows. ΠΡΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ΅Ρ ΠΌΠ΅ΡΡ, Π³Π΄Π΅ Python ΠΏΡΡΠ°Π΅ΡΡΡ ΡΡΠΈΡΠ°ΡΡ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ.
3.2.2 Π Π°Π±ΠΎΡΠ° Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ²
Π Π°Π· Π·Π°ΡΠ»Π° ΡΠ΅ΡΡ ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°Ρ
, Ρ Ρ
ΠΎΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π°ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»Ρ os.path
. ΠΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ².
>>> import os
>>> print(os.path. join('/Users/pilgrim/diveintopython3/examples/', 'humansize.py')) β
/Users/pilgrim/diveintopython3/examples/humansize.py
>>> print(os.path.join('/Users/pilgrim/diveintopython3/examples', 'humansize.py')) β‘
/Users/pilgrim/diveintopython3/examples\humansize.py
>>> print(os.path.expanduser('~')) β’
c:\Users\pilgrim
>>> print(os.path.join(os.path.expanduser('~'), 'diveintopython3', 'examples', 'humansize.py')) β£
c:\Users\pilgrim\diveintopython3\examples\humansize.py
- Π‘ΡΡΠΎΠΊΠ° 2. Π€ΡΠ½ΠΊΡΠΈΡ
os.path.join()
ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΡΡΠΈΡΠ½ΡΡ ΠΏΡΡΠ΅ΠΉ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½Π° ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΡΡΡΠΎΠΊΠΈ. - Π‘ΡΡΠΎΠΊΠ° 4. ΠΡΠΎ ΡΠΆΠ΅ ΠΌΠ΅Π½Π΅Π΅ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ. Π€ΡΠ½ΠΊΡΠΈΡ
join
Π΄ΠΎΠ±Π°Π²ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎΡΡΡ ΡΠ΅ΡΡΡ (slash) ΠΊ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°ΠΏΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π΄ΠΎΠΏΠΈΡΠ°ΡΡ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Python Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΠΊΠΎΡΡΡ ΡΠ΅ΡΡΡ (backslash) Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ±ΡΠΊΠ½ΠΎΠ²Π΅Π½Π½ΠΎΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π·Π°ΠΏΡΡΡΠΈΠ» ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π² Windows. ΠΡΠ»ΠΈ Π²Ρ Π²Π²Π΅Π΄ΡΡΠ΅ Π΄Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Linux ΠΈΠ»ΠΈ Mac OS X, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠΎΡΡΡΡ ΠΊΠΎΡΡΡ ΡΠ΅ΡΡΡ. Python ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΏΡΡΠΈ ΠΊ ΡΠ°ΠΉΠ»Ρ. - Π‘ΡΡΠΎΠΊΠ° 6. Π€ΡΠ½ΠΊΡΠΈΡ
os.path.expanduser()
ΡΠ°ΡΠΊΡΡΠ²Π°Π΅Ρ ΠΏΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ» ~ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΌΠ°ΡΠ½Π΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π€ΡΠ½ΠΊΡΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π»ΡΠ±ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅, Π³Π΄Π΅ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΅ΡΡΡ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π²ΠΊΠ»ΡΡΠ°Ρ Linux, Mac OS X ΠΈ Windows. Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΡΡ Π±Π΅Π· ΠΊΠΎΡΠΎΠΉ ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅, Π½ΠΎ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈos.path.join()
ΡΡΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. - Π‘ΡΡΠΎΠΊΠ° 8. ΠΠΎΠΌΠ±ΠΈΠ½ΠΈΡΡΡ ΡΡΠΈ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΡΡΠΎΠΈΡΡ ΠΏΡΡΠΈ Π΄Π»Ρ ΠΏΠ°ΠΏΠΎΠΊ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² Π² Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π€ΡΠ½ΠΊΡΠΈΡ
os.path.join()
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². Π― ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ» ΡΡΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΌΠ½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΠΈΡΠ°ΡΡ Π³Π»ΡΠΏΡΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡaddSlashIfNecessary()
. Π ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python ΡΠΌΠ½ΡΠ΅ Π»ΡΠ΄ΠΈ ΡΠΆΠ΅ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΠ»ΠΈΡΡ ΠΎΠ± ΡΡΠΎΠΌ.
ΠΠΎΠ΄ΡΠ»Ρ os.path
ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ
ΠΏΡΡΠ΅ΠΉ, ΠΈΠΌΡΠ½ ΠΏΠ°ΠΏΠΎΠΊ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° ΠΈΡ
ΡΠΎΡΡΠ°Π²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ.
>>> pathname = '/Users/pilgrim/diveintopython3/examples/humansize.py'
>>> os.path.split(pathname) β
('/Users/pilgrim/diveintopython3/examples', 'humansize.py')
>>> (dirname, filename) = os.path.split(pathname) β‘
>>> dirname β’
'/Users/pilgrim/diveintopython3/examples'
>>> filename β£
'humansize.py'
>>> (shortname, extension) = os.path.splitext(filename) β€
>>> shortname
'humansize'
>>> extension
'.py'
- Π‘ΡΡΠΎΠΊΠ° 2. Π€ΡΠ½ΠΊΡΠΈΡ
split
Π΄ΡΠΎΠ±ΠΈΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΆ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΏΡΡΡ Π΄ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΈ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°. - Π‘ΡΡΠΎΠΊΠ° 4. ΠΠΎΠΌΠ½ΠΈΡΠ΅, Ρ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π» ΠΏΡΠΎ ΡΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π·Π° ΡΠ°Π· ΠΈ ΠΊΠ°ΠΊ Π²Π΅ΡΠ½ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ? Π€ΡΠ½ΠΊΡΠΈΡ
os.path.split()
Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ. ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈsplit
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΡ ΠΈΠ· Π΄Π²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠ°. - Π‘ΡΡΠΎΠΊΠ° 5. ΠΠ΅ΡΠ²Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ β
dirname
β ΠΏΠΎΠ»ΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΡΡΠ΅ΠΆΠ°, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉos.path.split()
, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡΡΡ Π΄ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°. - Π‘ΡΡΠΎΠΊΠ° 7. ΠΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ β
filename
β ΠΏΡΠΈΠΌΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΡΡΠ΅ΠΆΠ°, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉos.path.split()
, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°. - Π‘ΡΡΠΎΠΊΠ° 9. ΠΠΎΠ΄ΡΠ»Ρ
os.path
ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ½ΠΊΡΠΈΡos. path.splitext()
, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΡΠΎΠ±ΠΈΡ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΆ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΈΠΌΡ ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°. ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡ ΠΆΠ΅ ΡΠ΅Ρ Π½ΠΈΠΊΡ, ΡΡΠΎ ΠΈ ΡΠ°Π½Π΅Π΅ Π΄Π»Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ.
3.2.3 ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°
ΠΠΎΠ΄ΡΠ»Ρ glob ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ-Π΄ΠΆΠΎΠΊΠ΅ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°Ρ .
ΠΠΎΠ΄ΡΠ»Ρ glob
β ΡΡΠΎ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Python. ΠΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ°ΠΏΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ½ ΡΠΌΠ΅Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ-Π΄ΠΆΠΎΠΊΠ΅ΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Ρ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Π·Π½Π°ΠΊΠΎΠΌΡ, Π΅ΡΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
>>> os.chdir('/Users/pilgrim/diveintopython3/')
>>> import glob
>>> glob.glob('examples/*.xml') β
['examples\\feed-broken.xml',
'examples\\feed-ns0.xml',
'examples\\feed.xml']
>>> os.chdir('examples/') β‘
>>> glob.glob('*test*.py') β’
['alphameticstest.py',
'pluraltest1.py',
'pluraltest2.py',
'pluraltest3.py',
'pluraltest4.py',
'pluraltest5.py',
'pluraltest6.py',
'romantest1.py',
'romantest10.py',
'romantest2.py',
'romantest3.py',
'romantest4.py',
'romantest5.py',
'romantest6.py',
'romantest7.py',
'romantest8.py',
'romantest9.py']
- Π‘ΡΡΠΎΠΊΠ° 3. ΠΠΎΠ΄ΡΠ»Ρ
glob
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ°Π±Π»ΠΎΠ½, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ»Ρ-Π΄ΠΆΠΎΠΊΠ΅ΡΡ, ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΡΠΈ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π΅ΠΌΡ. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΡΡ ΠΊ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ ΠΈ «*.xml«, ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±ΡΠ΄ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ xml-ΡΠ°ΠΉΠ»Ρ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ examples. - Π‘ΡΡΠΎΠΊΠ° 7. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠΈΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ examples. Π€ΡΠ½ΠΊΡΠΈΡ
os.chdir()
ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΡΠΈ. - Π‘ΡΡΠΎΠΊΠ° 8. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²-Π΄ΠΆΠΎΠΊΠ΅ΡΠΎΠ² Π² ΡΠ²ΠΎΡΠΌ ΡΠ°Π±Π»ΠΎΠ½Π΅. ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΠΈΠ΅ΡΡ Π½Π° .py ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΡΠ»ΠΎΠ²ΠΎ test Π³Π΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ Π² ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°.
3.2.4 ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎ ΡΠ°ΠΉΠ»Π΅
ΠΡΠ±Π°Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Ρ ΡΠ°Π½ΠΈΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ (ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅): Π΄Π°ΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, Π΄Π°ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π° ΠΈ Ρ.Π΄. Python ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΅Π΄ΠΈΠ½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΡΠΈΠΌ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌ. ΠΠ°ΠΌ Π½Π΅ Π½Π°Π΄ΠΎ ΠΎΡΠΊΡΡΠ²Π°ΡΡ ΡΠ°ΠΉΠ»; Π²ΡΡ, ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ β ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°.
>>> import os
>>> print(os.getcwd()) β
c:\Users\pilgrim\diveintopython3\examples
>>> metadata = os.stat('feed.xml') β‘
>>> metadata.st_mtime β’
1247520344.9537716
>>> import time β£
>>> time.localtime(metadata.st_mtime) β€
time.struct_time(tm_year=2009, tm_mon=7, tm_mday=13, tm_hour=17,
tm_min=25, tm_sec=44, tm_wday=0, tm_yday=194, tm_isdst=1)
- Π‘ΡΡΠΎΠΊΠ° 2. Π’Π΅ΠΊΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ β ΠΏΠ°ΠΏΠΊΠ° Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ.
- Π‘ΡΡΠΎΠΊΠ° 4.feed.xml β ΡΠ°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ. ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ
os.stat()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΡΠ°ΠΉΠ»Π΅. - Π‘ΡΡΠΎΠΊΠ° 5.
st_mtime
β Π²ΡΠ΅ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°, Π½ΠΎ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΎΠ½ΠΎ Π² ΡΠΆΠ°ΡΠ½ΠΎ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅. (Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄, ΠΏΡΠΎΡΠ΅Π΄ΡΠΈΡ Ρ Π½Π°ΡΠ°Π»Π° Β«ΡΡΡ UNIXΒ», Π½Π°ΡΠ°Π²ΡΠ΅ΠΉΡΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΡΠ΅ΠΊΡΠ½Π΄Ρ 1 ΡΠ½Π²Π°ΡΡ 1970 Π³ΠΎΠ΄Π°. Π‘Π΅ΡΡΡΠ·Π½ΠΎ.) - Π‘ΡΡΠΎΠΊΠ° 7. ΠΠΎΠ΄ΡΠ»Ρ
time
ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Python. ΠΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΎΡΠΌΠ°ΡΠ°ΠΌΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΠ°ΡΠΎΠ²ΡΠΌΠΈ ΠΏΠΎΡΡΠ°ΠΌΠΈ, Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡ Π² ΡΡΡΠΎΠΊΠΈ (str
) ΠΈ Π΄Ρ. - Π‘ΡΡΠΎΠΊΠ° 8. Π€ΡΠ½ΠΊΡΠΈΡ
time.localtime()
ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ ΠΈΠ· ΡΠΎΡΠΌΠ°ΡΠ° Β«ΡΠ΅ΠΊΡΠ½Π΄Ρ Ρ Π½Π°ΡΠ°Π»Π° ΡΡΡΒ» (ΠΏΠΎΠ»Π΅st_mtime
, Π²ΠΎΠ·Π²ΡΠ°ΡΡΠ½Π½ΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉos. stat()
) Π² Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π³ΠΎΠ΄, ΠΌΠ΅ΡΡΡ, Π΄Π΅Π½Ρ, ΡΠ°Ρ, ΠΌΠΈΠ½ΡΡΡ, ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΈ Ρ. Π΄. ΠΡΠΎΡ ΡΠ°ΠΉΠ» Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π· ΠΈΠ·ΠΌΠ΅Π½ΡΠ»ΡΡ 13 ΠΈΡΠ»Ρ 2009 Π³ΠΎΠ΄Π°, ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π² 17 ΡΠ°ΡΠΎΠ², 25 ΠΌΠΈΠ½ΡΡ.
# continued from the previous example
>>> metadata.st_size β
3070
>>> import humansize
>>> humansize.approximate_size(metadata.st_size) β‘
'3.0 KiB'
- Π‘ΡΡΠΎΠΊΠ° 2. Π€ΡΠ½ΠΊΡΠΈΡ
os.stat()
ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π° Π² ΡΠ²ΠΎΠΉΡΡΠ²Π΅st_size
. Π Π°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π° feed.xml β 3070 Π±Π°ΠΉΡ. - Π‘ΡΡΠΎΠΊΠ° 5. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ
st_size
Π² ΡΡΠ½ΠΊΡΠΈΡapproximate_size()
.
3.2.5 ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΡ ΠΏΡΡΠ΅ΠΉ
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΡΠ½ΠΊΡΠΈΡ glob.glob()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π»Π° ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΏΡΡΠ΅ΠΉ. Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΡΠΈ ΠΈΠΌΠ΅Π»ΠΈ Π²ΠΈΠ΄ ‘examples\feed.xml‘, Π° Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΡΠΈ Π±ΡΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΊΠΎΡΠΎΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ‘romantest1.py‘. ΠΠΎΠΊΠ° Π²Ρ ΠΎΡΡΠ°ΡΡΠ΅ΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΠΏΠΎ ΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΡΡΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΡΡΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΡ
ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅. ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΉ ΠΏΡΡΡ β ΡΠΎ Π΅ΡΡΡ ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π΄ΠΎ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π΄ΠΎ Π±ΡΠΊΠ²Ρ Π΄ΠΈΡΠΊΠ°, Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ os.path.realpath()
.
>>> import os
>>> print(os.getcwd())
c:\Users\pilgrim\diveintopython3\examples
>>> print(os.path.realpath('feed.xml'))
c:\Users\pilgrim\diveintopython3\examples\feed.xml
3.3 ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠΏΠΈΡΠΊΠΎΠ²
Π Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°Ρ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Python.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠΏΠΈΡΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΈΡΠΎΠΊ Π² Π΄ΡΡΠ³ΠΎΠΉ, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
>>> a_list = [1, 9, 8, 4]
>>> [elem * 2 for elem in a_list] β
[2, 18, 16, 8]
>>> a_list β‘
[1, 9, 8, 4]
>>> a_list = [elem * 2 for elem in a_list] β’
>>> a_list
[2, 18, 16, 8]
- Π‘ΡΡΠΎΠΊΠ° 2. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Π·Π΄Π΅ΡΡ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ, ΠΏΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠΏΡΠ°Π²Π° Π½Π°Π»Π΅Π²ΠΎ.
a_list
β ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠΉ ΡΠΏΠΈΡΠΎΠΊ. Python ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°a_list
, Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉelem
. ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡelem * 2
ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΠΏΠΈΡΠΎΠΊ. - Π‘ΡΡΠΎΠΊΠ° 4. ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ.
- Π‘ΡΡΠΎΠΊΠ° 6. ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠΏΠΈΡΠΊΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Python ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½, ΠΏΡΠΈΡΠ²ΠΎΠΈΡ Π΅Π³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
Π Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°Ρ
ΡΠΏΠΈΡΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Python, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ os
, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌΠΈ.
>>> import os, glob
>>> glob.glob('*.xml') β
['feed-broken.xml', 'feed-ns0.xml', 'feed.xml']
>>> [os.path.realpath(f) for f in glob.glob('*.xml')] β‘
['c:\\Users\\pilgrim\\diveintopython3\\examples\\feed-broken.xml',
'c:\\Users\\pilgrim\\diveintopython3\\examples\\feed-ns0.xml',
'c:\\Users\\pilgrim\\diveintopython3\\examples\\feed.xml']
- Π‘ΡΡΠΎΠΊΠ° 2. ΠΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ .xml-ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅.
- Π‘ΡΡΠΎΠΊΠ° 4. ΠΡΠΎΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ .xml-ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π΅Π³ΠΎ Π² ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ»Π½ΡΡ ΠΏΡΡΠ΅ΠΉ.
ΠΡΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠ±ΡΠΎΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
>>> import os, glob
>>> [f for f in glob.glob('*.py') if os.stat(f).st_size > 6000] β
['pluraltest6.py',
'romantest10.py',
'romantest6.py',
'romantest7.py',
'romantest8.py',
'romantest9.py']
- Π‘ΡΡΠΎΠΊΠ° 2. Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
i
f Π² ΠΊΠΎΠ½ΡΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠΏΠΈΡΠΊΠ°. ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΡΠΎΡΡΠ΅Π΅ ΠΏΠΎΡΠ»Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°if
, Π±ΡΠ΄Π΅Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΠΈΡΠΊΠ°. ΠΡΠ»ΠΈ ΡΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΡΠΈΠ½Π½ΠΎ, Π΄Π°Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ ΠΈ Π²ΠΊΠ»ΡΡΡΠ½ Π² Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠΏΠΈΡΠΎΠΊ. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ .py-ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡif
ΡΠΈΠ»ΡΡΡΡΠ΅Ρ ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ, ΠΎΡΡΠ°Π²Π»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π±ΠΎΠ»ΡΡΠ΅ 6000 Π±Π°ΠΉΡ. Π’Π°ΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ΄Π΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ· ΡΠ΅ΡΡΠΈ ΠΈΠΌΡΠ½ ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠΏΠΈΡΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΏΡΠΎΡΡΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ: ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° Π½Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, Π²ΡΠ·ΠΎΠ² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΠΈΡΠΊΠ° Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (ΠΏΠΎΡΠ»Π΅ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ). ΠΠΎ ΠΏΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π»ΡΠ±ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ.
>>> import os, glob
>>> [(os.stat(f).st_size, os.path.realpath(f)) for f in glob.glob('*.xml')] β
[(3074, 'c:\\Users\\pilgrim\\diveintopython3\\examples\\feed-broken.xml'),
(3386, 'c:\\Users\\pilgrim\\diveintopython3\\examples\\feed-ns0.xml'),
(3070, 'c:\\Users\\pilgrim\\diveintopython3\\examples\\feed.xml')]
>>> import humansize
>>> [(humansize.approximate_size(os.stat(f).st_size), f) for f in glob.glob('*.xml')] β‘
[('3.0 KiB', 'feed-broken.xml'),
('3.3 KiB', 'feed-ns0.xml'),
('3.0 KiB', 'feed.xml')]
- Π‘ΡΡΠΎΠΊΠ° 2. ΠΡΠΎΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΈΡΠ΅Ρ Π²ΡΠ΅ .xml-ΡΠ°ΠΉΠ»Ρ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° (Π²ΡΠ·ΡΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ
os.stat()
), ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΆ ΠΈΠ· ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠ°ΠΉΠ»Π° ΠΈ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° (Π²ΡΠ·ΡΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡos.path.realpath()
). - Π‘ΡΡΠΎΠΊΠ° 7. ΠΡΠΎΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ, Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ
approximate_size()
, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ Π΅ΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ .xml-ΡΠ°ΠΉΠ»Π°.
3.4 ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΠΎΡ ΠΎΠΆ Π½Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠΏΠΈΡΠΊΠ°, Π½ΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΏΠΈΡΠΊΠ° ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ»ΠΎΠ²Π°ΡΡ.
>>> import os, glob
>>> metadata = [(f, os.stat(f)) for f in glob.glob('*test*.py')] β
>>> metadata[0] β‘
('alphameticstest.py', nt.stat_result(st_mode=33206, st_ino=0, st_dev=0,
st_nlink=0, st_uid=0, st_gid=0, st_size=2509, st_atime=1247520344,
st_mtime=1247520344, st_ctime=1247520344))
>>> metadata_dict = {f:os.stat(f) for f in glob.glob('*test*.py')} β’
>>> type(metadata_dict) β£
<class 'dict'>
>>> list(metadata_dict.keys()) β€
['romantest8.py', 'pluraltest1.py', 'pluraltest2.py', 'pluraltest5.py',
'pluraltest6.py', 'romantest7.py', 'romantest10.py', 'romantest4.py',
'romantest9.py', 'pluraltest3.py', 'romantest1.py', 'romantest2.py',
'romantest3.py', 'romantest5.py', 'romantest6.py', 'alphameticstest.py',
'pluraltest4.py']
>>> metadata_dict['alphameticstest.py'].st_size β₯
2509
- Π‘ΡΡΠΎΠΊΠ° 2. ΠΡΠΎ Π½Π΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΠΎΠ²Π°ΡΡ, ΡΡΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠΏΠΈΡΠΊΠ°. ΠΠ½ Π½Π°Ρ
ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .py, ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΈΡ
ΠΈΠΌΠ΅Π½Π°, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΆ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»Π° (Π²ΡΠ·ΡΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ
os.stat()
). - Π‘ΡΡΠΎΠΊΠ° 3. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ° β ΠΊΠΎΡΡΠ΅ΠΆ.
- Π‘ΡΡΠΎΠΊΠ° 7. ΠΡΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΠΎΠ²Π°ΡΡ. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠΏΠΈΡΠΊΠ°, Π½ΠΎ Ρ Π΄Π²ΡΠΌΡ ΠΎΡΠ»ΠΈΡΠΈΡΠΌΠΈ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΠΎΠ½ Π·Π°ΠΊΠ»ΡΡΡΠ½ Π² ΡΠΈΠ³ΡΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ, Π° Π½Π΅ Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠ΅. ΠΠΎ-Π²ΡΠΎΡΡΡ
, Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π²Π°, ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ΠΌ. ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π²Π° ΠΎΡ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡ (Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅
f
) ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠΎΠΌ ΡΠ»ΠΎΠ²Π°ΡΡ; Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²Π° ΠΎΡ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡ (Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅os.stat(f)
) β Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ. - Π‘ΡΡΠΎΠΊΠ° 8. ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»ΠΎΠ²Π°ΡΡ.
- Π‘ΡΡΠΎΠΊΠ° 10. ΠΠ»ΡΡΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
glob.glob('*test*.py')
. - Π‘ΡΡΠΎΠΊΠ° 16. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
os.stat()
. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ (st_size
) β ΡΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π°. Π Π°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π° alphameticstest.py β 2509 Π±Π°ΠΉΡ.
Π’Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°Ρ
ΡΠΏΠΈΡΠΊΠΎΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ if
, ΡΡΠΎΠ±Ρ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ Π²Ρ
ΠΎΠ΄Π½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-ΡΡΠ»ΠΎΠ²ΠΈΡ, Π²ΡΡΠΈΡΠ»ΡΡΡΠ΅Π³ΠΎΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
>>> import os, glob, humansize
>>> metadata_dict = {f:os.stat(f) for f in glob.glob('*')} β
>>> humansize_dict = {os.path.splitext(f)[0]:humansize.approximate_size(meta.st_size) \
... for f, meta in metadata_dict.items() if meta.st_size > 6000} β‘
>>> list(humansize_dict.keys()) β’
['romantest9', 'romantest8', 'romantest7', 'romantest6', 'romantest10', 'pluraltest6']
>>> humansize_dict['romantest9'] β£
'6.5 KiB'
- Π‘ΡΡΠΎΠΊΠ° 2. Π ΡΡΠΎΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π±Π΅ΡΡΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ (
glob.glob('*')
), Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π΅Π³ΠΎ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ (os.stat(f)
) ΠΈ ΡΡΡΠΎΠΈΡΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ, ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΡΡΡΠΏΠ°ΡΡ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ², Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ β ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. - Π‘ΡΡΠΎΠΊΠ° 4. ΠΡΠΎΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΡΡΠΎΠΈΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ. ΠΡΡΠΈΠ»ΡΡΡΠΎΠ²ΡΠ²Π°ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ ΠΌΠ΅Π½ΡΡΠ΅ 6000 Π±Π°ΠΉΡ (
if meta.st_size > 6000
). ΠΡΠΎΠ±ΡΠ°Π½Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ, ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΡΡΡΡ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ² Π±Π΅Π· ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ (os. path.splitext(f)[0]
), Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ β ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° (humansize.approximate_size(meta.st_size)
). - Π‘ΡΡΠΎΠΊΠ° 5. ΠΠ°ΠΊ Π²Π°ΠΌ ΡΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°, Π²ΡΠ΅Π³ΠΎ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π² ΡΡΠΎΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅ ΡΠ΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
- Π‘ΡΡΠΎΠΊΠ° 7. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ ΡΡΡΠΎΠΊΡ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ
approximate_size()
.
3.4.1 ΠΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΡΡΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ
ΠΠΎΡ ΡΡΡΠΊ Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ: ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ.
>>> a_dict = {'a': 1, 'b': 2, 'c': 3}
>>> {value:key for key, value in a_dict.items()}
{1: 'a', 2: 'b', 3: 'c'}
ΠΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ»ΠΎΠ²Π°ΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡ, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΡΡΠ΅ΠΆΠΈ.
>>> a_dict = {'a': [1, 2, 3], 'b': 4, 'c': 5}
>>> {value:key for key, value in a_dict.items()}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <dictcomp>
TypeError: unhashable type: 'list'
3.5 ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²
ΠΠ΅Π»ΡΠ·Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ Π·Π° Π±ΠΎΡΡΠΎΠΌ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°, ΠΎΠ½ΠΈ ΡΠΎΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ². ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ β Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ°Ρ ΠΊΠ»ΡΡ:Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΎΠ½ΠΈ ΡΡΡΠΎΡΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ΄Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
>>> a_set = set(range(10))
>>> a_set
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> {x ** 2 for x in a_set} β
{0, 1, 4, 81, 64, 9, 16, 49, 25, 36}
>>> {x for x in a_set if x % 2 == 0} β‘
{0, 8, 2, 4, 6}
>>> {2**x for x in range(10)} β’
{32, 1, 2, 4, 8, 64, 128, 256, 16, 512}
- Π‘ΡΡΠΎΠΊΠ° 4. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°. ΠΡΠΎΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΊΠ²Π°Π΄ΡΠ°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠΈΡΠ΅Π» Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 0 Π΄ΠΎ 9.
- Π‘ΡΡΠΎΠΊΠ° 6. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°ΠΌ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΈ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ, Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠ΅
if
Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΠ΅ΡΠ΅Π΄ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ Π² ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ. - Π‘ΡΡΠΎΠΊΠ° 8. ΠΠ° Π²Ρ ΠΎΠ΄ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°, Π½ΠΎ ΠΈ Π»ΡΠ±ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
3.6 ΠΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΡΠ΅Π½ΠΈΡ
ΠΡΡΠΎΡΠ½ΠΈΠΊ:
- Mark Pilgrim. Dive Into Python 3
Π’Π΅Π³ΠΈ
PythonΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅Π―Π·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
ΠΡΠΎΡ ΠΠ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»ΠΎΠ²Π°, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Π΄Π°ΠΆΠ΅ Π½Π΅ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅
ΠΠ΅Π½Ρ Π½ΠΈΡΡΠΎ Π½Π΅ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°Π΅Ρ Doodlewinkled ΠΊΠ°ΠΊ AI. ΠΠΉ, ΡΡΠΎ, Π²Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° ΡΠ°Π½ΡΡΠ΅ Π½Π΅ ΡΠ»ΡΡΠ°Π»ΠΈ ΠΎΠ± ΡΡΠΎΠΌ ΡΠ»ΠΎΠ²Π΅? Π― Π½Π΅ Π²ΠΈΠ½ΠΎΠ²Π°Ρ, ΡΡΠΎ Π²Ρ ΡΠ΅ΡΠΏΠ°Π΅ΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠ»ΠΎΠ²Π°ΡΠ½ΡΠΉ Π·Π°ΠΏΠ°Ρ ΠΈΠ· ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ, ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Ρ ΡΠ½Π°Π½Ρ. ΠΠΎΠΏΠΎΠ»Π½ΡΡ ΡΠ²ΠΎΠΉ ΡΠ»ΠΎΠ²Π°ΡΠ½ΡΠΉ Π·Π°ΠΏΠ°Ρ ΡΡΠΈΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ doesnotexist.com.
ΠΠ°, Π²Π΅ΡΠ½ΠΎ: ΡΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π½Π° Π±Π°Π·Π΅ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»ΠΎΠ²Π° ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π½Π΅ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅, ΡΠ°ΠΊΠΎΠΌ ΠΊΠ°ΠΊ Merriam-Webster ΠΈΠ»ΠΈ Oxford English Dictionary, — ΠΈ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ.
ΠΠΎΠΈΠΌ ΡΠ°Π²ΠΎΡΠΈΡΠΎΠΌ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Helicopterygium , ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠΎ ΡΠ»ΠΎΠ²ΠΎ doesnotexist.com:
ΠΠ΄Π½ΠΎ ΠΈΠ· ΠΎΡΡΡΠ΄Π° ΠΌΠΈΠΊΡΠΎΡΠΊΠΎΠΏΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅Π»ΠΊΠΈΡ Π½Π°ΡΠ΅ΠΊΠΎΠΌΠΎΡΠ΄Π½ΡΡ Π½Π°ΡΠ΅ΠΊΠΎΠΌΡΡ , Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΌΠ½ΠΎΠ³ΠΈΡ Π²ΠΈΠ΄ΠΎΠ² ΠΈ ΠΏΡΠ΅ΡΠ½ΠΎΠ²ΠΎΠ΄Π½ΡΡ Π±Π΅ΡΠΏΠΎΠ·Π²ΠΎΠ½ΠΎΡΠ½ΡΡ , Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠ°ΡΠ°ΠΊΠ°Π½ΠΎΠ². ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ½ΠΈ ΠΆΠΈΠ²ΡΡ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΡΠ°ΠΌΠΈ, Π½Π°ΡΠ΅ΠΊΠΎΠΌΡΠΌΠΈ, ΠΎΠ±ΠΈΡΠ°ΡΡΠΈΠΌΠΈ Π² Π²ΠΎΠ΄Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΡΡΠΏΠ½ΡΠΌΠΈ ΡΠ»Π΅Π½ΠΈΡΡΠΎΠ½ΠΎΠ³ΠΈΠΌΠΈ Π½Π°ΡΠ΅ΠΊΠΎΠΌΡΠΌΠΈ.
ΠΡΠΈΠΌΠ΅Ρ: Β«ΠΠ΅ΡΡΠΎΠΏΡΠ΅ΡΠΈΠ³ΠΈΡΠΌΡ Π²Π°ΡΡΠΈΡΡΡΡΡΡ ΠΎΡ ΠΊΡΠΎΡΠ΅ΡΠ½ΡΡ ΠΊΡΠΊΠΎΠ»ΠΎΠΊ Π΄ΠΎ ΠΏΠΎΠ»Π½ΡΡ Π΄Π²ΡΡΡΠ²ΠΎΡΡΠ°ΡΡΡ ΠΌΠΎΠ»Π»ΡΡΠΊΠΎΠ².β
ΠΠ΅ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄Π°Π²Π½Π΅ΠΉ ΡΡΠ°Π΄ΠΈΡΠΈΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠΎΠΌ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π²Π΅ΡΠ΅ΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π½ΠΎΠ³ΠΈ, ΠΌΠ΅ΠΌΡ, Π΅Π΄Π°, ΠΊΠΎΡΠΊΠΈ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Airbnb, ΠΏΡΡΠΈΡΡΡΠ΅ ΠΏΠΎΡΡΡΠ΅ΡΡ ΠΈ Π΄Π°ΠΆΠ΅ Π»ΡΠ΄ΠΈ.
Π‘Π»ΠΎΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Transformers ΠΈ ΠΏΠ΅ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ΅ GPT-2 Π½Π° Π±Π°Π·Π΅ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠ° OpenAI, ΠΊΠΎΡΠΎΡΡΠΉ, ΠΏΠΎ ΡΠ»ΠΎΠ²Π°ΠΌ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΎΠΏΠ°ΡΠ½ΡΠΌ Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² ΠΎΡΠΊΡΡΡΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ΅ (ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΠ½ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΏΠ΅ΡΠ΅Π΄ΡΠΌΠ°Π΅Ρ).
ΠΠ°ΠΊΠΈΠΌ Π±Ρ Π·Π°Π±Π°Π²Π½ΡΠΌ ΡΡΠΎ Π½ΠΈ Π±ΡΠ»ΠΎ, thisworddoesnotexist.com Π½Π΅ ΠΈΠ΄Π΅Π°Π»Π΅Π½.
ΠΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠΊΠ½ΡΡΡΡΡ Π½Π° ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠ»ΠΎΠ²ΠΎ. ΠΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΡΠ»ΠΎΠ² Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°. Π ΡΡΠ°ΡΡΡΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π’ΠΎΠΌΠ°Ρ ΠΠΈΠΌΡΠΎΠ½ ΡΠΎΠ·Π΄Π°Π» ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ»ΠΎΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡΡ , ΠΈ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ. Π’Π°ΠΊ ΡΡΠΎ ΡΠ°Π½ΡΠΎΠ², ΡΡΠΎ Π²ΡΠ΅ ΡΡΠΈ ΡΠΊΡΡΠ½ΡΠ΅ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ»ΠΎΠ²Π° ΡΠΊΠΎΡΠΎ ΡΠΉΠ΄ΡΡ.
Π ΠΏΠΎΠΊΠ° ΠΏΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠ»ΠΎΠ²Π°ΡΠ½ΡΠΉ Π·Π°ΠΏΠ°Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΠΈΠΊΡΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ»ΡΡΠ°Π», Π½Π°ΠΆΠ°Π² Π·Π΄Π΅ΡΡ.ΠΡΠΎ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ΅Ρ ΡΠ²ΠΎΠΈ Π½Π°Π²ΡΠΊΠΈ Π³ΠΎΠ²ΠΎΡΠ΅Π½ΠΈΡ Π½Π° ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½ΠΎΠ²ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, ΡΡ, Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΉ ΠΊΠ°ΡΠΏΠΎΡ .
ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ 14 ΠΌΠ°Ρ 2020 Π³., 12:12 UTC
ΠΠΈΠΊΡ
14 ΠΌΠ°Ρ 2020 Π³. — 12:12 UTC
GitHub — CleverPumpkin / Proguard-Π‘Π»ΠΎΠ²Π°ΡΠΈ-ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ
Gradle Plugin, ΠΊΠΎΡΠΎΡΡΠΉ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠ°Π½Π΄ΠΎΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ»ΠΎΠ²Π°ΡΠΈ Π΄Π»Ρ proguard
ΠΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ Android Gradle Π²Π΅ΡΡΠΈΠΈ 3.5.0 ΠΈ 3.6.0-alpha10
ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ°ΠΉΠ» build.gradle
:
Π΄Π»Ρ Groovy
buildscript { ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ { maven { url "https://plugins. gradle.org/m2/" } } dependencies { ΠΏΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΠ°ΠΌ "gradle.plugin.ru.cleverpumpkin.proguard-dictionaries-generator: plugin: 1.0.8" } }
Π΄Π»Ρ Kotlin DSL
buildscript { ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ { maven { url = uri ("https: // plugins.gradle.org/m2/ ") } } dependencies { classpath ("gradle.plugin.ru.cleverpumpkin.proguard-dictionaries-generator: plugin: 1.0.8") } }
ΠΡΠΎΡΡΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² ΡΠ²ΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ» build.gradle
:
Π΄Π»Ρ Groovy
ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ»Π°Π³ΠΈΠ½: "ru.cleverpumpkin.proguard-dictionaries-generator" proguardDictionaries { DictionaryNames = [ "ΡΠ±ΠΎΡΠΊΠ° / ΠΊΠ»Π°ΡΡ-ΡΠ»ΠΎΠ²Π°ΡΡ", "ΡΠ±ΠΎΡΠΊΠ° / ΠΏΠ°ΠΊΠ΅Ρ-ΡΠ»ΠΎΠ²Π°ΡΡ", "ΡΠ±ΠΎΡΠΊΠ° / ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΡ-ΡΠ»ΠΎΠ²Π°ΡΡ" ] }
Π΄Π»Ρ Kotlin DSL
ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² { id ("ru.cleverpumpkin.proguard-ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ") } proguardDictionaries { DictionaryNames = listOf ( "ΡΠ±ΠΎΡΠΊΠ° / ΠΊΠ»Π°ΡΡ-ΡΠ»ΠΎΠ²Π°ΡΡ", "ΡΠ±ΠΎΡΠΊΠ° / ΠΏΠ°ΠΊΠ΅Ρ-ΡΠ»ΠΎΠ²Π°ΡΡ", "ΡΠ±ΠΎΡΠΊΠ° / ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΡ-ΡΠ»ΠΎΠ²Π°ΡΡ" ) }
ΠΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ»Ρ class-dictionary.txt
, package-dictionary.txt
ΠΈ obfuscation-dictionary.txt
Π² ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ build
ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΡΠ½Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ .
ΠΡΠΈ ΡΠ°ΠΉΠ»Ρ Π±ΡΠ΄ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ Ρ Π½ΡΠ»Ρ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π²Π°Ρ Π±ΡΠ΄ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠ»ΠΎΠ²Π°ΡΠΈ.
Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ.
Π Π°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
Π΄Π»Ρ Groovy
proguardDictionaries { DictionaryNames = ["Π»ΡΠ±ΠΎΠΉ", "ΡΠ°ΠΉΠ»Ρ," Π²Ρ "," Ρ ΠΎΡΠΈΡΠ΅ "] minLineLength 20 // ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 10 maxLineLength 50 // ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 30 linesCountInDictionary 50000 // ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 30000 }
Π΄Π»Ρ Kotlin DSL
proguardDictionaries { DictionaryNames = listOf (Β«Π»ΡΠ±ΠΎΠΉΒ», Β«ΡΠ°ΠΉΠ»ΡΒ», Β«ΡΡΒ», Β«Ρ ΠΎΡΡΒ») minLineLength = 20 // ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 10 maxLineLength = 50 // ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 30 linesCountInDictionary = 50000 // ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 30000 }
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΏΠ»Π°Π³ΠΈΠ½Π°
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊ ΡΠ²ΠΎΠΈΠΌ proguard-rules. pro
ΡΠ°ΠΉΠ»:
-obfuscationdictionary build / obfuscation-dictionary.txt
-classobfuscationdictionary build / class-dictionary.txt
-packageobfuscationdictionary build / package-dictionary.txt
ΠΠΎΠΌΠ΅Ρ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠΏΡΡΠΊ
ΠΠ°ΠΆΠ½ΠΎ: , Π΅ΡΠ»ΠΈ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² Π² * .apk
ΠΏΠΎΡΠ»Π΅ ΡΠΆΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ
linesCountInDictionary
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ , ΡΠΎΠ³Π΄Π° Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π±ΡΠ΄ΡΡ Π½Π°Π·Π²Π°Π½Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ —
Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠ΅ΡΠ²ΡΡ
Π±ΡΠΊΠ² Π°Π»ΡΠ°Π²ΠΈΡΠ°.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ linesCountInDictionary
Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ
ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΠΎΡΠ»Π΅
ΡΠΆΠ°ΡΠΈΠ΅ ΠΊΠΎΠ΄Π°.
Π Π°Π·ΠΌΠ΅Ρ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 30000
ΡΡΡΠΎΠΊ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² Π² Π²Π°ΡΠ΅ΠΌ * .apk
, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ:
- ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ Π² Android Studio Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π³ Optimizing Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ,
Π΅. Π³ΡΠ°ΠΌΠΌ. Β«ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ (Π¨Π°Π³ 5/5)Β». - ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΡΡΠΎΠΊΠ΅ Β«ΠΠΎΠ½Π΅ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡΒ».
ΠΈΠ»ΠΈ:
- ΠΠ΅ΡΠ΅ΡΠ°ΡΠΈΡΠ΅ ΡΠ°ΠΉΠ»
* .apk
Π² Android Studio (ΠΈΠ»ΠΈ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π΅Π³ΠΎ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅Π½Ρ Build ->
ΠΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ APK … ). - Π ΠΎΠΊΠ½Π΅ APK Analyzer Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ°ΠΉΠ»
classes.dex
. ΠΡΠΎΠ²Π΅ΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΡΡΠΎΠΊΠ΅
Β«ΠΡΠΎΡ ΡΠ°ΠΉΠ» dex ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΡ X …Β» - ΠΡΠ»ΠΈ Π² APK ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²
* .dex
, Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΠΈ ΠΏΡΠΎΡΡΠΌΠΌΠΈΡΡΠΉΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° Π²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ².
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ linesCountInDictionary
Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ
ΠΊΠ»Π°ΡΡΠΎΠ², ΡΡΠΎΠ±Ρ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π΄Π»Ρ ΡΠΎΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,Π³ΡΠ°ΠΌΠΌ. Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ
9802 ΠΊΠ»Π°ΡΡΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 12000).
Proguard ΠΈ R8 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ
ΠΠ»Π°Π³ΠΈΠ½
Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ»Π°Π³ΠΈΠ½ Android Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°Π΄Π°ΡΡ Proguard ΠΈΠ»ΠΈ R8:
-
transformClassesAndResourcesWithR8For {BuiltFlavor} {BuiltType}
-
transformClassesAndResourcesWithProguardFor {BuiltFlavor} {BuiltType}
ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ.
Π‘Π»ΠΎΠ²Π°ΡΡ Π°Π»ΡΠ°Π²ΠΈΡΠ°
ΠΡΠΎΠ±Π΅Π»Ρ, Π·Π½Π°ΠΊΠΈ ΠΏΡΠ΅ΠΏΠΈΠ½Π°Π½ΠΈΡ, ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ΡΡ ΡΠ»ΠΎΠ²Π° ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅ Π·Π½Π°ΠΊΠ° #
ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡΡΡ.
Π² ΡΠ»ΠΎΠ²Π°ΡΡΡ
Proguard.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΡΠ±ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΊΡΠΎΠΌΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ
Π²ΡΡΠ΅.
https://www.guardsquare.com/en/products/proguard/manual/usage#obfuscationoptions
ΠΠΊΠ»Π°Π΄
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, Π²Π΅ΡΠ½ΠΎ?
ΠΠ»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π° uploadArchives
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π·Π°Π΄Π°ΡΠ° gradle, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΠΏΠ»Π°Π³ΠΈΠ½ Π²
ΠΠ°ΠΏΠΊΠ° PROJECT_DIR / plugin / pluginRepo
.
ΠΠ»Π°Π³ΠΈΠ½ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² buildscript ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π· ΠΏΠΎΡΠ»Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½ Ρ ΠΏΠΎΡΡΠ°Π»Π° ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Gradle, ΠΏΠΎΡΡΠΎΠΌΡ artifactId ΡΠ°Π²Π΅Π½
Π³ΡΠ°Π΄.plugin.ru.cleverpumpkin.proguard-dictionaries-generator: ΠΏΠ»Π°Π³ΠΈΠ½
ΠΠΎΡΠ»Π΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ artifactId ΡΠ°Π²Π½ΡΠΌ ru.cleverpumpkin.proguard-dictionaries-generator: plugin
.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ artifactId Π·Π΄Π΅ΡΡ
ΠΠ²ΡΠΎΡΡ
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π» Π‘Π΅ΡΠ³Π΅ΠΉ Π§ΡΠΏΡΠΈΠ½ ([email protected])
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π» Π ΡΡΠ»Π°Π½ ΠΡΡΠ»Π°Π½ΠΎΠ² ([email protected])
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΎΡ Merriam-Webster
Π³Π΅Π½ Β· ΡΡ Β· Π° Β· ΡΠΎΡ
| \ ΛJe-nΙ-rΔ-tΙr
\
Π°
: ΠΠΏΠΏΠ°ΡΠ°Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ ΠΏΠ°Ρ ΠΈΠ»ΠΈ Π³Π°Π·
Π±
: ΠΠ°ΡΠΈΠ½Π°, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ½Π΅ΡΠ³ΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² ΡΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΡΡ.
2
: ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΡΠ½ΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π΄Π°Π΅Ρ Π΄ΡΡΠ³ΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΠ½ΠΎΡΡΡ ΠΈΠ»ΠΈ Π΅Π΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ
: ΠΎΠ±ΡΠ°Π·ΡΡΡΠ°Ρ
Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ
ΠΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡ Π²Π°ΡΠΈΠ» Π±Ρ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².Π― ΡΠ½Π°ΡΠ°Π»Π° Π½Π°ΡΡΠΈΠ»ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Python, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ±ΠΈΡΠ°Π»ΡΡ Π½Π°ΡΠ°ΡΡ Ρ Π½Π΅Π³ΠΎ. ΠΠ΅ΡΠ΅Π΄ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΡΠ΅ΡΠΈΠ» ΠΏΠΎΠΈΡΠΊΠ°ΡΡ Π² Google ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΠ΅ΡΠ°Π» Π»ΠΈ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π΅ΡΠ΅ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ΅ΡΠ΅Π· Python, ΠΊΠ°ΠΊ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ. Siph0n ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΠ» ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Python Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π½Π° ΡΠΎΡΡΠΌΠ°Ρ BackTrack. Π― Ρ ΠΎΡΠ΅Π» ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π΅Π³ΠΎ Π·Π΄Π΅ΡΡ ΠΊΠ°ΠΊ Π·Π΅ΡΠΊΠ°Π»ΠΎ ΠΈ ΠΎΠ±ΡΡΠ΄ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΠΌΠΈ. ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΊΠΎΠ΄ Python.
f = open (‘wordlist’, ‘w’)
def xselections (items, n):
if n == 0: yield []
else:
Π΄Π»Ρ i Π² xrange (len (items)):
Π΄Π»Ρ ss Π² xselections (items, n-1):
yield [items [i]] + ss
# Numbers = 48 — 57
# Capital = 65 — 90
# Lower = 97 — 122
numb = range (48,58)
cap = range (65,91)
low = range (97,123)
choice = 0
while int (choice) not in range (1,8):
choice = raw_input (» ‘
1) Π§ΠΈΡΠ»Π°
2) ΠΠ°Π³Π»Π°Π²Π½ΡΠ΅ Π±ΡΠΊΠ²Ρ
3) Π‘ΡΡΠΎΡΠ½ΡΠ΅ Π±ΡΠΊΠ²Ρ
4) Π¦ΠΈΡΡΡ + Π·Π°Π³Π»Π°Π²Π½ΡΠ΅ Π±ΡΠΊΠ²Ρ
5) Π¦ΠΈΡΡΡ + ΠΏΡΠΎΠΏΠΈΡΠ½ΡΠ΅ Π±ΡΠΊΠ²Ρ
6) Π¦ΠΈΡΡΡ + Π·Π°Π³Π»Π°Π²Π½ΡΠ΅ Π±ΡΠΊΠ²Ρ + ΡΡΡΠΎΡΠ½ΡΠ΅ Π±ΡΠΊΠ²Ρ
7) ΠΠ°Π³Π»Π°Π²Π½ΡΠ΅ Π±ΡΠΊΠ²Ρ + ΡΡΡΠΎΡΠ½ΡΠ΅ Π±ΡΠΊΠ²Ρ
: » ‘)
choice = int (Π²ΡΠ±ΠΎΡ)
Poss = []
if choice == 1:
Poss + = Numb
elif choice == 2:
Poss + = cap
elif choice == 3:
Poss + = Low
elif choice == 4 :
Poss + = Numb
Poss + = cap
Poss + = Cap
Poss + = Low
ELIF ΠΡΠ±ΠΎΡ == 6:
Poss + = Numb
Pos + = Cap
Pos + = Low
ELIF choice == 7:
Pos + = cap
Poss + = Low
bigList = []
Π΄Π»Ρ i Π² Pos:
bigList.append (str (chr (i)))
MIN = raw_input (Β«ΠΠ°ΠΊΠΎΠ² ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ»ΠΎΠ²Π°?Β»)
MIN = int (MIN)
MAX = raw_input (Β«ΠΠ°ΠΊΠΎΠ² ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ»ΠΎΠ²Π°? «)
MAX = int (MAX)
Π΄Π»Ρ i Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (MIN, MAX + 1):
Π΄Π»Ρ s Π² xselections (bigList, i): f.write (». Join (s) + ‘\ n’)
ΠΡΠ»ΠΈ Π²Ρ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Ρ Python, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ Π²Π·ΡΡΡ ΠΊΠΎΠ΄ ΠΈ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡΡΡ, Π½ΠΎ Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΎΡΠ΅Π» ΠΎΠ±ΡΡΠ΄ΠΈΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘Π½Π°ΡΠ°Π»Π° Ρ ΡΠ°ΡΡΠΌΠΎΡΡΡ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½ΠΎ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Ρ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡΠΌ, ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Π²ΡΠ΅ΠΌΡ, Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ.
ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
- Π£ Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Python. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Linux (Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ), ΡΠΎ ΠΎΠ½, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Windows, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Python.
- Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Python, ΠΏΡΠΎΡΡΠΎ ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΠΈ Π²ΡΡΠ°Π²ΡΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ Π½Π°Π·ΠΎΠ²ΠΈΡΠ΅ Π΅Π³ΠΎ passwordDictionaryGenerator.py. Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ .py Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ Python ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ.
- ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Ρ ΠΎΡΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, ΡΡΠΎ numb, cap ΠΈ low. ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠΎΠ² ASCII Π΄Π»Ρ Π±ΡΠΊΠ² ΠΈ ΡΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π²Π°Ρ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π» Π½Π΅ a-z, Π° ΡΠΎΠ»ΡΠΊΠΎ a-k, Ρ ΠΎΡΡΠ°Π²Π»Ρ ΡΡΠΎ Π½Π° Π²Π°ΡΠ΅ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅.
- Π’Π΅ΠΏΠ΅ΡΡ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΡΠΎΡΡΠΎ Π²Π²Π΅Π΄ΠΈΡΠ΅
ΠΏΠ°ΡΠΎΠ»Ρ PythonDictionaryGenerator.py
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π»ΠΈΠ½Π½ΡΠΌ / ΠΊΠΎΡΠΎΡΠΊΠΈΠΌ Π±ΡΠ΄Π΅Ρ Π²Π°Ρ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ.ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ ΠΎΡΠ²Π΅ΡΠΈΡΠ΅ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ, Π½ΠΎ ΡΡΠΎ ΡΠ°ΠΊ, ΠΎΠ½Π° Π²Π΅ΡΠ½Π΅Ρ Π²Π°Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ wordlist.
ΠΡΠ°ΠΊ, ΡΠ΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΡΠ° ΠΊΠ»Π°ΡΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π²Π°Ρ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ. ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌ (ΡΠ°Π·ΠΌΠ΅Ρ ΠΠ, ΠΠ, Π’Π ΠΈ Ρ. Π.) ΠΡΠ΄Π΅Ρ ΡΡΠΎΡ ΡΠ»ΠΎΠ²Π°ΡΡ? Π‘ΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ? ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΠΎΠΏΡΠΎΡ ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΌ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ Π²ΡΠ΅ΠΌΡ.ΠΠ»ΡΡΠΎΠΌ ΠΊ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΡΠΌΠΈΠ½, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°ΠΌΠΈ. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ — ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ»ΠΎΠ² Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ Π΄Π»ΠΈΠ½Ρ ΡΠ»ΠΎΠ²Π°. ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π½ΠΈΠΆΠ΅.
n r
n = ΠΎΠ±ΡΠΈΠΉ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, a-z + A-Z + 0-9 = 62)
r = Π΄Π»ΠΈΠ½Π° ΡΠ»ΠΎΠ²Π°
Π’Π΅ΠΏΠ΅ΡΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΡ n r Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ. ΠΡΠ°ΠΊ, Π΄Π»Ρ ΠΏΠ°ΡΠΎΠ»Ρ ΠΈΠ· 6 ΡΠΈΡΡ Π²Π°ΡΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
n 6 + n 5 + n 4 + n 3 + n 2 + n 1 = Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ, Π³Π΄Π΅ Π½Π°Ρ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² — ΡΡΠΎ a-z (n = 26), Π° Π½Π°Ρ ΠΏΠ°ΡΠΎΠ»Ρ Π½Π΅ Π΄Π»ΠΈΠ½Π½Π΅Π΅ 6 (r = 1-6) ΡΠΈΡΡ. Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠ² Π±ΡΠ΄Π΅Ρ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅?
26 6 + 26 5 + 26 4 + 26 3 + 26 2 + 26 1 = 321 272 406 = ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»ΠΎΠ²
ΠΡΠ°ΠΊ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»ΠΎΠ² Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅.ΠΠ°ΠΊ ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ? ΠΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ, Π΅ΡΠ»ΠΈ Π΄Π»ΠΈΠ½Π° ΠΏΠ°ΡΠΎΠ»Ρ ΡΠ°Π²Π½Π° x, ΡΠΎΠ³Π΄Π° ΡΠ°Π·ΠΌΠ΅Ρ Π² Π±Π°ΠΉΡΠ°Ρ Π±ΡΠ΄Π΅Ρ x + 1 Π΄Π»Ρ ΡΡΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠ°ΡΠ΅ΠΌ Π²ΡΠ΅, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ ΡΠΌΠ½ΠΎΠΆΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ n r Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π΄Π»Ρ ΡΡΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ. ΠΡΠΎ ΠΌΠΎΠ³Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΏΡΡΠ°Π½Π½ΡΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ, Π½Π°Π΄Π΅ΡΡΡ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π³ΡΠ°ΡΠΈΠΊ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΎ ΠΏΡΠΎΡΡΠ½ΡΠ΅Ρ.
Π― ΡΠΎΠ·Π΄Π°Π» ΡΡΠΎΡ ΡΠ»ΠΎΠ²Π°ΡΡ, ΡΡΠΎ Π·Π°Π½ΡΠ»ΠΎ ΠΎΠΊΠΎΠ»ΠΎ 30 ΠΌΠΈΠ½ΡΡ. ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΎΠ²ΠΏΠ°Π» Ρ ΠΌΠΎΠΈΠΌΠΈ ΡΠ°ΡΡΠ΅ΡΠ°ΠΌΠΈ.
ΠΡΠ°ΠΊ, ΡΠ΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠΎΡΠΌΡΠ»Π° Π΄Π»Ρ ΡΠ°ΡΡΠ΅ΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΠ°Π·Π²Π΅ΡΡΡ Π½Π°ΡΠ΅ Π»ΡΠ±ΠΎΠΏΡΡΡΡΠ²ΠΎ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.
- Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² = a β z, A β Z ΠΈ 0β9
- Π΄Π»ΠΈΠ½Π° ΠΏΠ°ΡΠΎΠ»Ρ = 1-8
- ΠΏ = 62
- Π³ = 1-8
Π‘ ΡΡΠΈΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π΄ΠΎ 1800 ΡΠ΅ΡΠ°Π±Π°ΠΉΡ ΠΈΠ»ΠΈ 1,8 ΠΏΠ΅ΡΠ°Π±Π°ΠΉΡΠ°. ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΡ Π½ΠΈΠΆΠ΅.
ΠΡ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠ°ΠΊ Π±ΡΡΡΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ. ΠΠ΅ Π·Π½Π°Ρ, ΠΊΠ°ΠΊ Π²Ρ, Π½ΠΎ Ρ ΠΌΠ΅Π½Ρ Π½Π΅Ρ Π΄Π²ΡΡ ΠΏΠ΅ΡΠ°Π±Π°ΠΉΡΠ½ΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ°. Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΡΠΎΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π― ΠΏΠΎΠ΄ΡΡΠΈΡΠ°Π» Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ, ΠΎΠ½ΠΎ ΡΠΎΡΡΠ°Π²ΠΈΠ»ΠΎ ΠΎΠΊΠΎΠ»ΠΎ 11 Π΄Π½Π΅ΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ — Π½ΠΈΡΡΠΎ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ ΠΏΠ°ΠΌΡΡΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌ Π΄Π»Ρ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ°Π»ΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ Π½Π΅ Π·Π½Π°Ρ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊ ΡΡΠΎ ΡΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΊΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ»ΠΎΠ²Π°ΡΡ.
Π― ΠΎΡΡΠ°Π²Π»Ρ Π½Π° Π²Π°ΡΠ΅ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ python Π΄Π»Ρ ΠΏΠ°ΡΠΎΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΊΡΡΡΠ°ΠΏΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΡΠΌΡ ΡΡΠ΄Π°. ΠΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ, Π²ΡΠ΅ΠΌΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π²Π°ΠΆΠ½Π° ΠΏΠ°ΠΌΡΡΡ. Π ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡ , ΠΎ ΠΊΠΎΡΠΎΡΡΡ Ρ Π·Π΄Π΅ΡΡ Π³ΠΎΠ²ΠΎΡΠΈΠ», Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ. ΠΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ°ΡΠΎΠ»Ρ ΠΏΡΠΈΡΠ»Π° ΠΊΠΎ ΠΌΠ½Π΅ ΠΈ ΠΌΠΎΠΈΠΌ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π΄ΡΠΌΠ°Π»ΠΈ ΠΎ ΡΠΏΠΎΡΠΎΠ±Π°Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ WPA. ΠΡΠ°ΠΊΠΎΠ²Π°ΡΡ WPA ΠΌΠΎΠΆΠ½ΠΎ Π² Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΏΠΎΠ΄ΡΠΌΠ°Π»ΠΈ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ»ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ.Π§Π΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΎΠ² ΠΌΡ Π²ΡΠΊΠΎΡΠ΅ ΠΎΡΠΎΠ·Π½Π°Π»ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ Π±ΡΠ»Π° Ρ ΠΎΡΠΎΡΠ°Ρ Π½ΠΎΠ²ΠΎΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π»ΠΎ, ΡΡΠΎ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΡ Π±ΡΠ΄Π΅Ρ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ Π°ΡΠ°ΠΊΠΎΠ²Π°ΡΡ ΡΠΎΡΠΊΡ Π΄ΠΎΡΡΡΠΏΠ° WPA ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΏΠ°ΡΠΎΠ»Π΅ΠΌ. Renderman ΠΈ Π¦Π΅ΡΠΊΠΎΠ²Ρ Wi-Fi Π΄ΡΠΌΠ°Π»ΠΈ ΠΎΠ± ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Π·Π°Π΄ΠΎΠ»Π³ΠΎ Π΄ΠΎ ΠΌΠ΅Π½Ρ ΠΈ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π΄ΡΠΆΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ Π²Π°ΡΠ΅ΠΉ ΡΠΎΡΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ° WPA. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠ΅ΠΉ Π΄Π»ΠΈΠ½Π½ΡΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ, Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Β«ΠΎΠ±ΡΠΈΠΌΠΈΒ» ΠΏΠ°ΡΠΎΠ»ΡΠΌΠΈ, ΡΡΠΎ ΡΠΎΠΆΠ΅ Π½Π΅ΠΏΡΠΎΡΡΠ°Ρ Π·Π°Π΄Π°ΡΠ°.
ΠΠΎΡΠ°Π»Ρ ΡΡΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈ — ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»ΠΈΠ½Π½ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΏΠ°ΡΠΎΠ»ΠΈ Ρ Π²ΡΡΠΎΠΊΠΈΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π½ΠΎ Π²Ρ ΡΡΠΎ ΡΠΆΠ΅ Π·Π½Π°Π»ΠΈ. ΠΠΎΡΡΠΎΠΌΡ Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠ», ΡΡΠΎ ΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½Π°, Π½Ρ, ΡΡΠΎ ΡΠ°ΠΊ, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ, Π½ΠΎ ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅ (Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ°ΡΡ ΡΠ΅ΡΠ°Π±Π°ΠΉΡ), Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ ΡΠ΅ΡΠΈ. Π’Π°ΠΊ ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π΄Π°ΠΉΡΠ΅ ΠΌΠ½Π΅ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠ²Ρ Π²Π°ΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΠΌΠ½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π²Π°ΡΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅. Π‘ΡΠ°ΡΡΠ»ΠΈΠ²ΠΎΠ³ΠΎ Π²Π·Π»ΠΎΠΌΠ°.
ΠΡΠ½ΠΎΠ²Ρ Python: ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ², ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² Python ΠΏΠ΅ΡΠ΅Π΄ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π³ΠΎ ΠΊΡΠ°ΡΠΊΠΈΠΉ, ΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΊΠΎΠ΄.ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π°ΠΆΠ΅ Π²Π½ΡΡΡΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Python Π΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ. Π‘ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ², ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° — ΡΡΠΈ ΡΠ±Π΅Π΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΠΊΠΈΡ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. Π ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΈΠΊΠ»Ρ for, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ², ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π²Π°ΡΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Python.
Π‘ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΈ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ Π² Python
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ ΠΈ ΡΠ»ΠΎΠ²Π°ΡΡΠΌΠΈ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ Π΄Π»Ρ -ΠΏΠ΅ΡΠ΅Π»Ρ.
Π΄Π»Ρ — ΠΏΠ΅ΡΠ»ΠΈ
Π Python ΡΠΈΠΊΠ» for- ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΡ ΡΡ Π·Π°Π΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΎΠΊ, ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠ°.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ°:
ΡΠ»ΠΎΠ² = ['ΠΊΠΎΡ', 'ΠΎΠΊΠ½ΠΎ', 'ΠΌΡΡ']Π΄Π»Ρ x ΠΏΡΠΎΠΏΠΈΡΡΡ:
print (x)
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ — ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄ΡΡΠ³ΠΈΠΌ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅:
ΠΊΠΎΡΠΎΠΊΠ½ΠΎ
ΠΌΡΡ
ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ Π΄Π»Ρ -ΡΠΈΠΊΠ»ΠΎΠ², Π° Π·Π°ΡΠ΅ΠΌ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ½ΡΡΠΈΠΉ ΠΈ ΡΠ»ΠΎΠ²Π°ΡΡ, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ, ΡΡΠΎΡΡΡΡ Π·Π° Π½ΠΈΠΌΠΈ.
Π¦ΠΈΠΊΠ» Π΄Π»Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π±Π΅ΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ (Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΡΠ»ΡΡΠ°Π΅ — ΡΠΏΠΈΡΠΎΠΊ) ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΠΎΠ½. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ, ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ (Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ ). ΠΠ°ΡΠ΅ΠΌ ΡΠΈΠΊΠ» Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠ½ΠΎΠ²Π° ΠΈ ΠΈΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΡΠ»ΠΈ ΡΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ½ΠΎΠ²Π°. ΠΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΡΡ Π±ΡΡΡ Π½Π°ΠΉΠ΄Π΅Π½Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈ ΡΠΈΠΊΠ» Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ range ()
ΠΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ range () ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Python ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ Π΄Π»Ρ -ΡΠΈΠΊΠ»ΠΎΠ².ΠΠΎ ΡΡΡΠΈ, Π΅Π³ΠΎ ΡΠ΅Π»Ρ — ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΡΠ΅Π».
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
Π΄Π»Ρ i Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (5):print (i)
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
01
2
3
4
ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ range () Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ 0, ΠΏΠΎΡΡΠΎΠΌΡ range (5) Π²Π΅ΡΠ½Π΅Ρ ΡΠΈΡΠ»Π° ΠΎΡ 0 Π΄ΠΎ 4, Π° Π½Π΅ ΠΎΡ 1 Π΄ΠΎ 5.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ 0, ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Ρ ΡΠ°Π³ΠΎΠΌ 1 ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°Π³Π° ΠΊΠ°ΠΊ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (first, last, step_size).
Π‘ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ²
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ²
ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΉ ΠΈ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ², ΡΠ΅ΠΌ Π΄Π»Ρ ΡΠΈΠΊΠ»ΠΎΠ² , Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΏΠΈΡΠΊΠΈ ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ².
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² ΡΠΎΡΡΠΎΡΡ ΠΈΠ· ΡΠΊΠΎΠ±ΠΎΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ for, ΡΠΎ Π΅ΡΡΡ [Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅-ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ΅] ΠΈΠ»ΠΈ [x Π΄Π»Ρ x Π² ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ΅] , Π° Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠ³ΡΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ Π΄Π»Ρ ΠΈΠ»ΠΈ , Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ: [ΡΠ»Π΅ΠΌΠ΅Π½Ρ-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ΅, Π΅ΡΠ»ΠΈ ΡΡΠ»ΠΎΠ²Π½ΠΎ] .
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ:
x = [i Π΄Π»Ρ i Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (10)]
ΠΡΠ΄Π°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Π Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ»ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°:
x = [i Π΄Π»Ρ i Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (10), Π΅ΡΠ»ΠΈ i> 5]
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ:
[6, 7, 8, 9]
, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ i> 5 .
ΠΠΎΠΌΠΈΠΌΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠΏΠΈΡΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½Ρ ΠΈ ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΡ, ΡΠ΅ΠΌ ΠΈΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΡ for-loop, ΠΎΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅.
ΠΠΎΠ½ΡΡΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ²
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΡΡΠ°Π½ΡΠΏΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ² ΡΠΏΠΈΡΠΊΠΎΠ² ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌΠΈ ΡΠΏΠΈΡΠΊΠΎΠ². ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ² ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Ρ Π±Π°Π·ΠΎΠ²ΡΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌ ΠΎ ΡΠΏΠΈΡΠΊΠ°Ρ , ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ½ΠΎΠ²Π°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΉΡΠΈ Π΅ΡΠ΅ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡΡΠΎΠ²Π΅Π½Ρ Π³Π»ΡΠ±ΠΆΠ΅.
ΠΠ»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
[(x, y) Π΄Π»Ρ x Π² [1,2,3] Π΄Π»Ρ y Π² [3,1,4], Π΅ΡΠ»ΠΈ x! = Y]
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
Π‘Π»ΠΎΠΆΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²Π½ΡΡΡΠΈ ΡΠΏΠΈΡΠΊΠΎΠ².
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
from math import pi # import pi number from math module[str (round (pi, i)) for i in range (1, 6)]
ΠΠΎΠ·Π²ΡΠ°Ρ:
[Β«3,1Β», Β«3,14Β», Β«3,142Β», Β«3,1416Β», Β«3,14159Β»]
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ²
ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΡ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½Ρ Π½Π° -ΡΠΈΠΊΠ»Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ map (), filter (), ΠΈ reduce () , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ.
Π’ΠΎΠ»ΠΊΠΎΠ²Π°Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ
Π Python ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° — ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈΠ· ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ Π² Π΄ΡΡΠ³ΠΎΠΉ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΌΡ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ {ΠΊΠ»ΡΡ: Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅-ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ΅}, , Π½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (ΠΊΠ»ΡΡ: Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅) .
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ.ΠΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊ
dict ([(i, i + 10) for i in range (4)])
, ΡΡΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ :
{i: i + 10 Π΄Π»Ρ i Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (4)}
Π ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅:
{0: 10, 1: 11, 2: 12, 3: 13}
ΠΠ° ΡΡΠΈΠΌ Π±Π°Π·ΠΎΠ²ΡΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π΄Π»Ρ ΠΈΠ»ΠΈ , Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ : {ΠΊΠ»ΡΡ: Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅-ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠ΅ ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ} .
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° if ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²ΡΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
{i: i + 10 Π΄Π»Ρ i Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (10), Π΅ΡΠ»ΠΈ i> 5}
ΠΠΎΠ·Π²ΡΠ°Ρ:
{6: 16, 7: 17, 8: 18, 9: 19}
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ², ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΡΠ½ΠΎΠΉ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ Π΄Π»Ρ -ΡΠΈΠΊΠ»ΠΎΠ² ΠΈ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ»Ρ -ΡΠΈΠΊΠ»ΠΎΠ² ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄Π»Ρ -ΡΠΈΠΊΠ»ΠΎΠ², Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΈ Π·Π°ΠΏΡΡΠ°Π½Π½ΡΠΌ.ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠ΄Π°, ΠΎΠ±Π»Π΅Π³ΡΠ°Ρ Π΅Π³ΠΎ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅.
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ
Π Python ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ Π²Π½ΡΡΡΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
{(k, v): k + v Π΄Π»Ρ k Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (2) Π΄Π»Ρ v Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (2)}
ΠΠΎΠ·Π²ΡΠ°Ρ:
{(0, 0): 0, (0, 1): 1, (1, 0): 1, (1, 1): 2}
ΠΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ.Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅ΡΡΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ²Π΅ΡΡΠΈ Π½Π° Π½Π΅Ρ ΠΏΠΎΠ»ΡΠ·Ρ ΠΎΡ ΠΏΠΎΠΏΡΡΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΡΠ°ΡΠΊΠΈΠΉ, ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΊΠΎΠ΄.
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² Python
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°
— Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, ΡΠ΅ΠΌ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ»Π°ΡΡΠΎΠ². Π§ΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
Π€ΡΠ½ΠΊΡΠΈΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°
ΠΡΠ΅ΡΠ°ΡΠΎΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ»Π°ΡΡΠΎΠ² Π² Python ΡΠ°ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠ²Π½Ρ ΠΈ ΡΡΠ΅Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ².Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠΊΡΠ°ΡΠ°Ρ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ.
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ
ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°ΡΡ; ΠΎΠ±ΡΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° yield, Π° Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° return. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ yield ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π΅Π΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΡΡ Ρ ΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°, Π³Π΄Π΅ ΠΎΠ½ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡ.
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°, ΠΎΠ½Π° Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°.
ΠΠΎΠ΄ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ΠΎ next () .
ΠΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° yield ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Π΅, ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ.
ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ.
StopIteration Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π€ΡΠ½ΠΊΡΠΈΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊ:
def gen ():Π΄Π»Ρ x Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (10):
yield x ** 2
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°
ΡΠΏΡΠΎΡΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² Β«Π½Π° Π»Π΅ΡΡΒ» Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° yield ΠΈ Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½Ρ, ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°.
Π’ΠΎΡ ΠΆΠ΅ ΠΊΠΎΠ΄, ΡΡΠΎ ΠΈ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊ:
Π³ = (x ** 2 Π΄Π»Ρ x Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (10))
ΠΡΠ΅ ΠΎΠ΄Π½Π° ΡΠ΅Π½Π½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² — ΡΡΠΎ ΠΈΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ :
gen_exp = (i ** 2 Π΄Π»Ρ i Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (10), Π΅ΡΠ»ΠΈ i> 5)Π΄Π»Ρ i Π² gen_exp:
print (i)
ΠΠΎΠ·Π²ΡΠ°Ρ:
3649
64
81
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΏΡΠΎΡΠΈΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΡΠΏΠΈΡΠΊΠΎΠ²
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΏΠΎΡΠ°Π·ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ², Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ°Π·Π½ΠΈΡΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΡΡΠ³Π»ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ .
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊ:
(i ** 2 Π΄Π»Ρ i Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (10), Π΅ΡΠ»ΠΈ i> 5)
Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ ΡΡΠΎ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ:
[i ** 2 Π΄Π»Ρ i Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (10), Π΅ΡΠ»ΠΈ i> 5]
ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ ΡΠΈΠΏΠΎΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ . Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° Π²Π΅ΡΠ½Π΅Ρ Π²Π΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π²Π΅ΡΠ½Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°. Π₯ΠΎΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅, Π΄ΠΎΡΡΡΠΏ ΠΊ Π½ΠΈΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ next () .
Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ, ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΎΠ±ΡΡΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°, Ρ ΠΎΡΡ ΠΈ Π½Π΅ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ΄ΠΎΠ±Π°Π²ΠΎΠΊ ΠΊ ΡΡΠΎΠΌΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΡΠΏΠΈΡΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ°, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Ρ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°
ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ Π½Π°Π±ΠΎΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ Π²ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΡΠ°Π·Ρ ΠΈΠ»ΠΈ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ Π²ΡΠ΄Π΅Π»ΡΡΡ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ.ΠΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΡΠΎ ΡΡΡΡΠ°Π½ΡΠ΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π² ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ², Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠΏΠ°ΡΠ°ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΠΎΠΆΠ½Ρ Π΄ΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ, ΡΡΠΎ ΠΈΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΡΠ΄Π½ΠΎ ΡΠΈΡΠ°ΡΡ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ.
ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅
Π¦ΠΈΠΊΠ»Ρ for Python
ΠΎΡΠ΅Π½Ρ ΡΠ΅Π½Π½Ρ ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΡ ΡΡ Π·Π°Π΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ Π²Π°ΠΌ Π΄ΠΎΡΡΠΈΡΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ.ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΈ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΡΠ½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ Π΄Π»Ρ -ΡΠΈΠΊΠ»ΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΈ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΠ°ΡΠΊΠΈΠΌ ΠΈ Π»Π΅Π³ΠΊΠΈΠΌ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΈ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΉ Π΄Π»Ρ -ΡΠΈΠΊΠ»ΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ ΠΊΠ»ΡΡ ΠΊ ΡΡΠΏΠ΅Ρ Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΠΈΠΌ ΡΡΠ°ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΡΠ²ΠΎΠ΄ΠΈΠ»ΠΈ Π½Π° Π½Π΅Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ.
Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ².ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ², Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π²ΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Ρ.
Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½ — npm
ΠΠΎΠ»Π΅Π΅ 50 000 000 ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ ΠΈΠΌΠ΅Π½ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½?
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½ — ΡΡΠΎ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ·Π»ΠΎΠ² Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½.
ΠΠ½ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ «ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ», Π½ΠΎ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ
ΠΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ
ΠΈΠΌΠ΅Π½
v4.
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π²Π΅ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ 3.x, ΡΠΌ.
v3 ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ
ΠΠ»Ρ Π²Π΅ΡΡΠΈΠΉ 1 ΠΈ 2, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ
v2 ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° v4
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΡΠΎ ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π° v4, ΠΏΡΠΎΡΡΠΈΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΡΠ΅Π΄ΠΏΠΎΡΡΠ»ΠΊΠΈ
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ NodeJS (ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π²Π΅ΡΡΠΈΡ 6) ΠΈ NPM.Node ΠΈ NPM Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡ Π² ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅.
Π§ΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅,
ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
$ node --version ΠΠ΅ΡΡΠΈΡ 7.10.1 $ npm --version 4.2.0
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΠΠ ΠΠ Π£Π‘Π’ΠΠΠΠΠΠΠ: , ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ npm ΠΈΠ»ΠΈ Yarn
$ npm Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½ i -S
ΠΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΡΠΆΡ
$ ΠΏΡΡΠΆΠ° Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
const {uniqueNamesGenerator, ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ²Π΅ΡΠ°, ΠΆΠΈΠ²ΠΎΡΠ½ΡΠ΅} = require ('Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½'); const randomName = uniqueNamesGenerator ({ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ²Π΅ΡΠ°, ΠΆΠΈΠ²ΠΎΡΠ½ΡΠ΅]}); // big_red_donkey const shortName = uniqueNamesGenerator ({ ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΠΆΠΈΠ²ΠΎΡΠ½ΡΠ΅, ΡΠ²Π΅ΡΠ°], // ΡΠ²Π΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»ΠΈΠ½Π°: 2 }); // Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΡΠ΅Π»
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ°ΡΠΈΠ½ΠΎΠΏΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°
ΠΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅Ρ ΡΠ°ΠΉΠ» ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠ°, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΏΡΡΠΌΠΎ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ,
Π²Π½ΡΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Typescript.
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator, Config, ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ²Π΅ΡΠ°, ΠΆΠΈΠ²ΠΎΡΠ½ΡΡ } ΠΈΠ· Β«Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½Β»; const customConfig: Config = { ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ²Π΅ΡΠ°], ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ: '-', Π΄Π»ΠΈΠ½Π°: 2, }; const randomName: string = uniqueNamesGenerator ({ ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ²Π΅ΡΠ°, ΠΆΠΈΠ²ΠΎΡΠ½ΡΠ΅] }); // big_red_donkey const shortName: ΡΡΡΠΎΠΊΠ° = uniqueNamesGenerator (customConfig); // Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΡΠ΅Π»
API
uniqueNamesGenerator (ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ)
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ
ΡΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ
Π²Π°ΡΠΈΠ°Π½ΡΡ
Π’ΠΈΠΏ: ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
ΡΠ»ΠΎΠ²Π°ΡΠΈ
Π’ΠΈΠΏ: ΠΌΠ°ΡΡΠΈΠ²
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ: ΠΏΡΠ°Π²Π΄Π°
ΠΡΠΎ ΠΌΠ°ΡΡΠΈΠ² ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ.ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ — ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠΎΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΠ»ΠΎΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ.
ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΠ»ΠΎΠ²Π°ΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Π² ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator, ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ²Π΅ΡΠ°, ΠΆΠΈΠ²ΠΎΡΠ½ΡΠ΅} ΠΈΠ· Β«Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½Β»; const shortName: string = uniqueNamesGenerator ({ ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΡΠ²Π΅ΡΠ°, ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΠΆΠΈΠ²ΠΎΡΠ½ΡΠ΅] }); // red_big_donkey
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡΡ ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ, ΡΠΈΡΠ°ΠΉΡΠ΅ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Π‘Π»ΠΎΠ²Π°ΡΠΈ.
ΡΠ΅ΠΏΠ°ΡΠ°ΡΠΎΡ
Π’ΠΈΠΏ: ΡΡΡΠΎΠΊΠ°
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ: Π»ΠΎΠΆΡ
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: _
Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΡΡΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ»ΠΎΠ².
Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ — _
.
Π΄Π»ΠΈΠ½Π°
Π’ΠΈΠΏ: Π½ΠΎΠΌΠ΅Ρ
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ: Π»ΠΎΠΆΡ
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 3
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ — 3
, ΠΈ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΎ ΠΈΠΌΡ, ΡΠΎΡΡΠΎΡΡΠ΅Π΅ ΠΈΠ· 3 ΡΠ»ΠΎΠ².ΠΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ°Π²Π½Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 3) ΠΈΠ»ΠΈ Π±ΡΡΡ ΠΌΠ΅Π½ΡΡΠΈΠΌΠΈ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π΄Π»ΠΈΠ½Ρ
Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 4
Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ, Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ 3 ΡΠ»ΠΎΠ²Π°ΡΡ.
ΡΡΠΈΠ»Ρ
Π’ΠΈΠΏ: Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΊΠΎΡΠΏΡΡ | upperCase | ΠΊΠ°ΠΏΠΈΡΠ°Π»
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ: Π»ΠΎΠΆΡ
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ — lowerCase
ΠΈ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΈΠΌΡ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅.
ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ upperCase
, ΡΠ»ΠΎΠ²Π° Π±ΡΠ΄ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π±ΡΠΊΠ²Π°ΠΌΠΈ Π² Π²Π΅ΡΡ
Π½Π΅ΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ΅.ΠΠΏΡΠΈΡ capital
Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡΠΊΠ²Ρ
.
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator, ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ²Π΅ΡΠ°, ΠΆΠΈΠ²ΠΎΡΠ½ΡΠ΅} ΠΈΠ· Β«Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½Β»; const capitalizedName: string = uniqueNamesGenerator ({ ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΡΠ²Π΅ΡΠ°, ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΠΆΠΈΠ²ΠΎΡΠ½ΡΠ΅], ΡΡΠΈΠ»Ρ: 'ΠΊΠ°ΠΏΠΈΡΠ°Π»' }); // Red_Big_Donkey const upperCaseName: string = uniqueNamesGenerator ({ ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΡΠ²Π΅ΡΠ°, ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΠΆΠΈΠ²ΠΎΡΠ½ΡΠ΅], ΡΡΠΈΠ»Ρ: 'Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ' }); // RED_BIG_DONKEY const lowerCaseName: string = uniqueNamesGenerator ({ ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΡΠ²Π΅ΡΠ°, ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΠΆΠΈΠ²ΠΎΡΠ½ΡΠ΅], ΡΡΠΈΠ»Ρ: 'Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ' }); // red_big_donkey
ΡΠ΅ΠΌΠ΅Π½Π°
Π’ΠΈΠΏ: Π½ΠΎΠΌΠ΅Ρ
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ: Π»ΠΎΠΆΡ
ΠΠ°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠΌΡ.ΠΠΎΠΊΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈΠΌΡ ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅.
Π‘Π»ΠΎΠ²Π°ΡΠΈ Π² Π½Π°Π»ΠΈΡΠΈΠΈ
Π§ΠΈΡΠ»Π°
ΠΡΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠΈΡΠ°ΠΉΡΠ΅ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«Π‘Π»ΠΎΠ²Π°ΡΡ ΡΠΈΡΠ΅Π»Β»
.
ΠΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 1400 ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΡ , Π³ΠΎΡΠΎΠ²ΡΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator, Config, ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅} ΠΈΠ· Β«Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½Β»; const config: Config = { ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅] } const characterName: string = uniqueNamesGenerator (config); // Π±ΠΎΠ»ΡΡΠΎΠΉ
ΠΠΈΠ²ΠΎΡΠ½ΡΠ΅
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 350 ΠΆΠΈΠ²ΠΎΡΠ½ΡΡ , Π³ΠΎΡΠΎΠ²ΡΡ ΠΊ ΡΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator, Config, animals} ΠΈΠ· Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½; const config: Config = { ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΠΆΠΈΠ²ΠΎΡΠ½ΡΠ΅] } const characterName: string = uniqueNamesGenerator (config); // ΠΎΡΠ΅Π»
Π¦Π²Π΅ΡΠ°
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 50 ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ²Π΅ΡΠΎΠ²
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator, Config, colors} ΠΈΠ· Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½; const config: Config = { ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΡΠ²Π΅ΡΠ°] } const characterName: string = uniqueNamesGenerator (config); // ΠΊΡΠ°ΡΠ½ΡΠΉ
Π‘ΡΡΠ°Π½Ρ
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 250 ΡΠ°Π·Π½ΡΡ ΡΡΡΠ°Π½
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator, Config, countries} ΠΈΠ· Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½; const config: Config = { ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΡΡΡΠ°Π½Ρ] } const characterName: string = uniqueNamesGenerator (config); // ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠ΅ ΠΡΠ°Π±ΡΠΊΠΈΠ΅ ΠΠΌΠΈΡΠ°ΡΡ
ΠΠΌΠ΅Π½Π°
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 4900 ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator, Config, names} ΠΈΠ· Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½; const config: Config = { ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΠΈΠΌΠ΅Π½Π°] } const characterName: string = uniqueNamesGenerator (config); // ΠΠ°ΠΉΠ½ΠΎΠ½Π°
Π―Π·ΡΠΊΠΈ
Π‘ΠΏΠΈΡΠΎΠΊ ΡΠ·ΡΠΊΠΎΠ²
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator, Config, languages} ΠΈΠ· Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½; const config: Config = { ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΡΠ·ΡΠΊΠΈ] } const characterName: string = uniqueNamesGenerator (config); // ΠΏΠΎΠ»ΠΈΡΠΎΠ»Ρ
ΠΠ²Π΅Π·Π΄Π½ΡΠ΅ Π²ΠΎΠΉΠ½Ρ
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 80 ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½ ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠ΅ΠΉ ΠΈΠ· Β«ΠΠ²Π΅Π·Π΄Π½ΡΡ Π²ΠΎΠΉΠ½
Β».
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator, Config, starWars} ΠΈΠ· Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½; const config: Config = { ΡΠ»ΠΎΠ²Π°ΡΠΈ: [Π·Π²Π΅Π·Π΄Π½ΡΠ΅ Π²ΠΎΠΉΠ½Ρ] } const characterName: string = uniqueNamesGenerator (config); // Π₯Π°Π½ Π‘ΠΎΠ»ΠΎ
Π‘Π»ΠΎΠ²Π°ΡΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ
ΠΈΠΌΠ΅Π½ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ 3 ΡΠ»ΠΎΠ²Π°ΡΡΠΌΠΈ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ, ΡΠ°ΠΊ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
ΡΡΠ°Π·Ρ.ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 4 Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΠΈ Π²
ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
ΠΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΡΡΡΡ
ΠΈΠ²Π°Π½ΠΈΡ Π΄Π΅ΡΠ΅Π²Π° Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π»ΠΈΡΠ½ΠΈΡ
ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΊΠΎΠ³Π΄Π°
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅.
ΠΠΎΠ²ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator, Config, ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ²Π΅ΡΠ°, ΠΆΠΈΠ²ΠΎΡΠ½ΡΡ } ΠΈΠ· Β«Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½Β»; const config: Config = { ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ²Π΅ΡΠ°, ΠΆΠΈΠ²ΠΎΡΠ½ΡΠ΅] } const characterName: string = uniqueNamesGenerator (config); // red_big_donkey
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΠΈ
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ Π·Π°Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ»ΠΎΠ²Π°ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π°ΡΠΈΡ
ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ
ΠΈΠΌΠ΅Π½,
Π΄Π»Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π²Π°ΡΠ΅Π³ΠΎ Π±ΠΈΠ·Π½Π΅ΡΠ°.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠΏΡΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ.
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator} ΠΈΠ· Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½; const starWarsCharacters = [ 'Π₯Π°Π½ Π‘ΠΎΠ»ΠΎ', "ΠΠΆΠ°Π±Π±Π° Π₯Π°ΡΡ", 'R2-D2', "ΠΡΠΊ Π‘ΠΊΠ°ΠΉΡΠΎΠΊΠ΅Ρ", 'ΠΡΠΈΠ½ΡΠ΅ΡΡΠ° ΠΠ΅Ρ ΠΡΠ³Π°Π½Π°' ]; const colors = [ "ΠΠ΅Π»Π΅Π½ΡΠΉ", "ΠΊΡΠ°ΡΠ½ΡΠΉ", "ΠΆΠ΅Π»ΡΡΠΉ", "ΡΠ΅ΡΠ½ΡΠΉ" ] const characterName: string = uniqueNamesGenerator ({ ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΡΠ²Π΅ΡΠ°, ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠΈ Π·Π²Π΅Π·Π΄Π½ΡΡ Π²ΠΎΠΉΠ½], Π΄Π»ΠΈΠ½Π°: 2, ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ: ' ' }); // ΠΠ΅Π»Π΅Π½ΡΠΉ ΠΡΠΊ Π‘ΠΊΠ°ΠΉΡΠΎΠΊΠ΅Ρ
Π‘Π»ΠΎΠ²Π°ΡΡ ΡΠΈΡΠ΅Π»
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ ΡΠΈΡΠ»Π° Π²Π½ΡΡΡΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠ° ΡΠ»ΠΎΠ²Π°ΡΡ Numbers.
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator, NumberDictionary} ΠΈΠ· Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½; const numberDictionary = NumberDictionary.generate ({ΠΌΠΈΠ½: 100, ΠΌΠ°ΠΊΡ: 999}); const characterName: string = uniqueNamesGenerator ({ ΡΠ»ΠΎΠ²Π°ΡΠΈ: [['Dangerous'], ['Snake'], numberDictionary], Π΄Π»ΠΈΠ½Π°: 3, ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ: '', ΡΡΠΈΠ»Ρ: 'ΠΊΠ°ΠΏΠΈΡΠ°Π»' }); // ΠΠΏΠ°ΡΠ½Π°Ρ Π·ΠΌΠ΅Ρ123
Π‘Π»ΠΎΠ²Π°ΡΡ ΡΠΈΡΠ΅Π» API
Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ (ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ)
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ
ΡΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ ΠΎΡ 1 Π΄ΠΎ 999
Π²Π°ΡΠΈΠ°Π½ΡΡ
Π’ΠΈΠΏ: ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
ΠΌΠΈΠ½
Π’ΠΈΠΏ: Π½ΠΎΠΌΠ΅Ρ
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ: Π»ΠΎΠΆΡ
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 1
ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΎ ΠΊΠ°ΠΊ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ
ΠΌΠ°ΠΊΡ
Π’ΠΈΠΏ: Π½ΠΎΠΌΠ΅Ρ
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ: Π»ΠΎΠΆΡ
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 999
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΎ ΠΊΠ°ΠΊ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ
Π΄Π»ΠΈΠ½Π°
Π’ΠΈΠΏ: Π½ΠΎΠΌΠ΅Ρ
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ: Π»ΠΎΠΆΡ
ΠΠ»ΠΈΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π΄Π»ΠΈΠ½Ρ 3 Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΎΡ 100
Π΄ΠΎ 999
. ΠΡΠΎ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° 100
ΠΈ 999
ΠΊΠ°ΠΊ ΠΌΠΈΠ½.
ΠΈ ΠΌΠ°ΠΊΡ.
Π²Π°ΡΠΈΠ°Π½Ρ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΡΠ»ΠΈ Π·Π°Π΄Π°Π½ΠΎ, ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡΡΡ Π»ΡΠ±ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΎΠΏΡΠΈΠΈ ΠΌΠΈΠ½.
ΠΈ ΠΌΠ°ΠΊΡ.
.
ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ.
ΠΡΠΎΡΡΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ Π½ΡΠΆΠ½Ρ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΡ
ΠΏΡΡΠΌΠΎ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator, ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ²Π΅ΡΠ°} ΠΈΠ· Β«Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½Β»; const ImprovedAdjectives = [ ... ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, 'Π°Π±ΡΠ°Π·ΠΈΠ²Π½ΡΠΉ', 'Π΄Π΅ΡΠ·ΠΊΠΈΠΉ', 'ΡΠ΅ΡΡΡΠ²ΡΠΉ', 'Π³Π»ΡΠΏΡΠΉ', "ΡΠΊΡΡΠ΅Π½ΡΡΠΈΡΠ½ΡΠΉ", ]; const xMen = [ 'ProfessorX', 'Π·Π²Π΅ΡΡ', 'ΠΊΠΎΠ»ΠΎΡΡ', 'ΡΠΈΠΊΠ»ΠΎΠΏ', 'Π»Π΅Π΄ΡΠ½ΠΎΠΉ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ', 'Π ΠΎΡΠΎΠΌΠ°Ρ Π°', ]; const characterName: string = uniqueNamesGenerator ({ ΡΠ»ΠΎΠ²Π°ΡΠΈ: [SuperiorAdjectives, color, xMen], Π΄Π»ΠΈΠ½Π°: 2, ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ: '-' }); // ΡΠΊΡΡΠ΅Π½ΡΡΠΈΡΠ½ΡΠΉ ΡΠΈΠ½ΠΈΠΉ Π»Π΅Π΄ΡΠ½ΠΎΠΉ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 3 Π½Π° Π²Π΅ΡΡΠΈΡ 4
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½ v4 ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π½ΠΎΠ²ΠΎΠ΅ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅.
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ
ΡΠ»ΠΎΠ²Π°ΡΠΈ
ΠΊΠΎΠ½ΡΠΈΠ³
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²Π½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ»ΠΎΠ²Π°ΡΠΈ.
ΠΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΡΡΡΡΡ
ΠΈΠ²Π°Π½ΠΈΡ Π΄Π΅ΡΠ΅Π²Π° Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ ΠΈΠ·
ΡΠ°Π·ΠΌΠ΅Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Π‘Π»ΠΎΠ²Π°ΡΠΈ.
Π²Π΅ΡΡΠΈΡ 3
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator} ΠΈΠ· Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½; const randomName = uniqueNamesGenerator (); // big_red_donkey
Π²Π΅ΡΡΠΈΡ 4
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator, Config, ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ²Π΅ΡΠ°, ΠΆΠΈΠ²ΠΎΡΠ½ΡΡ } ΠΈΠ· Β«Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½Β»; const config: Config = { ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ²Π΅ΡΠ°, ΠΆΠΈΠ²ΠΎΡΠ½ΡΠ΅] } const randomName = uniqueNamesGenerator (ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ); // big_red_donkey
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Ρ Π²Π΅ΡΡΠΈΠΈ 1 ΠΈΠ»ΠΈ 2
Π Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½ v3 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.ΠΡΠ»ΠΈ Π²Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΠ΅ ΡΠ²ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Ρ Π²Π΅ΡΡΠΈΠΈ 1 ΠΈΠ»ΠΈ 2, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΠ·Π½Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
uniqueNamesGenerator
Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ
Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ
v4 ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅.
Π²Π΅ΡΡΠΈΡ 2
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator} ΠΈΠ· Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½; const randomName = uniqueNamesGenerator ();
Π²Π΅ΡΡΠΈΡ 4
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator, Config, ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ²Π΅ΡΠ°, ΠΆΠΈΠ²ΠΎΡΠ½ΡΡ } ΠΈΠ· Β«Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½Β»; const config: Config = { ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ²Π΅ΡΠ°, ΠΆΠΈΠ²ΠΎΡΠ½ΡΠ΅] } const randomName = uniqueNamesGenerator (ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ); // big_red_donkey
Π‘Π΅ΠΏΠ°ΡΠ°ΡΠΎΡ
Π²Π΅ΡΡΠΈΡ 2
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator} ΠΈΠ· Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½; const shortName = uniqueNamesGenerator ('-'); // Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΡΠ°ΡΠ½ΡΠΉ ΠΎΡΠ΅Π»
Π²Π΅ΡΡΠΈΡ 4
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator, Config, ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ²Π΅ΡΠ°, ΠΆΠΈΠ²ΠΎΡΠ½ΡΡ } ΠΈΠ· Β«Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½Β»; const config: Config = { ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ²Π΅ΡΠ°, ΠΆΠΈΠ²ΠΎΡΠ½ΡΠ΅], ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ: '-' } const shortName = uniqueNamesGenerator (ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ); // Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΡΠ°ΡΠ½ΡΠΉ ΠΎΡΠ΅Π»
ΠΠΎΡΠΎΡΠΊΠΈΠΉ
Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ short
Π±ΡΠ»ΠΎ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° length
, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»ΠΎΠ²
Π²Π΅ΡΡΠΈΡ 2
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator} ΠΈΠ· Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½; const shortName = uniqueNamesGenerator (ΠΈΡΡΠΈΠ½Π°); // Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΡΠ΅Π»
Π²Π΅ΡΡΠΈΡ 4
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {uniqueNamesGenerator, Config, ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ²Π΅ΡΠ°, ΠΆΠΈΠ²ΠΎΡΠ½ΡΡ } ΠΈΠ· Β«Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½Β»; const config: Config = { ΡΠ»ΠΎΠ²Π°ΡΠΈ: [ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΡΠ²Π΅ΡΠ°, ΠΆΠΈΠ²ΠΎΡΠ½ΡΠ΅], Π΄Π»ΠΈΠ½Π°: 2 } const shortName = uniqueNamesGenerator (ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ); // Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΡΠ΅Π»
ΠΠΊΠ»Π°Π΄
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΡΠΎΡΡΠΈΡΠ΅ ΠΠΠΠΠΠΠΠ’ΠΠΠ¬ΠΠ.md, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅ΠΊΡΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈ ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π½Π°ΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° Π²ΡΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠ΅.
- ΠΠΈΠ»ΠΊΠ°!
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ²ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ:
git checkout -b my-new-feature
- ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
git add.
- ΠΠ°ΡΠΈΠΊΡΠΈΡΡΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
git commit -am 'ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ'
- ΠΡΠΏΡΠ°Π²ΠΈΡΡ Π² Π²Π΅ΡΠΊΡ:
git push origin my-new-feature
- ΠΡΠΏΡΠ°Π²ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ π
ΠΠΈΡΠ΅Π½Π·ΠΈΡ
ΠΠΈΡΠ΅Π½Π·ΠΈΡ MIT Β© ΠΠ½Π΄ΡΠ΅Π° Π‘ΠΎΠ½Π½ΠΈ
ΠΠ²ΡΠΎΡΡ
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ ΡΡΠΈΠΌ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ Π»ΡΠ΄ΡΠΌ (ΡΠΌΠ°ΠΉΠ»ΠΈΠΊ):
ΠΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π²ΡΠ΅Ρ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ².ΠΡΠ±ΡΠ΅ ΠΏΠΎΠΆΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ!
Π‘ΠΏΠΈΡΠΎΠΊ, Π½Π°Π±ΠΎΡ, ΡΠ»ΠΎΠ²Π°ΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Python | ΠΠ½Π΄Ρ ΡΠΌΠ°ΡΠΈ Π§Π΅Π»Π»ΠΈΡ | ΠΠ½Π°Π»ΠΈΡΠΈΠΊΠ° ΠΠΈΠ΄Ρ ΡΡ
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ·Π½Π°Π΅ΠΌ ΠΎ ΡΠΏΠΈΡΠΊΠ°Ρ , ΡΠ»ΠΎΠ²Π°ΡΡΡ , Π½Π°Π±ΠΎΡΠ°Ρ Π² Python.
Π€ΠΎΡΠΎ ΠΠ°ΡΠ° ΠΠ΄Ρ Π½Π° Unsplash
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π² Python:
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ Π΄Π»Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΈ Π½ΠΎΠ»Ρ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π΄Π»Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΈΠ»ΠΈ Π΄Π»Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
.
Π Python Π΅ΡΡΡ ΡΡΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ.
Π’ΠΈΠΏΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΉ Π² Python (ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: ΠΠ²ΡΠΎΡ)
Π‘ΠΎΡΡΠ°Π²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ ΡΠΏΠΈΡΠΊΠΎΠ²:
ΠΠΎΠ½ΡΡΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ². Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ»Π΅Π½Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΠΎΡΡΠΈ, ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΡΡΠ»ΠΎΠ²ΠΈΡ. — python docs
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
[Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠΌ, Π΅ΡΠ»ΠΈ ΡΡΠ»ΠΎΠ²Π½ΠΎΠ΅]
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΡΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΌ, Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ°.
ΠΡΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ
Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ :
, Π΅ΡΠ»ΠΈ ΡΡΠ»ΠΎΠ²Π½ΠΎΠ΅:
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
Π’ΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°:
Π‘ΠΏΠΈΡΠΎΠΊ
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ°:
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠΊΠΎΠ±ΠΎΠΊ []
, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄Π»Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ
, Π·Π°ΡΠ΅ΠΌ Π½ΠΎΠ»Ρ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π΄Π»Ρ
ΠΈΠ»ΠΈ Π΄Π»Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ
. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΎΡΠ΅Π½ΠΊΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π΄Π»Ρ
ΠΈ , Π΅ΡΠ»ΠΈ Π·Π° Π½ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ
.
ΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° (ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: Π°Π²ΡΠΎΡ)
1. ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΈ ΡΠΈΠΊΠ» for.
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Β«ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ°Β» ΠΎΠ½ Π±ΠΎΠ»Π΅Π΅ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ΅Π½ ΠΈ ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠΈΠΊΠ»ΠΎΠΌ for.
ΠΠ°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ° ΡΠΈΡΠ΅Π» Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΠΈ ΡΠΈΠΊΠ»Π° for:
ΡΠΈΠΊΠ»Π° for vs ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ°
2. ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° vs ΡΠΈΠ»ΡΡΡ.
filter:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ ΠΈΠ· ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² iterable , Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true. ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΌ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ, ΠΈΠ»ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ.
ΠΠΎΠΈΡΠΊ ΡΠ΅ΡΠ½ΡΡ ΡΠΈΡΠ΅Π» Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΠΈ filter ():
ΠΠ½Π°Π»ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΈ ΡΠΈΠ»ΡΡΡ ()
3. ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΈ ΠΊΠ°ΡΡΠ°.
map:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ , Π΄Π°Π²Π°Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ.
ΠΠ°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ° ΡΠΈΡΠ΅Π» Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΠΈ ΠΊΠ°ΡΡΡ ():
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΈ ΠΊΠ°ΡΡΡ ()
4.ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΊΠ»Ρ Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ ΡΠΏΠΈΡΠΊΠΎΠ².
Π‘ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ for.
ΠΡΠΈΠΌΠ΅Ρ 1 : Π‘Π³Π»Π°Π΄ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° Ρ Π΄Π²ΡΠΌΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ Β«forΒ»:
Π‘Π³Π»Π°Π΄ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ°
5. Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ if Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ ΡΠΏΠΈΡΠΊΠ°.
Π‘ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π½ΠΎΠ»Ρ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ if.
ΠΡΠΈΠΌΠ΅Ρ: ΠΠ°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ΅Π», ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»ΡΡΡΡ Π½Π° 2 ΠΈ 3.
Π‘ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π²ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ if
6.ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΌ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΠΏΠΈΡΠΊΠ°.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠΎΡΡΠ΅ΠΆ Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ ΡΠΏΠΈΡΠΊΠ°.