Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅

22 ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΊΠΎΠ΄Π° Π½Π° Python

Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅. Π€ΠΎΡ‚ΠΎ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅

Python β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых популярных языков программирования, Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΈ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ повсСднСвных Π·Π°Π΄Π°Ρ‡. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ расскаТу ΠΎ 22 ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΊΠΎΠ΄Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠΎΡ‰ΡŒΡŽ Python.

НСкоторыС ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π°Π½Π΅Π΅, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΈ интСрСсными для вас. ВсС эти ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ΡΡ.

1. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ гласныС

2. ΠŸΠ΅Ρ€Π²Π°Ρ Π±ΡƒΠΊΠ²Π° Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для прСвращСния ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹ символов строки Π² ΠΏΡ€ΠΎΠΏΠΈΡΠ½ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ. Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ со строкой ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… символов ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ тСкста ΠΈΠ»ΠΈ записи Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ» ΠΈ Ρ‚.ΠΏ.

3. ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ строки N Ρ€Π°Π·

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ строку n Ρ€Π°Π· Π±Π΅Π· использования Ρ†ΠΈΠΊΠ»ΠΎΠ² Python.

4. ОбъСдиняСм Π΄Π²Π° словаря

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ выполняСт слияниС Π΄Π²ΡƒΡ… словарСй Π² ΠΎΠ΄ΠΈΠ½.

5. ВычисляСм врСмя выполнСния

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ трСбуСтся для выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

6. ОбмСн Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ

Π­Ρ‚ΠΎ быстрый способ ΠΎΠ±ΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π±Π΅Π· использования Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ.

7. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ²

Π­Ρ‚ΠΎ самый быстрый способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ наличия ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² спискС.

8. Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ False

9. Π Π°Π·ΠΌΠ΅Ρ€ Π² Π±Π°ΠΉΡ‚Π°Ρ…

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ строки Π² Π±Π°ΠΉΡ‚Π°Ρ…, Ρ‡Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ строковой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

10. Занятая ΠΏΠ°ΠΌΡΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΡ‘ΠΌ памяти, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ любой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Python.

11. Анаграммы

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΠΏΠΎΠ»Π΅Π·Π΅Π½ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΎΠ³ΠΎ, являСтся Π»ΠΈ строка Π°Π½Π°Π³Ρ€Π°ΠΌΠΌΠΎΠΉ. Анаграмма β€” это слово, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ пСрСстановкой Π±ΡƒΠΊΠ² Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ слова.

12. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° списка

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сортируСт список. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° β€” это часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π·Π°Π΄Π°Ρ‡Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ мноТСством строк ΠΊΠΎΠ΄Π° с Ρ†ΠΈΠΊΠ»ΠΎΠΌ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ встроСнного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° сортировки.

13. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° словаря

14. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ послСднСго элСмСнта списка

15. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ запятыми списка Π² строку

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ запятыми список Π² Π΅Π΄ΠΈΠ½ΡƒΡŽ строку. Π•Π³ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ вСсь список со строкой.

16. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ°Π»ΠΈΠ½Π΄Ρ€ΠΎΠΌΠΎΠ²

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ быстро ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠ°Π»ΠΈΠ½Π΄Ρ€ΠΎΠΌΠΎΠ².

17. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΈΠ²Π°Π½ΠΈΠ΅ списка

18. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ строки Π² Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΈ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистры

19. Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ строки

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ позволяСт Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку. Под Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² Python подразумСваСтся присоСдинСниС ΠΊ строкС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

20. Поиск подстроки

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½ для поиска подстроки Π² строкС. Π― Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽ Π΅Π³ΠΎ двумя способами, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΌΠΈ Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

21. ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΉ строкС

ΠœΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ функция print выполняСт Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС, ΠΈ Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ print, ΠΎΠ½ΠΈ выполнят ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ Π² Π΄Π²Π΅ строки. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚, ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡƒΡŽ.

22. Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π½Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚, ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ список Π½Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° мСньшиС части.

На ΠΏΡ€Π°Π²Π°Ρ… Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹

Π‘Π΅Ρ€Π²Π΅Ρ€Ρ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² β€” Π²Ρ‹Π±ΠΎΡ€ срСди ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎΠ³ΠΎ списка прСдустановлСнных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ собствСнный ISO для установки ОБ, ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ Ρ‚Π°Ρ€ΠΈΡ„Π½Ρ‹Ρ… ΠΏΠ»Π°Π½ΠΎΠ² ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π² ΠΏΠ°Ρ€Ρƒ ΠΊΠ»ΠΈΠΊΠΎΠ², активация любого сСрвСра Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языкС Python

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ собраны ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языкС программирования Python, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π΅Π³ΠΎ синтаксис ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· возмоТностСй.Π—Π°Π΄Π°Π½ΠΈΠ΅

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

НахоТдСниС 10 Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ частых слов Π½Π° web страницС [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ чисто дСмонстрационный, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ.

ВСкст для вСрсии 3.7.1

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Π˜Π»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ особСнности индСксации элСмСнтов ΠΈ срСзов: ΠΏΡ€ΠΈ взятии срСза Π½ΡƒΠΌΠ΅Ρ€ΡƒΡŽΡ‚ΡΡ Π½Π΅ сами элСмСнты, Π° ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ range() ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ‚ΠΎ ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ (для вСрсий языка 2.x):

РСализация ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ простой Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° Python.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ контСкстом выполнСния [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· PEP343 ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° with для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π° ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ выполнСния двумя ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ:

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ чисСл Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° чисСл Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ ΠΈ Π΅Π³ΠΎ использования:

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ синтаксис доступа ΠΊ элСмСнтам словаря [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

МоТно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌΡƒ синтаксису доступа ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ dΠ΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ синтаксичСски Π±ΠΎΠ»Π΅Π΅ наглядный доступ ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ d.key Π² случаС Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎ-Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ:

Π€ΡƒΠ½ΠΊΡ‚ΠΎΡ€ с Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Π±Π°ΠΉΡ‚ΠΎΠΊΠΎΠ΄Π° [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ эффСктивной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€Π°, основанный Π½Π° Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π±Π°ΠΉΡ‚ΠΎΠΊΠΎΠ΄Π° Π²ΠΎ врСмя исполнСния. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ дСмонстрируСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ возмоТности/особСнности Python:

Π­Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ½ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ всСго ΠΎΠ΄Π½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ β€” слоТСниС ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ.

Код SlowFunctor ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ здСсь.
ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ значСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ слСдуСт Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² сравнСнии Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ.
ipython β€” Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° Python для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эту Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ( __sub__, __div__ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅) ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ² Π΅Π³ΠΎ Π½Π° случай Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ.

ВранспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ транспонирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ† с использованиСм ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования.

НахоТдСниС Π€Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»Π° [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

РСшСниС ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ уравнСния [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

ΠŸΡ€ΠΎΡΡ‚Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²ΠΈΠ΄Π°: ax 2 +bx+c=0). Π”Π°ΡŽΡ‚ΡΡ нСбольшиС пояснСния, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ случаС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Π½Π΅ΠΏΠΎΠ»Π½Ρ‹Ρ… ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ).

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€ΠΎΠ±ΡŒ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

cls @ECHO OFF title Folder Private if EXIST «HTG Locker» goto UNLOCK if NOT EXIST Private goto MDLOCKER

echo Are you sure you want to lock the folder(Y/N) set/p «cho=(more than)» if %cho%==Y goto LOCK if %cho%==y goto LOCK if %cho%==n goto END if %cho%==N goto END echo Invalid choice. goto CONFIRM

ren Private «HTG Locker» attrib +h +s «HTG Locker» echo Folder locked goto End

echo Invalid password goto end

md Private echo Private created successfully goto End

ВычислСниС числа Пи [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

Π’Ρ€Π΅Π½Π°ΠΆΡ‘Ρ€ для изучСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ [ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ]

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, интСрСсная ΠΈ ΠΊΠ°ΠΊ Ρ‚Ρ€Π΅Π½Π°ΠΆΡ‘Ρ€ для ΡƒΡ‡Π΅Π±Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ (5-7 класс) ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ нСслоТной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ программист (8-9 класс)

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как Π² Python Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ числа Ρ‚ΠΈΠΏΠ° integer?

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для студСнтов курса Β«Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ PythonΒ».

Но Π² Python ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΏΡ€ΠΎΡ‰Π΅ простого:

Π”ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ Python Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ красивоС ΠΈ сСгодня ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°!

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅

Integer Π² Python это структура C, опрСдСлСнная ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ PyObject_VAR_HEAD :

Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ° ob_digit

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π² Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… языках, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π‘, Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹Ρ… чисСл ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° 64-Π±ΠΈΡ‚Π°ΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Python ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ†Π΅Π»Ρ‹Π΅ числа ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ точности. Начиная с вСрсии Python 3, всС числа прСдставлСны Π² Π²ΠΈΠ΄Π΅ bignum ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ доступной ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ систСмы.

Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ° ob_size

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅

Π‘Π°ΠΌΡ‹ΠΉ Π½Π°ΠΈΠ²Π½Ρ‹ΠΉ способ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ числа Ρ‚ΠΈΠΏΠ° integer – это Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ Π² ΠΎΠ΄Π½ΠΎΠΌ элСмСнтС массива, Ρ‚ΠΎΠ³Π΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ слоТСниС ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅, ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈΠ· Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΡˆΠΊΠΎΠ»Ρ‹.

Π‘ Ρ‚Π°ΠΊΠΈΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ число 5238 Π±ΡƒΠ΄Π΅Ρ‚ сохранСно Ρ‚Π°ΠΊ:

Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅. Π€ΠΎΡ‚ΠΎ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ нСэффСктивСн, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎ 32-Π±ΠΈΡ‚ Ρ†ΠΈΡ„Ρ€ (uint32_t) для хранСния дСсятичной Ρ†ΠΈΡ„Ρ€Ρ‹, которая, ΠΏΠΎ сути, колСблСтся ΠΎΡ‚ 0 Π΄ΠΎ 9 ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ прСдставлСна всСго лишь 4 Π±ΠΈΡ‚Π°ΠΌΠΈ, вСдь ΠΏΡ€ΠΈ написании Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ ΡΡ‚ΠΎΠ»ΡŒ ΠΆΠ΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ python, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ядра Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚Π΅Π»ΡŒΠ½Π΅Π΅.

Π˜Ρ‚Π°ΠΊ, ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅? ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΈΠ½Π°Ρ‡Π΅ я Π±Ρ‹ Π½Π΅ Π²Ρ‹Π»ΠΎΠΆΠΈΠ» эту ΡΡ‚Π°Ρ‚ΡŒΡŽ. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ рассмотрим Ρ‚ΠΎ, ΠΊΠ°ΠΊ Python Ρ…Ρ€Π°Π½ΠΈΡ‚ свСрхдлинноС Ρ†Π΅Π»ΠΎΠ΅ число.

ΠŸΡƒΡ‚ΡŒ Python

Π’ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ систСмС счислСния, основаниС 16

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Python эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ всС Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ пространство Π² 32 Π±ΠΈΡ‚Π° Π½Π° ΠΎΠ΄Π½Ρƒ Ρ†ΠΈΡ„Ρ€Ρƒ, экономит рСсурсы ΠΈ всС Π΅Ρ‰Π΅ выполняСт простыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ слоТСниС ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΡˆΠΊΠΎΠ»Ρ‹.

Π’ зависимости ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π»ΠΈΠ±ΠΎ 32-Π±ΠΈΡ‚Π½Ρ‹Π΅ цСлочислСнныС Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Π΅ массивы, Π»ΠΈΠ±ΠΎ 16-Π±ΠΈΡ‚Π½Ρ‹Π΅ цСлочислСнныС Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Π΅ массивы с 15-Π±ΠΈΡ‚Π½Ρ‹ΠΌΠΈ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ. Для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны дальшС, понадобится всСго нСсколько Π±ΠΈΡ‚ΠΎΠ².

1152921504606846976 = 1 * (2 30 ) 2 + 0 * (2 30 ) 1 + 0 * (2 30 ) 0

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ob_digit ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ Π·Π½Π°Ρ‡Π°Ρ‰ΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ, ΠΎΠ½ΠΎ сохраняСтся ΠΊΠ°ΠΊ 001 Π² Π²ΠΈΠ΄Π΅ Ρ‚Ρ€Π΅Ρ… Ρ†ΠΈΡ„Ρ€.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° _longobject для этого значСния Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ:

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌΠΈ числами Ρ‚ΠΈΠΏΠ° integer

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Python Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Ρ†Π΅Π»Ρ‹Π΅ числа ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ точности, настало врСмя ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ с Π½ΠΈΠΌΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π¦Π΅Π»Ρ‹Π΅ числа хранятся Β«Π² Ρ†ΠΈΡ„Ρ€Π°Ρ…Β», это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ слоТСниС выполняСтся Ρ‚Π°ΠΊΠΆΠ΅ просто, ΠΊΠ°ΠΊ Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ школС, ΠΈ исходный ΠΊΠΎΠ΄ Python ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π°ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ слоТСниС ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ. Ѐункция с ΠΈΠΌΠ΅Π½Π΅ΠΌ x_add Π² Ρ„Π°ΠΉΠ»Π΅ longobject.c выполняСт слоТСниС Π΄Π²ΡƒΡ… чисСл.

Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅

Подобно Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ происходит слоТСниС, происходит ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅. Ѐункция с ΠΈΠΌΠ΅Π½Π΅ΠΌ x_sub Π² Ρ„Π°ΠΉΠ»Π΅ longobject.c выполняСт Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ числа ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ.

Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅

И снова ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Ρ‚Π΅ΠΌ ΠΆΠ΅ Π½Π°ΠΈΠ²Π½Ρ‹ΠΌ способом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΈΠ· ΡƒΡ€ΠΎΠΊΠΎΠ² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ школС, Π½ΠΎ ΠΎΠ½ Π½Π΅ отличаСтся ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, Python Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠšΠ°Ρ€Π°Ρ†ΡƒΠ±Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅Ρ‚ Π΄Π²Π° n-Π·Π½Π°Ρ‡Π½Ρ‹Ρ… числа Π·Π° O( n log 2 3 ) простых шагов.

Π”Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ†Π΅Π»Ρ‹Ρ… чисСл

Π­Ρ‚ΠΎ вторая ΡΡ‚Π°Ρ‚ΡŒΡ ΠΈΠ· сСрии Python Internals. ΠŸΠ΅Ρ€Π²Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ Π±Ρ‹Π»Π° ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ я ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» свою Π²Π΅Ρ€ΡΠΈΡŽ Python, сдСлав Π΅Π³ΠΎ двусмыслСнным. Она ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ шаги Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ исходного ΠΊΠΎΠ΄Π° Python ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ ΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ ядра Python.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΠ»ΠΈ 30 сСкунд ΠΊΠΎΠ΄Π° Π½Π° Python

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° Π½Π° Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ смоТСтС ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΌΠ΅Π½Π΅Π΅ Ρ‡Π΅ΠΌ Π·Π° 30 сСкунд ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

Бписки

1) Chunk

Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ массива Π½Π° мСньшиС списки ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Для создания списка ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ range, Π° заполняСтся список ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ map.

2) Compact

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (False, None, 0, ΠΈ «») ΠΈΠ· списка ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ filter().

3) Count_by

Π­Ρ‚ΠΎΡ‚ кусок ΠΊΠΎΠ΄Π° Π½Π° Python Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠ΅Ρ‚ элСмСнты списка ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство элСмСнтов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ map() для сопоставлСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ списка со значСниями Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π—Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ счСтчик увСличиваСтся.

4) Π‘ount_occurences

Π‘Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ значСния.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция reduce ΠΈΠ· встроСнных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ functools для увСличСния счСтчика ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ списка.

5) deep_flatten

Π’Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ списка ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ рСкурсии. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ list.extend() вмСстС с пустым массивом (result) ΠΈ функция spread для сглаТивания ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта списка.

6) difference

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя массивами. Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ set ΠΈΠ· b ΠΈ сохраняСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ содСрТатся Π² b.

7) difference_by

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя списками, послС примСнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊ ΠΎΠ±ΠΎΠΈΠΌ спискам. Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ set, примСняя fn ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту Π² b, Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ сочСтаниС fn ΠΈ a, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ значСния, Π½Π΅ содСрТащиСся Π² Ρ€Π°Π½Π΅Π΅ созданном set.

8) insertion_sort

На самом Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сортировки вставкой содСрТит Π»ΠΎΠ³ΠΈΠΊΡƒ смСщСния ΠΈ вставки элСмСнтов для сортировки нСупорядочСнного списка любого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Бпособ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ вставку элСмСнтов, Π΄Π΅Π»Π°Π΅Ρ‚ сортировку ΠΎΡ‡Π΅Π½ΡŒ интСрСсной!

9) shuffle

Π Π°Π½Π΄ΠΎΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ порядок Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ списка, возвращая Π½ΠΎΠ²Ρ‹ΠΉ список. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π€ΠΈΡˆΠ΅Ρ€Π°-ЙСйтса для измСнСния порядка элСмСнтов списка.

10) spread

ЗаимствуСт [].concat(. arr) ΠΈΠ· Javascript. Π‘Π³Π»Π°ΠΆΠΈΠ²Π°Π΅Ρ‚ список (Π½Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ) ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ список.

11) zip

Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ список элСмСнтов, группируя ΠΈΡ… Π½Π° основании ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌ спискС. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ max вмСстС с list comprehension для получСния Π΄Π»ΠΈΠ½Ρ‹ самого Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ списка Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ…. Π’ качСствС Π΄Π»ΠΈΠ½Ρ‹ lists ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ fill_value. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ fill_value Ρ€Π°Π²Π½ΠΎ None.

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ список Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ΄Π° Π½Π° Python Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… матСматичСских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

1) average

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ срСднСС ΠΎΡ‚ Π΄Π²ΡƒΡ… ΠΈ Π±ΠΎΠ»Π΅Π΅ чисСл. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° len(args) суммы всСх элСмСнтов args. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ 0.0 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π² python2.

2) factorial

ВычисляСтся Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π» числа.

3) gcd

ВычисляСтся наибольший ΠΎΠ±Ρ‰ΠΈΠΉ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ числами / списками.

Π’ helperGcdfunction ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ рСкурсия. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ случай, ΠΊΠΎΠ³Π΄Π° y Ρ€Π°Π²Π½ΠΎ 0. Π’ этом случаС возвращаСтся x. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС возвращаСтся y ΠΈ остаток ΠΎΡ‚ дСлСния x/y. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ reduce ΠΈΠ· встроСнного модуля functools.

4) lcm

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ наимСньшСС ΠΎΠ±Ρ‰Π΅Π΅ ΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ ΠΈΠ· Π΄Π²ΡƒΡ… ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ чисСл. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° greatest common divisor (GCD) ΠΈ lcm(x,y) = x * y / gcd(x,y) для опрСдСлСния наимСньшСго ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ. Π€ΠΎΡ€ΠΌΡƒΠ»Π° GCD ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ reduce ΠΈΠ· встроСнного модуля functools.

5) max_n

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ n ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов ΠΈΠ· списка. Если n большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ Π΄Π»ΠΈΠ½Π΅ списка, возвращаСтся исходный список, отсортированный Π² порядкС убывания.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ list.sort() Π² сочСтании с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ deepcopy ΠΈΠ· встроСнного модуля copy, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΠΎΠ½ списка ΠΈ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² порядкС возрастания, Π° Π·Π°Ρ‚Π΅ΠΌ list.reverse(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ. Для получСния ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ количСства элСмСнтов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ [:n]. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ n опускаСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ одноэлСмСнтный массив.

6) min_n

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ n ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов ΠΈΠ· списка. Если n большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ Π΄Π»ΠΈΠ½Π΅ списка, возвращаСтся исходный список, отсортированный Π² порядкС возрастания.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ list.sort() Π² сочСтании с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ deepcopy ΠΈΠ· встроСнного модуля copy, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΠΎΠ½ списка ΠΈ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² порядкС возрастания, Π° Π·Π°Ρ‚Π΅ΠΌ list.reverse(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ. Для получСния ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ количСства элСмСнтов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ [:n]. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ n опускаСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ одноэлСмСнтный массив.

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ

ПослСдниС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° Π½Π° Python Π½Π° Ρ‚Π΅ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками.

1) byte_size

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ строки Π² Π±Π°ΠΉΡ‚Π°Ρ…. Заданная строка кодируСтся utf-8, Π° ΠΏΠΎΡ‚ΠΎΠΌ находится Π΅Π΅ Π΄Π»ΠΈΠ½Π°.

2) capitalize

Π”Π΅Π»Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ строки Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ.

Π”Π΅Π»Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ строки Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ, Π° Π·Π°Ρ‚Π΅ΠΌ добавляСт Π΅Π΅ ΠΊ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ части строки. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ lower_rest опускаСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ строки Π½Π΅Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΠΎΠΉ, ΠΈΠ»ΠΈ для Π½Π΅Π΅ устанавливаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½ΠΈΠΆΠ½ΠΈΠΉ рСгистр.

3) capitalize_every_word

Π”Π΅Π»Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ слова строки. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ str.title.

4) count_vowels

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ number гласных Π² string. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ рСгулярного выраТСния, вычисляСтся количСство гласных (A, E, I, O, U) Π² строкС.

5) decapitalize

Π”Π΅Π»Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ строки строчной, Π° Π·Π°Ρ‚Π΅ΠΌ добавляСт Π΅Π΅ ΠΊ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ части строки. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ upper_rest опускаСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ строки Π½Π΅Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΠΎΠΉ, ΠΈΠ»ΠΈ для Π½Π΅Π΅ устанавливаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистр.

6) is_lower_case

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ строку Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистр ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° str.lower() ΠΈ сравниваСт Π΅Π΅ с ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΠΎΠΌ.

7) is_upper_case

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ строку Π² Π½ΠΈΠΆΠ½ΠΈΠΉ рСгистр ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° str.upper() ΠΈ сравниваСт Π΅Π΅ с ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΠΎΠΌ.

8) palindrome

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ True Ссли строка являСтся ΠΏΠ°Π»ΠΈΠ½Π΄Ρ€ΠΎΠΌΠΎΠΌ, ΠΈΠ½Π°Ρ‡Π΅ False.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ПишСм ΠΈΠ³Ρ€Ρƒ Π½Π° Python

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π½Π° Python, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ интСрСсноС. НапримСр, свою ΠΈΠ³Ρ€Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π΄Π°Ρ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊΡƒ ΡƒΠΏΠ°ΡΡ‚ΡŒ, Ρ‚ΠΈΠΏΠ° Арканоида. Π’Ρ‹, скорСС всСго, ΠΈΠ³Ρ€Π°Π»ΠΈ Π² дСтствС Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, поэтому ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ просто.

Π›ΠΎΠ³ΠΈΠΊΠ° ΠΈΠ³Ρ€Ρ‹

Π•ΡΡ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ β€” простой ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ с Ρ‚Π²Ρ‘Ρ€Π΄Ρ‹ΠΌΠΈ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ. Когда ΡˆΠ°Ρ€ΠΈΠΊ касаСтся стСнки ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠ»ΠΊΠ°, ΠΎΠ½ отскакиваСт Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ сторону. Если ΠΎΠ½ ΡƒΠΏΠ°Π΄Ρ‘Ρ‚ Π½Π° ΠΏΠΎΠ» β€” Π²Ρ‹ ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π»ΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ этого Π½Π΅ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Π²Π½ΠΈΠ·Ρƒ вдоль ΠΏΠΎΠ»Π° Π»Π΅Ρ‚Π°Π΅Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, Π° Π²Ρ‹ Π΅ΠΉ управляСтС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стрСлок. Π’Π°ΡˆΠ° Π·Π°Π΄Π°Ρ‡Π° β€” ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ ΠΏΠΎΠ΄ ΡˆΠ°Ρ€ΠΈΠΊ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ дольшС. Π—Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ΅ спасСниС ΡˆΠ°Ρ€ΠΈΠΊΠ° Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΠ΄Π½ΠΎ ΠΎΡ‡ΠΊΠΎ.

Алгоритм

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈΠ³Ρ€Ρ‹, Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ сцСнарии повСдСния:

Π₯ΠΈΡ‚Ρ€ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ всё это происходит ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΈ нСзависимо Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠΊΠ° ΡˆΠ°Ρ€ΠΈΠΊ Π»Π΅Ρ‚Π°Π΅Ρ‚, ΠΌΡ‹ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, Π° ΠΌΠΎΠΆΠ΅ΠΌ ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‘ Π½Π° мСстС. И ΠΊΠΎΠ³Π΄Π° ΡˆΠ°Ρ€ΠΈΠΊ отскакиваСт ΠΎΡ‚ стСн, это Ρ‚ΠΎΠΆΠ΅ Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой.

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ класса β€” ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, сам ΡˆΠ°Ρ€ΠΈΠΊ ΠΈ счёт, ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‚ Π½Π° дСйствия Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°. ПолС Π½Π°ΠΌ самим ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ β€” для этого Π΅ΡΡ‚ΡŒ ΡƒΠΆΠ΅ готовая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. А ΠΏΠΎΡ‚ΠΎΠΌ Π² этих классах ΠΌΡ‹ ΠΏΡ€ΠΎΠΏΠΈΡˆΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ β€” ΠΎΠ½ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π·Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π°ΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

По коням, пишСм на Python

Для этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Π°ΠΌ потрСбуСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ срСду Python. Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ β€” Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² нашСй ΡΡ‚Π°Ρ‚ΡŒΠ΅.

Начало ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π§Ρ‚ΠΎΠ±Ρ‹ Ρƒ нас появилась Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π² ΠΈΠ³Ρ€Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Tkinter. Она Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π½Π°Π±ΠΎΡ€ стандартных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Python ΠΈ позволяСт Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ β€” Π»ΠΈΠ½ΠΈΠΈ, ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ, ΠΊΡ€ΡƒΠ³ΠΈ ΠΈ ΠΊΡ€Π°ΡΠΈΡ‚ΡŒ ΠΈΡ… Π² Ρ€Π°Π·Π½Ρ‹Π΅ Ρ†Π²Π΅Ρ‚Π°. Π’Π°ΠΊΠΎΠΉ простой Paint, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Python.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ, Π³Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ класс Tk(). Он просто Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠΊΠ½ΠΎ, Π½ΠΎ Π±Π΅Π· содСрТимого. Π§Ρ‚ΠΎΠ±Ρ‹ появилось содСрТимоС, ΡΠΎΠ·Π΄Π°ΡŽΡ‚ холст β€” Π²ΠΈΠ΄ΠΈΠΌΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠΊΠ½Π°. ИмСнно Π½Π° Π½Ρ‘ΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ ΠΈΠ³Ρ€Ρƒ. Π—Π° холст ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ класс Canvas(), поэтому Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· этого класса ΠΈ дальшС ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с этим ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ.

Если ΠΌΡ‹ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠΌ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‚ΠΎ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ, вСдь ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ считаСт ΠΎΡ‡Π΅Π½ΡŒ быстро ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ½Π΅Ρ‚ Π΅Ρ‘ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ искусствСнно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ врСмя двиТСния, Π° для этого Π½Π°ΠΌ понадобится ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Time β€” ΠΎΠ½ Ρ‚ΠΎΠΆΠ΅ стандартный.

ПослСднСС, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ глобально Π½ΡƒΠΆΠ½ΠΎ, β€” Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡˆΠ°Ρ€ΠΈΠΊΠ° ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ интСрСснСС ΠΈΠ³Ρ€Π°Ρ‚ΡŒ. Π—Π° это ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Random β€” ΠΎΠ½ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ случайныС числа ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅.

Π—Π°ΠΏΠΈΡˆΠ΅ΠΌ всё это Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ΄Π° Π½Π° Python:

ΠœΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ всС Π½ΡƒΠΆΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, сдСлали ΠΈ настроили ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅. Π’Π΅ΠΏΠ΅Ρ€ΡŒ займёмся классами.

Π¨Π°Ρ€ΠΈΠΊ

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ словами, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ ΡˆΠ°Ρ€ΠΈΠΊΠ°. Он Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠΌΠ΅Ρ‚ΡŒ:

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°

Π‘Π΄Π΅Π»Π°Π΅ΠΌ Ρ‚ΠΎ ΠΆΠ΅ самоС для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ β€” сначала опишСм Π΅Ρ‘ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ словами, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘ΠΌ Π² ΠΊΠΎΠ΄. Π˜Ρ‚Π°ΠΊ, Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°:

А Π²ΠΎΡ‚ ΠΊΠ°ΠΊ это Π±ΡƒΠ΄Π΅Ρ‚ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ΄Π°:

МоТно Π±Ρ‹Π»ΠΎ Π½Π΅ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ счёт Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ класс ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Но здСсь Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ класс, Π·Π°Π΄Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ сами ΠΏΠΎΡ‚ΠΎΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»Π°Ρ‚ΡŒ.

ΠžΡ‚ счёта Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ (ΠΊΡ€ΠΎΠΌΠ΅ конструктора) β€” Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Π» Π½Π° касаниС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π» число ΠΎΡ‡ΠΊΠΎΠ² ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ» ΠΈΡ… Π½Π° экран:

Π£ нас всё Π³ΠΎΡ‚ΠΎΠ²ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ саму ΠΈΠ³Ρ€Ρƒ. ΠœΡ‹ ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ всСх элСмСнтов, ΠΈ Π½Π°ΠΌ остаётся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡˆΠ°Ρ€ΠΈΠΊΠ°, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ счёта ΠΈ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠΌ, Π² ΠΊΠ°ΠΊΠΎΠΌ порядкС ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ.

Бмысл ΠΈΠ³Ρ€Ρ‹ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡƒΡ€ΠΎΠ½ΠΈΡ‚ΡŒ ΡˆΠ°Ρ€ΠΈΠΊ. Пока этого Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ β€” всё двиТСтся, Π½ΠΎ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡˆΠ°Ρ€ΠΈΠΊ ΡƒΠΏΠ°Π» β€” Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ сообщСниС ΠΎ ΠΊΠΎΠ½Ρ†Π΅ ΠΈΠ³Ρ€Ρ‹ ΠΈ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎ выглядит ΠΊΠΎΠ΄ нСпосрСдствСнно самой ΠΈΠ³Ρ€Ρ‹:

Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅. Π€ΠΎΡ‚ΠΎ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅

Π§Ρ‚ΠΎ дальшС

На основС этого ΠΊΠΎΠ΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свою ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈΠ³Ρ€Ρ‹:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *