Π¦ΠΈΠΊΠ» Π² python: Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ языка Python

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

Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ языка Python

ЗанятиС 4. Π¦ΠΈΠΊΠ» for

Π—Π°Π΄Π°Ρ‡Π° Β«Π‘ΡƒΠΌΠΌΠ° дСсяти чисСл»


УсловиС Π”Π°Π½ΠΎ 10 Ρ†Π΅Π»Ρ‹Ρ… чисСл. ВычислитС ΠΈΡ… сумму. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΡƒΡŽ наимСньшСС число ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Π’ΠΎ всСх Π·Π°Π΄Π°Ρ‡Π°Ρ… считывайтС Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· input() ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚Π΅ ΠΎΡ‚Π²Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· print().


ВСсты
Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚Π§Ρ‚ΠΎ Π²Ρ‹Π²Π΅Π»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСст 1
0
1
2
3
4
5
6
7
8
9
45
Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСст 2
1
1
1
1
1
1
1
1
1
1
10
Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСст 3
1
2
3
4
5
6
7
8
9
10
55
Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСст 4
8
4
5
3
9
2
3
4
5
1
44
Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСст 5
758
483
893
393
293
292
292
485
828
182
4899
Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСст 6
-1
-2
-3
-4
-5
-6
-7
-8
-9
0
-45
Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСст 7
0
0
0
0
0
0
0
0
0
0
0

Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ языка Python

ЗанятиС 4. Π¦ΠΈΠΊΠ» for

Π—Π°Π΄Π°Ρ‡Π° «ЛСсСнка»


УсловиС По Π΄Π°Π½Π½ΠΎΠΌΡƒ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½ΠΎΠΌΡƒ n ≀ 9 Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ лСсСнку ΠΈΠ· n ступСнСк, i-я ΡΡ‚ΡƒΠΏΠ΅Π½ΡŒΠΊΠ° состоит ΠΈΠ· чисСл ΠΎΡ‚ 1 Π΄ΠΎ i Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ².

Π’ΠΎ всСх Π·Π°Π΄Π°Ρ‡Π°Ρ… считывайтС Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· input() ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚Π΅ ΠΎΡ‚Π²Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· print().


ВСсты
Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚Π§Ρ‚ΠΎ Π²Ρ‹Π²Π΅Π»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСст 1
3
1
12
123
Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСст 2
4
1
12
123
1234
Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСст 3
2
1
12
Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСст 4
5
1
12
123
1234
12345
Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСст 5
1
1
Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСст 6
7
1
12
123
1234
12345
123456
1234567
Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСст 7
8
1
12
123
1234
12345
123456
1234567
12345678
Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСст 8
9
1
12
123
1234
12345
123456
1234567
12345678
123456789
Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСст 9
6
1
12
123
1234
12345
123456

Π¦ΠΈΠΊΠ» for. ΠšΡƒΡ€Ρ «Python. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅»

Π¦ΠΈΠΊΠ» for Π² языкС программирования Python ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° элСмСнтов структур Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π­Ρ‚ΠΎ Π½Π΅ Ρ†ΠΈΠΊΠ» со счСтчиком, ΠΊΠ°ΠΊΠΎΠ²Ρ‹ΠΌ являСтся for Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языках.

Π§Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ элСмСнтов? НапримСр, Ρƒ нас Π΅ΡΡ‚ΡŒ список, состоящий ΠΈΠ· ряда элСмСнтов. Π‘Π½Π°Ρ‡Π°Π»Π° Π±Π΅Ρ€Π΅ΠΌ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт, Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ, ΠΏΠΎΡ‚ΠΎΠΌ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π‘ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ элСмСнтом ΠΌΡ‹ выполняСм ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ дСйствия Π² Ρ‚Π΅Π»Π΅ for. Нам Π½Π΅ Π½Π°Π΄ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ элСмСнты ΠΏΠΎ ΠΈΡ… индСксам ΠΈ заботится, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΠΈΠ· Π½ΠΈΡ… список заканчиваСтся, ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ итСрация бСссмыслСнна. Π¦ΠΈΠΊΠ» for сам ΠΏΠ΅Ρ€Π΅Π±Π΅Ρ€Π΅Ρ‚ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ ΠΊΠΎΠ½Π΅Ρ†.

>>> spisok = [10, 40, 20, 30]
>>> for element in spisok:
...     print(element + 2)
...
12
42
22
32

ПослС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова for ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ пСрСмСнная ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ element. Имя здСсь ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ. НСрСдко ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ i. На ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° for Π΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ присвоСн ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ элСмСнт ΠΈΠ· списка spisok. Π’Π°ΠΊ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠ΅ Ρ†ΠΈΠΊΠ»Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ element связан с числом 10, Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ – с числом 40, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Когда элСмСнты Π² spisok Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ, Ρ†ΠΈΠΊΠ» for Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Π‘ английского «for» пСрСводится ΠΊΠ°ΠΊ «Π΄Π»Ρ», «in» ΠΊΠ°ΠΊ «Π²». ΠŸΠ΅Ρ€Π΅Π²Π΅ΡΡ‚ΠΈ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ с языка программирования Π½Π° чСловСчСский ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ: для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π² спискС Π΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ (Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π°).

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π»ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π½Π° 2 ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½Π° экран. ΠŸΡ€ΠΈ этом сам список ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ Π½Π΅ измСнялся:

>>> spisok
[10, 40, 20, 30]

НигдС Π½Π΅ шла Ρ€Π΅Ρ‡ΡŒ ΠΎ пСрСзаписи Π΅Π³ΠΎ элСмСнтов, ΠΎΠ½ΠΈ просто извлСкались ΠΈ использовались. Однако Π±Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сам список, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π² Π½Π΅ΠΌ ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ…, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ. И Ρ‚ΡƒΡ‚ Π±Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π΅ΠΉ индСкс элСмСнта, Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ:

>>> i = 0
>>> for element in spisok:
...     spisok[i] = element + 2
...     i += 1
...
>>> spisok
[12, 42, 22, 32]

Но Ссли ΠΌΡ‹ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ счСтчик, Ρ‚ΠΎ Π²Ρ‹Π³ΠΎΠ΄Π° ΠΎΡ‚ использования Ρ†ΠΈΠΊΠ»Π° for Π½Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°. Если Π·Π½Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ списка, Ρ‚ΠΎ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ while. Π”Π»ΠΈΠ½Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнной Π² Python Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ len().

>>> i = 0
>>> while i < len(spisok):
...     spisok[i] = spisok[i] + 2 
...     i = i + 1 # ΠΈΠ»ΠΈ i += 1
...
>>> spisok
[14, 44, 24, 34]

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, с Ρ†ΠΈΠΊΠ»ΠΎΠΌ

while ΠΌΡ‹ избавились ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ element.

Ѐункция range()

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ со встроСнной Π² Python Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ range(). «Range» пСрСводится ΠΊΠ°ΠΊ «Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½». Она ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½, Π΄Π²Π° ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. Π˜Ρ… Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ ΠΊΠ°ΠΊ Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ randrange() ΠΈΠ· модуля random. Если Π·Π°Π΄Π°Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½, Ρ‚ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ числа ΠΎΡ‚ 0 Π΄ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ числа, Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΅Π³ΠΎ. Если Π·Π°Π΄Π°Π½Ρ‹ Π΄Π²Π°, Ρ‚ΠΎ числа Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π΄ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ, Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΅Π³ΠΎ. Если Π·Π°Π΄Π°Π½Ρ‹ Ρ‚Ρ€ΠΈ, Ρ‚ΠΎ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ число – это шаг.

Однако, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ randrange(), функция range() Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π΅ ΠΎΠ΄Π½ΠΎ случайноС число Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅. Она Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ случайныС числа. Она Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ чисСл Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅. Π’Π°ΠΊ, range(5, 11) сгСнСрируСт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ 5, 6, 7, 8, 9, 10. Однако это Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ структура Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° «ΡΠΏΠΈΡΠΎΠΊ». Ѐункция range() ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ своСго класса – Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹:

>>> a = range(-10, 10)
>>> a
range(-10, 10)
>>> type(a)
<class 'range'>

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ чисСл, ΠΎΠ½Π° Π΅ΡΡ‚ΡŒ, ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π΅Π΅ элСмСнтам:

>>> a[0]
-10
>>> a[5]
-5
>>> a[15]
5
>>> a[-1]
9

Π₯отя ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ… нСльзя, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ списков, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ range() относятся ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ΅ нСизмСняСмых:

>>> a[10] = 100
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'range' object does not support 
item assignment

Π¦ΠΈΠΊΠ» for ΠΈ range()

Π˜Ρ‚Π°ΠΊ, Π·Π°Ρ‡Π΅ΠΌ Π½Π°ΠΌ понадобилась Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ range() Π² Ρ‚Π΅ΠΌΠ΅ ΠΏΡ€ΠΎ Ρ†ΠΈΠΊΠ» for? Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ вмСстС ΠΎΠ½ΠΈ ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎΠΉ Ρ‚Π°Π½Π΄Π΅ΠΌ. For ΠΊΠ°ΠΊ Ρ†ΠΈΠΊΠ» ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° элСмСнтов, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ while, позволяСт Π½Π΅ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Ρ‚Π΅ΠΌ, достигнут Π»ΠΈ ΠΊΠΎΠ½Π΅Ρ† структуры. НС Π½Π°Π΄ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ счСтчик для этого, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ условиС Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны,

range() Π΄Π°Π΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹Ρ… чисСл, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ индСксы для элСмСнтов Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ списка.

>>> range(len(spisok))
range(0, 4)

Π—Π΄Π΅ΡΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ len() измСряСтся Π΄Π»ΠΈΠ½Π° списка. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΠ½Π° Ρ€Π°Π²Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ΠΌ. ПослС этого число 4 пСрСдаСтся Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ range(), ΠΈ ΠΎΠ½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ чисСл ΠΎΡ‚ 0 Π΄ΠΎ 3 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π­Ρ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π· индСксы элСмСнтов нашСго списка.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ «ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠΌ» for ΠΈ range():

>>> for i in range(len(spisok)):
...     spisok[i] += 2
...
>>> spisok
[16, 46, 26, 36]

Π’ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Ρ†ΠΈΠΊΠ»Π° for бСрутся элСмСнты вовсС Π½Π΅ списка, Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° range. Бписок, элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ планируСтся ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ, Ρ‚ΡƒΡ‚ ΠΏΠΎ-сути Π½Π΅ Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅Ρ‚. Если Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π½Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ списка, Ρ‚ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

for i in range(4). Π’ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ i Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π°, вопрос Π²Ρ‚ΠΎΡ€ΠΎΠΉ. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ВмСсто ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° i ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Ρ€Π°Π±ΠΎΡ‚Π°

  1. Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ список случайными числами. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π² ΠΊΠΎΠ΄Π΅ Ρ†ΠΈΠΊΠ» for, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ range() ΠΈ randint().

  2. Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ range (Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½) ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ встроСнной Π² Python Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ list(), Ρ‚ΠΎ ΠΎΠ½Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ ΠΊ списку. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ список с элСмСнтами ΠΎΡ‚ 0 Π΄ΠΎ 100 ΠΈ шагом 17.

  3. Π’ Π·Π°Π΄Π°Π½Π½ΠΎΠΌ спискС, состоящСм ΠΈΠ· ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл, посчитайтС количСство ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов. Π’Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° экран.

  4. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая заполняСт список ΠΏΡΡ‚ΡŒΡŽ словами, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌΠΈ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, измСряСт Π΄Π»ΠΈΠ½Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ слова ΠΈ добавляСт ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ список. НапримСр, список слов – [‘yes’, ‘no’, ‘maybe’, ‘ok’, ‘what’], список Π΄Π»ΠΈΠ½ – [3, 2, 5, 2, 4]. Оба списка Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° экран.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΡ€ΠΎΠΊΠΈ Π² android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ pdf-вСрсии курса

Цикл for | Python: Бписки

Π Π°Π½Π΅Π΅ ΠΌΡ‹ рассматривали Ρ†ΠΈΠΊΠ» while. Π­Ρ‚Π° конструкция ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для повторСния Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ Π½Π°Π±ΠΎΡ€Π° дСйствий β€” всё, Ρ‡Ρ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ «Π±Π΅Π·Π΄ΡƒΠΌΠ½ΠΎΠ³ΠΎ» повторСния, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… срСдств для хранСния состояния. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: счётчик, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ измСняСм Π² Ρ†ΠΈΠΊΠ»Π΅. И ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с коллСкциями Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ, с ΠΊΠ°ΠΊΠΈΠΌ элСмСнтом ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ-счётчик ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·? Π›ΡŽΠ±ΠΎΠΉ программист всСгда стрСмится Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€ΡƒΡ‚ΠΈΠ½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΈ Π°Π²Ρ‚ΠΎΡ€Ρ‹ языков β€” Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² Python для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с коллСкциями сущСствуСт Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²ΠΈΠ΄ Ρ†ΠΈΠΊΠ»Π° β€” Ρ†ΠΈΠΊΠ» for.

Π‘Ρ‚ΠΎΠΈΡ‚ сразу ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ этот Ρ†ΠΈΠΊΠ» Π½Π΅ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Ρ†ΠΈΠΊΠ»Ρ‹ с Ρ‚Π΅ΠΌ ΠΆΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… языках этот Ρ†ΠΈΠΊΠ» всСго лишь дополняСт условиС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ-счётчиком. Python Π² стрСмлСнии ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΡˆΡ‘Π» дальшС, поэтому Π² этом языкС Ρ†ΠΈΠΊΠ» for сразу ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΈ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ± индСксС Ρ‡Π°Ρ‰Π΅ всСго Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.

Бинтаксис

Π¦ΠΈΠΊΠ» for устроСн ΠΎΡ‡Π΅Π½ΡŒ просто:

for element in collection:
    print(element)  # this is body of cycle

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Π² ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ случаС Ρƒ Ρ†ΠΈΠΊΠ»Π° Π΄Π°ΠΆΠ΅ Π½Π΅Ρ‚ явного условия Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ: Ρ†ΠΈΠΊΠ» просто останавливаСтся, ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ элСмСнты!

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹ΡˆΠ΅ сработаСт для ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ ΠΈ списков β€” Π² этом случаС Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ всС элСмСнты. А Ссли ΠΏΡ€ΠΎΠΈΡ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ±Ρ…ΠΎΠ΄ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ β€” ΠΏΠΎΠ·ΠΆΠ΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΏΠΎΡ‡Π΅ΠΌΡƒ) строку, Ρ‚ΠΎ пСрСмСнная Ρ†ΠΈΠΊΠ»Π° (Π² ΠΊΠΎΠ΄Π΅ Π²Ρ‹ΡˆΠ΅ это element) Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΎΡ‡Π΅Ρ€Ρ‘Π΄Π½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ всС символы строки. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

>>> for c in 'Hello!':
...     print(c)
...
H
e
l
l
o
!

Но Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ просто ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ элСмСнты списка ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ, Π½ΠΎ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ эти элСмСнты? Π’Π΅Π΄ΡŒ для этого Π½Π°ΠΌ понадобится индСкс ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта! На этот случай Π² Python Π΅ΡΡ‚ΡŒ удобная функция enumerate («ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Ρ‚ΡŒ»). Π­Ρ‚Π° функция снабТаСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт индСксом, складывая ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ индСкс вмСстС с элСмСнтом Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆ. ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ эти, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, прямо Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС Ρ†ΠΈΠΊΠ»Π° ΠΈ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚:

>>> items = ['foo', 'bar', 'baz']
>>> for (index, elem) in enumerate(items):
...     items[index] = elem + '!'
...
>>> items
['foo!', 'bar!', 'baz!']

Π’ этом Ρ†ΠΈΠΊΠ»Π΅ ΠΌΡ‹ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌ строкой '!'. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ нСсколько ΠΈΠ½Π°Ρ‡Π΅:

>>> items = ['foo', 'bar', 'baz']
>>> for (index, _) in enumerate(items):
...     items[index] += '!'
...
>>> items
['foo!', 'bar!', 'baz!']

Π’ этот Ρ€Π°Π· ΠΌΡ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ сами элСмСнты β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡ… индСксы. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ вмСсто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ†ΠΈΠΊΠ»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ элСмСнты, Ρƒ нас стоит ΠΏΡ€ΠΎΡ‡Π΅Ρ€ΠΊ. Π­Ρ‚ΠΎ Π½Π΅ какая-Ρ‚ΠΎ особая пСрСмСнная, Π° всСго лишь соглашСниС: Π² Python часто Π½Π΅Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ Π² Π΄Π°Π½Π½ΠΎΠΌ контСкстС Π²Π΅Ρ‰ΠΈ «ΡΠΏΠΈΡ…ΠΈΠ²Π°ΡŽΡ‚» Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ _.

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅: Ρ…ΠΎΡ‚ΡŒ Π² послСднСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ€Π΅Ρ‡ΡŒ ΠΈ шла ΠΎΠ± индСксах, Π½ΠΎ ΠΌΡ‹ всё Ρ€Π°Π²Π½ΠΎ Π½Π΅ использовали Π΄Π»ΠΈΠ½Ρƒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ β€” enumerate Ρ‚ΠΎΠΆΠ΅ Π·Π½Π°Π΅Ρ‚, Π³Π΄Π΅ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ (Π² ΠΊΠΎΠ½Ρ†Π΅ исходной ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ).

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ

break ΠΈ continue.

Иногда Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: поиск элСмСнта, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰Π΅Π³ΠΎ Π½Π΅ΠΊΠΎΠ΅ΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ нашли ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ подходящий элСмСнт, Π½Π°ΠΌ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ Π±Ρ‹ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ рСсурсы ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ». Π’Π°ΠΊΠΎΠΉ Ρ€Π°Π½Π½ΠΈΠΉ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ break. Π’ΠΎΡ‚ Ρ†ΠΈΠΊΠ» поиска ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ числа:

>>> items = [-2, 0, -10, 3, 5, -1]
>>> for item in items:
...     if item > 0:
...         break
...
>>> item
3

Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, пСрСмСнная Ρ†ΠΈΠΊΠ»Π° оказалась доступна ΠΈ послС Π΅Π³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ. Однако Ссли коллСкция окаТСтся пустой, Ρ‚ΠΎ пСрСмСнная Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° β€” ΠΈΠΌΠ΅ΠΉΡ‚Π΅ это Π² Π²ΠΈΠ΄Ρƒ!

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄, каТСтся, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ. Однако Ссли Π² спискС Π½Π΅ встрСтится Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ числа, Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ item окаТСтся просто послСдний элСмСнт списка! Как ΠΆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ нашли? На ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ else β€” Π΄Π°, Π² Python Ρƒ Ρ†ΠΈΠΊΠ»Π° for Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ такая Π²Π΅Ρ‚ΠΊΠ°! Π’ Ρ†ΠΈΠΊΠ»Π΅ else выполняСтся, Ссли Ρ†ΠΈΠΊΠ» Ρ‚Π°ΠΊ ΠΈ Π½Π΅ прСрвался с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ break. Для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² поиска β€” ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚! ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡˆΠ΅ΠΌ наш ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ else:

>>> items = [-2, 0, -10, -1]
>>> for item in items:
...     if item > 0:
...         break
... else:
...     item = None
...
>>> print(item)
None

ПобСда!

Π’Π΅ΠΏΠ΅Ρ€ΡŒ прСдставим ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π² процСссС выполнСния Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π° поняли, Ρ‡Ρ‚ΠΎ остаток Ρ‚Π΅Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π΅Π·Π°Ρ‡Π΅ΠΌ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ сразу ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. Для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° continue. Π•Ρ‘ использованиС продСмонстрируСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ΠΌΡ‹ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ строки, содСрТащиС строчки ΠΊΠΎΠ΄Π°, Π½ΠΎ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Ρ‚Π΅Ρ… строчСк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с символа #. Π’ΠΎΡ‚ Ρ‚Π°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠΎΠ΄:

>>> lines_of_code = [
... '# begin of example',
... 'echo 123',
... 'cd foo',
... '# end']
>>> for line in lines_of_code:
...     if line[:1] == '#':
...         continue
...     # here we process a code
...     print(line)
...
echo 123
cd foo

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ условной конструкциСй. Однако Π² этом случаС ΠΊΠΎΠ΄, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½ΡƒΠΆΠ½Ρ‹Π΅ строки, Π±Ρ‹Π» Π±Ρ‹ Π²Π»ΠΎΠΆΠ΅Π½ Π³Π»ΡƒΠ±ΠΆΠ΅. А Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π² Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Ρ… ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ…, ΠΈΠ½Π°Ρ‡Π΅ ΠΊΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ быстро станСт ΠΎΡ‡Π΅Π½ΡŒ слоТным для прочтСния.

break, continue, else ΠΈ Ρ†ΠΈΠΊΠ» while

Π”Π°, ΠΈ Π²Π΅Ρ‚ΠΊΠ° else, ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ break ΠΈ continue β€” доступны ΠΈ для Ρ†ΠΈΠΊΠ»Π° while! Π’ΠΎΡ‚ комплСксный ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ всС эти возмоТности:

tries = 3
while tries:
    print('>>> ', end='')
    command = input()
    if not command:
        continue
    if command in ('echo', 'cd', 'help'):
        break
    print('Unknown command!')
    tries -= 1
else:
    print('Too many bad tries!')
    command = None

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ просит ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ввСсти ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ пустой Π²Π²ΠΎΠ΄, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠ»-Π²ΠΎ ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ Π²Π²ΠΎΠ΄Π°. ΠŸΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅, какая Ρ‡Π°ΡΡ‚ΡŒ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π° Π·Π° Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚.

Π¦ΠΈΠΊΠ»

for ΠΈ измСняСмыС ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

Π₯ΠΎΡ‡Ρƒ вас ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π΅Ρ€Π΅Ρ‡ΡŒ ΠΎΡ‚ измСнСния состава списка Π²ΠΎ врСмя ΠΎΠ±Ρ…ΠΎΠ΄Π° Π΅Π³ΠΎ ΠΆΠ΅ Π² Ρ†ΠΈΠΊΠ»Π΅ for. Если Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ элСмСнты ΠΈΠ· списка, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ β€” ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ всСго лишь Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ элСмСнты Π² ΠΊΠΎΠ½Π΅Ρ† β€” Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌ, Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ошибкой! Π›ΡƒΡ‡ΡˆΠ΅ Π½Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ список Π² процСссС ΠΎΠ±Ρ…ΠΎΠ΄Π° старого.

Если ΠΆΠ΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ состав исходного списка (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠΎ ссылкС), Ρ‚ΠΎ Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π² Ρ†ΠΈΠΊΠ»Π΅ копию списка

for x in original_list[:]:
    original_list.pop(0)  # ΠΈ Ρ‚.ΠΏ.

Π»ΠΈΠ±ΠΎ создайтС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ список, Π° ΠΏΠΎΡ‚ΠΎΠΌ очиститС исходный ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ элСмСнты ΠΈΠ· Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ

new_list = []
for x in original_list:
    ...
original_list[:] = []  # удаляСм староС содСрТимоС
original_list.extend(new_list)

Π¦ΠΈΠΊΠ»Ρ‹ β€” Python documentation

Π¦ΠΈΠΊΠ»

while

Π¦ΠΈΠΊΠ» while позволяСт ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π±Π»ΠΎΠΊ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° выполняСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ условиС. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

n = 5

while n > 0:
    print(f'n = {n}')
    n -= 1

Π’Ρ‹Π²ΠΎΠ΄:

n = 5
n = 4
n = 3
n = 2
n = 1

Π¦ΠΈΠΊΠ»

for

Π¦ΠΈΠΊΠ» for..in осущСствляСт ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚.Π΅. ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠœΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ большС ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΡ… Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡƒΡ€ΠΎΠΊΠ°Ρ…, Π° ΠΏΠΎΠΊΠ° просто Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ – это упорядочСнный Π½Π°Π±ΠΎΡ€ элСмСнтов.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

for i in range(1, 6):
    print(f'i = {i}')

Π’Ρ‹Π²ΠΎΠ΄:

i = 1
i = 2
i = 3
i = 4
i = 5

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ функция range Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΡΠΎΡ‚ΠΈ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ правая Π³Ρ€Π°Π½ΠΈΡ†Π° Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ.

Π•ΡΡ‚ΡŒ нСсколько способов создания ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ range.

range(stop)
range(start, stop)
range(start, stop, step)

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ start Π΄ΠΎ stop (Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ) с шагом step.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

break

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ break слуТит для прСрывания Ρ†ΠΈΠΊΠ»Π°, Ρ‚.Π΅. остановки выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π°ΠΆΠ΅ Ссли условиС выполнСния Ρ†ΠΈΠΊΠ»Π° Π΅Ρ‰Ρ‘ Π½Π΅ приняло значСния False ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ элСмСнтов Π½Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»Π°ΡΡŒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

while True:
    command = input('> ')
    if command == 'exit':
        break

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

continue

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ continue ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ всС ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Π±Π»ΠΎΠΊΠ΅ Ρ†ΠΈΠΊΠ»Π° ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

for i in range(5):
    if i == 2 or i == 3:
        continue
    print(i)

Π—Π°Π΄Π°Ρ‡ΠΈ

Π’ Π·Π°Π΄Π°Ρ‡Π°Ρ… ΡƒΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ Ρ†ΠΈΠΊΠ» рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

  1. [for] ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ числа a ΠΈ b. ВывСсти всС Ρ†Π΅Π»Ρ‹Π΅ числа, располоТСнныС ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

  2. [for] Π”ΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ числа, дСлящиСся Π½Π° 5 Π±Π΅Π· остатка.

  3. [for] ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ число. ВывСсти Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ умноТСния Π½Π° это число

  4. [for] Π˜Π·Π²Π΅ΡΡ‚Π½Ρ‹ ΠΎΡ†Π΅Π½ΠΊΠΈ Π°Π±ΠΈΡ‚ΡƒΡ€ΠΈΠ΅Π½Ρ‚Π° Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… экзамСнах. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ сумму Π½Π°Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΈΠΌ Π±Π°Π»Π»ΠΎΠ². ΠžΡ†Π΅Π½ΠΊΠΈ вводятся Π² Ρ†ΠΈΠΊΠ»Π΅.

  5. [while] Π’ бСсконСчном Ρ†ΠΈΠΊΠ»Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ числа. Π’Π²ΠΎΠ΄ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ слово β€˜end’. ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ сумму чисСл.

  6. [while] Π”Π°Π½ΠΎ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½ΠΎΠ΅ число. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ сумму Ρ†ΠΈΡ„Ρ€ Π² Π½Π΅ΠΌ.

  7. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ число n ΠΈ Ρ†ΠΈΡ„Ρ€Ρƒ a. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, сколько Ρ€Π°Π· Ρ†ΠΈΡ„Ρ€Π° встрСчаСтся Π² числС. (Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ count)

Π¦ΠΈΠΊΠ»Ρ‹ Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅. While ΠΈ for Π² Python.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ расчёты, Π½Π° языках программирования Π±Ρ‹Π»ΠΈ созданы ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ конструкции ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ. ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ Π²Ρ‹ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ большоС число Ρ€Π°Π·.


Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅ оставили всСго Π΄Π²Π° основных Ρ†ΠΈΠΊΠ»Π°: Ρ†ΠΈΠΊΠ» с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΈ Ρ†ΠΈΠΊΠ» с прСдусловиСм. Рассмотрим Π² этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΏΠΎ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠŸΠΈΡ‚ΠΎΠ½Π° ΠΈ Ρ‚ΠΎΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ конструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Ρ‚ Тизнь простого программиста Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅.


Π¦ΠΈΠΊΠ» с прСдусловиСм while

Π¦ΠΈΠΊΠ» While ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ самым ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ Π² Python, Π½ΠΎ ΠΎΠ½ выполняСтся ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ†ΠΈΠΊΠ»Ρ‹. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, входящиС Π² Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° условиС Ρ†ΠΈΠΊΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ истинно. Π’ этом ΠΈ плюс, Π½ΠΎ ΠΈ ΠΆΠΈΡ€Π½Ρ‹ΠΉ минус. Если Π²Ρ‹ создадитС Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ условиС, Ρ‚ΠΎ Ρ†ΠΈΠΊΠ»Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ бСсконСчно Π΄ΠΎΠ»Π³ΠΎ.

i=1 # Π·Π°Π΄Π°Ρ‘ΠΌ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ i
while i print (i =, i)
i=i+1 # стандартный счётчик ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ i

Π­Ρ‚Π° конструкция Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ряд строк, Π³Π΄Π΅ i Π±ΡƒΠ΄Π΅Ρ‚ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 1 Π΄ΠΎ 100


Π¦ΠΈΠΊΠ» с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ for

Π“ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС выполняСтся Ρ†ΠΈΠΊΠ» for это связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½Ρ‘ΠΌ Π½Π΅Ρ‚ логичСских ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ. Он ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для любого ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ число Ρ€Π°Π·). ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΡΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ числа, Π½ΠΎ ΠΈ строки ΠΈ списки, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ. Однако ΠΏΡ€ΠΈ этом, Π΅Π³ΠΎ синтаксис Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ½Π°Ρ‡Π°Π»Ρƒ Π±ΠΎΠ»Π΅Π΅ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΌ, Ρ‡Π΅ΠΌ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, for Π½Π° ПаскалС. Π’ΠΎ врСмя ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ всС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ (Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ отступ), находящиСся Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π°.


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ†ΠΈΠΊΠ»Π° for с Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ чисСл

s=0
for i in range(1,n):
s=3+s

Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠΊΠ° i ΠΈΠ΄Ρ‘Ρ‚ ΠΎΡ‚ 1 Π΄ΠΎ n-значСния пСрСмСнная s Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Ρ‚ΡŒ сумму чисСл, дСлящихся Π½Π° 3.


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ†ΠΈΠΊΠ»Π° for со строкой


a=Π­Ρ‚Π° строка Π·Π°Π΄Π°Ρ‘Ρ‚ количСство ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΎΠ² Ρ†ΠΈΠΊΠ»Π°
s=0
for i in a:
s=1+s
print(Π”Π»ΠΈΠ½Π° строки ",a," =,s)

Π’ этом Ρ†ΠΈΠΊΠ»Π΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ s вычисляСтся Π΄Π»ΠΈΠ½Π° строки, которая Π±Ρ‹Π»Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π° Π² ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ a.


Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Ρ†ΠΈΠΊΠ»Π°Ρ… Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅

Однако Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ситуаций Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ Π±Π»ΠΎΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°, Ссли всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΡƒΠΆΠ΅ Π² Π½Ρ‘ΠΌ подсчитаны. Π˜Ρ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ†ΠΈΠΊΠ»Π°Ρ… for ΠΈ while. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚.


ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° continue

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° начинаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ Ρ†ΠΈΠΊΠ»Π°, минуя ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ послС Π½Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π°.


a=0
for i in 3232453232455456: # Π΄Π΅Π»Π°Π΅ΠΌ Ρ†ΠΈΠΊΠ» ΠΏΠΎ строкС (Π° Π½Π΅ числу!)
if i != 3:
continue # Ссли условиС срабатываСт, Π±Π΅Ρ€Ρ‘ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ символ
print(i)
a=a+1 # ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ счСтчик Ρ‚Ρ€ΠΎΠ΅ΠΊ
print(Число Ρ‚Ρ€ΠΎΠ΅ΠΊ Π² строкС = ,a)

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ†ΠΈΠΊΠ» ΠΏΠΎ строкС ΠΈ ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ провСряСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ Π½Π° соотвСтствиС с числом 3. Если Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π΅Π³ΠΎ, Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ счётчик a, Π° Π² самом ΠΊΠΎΠ½Ρ†Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΎΠ±Ρ‰Π΅Π΅ число Ρ‚Ρ€ΠΎΠ΅ΠΊ Π² строкС.



ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ прСрывания Ρ†ΠΈΠΊΠ»Π° break

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ†ΠΈΠΊΠ»Ρ‹ досрочно прСрываСтся. Π£Π΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° всС Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΆΠ΅ подсчитано.


a=0
for i in 32324532732455456:
if i == 7: # Ссли Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ символ 7 ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ†ΠΈΠΊΠ»Π°.
break
print(i)
a=a+1
print(Число символов Π² строкС Π΄ΠΎ 7 = ,a)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹



Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ прСрывания else

Для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»Π° Π±ΠΎΠ»Π΅Π΅ СстСствСнным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, примСняСтся, ΠΊΠ°ΠΊ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ Π² условном ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ if. Π’ Ρ†ΠΈΠΊΠ»Π΅ эта ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π±Ρ‹Π»ΠΎ Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ инструкциСй break. Если это ΠΈΠΌΠ΅Π΅Ρ‚ мСсто, Ρ‚ΠΎ выполняСтся Π±Π»ΠΎΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², стоящих Π·Π° этой инструкциСй.

Π’ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ наш ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ случая.

a=0
for i in 32324532732455456:
if i == 7: # Ссли Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ символ 7 ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ†ΠΈΠΊΠ»Π°.
break
print(i)
a=a+1
else:
print(Π² строкС символов Π½Π΅ содСрТится символ 7)
print(ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ символов Π² строкС (Π΄ΠΎ символа 7) = ,a)

Π—Π΄Π΅ΡΡŒ Π³Π»Π°Π²Π½ΠΎΠ΅ Π½Π΅ ΠΏΡ€ΠΎΠΌΠ°Ρ…Π½ΡƒΡ‚ΡŒΡΡ с расстановкой отступов, Ρƒ else ΠΈΡ… Π½Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ условия if. Ссли сдСлаСтС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ — ΠΊΠΎΠ΄ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.

Π’ΠΎΡ‚ Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ этот ΠΊΠΎΠ΄, Ссли сСмёрка встрСчаСтся


Π° Π²ΠΎΡ‚ Ρ‚Π°ΠΊ, Ссли Π΅Ρ‘ Π½Π΅Ρ‚ Π² строкС


На этом я ΠΏΠΎΠΏΡ€ΠΎΡ‰Π°ΡŽΡΡŒ с Π²Π°ΠΌΠΈ. Π Π°Π·Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅.


Как быстро ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅? Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Ρ†ΠΈΠΊΠ» for/in Π² Python.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ for Π² Python Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ отличаСтся ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² C ΠΈΠ»ΠΈ Pascal. for Π² Python Π½Π΅ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π΅ΡΡΠΈΡŽ чисСл, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠ°ΠΊ Π² Pascal, Π½Π΅ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ шаг ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ условиС остановки, ΠΊΠ°ΠΊ C. ВмСсто этого инструкция for Π² Python ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты любой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (список list, строку string, ΠΊΠΎΡ€Ρ‚Π΅ΠΆ tuple, ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ dict ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ) Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ.

>>> words = ['cat', 'window', 'defenestrate']
# проходимся ΠΏΠΎ списку `words`
>>> for w in words:
...     print(w)
... 
# cat
# window
# defenestrate

Π’Π°ΠΊ ΠΆΠ΅, Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ элСмСнты списка ΠΏΠΎ индСксу. Для этого, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ количСство элСмСнтов n Π² спискС ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ len(), Π° Π·Π°Ρ‚Π΅ΠΌ сгСнСрируСм Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ range(n), ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ:

>>> words = ['cat', 'window', 'defenestrate']
# ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ количСство элСмСнтов Π² спискС
>>> n = len(words)
# ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ `range(n)`
>>> for i in range(n):
        # ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ элСмСнты списка
        # `words` ΠΏΠΎ индСксу `i`
...     print(words[i])
... 
# cat
# window
# defenestrate

Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ Python — это такая ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, которая ΠΈΠΌΠ΅Π΅Ρ‚ прСдставлСния dict.items(), dict.keys(), dict.values() ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ:

>>> d = {0: 'zero', 1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five'}
>>> for key, value in d.items():
...     print(key, ': ' ,value)
... 
# 0 :  zero
# 1 :  one
# 2 :  two
# 3 :  three
# 4 :  four
# 5 :  five

Код, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ измСняСт ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ (список, ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ ΠΈ Ρ‚.Π΄.) Π²ΠΎ врСмя ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ этой ΠΆΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ, ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ Ρ‚ΠΎΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ оТидался. НС Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊ ΠΠ˜ΠšΠžΠ“Π”Π! Намного ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ бСзопаснСС Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» Π½Π°Π΄ ΠΊΠΎΠΏΠΈΠ΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ:

# допустим `users` - это ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Python
# создаСм копию словаря `users`
users_copy = users.copy()
# проходимся ΠΏΠΎ ΠΊΠΎΠΏΠΈΠΈ словаря `users`
for user, status in users_copy.items():
    if status == 'inactive':
        # измСняСм исходный ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ
        del users[user]

ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ:

# создаСм Π½ΠΎΠ²Ρ‹ΠΉ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ
active_users = {}
# проходимся ΠΏΠΎ ΡΠ»ΠΎΠ²Π°Ρ€ΡŽ `users`
for user, status in users.items():
    # ΠΎΡ‚Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 
    if status == 'active':
        # добавляСм Π² Π½ΠΎΠ²Ρ‹ΠΉ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ 
        # ΠΎΡ‚ΠΎΠ±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
        active_users[user] = status

БпСцификация ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°

for/in/else:
for_stmt :: = "for" target_list "in" expression_list ":" suite
              ["else" ":" suite]

Бписок Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° инструкциСй for вычисляСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ. Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ создаСтся для Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° expression_list. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΈΠ· expression_list Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ присваиваСтся Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ target_list, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ пСрСдаСтся Π² Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ инструкции for. Π—Π°Ρ‚Π΅ΠΌ ΠΊΠΎΠ΄ Π±Π»ΠΎΠΊΠ° for выполняСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта. Когда элСмСнты исчСрпаны, Ρ‡Ρ‚ΠΎ происходит сразу ΠΆΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ пуста ΠΈΠ»ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ StopIteration, выполняСтся Π½Π°Π±ΠΎΡ€ Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ else, Ссли ΠΎΠ½ присутствуСт, ΠΈ Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.

  • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ break: выполняСтся ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ for Π΄ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° break ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ†ΠΈΠΊΠ» Π±Π΅Π· выполнСния Π±Π»ΠΎΠΊΠ° Π²Π½ΡƒΡ‚Ρ€ΠΈ else.
  • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ continue: выполняСтся ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ for Π΄ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° continue, пропускаСт ΠΎΡΡ‚Π°Π²ΡˆΡƒΡŽΡΡ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π² Π±Π»ΠΎΠΊΠ΅ for ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ элСмСнтом списка ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌΡ‹Ρ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ else, Ссли ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ элСмСнта Π½Π΅Ρ‚.

ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ break ΠΈ continue Π² ΠΊΠΎΠ΄Π΅ for/in/else ΠΈ посмотрим Π½Π° ΠΈΡ… ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π‘ΡƒΠ΄Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ список Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… чисСл ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ чисСл ΠΎΡ‚ 0 Π΄ΠΎ 14.

lst = []
for item in range(15) :
    # Ссли число 10 Π΅ΡΡ‚ΡŒ Π² спискС
    if 10 in lst:
        # ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅ΠΌ Ρ†ΠΈΠΊΠ», ΠΏΡ€ΠΈ этом Π±Π»ΠΎΠΊ else Π½Π΅ выполнится
        break
    # остаток ΠΎΡ‚ дСлСния элСмСнта списка
    a = item % 2
    # Ссли элСмСнт списка Π½Π΅ Ρ‡Π΅Ρ‚Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ Ρ€Π°Π²Π΅Π½ 0
    if a != 0 or item == 0:
        # пропускаСм ΠΎΡΡ‚Π°Π²ΡˆΠΈΠΉΡΡ ΠΊΠΎΠ΄
        continue
    # Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ числа Π² список
    lst.append(item)
else:
    print ("НапСчатаСт, Ссли ΡƒΠ±Ρ€Π°Ρ‚ΡŒ условиС с break")

print(lst)
# Код Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚:
[2, 4, 6, 8, 10]

Π¦ΠΈΠΊΠ» for выполняСт назначСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΌ спискС. Π­Ρ‚ΠΎ пСрСзаписываСт всС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ назначСния этим ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ сдСланы Π² Π±Π»ΠΎΠΊΠ΅ for-loop:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

for i in range(10):
    print(i)
    i = 5
    # это Π½Π΅ повлияСт Π½Π° Ρ†ΠΈΠΊΠ» for Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ пСрСмСнная i
    # Π±ΡƒΠ΄Π΅Ρ‚ пСрСзаписана ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ элСмСнтом

ИмСна Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΌ спискС Π½Π΅ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½, Π½ΠΎ Ссли ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ пуста, Ρ‚ΠΎ ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½.

Подсказка: встроСнная функция range() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†Π΅Π»Ρ‹Ρ… чисСл, подходящий для эмуляции эффСкта языка Pascal for i: = a to b do; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, list(range(3)) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список [0, 1, 2].

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. БущСствуСт Ρ‚ΠΎΠ½ΠΊΠΎΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ итСрация, ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°. БущСствуСт Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ счСтчик, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для отслСТивания Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ элСмСнт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ, ΠΈ ΠΎΠ½ увСличиваСтся Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. Когда этот счСтчик достигнСт Π΄Π»ΠΈΠ½Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° удаляСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ (ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ) элСмСнт ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ΄Π΅Ρ‚ итСрация, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ индСкс Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ Π±Ρ‹Π» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½.

Аналогично, Ссли ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° вставляСт элСмСнт Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ элСмСнтом. Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ снова Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ этапС ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСприятным ошибкам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, сдСлав Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ копию с использованиСм Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° всСй ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

b = a[:]
for item in b:
    if item < 0: 
        a.remove(item)

Python для Ρ†ΠΈΠΊΠ»Π°

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ†ΠΈΠΊΠ» for Π² Python?

Π¦ΠΈΠΊΠ» for Π² Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (списка, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°, строки) ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠžΠ±Ρ…ΠΎΠ΄ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ называСтся ΠΎΠ±Ρ…ΠΎΠ΄ΠΎΠΌ.

Бинтаксис Ρ†ΠΈΠΊΠ»Π° for

 
для val ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ:
    Ρ‚Π΅Π»ΠΎ ΠΏΠ΅Ρ‚Π»ΠΈ  

Π—Π΄Π΅ΡΡŒ val — это пСрСмСнная, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

Π¦ΠΈΠΊΠ» продолТаСтся, ΠΏΠΎΠΊΠ° ΠΌΡ‹ Π½Π΅ Π΄ΠΎΠΉΠ΄Π΅ΠΌ Π΄ΠΎ послСднСго элСмСнта Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.Π’Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° for отдСляСтся ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° отступом.

Π‘Π»ΠΎΠΊ-схСма Ρ†ΠΈΠΊΠ»Π°

Π‘Π»ΠΎΠΊ-схСма Ρ†ΠΈΠΊΠ»Π° for Π² Python

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Python for Loop

  # ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для поиска суммы всСх чисСл, хранящихся Π² спискС

# Бписок Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ²
числа = [6, 5, 3, 8, 4, 2, 5, 4, 11]

# пСрСмСнная для хранСния суммы
сумма = 0

# ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ список
для val Π² числах:
    сумма = сумма + Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

print ("Π‘ΡƒΠΌΠΌΠ° Ρ€Π°Π²Π½Π°", сумма)
  

Когда Π²Ρ‹ запуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚:

  Π‘ΡƒΠΌΠΌΠ° 48  

Ѐункция range ()

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ чисСл с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ range () . Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (10) Π±ΡƒΠ΄Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ числа ΠΎΡ‚ 0 Π΄ΠΎ 9 (10 чисСл).

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΠΎ, остановку ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ шага ΠΊΠ°ΠΊ range (start, stop, step_size) . step_size ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π²Π΅Π½ 1, Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ range Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ смыслС Β«Π»Π΅Π½ΠΈΠ²Β», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ всС числа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ «содСрТит», ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π΅Π³ΠΎ создаСм. Однако это Π½Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π² опСрациях , len ΠΈ __getitem__ .

Π­Ρ‚Π° функция Π½Π΅ сохраняСт всС значСния Π² памяти; это Π±Ρ‹Π»ΠΎ Π±Ρ‹ нСэффСктивно.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠ½ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΠΎ, остановку, Ρ€Π°Π·ΠΌΠ΅Ρ€ шага ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ число Π½Π° Ρ…ΠΎΠ΄Ρƒ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ всС элСмСнты, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ list () .

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ поясняСт это.

  ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊ (Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (10))

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (список (Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (10)))

print (список (диапазон (2, 8)))

print (список (диапазон (2, 20, 3)))  

Π’Ρ‹Ρ…ΠΎΠ΄

  Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (0, 10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 3, 4, 5, 6, 7]
[2, 5, 8, 11, 14, 17]  

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ range () Π² для Ρ†ΠΈΠΊΠ»ΠΎΠ² , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ чисСл.Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ len () для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ с использованиСм индСксации. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

  # ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° списка с использованиСм индСксации

ΠΆΠ°Π½Ρ€ = ['ΠΏΠΎΠΏ', 'Ρ€ΠΎΠΊ', 'Π΄ΠΆΠ°Π·']

# ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ список с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ индСкса
для i Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (len (ΠΆΠ°Π½Ρ€)):
    print («МнС нравится», ΠΆΠ°Π½Ρ€ [i])  

Π’Ρ‹Ρ…ΠΎΠ΄

  я люблю поп
Π― люблю Ρ€ΠΎΠΊ
Я люблю дТаз  

для Ρ†ΠΈΠΊΠ»Π° с else

Π¦ΠΈΠΊΠ» для ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ else .Π§Π°ΡΡ‚ΡŒ else выполняСтся, Ссли элСмСнты Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, использованной Π² Ρ†ΠΈΠΊΠ»Π΅ for, ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‚ΡΡ.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово break ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для остановки Ρ†ΠΈΠΊΠ»Π° for. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Ρ‡Π°ΡΡ‚ΡŒ else игнорируСтся.

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Π°ΡΡ‚ΡŒ else Ρ†ΠΈΠΊΠ»Π° for выполняСтся, Ссли Π½Π΅ происходит прСрывания.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ это.

  Ρ†ΠΈΡ„Ρ€ = [0, 1, 5]

для i Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ:
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (я)
Π΅Ρ‰Π΅:
    print («НичСго Π½Π΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒΒ»)  

Когда Π²Ρ‹ запуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚:

  0
1
5
НичСго Π½Π΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ. 

Π—Π΄Π΅ΡΡŒ Ρ†ΠΈΠΊΠ» for ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ элСмСнты списка Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Ρ†ΠΈΠΊΠ» Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ исчСрпан. Когда Ρ†ΠΈΠΊΠ» for Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, ΠΎΠ½ выполняСт Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° Π² else ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ НСт ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ элСмСнтов.

Π­Ρ‚ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for ... else ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом break для запуска Π±Π»ΠΎΠΊΠ° else Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово break Π½Π΅ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

  # ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для отобраТСния ΠΎΡ†Π΅Π½ΠΎΠΊ ΡƒΡ‡Π΅Π½ΠΈΠΊΠ° ΠΈΠ· записи
student_name = 'БоюдТ'

mark = {'ДТСймс': 90, 'Π–ΡŽΠ»ΡŒ': 55, 'Артур': 77}

для студСнта Π² ΠΎΡ†Π΅Π½ΠΊΠ°Ρ…:
    Ссли студСнт == имя_студСнта:
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΈ [студСнт])
        ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²
Π΅Ρ‰Π΅:
    print ('Π—Π°ΠΏΠΈΡΡŒ с Ρ‚Π°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°.')  

Π’Ρ‹Ρ…ΠΎΠ΄

  НС Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ записи с Ρ‚Π°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ.  

4. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ инструмСнты управлСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ — докумСнтация Python 3.9.7

Помимо Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ прСдставлСнного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° while , Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ управлСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ, извСстныС ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ особСнностями.

4.1.

Ссли Выписки

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстным Ρ‚ΠΈΠΏΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² являСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if . Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

 >>> x = int (input ("ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ†Π΅Π»ΠΎΠ΅ число:"))
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ†Π΅Π»ΠΎΠ΅ число: 42
>>> Ссли x <0:
... x = 0
... print ('ΠžΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° ноль')
... elif x == 0:
... print ('Ноль')
... elif x == 1:
... print ('Один')
... Π΅Ρ‰Π΅:
... print ('ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅')
...
Π‘ΠΎΠ»Π΅Π΅
 

ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ноль ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ elif частСй, Π° else Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎ ТСланию. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Β« elif Β» являСтся сокращСниСм ΠΎΡ‚ Β«else ifΒ» ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ вдавливания. , Ссли … elif … elif … ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ замСняСт ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΈΠ»ΠΈ case ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках.

4.2.

для Выписки

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ для Π² Python Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ отличаСтся ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² C ΠΈΠ»ΠΈ Паскаль. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всСгда ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π΅ΡΡΠΈΡŽ чисСл (ΠΊΠ°ΠΊ Π² ПаскалС), ΠΈΠ»ΠΈ давая ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΊ шаг ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ условиС остановки (ΠΊΠ°ΠΊ C), ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Python для ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнты любой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (список ΠΈΠ»ΠΈ строка) Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. НапримСр (ΠΊΠ°Π»Π°ΠΌΠ±ΡƒΡ€ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½):

 >>> # Π˜Π·ΠΌΠ΅Ρ€ΡŒΡ‚Π΅ нСсколько строк:
... words = ['кошка', 'окно', 'defenestrate']
>>> вмСсто w ΠΏΡ€ΠΎΠΏΠΈΡΡŒΡŽ:
... print (w, len (w))
...
кошка 3
ΠΎΠΊΠ½ΠΎ 6
дСфСнСстрат 12
 

Код, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ измСняСт ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΈ этой ΠΆΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ слоТно ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. ВмСсто этого ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» Π½Π°Π΄ ΠΊΠΎΠΏΠΈΠ΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ для создания Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ:

 # БтратСгия: итСрация ΠΏΠΎ ΠΊΠΎΠΏΠΈΠΈ
для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ статус Π² users.copy (). items ():
    Ссли статус == 'Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π΅Π½':
        del users [ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ]

# БтратСгия: Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ
active_users = {}
для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ статус Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΡ….ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹():
    Ссли status == 'active':
        active_users [ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ] = статус
 

4.3. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½

() Ѐункция

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ чисСл, встроСнная функция Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ () пригодится. Он Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ арифмСтичСскиС прогрСссии:

 >>> для i в диапазонС (5):
... ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (я)
...
0
1
2
3
4
 

Данная конСчная Ρ‚ΠΎΡ‡ΠΊΠ° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ сгСнСрированной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ; Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (10) Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ 10 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΏΡ€Π°Π²ΠΎΠ²Ρ‹Π΅ индСксы для элСмСнтов ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄Π»ΠΈΠ½ΠΎΠΉ 10.Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ числа ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ (Π΄Π°ΠΆΠ΅ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅; ΠΈΠ½ΠΎΠ³Π΄Π° это называСтся «шагом»):

 >>> список (диапазон (5, 10))
[5, 6, 7, 8, 9]

>>> список (диапазон (0, 10, 3))
[0, 3, 6, 9]

>>> список (диапазон (-10, -100, -30))
[-10, -40, -70]
 

Для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° индСксов ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ range () ΠΈ len () ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

 >>> a = ['ΠœΠ°Ρ€ΠΈΡ', 'Π±Ρ‹Π»Π°', 'Π°', 'малСнькая', 'Π±Π°Ρ€Π°ΡˆΠΊΠ°']
>>> для i в диапазонС (len (a)):
... print (i, a [i])
...
0 ΠœΡΡ€ΠΈ
1 ΠΈΠΌΠ΅Π»
2 Π°
3 малСнькиС
4 Π±Π°Ρ€Π°Π½ΠΈΠ½Ρ‹
 

Однако Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Ρ‚Π°ΠΊΠΈΡ… случаСв ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ enumerate () , см. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ зацикливания.

Бтранная Π²Π΅Ρ‰ΡŒ происходит, Ссли Π²Ρ‹ просто ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½:

 >>> Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (10)
Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (0, 10)
 

Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ range () , Π²Π΅Π΄Π΅Ρ‚ сСбя Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ это список, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ это Π½Π΅ Ρ‚Π°ΠΊ. Π­Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты ΠΆΠ΅Π»Π°Π΅ΠΌΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ повторяСтС Π΅Π΅, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ это Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ список, Ρ‚Π΅ΠΌ самым экономя мСсто.

ΠœΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ являСтся ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π² качСствС Ρ†Π΅Π»ΠΈ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ конструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ, ΠΎΡ‚ Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π°ΠΉΡ‚Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹, ΠΏΠΎΠΊΠ° запас Π½Π΅ иссякнСт. ΠœΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ для являСтся Ρ‚Π°ΠΊΠΎΠΉ конструкциСй, Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ - sum () :

 >>> сумма (Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (4)) # 0 + 1 + 2 + 3
6
 

ПозТС ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ большС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹.Π’ Π³Π»Π°Π²Π΅ Β«Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…Β» ΠΌΡ‹ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ обсудим список () .

4.4.

break ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° else Clauses Π² Ρ†ΠΈΠΊΠ»Π°Ρ…

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ break , ΠΊΠ°ΠΊ ΠΈ Π² C, Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ самого Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ для ΠΈΠ»ΠΈ , Π° Ρ†ΠΈΠΊΠ» .

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ else ; ΠΎΠ½ выполняСтся, ΠΊΠΎΠ³Π΄Π° Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ΠΈΠ·-Π·Π° исчСрпания ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ (с для ) ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° условиС становится Π»ΠΎΠΆΠ½Ρ‹ΠΌ (с ΠΈ ), Π½ΠΎ Π½Π΅ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²Π° .ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ†ΠΈΠΊΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡ‰Π΅Ρ‚ простыС числа:

 >>> для n в диапазонС (2, 10):
... для x в диапазонС (2, n):
... Ссли n% x == 0:
... print (n, 'Ρ€Π°Π²Π½ΠΎ', x, '*', n // x)
...             ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²
...     Π΅Ρ‰Π΅:
... # Ρ†ΠΈΠΊΠ» провалился, Ρ„Π°ΠΊΡ‚ΠΎΡ€ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½
... print (n, 'простоС число')
...
2 - простоС число
3 - простоС число
4 Ρ€Π°Π²Π½ΠΎ 2 * 2
5 - простоС число
6 Ρ€Π°Π²Π½ΠΎ 2 * 3
7 - простоС число
8 Ρ€Π°Π²Π½ΠΎ 2 * 4
9 Ρ€Π°Π²Π½ΠΎ 3 * 3
 

(Π”Π°, это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄.ΠŸΡ€ΠΈΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ΡΡŒ: Π΅Ρ‰Π΅ ΠΏΡƒΠ½ΠΊΡ‚ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ для Ρ†ΠΈΠΊΠ»Π° , Π½Π΅ , Ссли ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ .)

ΠŸΡ€ΠΈ использовании с Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ else ΠΈΠΌΠ΅Π΅Ρ‚ большС ΠΎΠ±Ρ‰Π΅Π³ΠΎ с ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ else Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ try , Ρ‡Π΅ΠΌ Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² if : выполняСтся ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ try ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° else ΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΈ условиС Ρ†ΠΈΠΊΠ»Π° else выполняСтся, ΠΊΠΎΠ³Π΄Π° Π½Π΅ прСрываСтся происходит.Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎΠ± ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ try ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ… см. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ continue , Ρ‚Π°ΠΊΠΆΠ΅ заимствованный ΠΈΠ· C, продолТаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ итСрация Ρ†ΠΈΠΊΠ»Π°:

 >>> для числа Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (2, 10):
... Ссли число% 2 == 0:
... print ("НайдСно Ρ‡Π΅Ρ‚Π½ΠΎΠ΅ число", num)
...         ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ
... print ("НайдСно Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠ΅ число", число)
...
НашСл Ρ‡Π΅Ρ‚Π½ΠΎΠ΅ число 2
Нашли Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠ΅ число 3
Нашли Ρ‡Π΅Ρ‚Π½ΠΎΠ΅ число 4
Нашли Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠ΅ число 5
Нашли Ρ‡Π΅Ρ‚Π½ΠΎΠ΅ число 6
Нашли Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠ΅ число 7
Нашли Ρ‡Π΅Ρ‚Π½ΠΎΠ΅ число 8
Нашли Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠ΅ число 9
 

4.5.

ΠΏΡ€ΠΎΠ΅Π·Π΄Π½ΠΎΠΉ Выписки

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ pass Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ трСбуСтся синтаксичСски, Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… дСйствий. НапримСр:

 >>> ΠΏΠΎΠΊΠ° True:
... pass # ОТиданиС прСрывания ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ (Ctrl + C)
...
 

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… классов:

 >>> класс MyEmptyClass:
...     ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ
...
 

Π”Ρ€ΡƒΠ³ΠΎΠ΅ мСсто pass ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ условноС Ρ‚Π΅Π»ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ Π½ΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ Π½Π° Π±ΠΎΠ»Π΅Π΅ абстрактном ΡƒΡ€ΠΎΠ²Π½Π΅. ΠΏΡ€ΠΎΡ…ΠΎΠ΄ игнорируСтся ΠΌΠΎΠ»Ρ‡Π°:

 >>> def initlog (* args):
... pass # НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ это!
...
 

4.6. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая записываСт ряд Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π°:

 >>> def fib (n): # записываСм ряд Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ Π΄ΠΎ n
... "" "Π’Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ ряд Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ Π΄ΠΎ n." ""
... Π°, Π¬ = 0, 1
... ΠΏΠΎΠΊΠ° a >> # Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π·ΠΎΠ²Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ:
... Π²Ρ‹Π΄ΡƒΠΌΠΊΠ° (2000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
 

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово def Π²Π²ΠΎΠ΄ΠΈΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ . Π­Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ список Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² скобках. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ с отступом.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚Π΅Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ строковым Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ; этот строковый Π»ΠΈΡ‚Π΅Ρ€Π°Π» являСтся строкой Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ строкой Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ .(ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ строках Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.) Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ для автоматичСского создания ΠΎΠ½Π»Π°ΠΉΠ½ ΠΈΠ»ΠΈ распСчатанных ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ². Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄; это Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠŸΠΎΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΉΡ‚Π΅ΡΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π² ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ сдСлайтС это ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠΎΠΉ.

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π½ΠΎΠ²ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ для Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ΠΎΡ‡Π½Π΅Π΅, всС присвоСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² функция сохраняСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² локальной Ρ‚Π°Π±Π»ΠΈΡ†Π΅ символов; Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ссылки Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ сначала посмотритС Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов, Π·Π°Ρ‚Π΅ΠΌ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ символов Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π·Π°Ρ‚Π΅ΠΌ Π² Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ встроСнных ΠΈΠΌΠ΅Π½.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ нСльзя Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΊΡ€ΠΎΠΌΠ΅ случаСв, ΠΊΠΎΠ³Π΄Π° Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π½Π°Π·Π²Π°Π½Π½Ρ‹Π΅ Π² глобальном ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ , ΠΈΠ»ΠΈ, для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π°Π·Π²Π°Π½Π½Ρ‹Π΅ Π² нСлокальном ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ), хотя ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ упоминаСтся.

ЀактичСскиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹) Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ вводятся Π² локальном Ρ‚Π°Π±Π»ΠΈΡ†Π° символов Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈ Π΅Π΅ Π²Ρ‹Π·ΠΎΠ²Π΅; Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ пСрСдаСтся с использованиСм Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ (Π³Π΄Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСгда являСтся ссылкой Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ , Π½Π΅ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°).Когда функция Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΈΠ»ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ сСбя рСкурсивно, Π½ΠΎΠ²Ρ‹ΠΉ для этого Π²Ρ‹Π·ΠΎΠ²Π° создаСтся локальная Ρ‚Π°Π±Π»ΠΈΡ†Π° символов.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ связываСт имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² тСкущая Ρ‚Π°Π±Π»ΠΈΡ†Π° символов. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ распознаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ это имя ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ функция. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Ρ‚ΠΎ ΠΆΠ΅ самоС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для доступа ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

 >>> Ρ„ΠΈΠ±
<функция fib Π½Π° 10042ed0>
>>> f = Ρ„ΠΈΠ±
>>> f (100)
0 1 1 2 3 5 8 13 21 34 55 89
 

Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΠ·Ρ€Π°Π·ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ fib Π½Π΅ функция, Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ значСния.ЀактичСски, Π΄Π°ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Π±Π΅Π· return Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, хотя ΠΈ довольно ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅. Π­Ρ‚ΠΎΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ называСтся НСт (это встроСнноС имя). Π—Π°ΠΏΠΈΡΡŒ значСния НСт ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ подавляСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Ссли это СдинствСнноС записанноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ это, Ссли Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ print () :

 >>> Ρ„ΠΈΠ± (0)
>>> ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Ρ„ΠΈΠ± (0))
Никто
 

ΠžΡ‡Π΅Π½ΡŒ просто Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Ряд Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ:

 >>> def fib2 (n): # Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ряд Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ Π΄ΠΎ n
... "" "Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ список, содСрТащий ряды Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ Π΄ΠΎ n." ""
... Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = []
... Π°, Π¬ = 0, 1
... ΠΏΠΎΠΊΠ° a >> f100 = fib2 (100) # Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ это
>>> f100 # записываСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
 

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, дСмонстрируСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΎΠ²Ρ‹Π΅ возмоТности Python:

  • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ return Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. return Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° выраТСния Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ None . Π’Ρ‹ΠΏΠ°Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ† Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ НСт .

  • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ result.append (a) Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° списка счСт . ΠœΠ΅Ρ‚ΠΎΠ΄ - это функция, которая Β«ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚Β» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΈ называСтся obj.methodname , Π³Π΄Π΅ obj - Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅), Π° имя ΠΌΠ΅Ρ‚ΠΎΠ΄Π° - имя ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, опрСдСляСмого Ρ‚ΠΈΠΏΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.Π Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ имя, Π½Π΅ вызывая двусмыслСнности. (МоТно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ свой собствСнный Ρ‚ΠΈΠΏΡ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ классов , см. ΠšΠ»Π°ΡΡΡ‹) ΠŸΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ append () ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² списка; Π­Ρ‚ΠΎ добавляСт Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт Π² ΠΊΠΎΠ½Π΅Ρ† списка. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это эквивалСнтно Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ + [a] , Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ эффСктивно.

4.7. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ числом Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².Π•ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

4.7.1. ЗначСния Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Бамая полСзная Ρ„ΠΎΡ€ΠΌΠ° - ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π­Ρ‚ΠΎ создаСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ с мСньшим количСством Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‡Π΅ΠΌ Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ. НапримСр:

 def ask_ok (подсказка, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ = 4, Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ = 'ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π·!'):
    Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ True:
        ok = ввод (подсказка)
        Ссли всС Π² порядкС ('y', 'ye', 'yes'):
            Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ True
        Ссли всС Π² порядкС Π² ('n', 'no', 'nop', 'nope'):
            Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ лоТь
        retries = retries - 1
        Ссли ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ <0:
            ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ ValueError ('нСдопустимый ΠΎΡ‚Π²Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ')
        Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ (Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅)
 

Π­Ρ‚Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ нСсколькими способами:

  • с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°: ask_ok (Β«Π’Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΊΡƒΡ€ΠΈΡ‚ΡŒ?Β»)

  • с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²: ask_ok ('МоТно ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»?', 2)

  • ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ привСдя всС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹: ask_ok («МоТно ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»?Β», 2, Β«Π”Π°Π²Π°ΠΉ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π° ΠΈΠ»ΠΈ Π½Π΅Ρ‚!Β»)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚Π°ΠΊΠΆΠ΅ вводится ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π² .Π­Ρ‚ΠΎ провСряСт, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ Π½Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ содСрТит ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

ЗначСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² , ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ , Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ

 я = 5

def f (arg = i):
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚)

я = 6
f ()
 

Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ 5 .

Π’Π°ΠΆΠ½ΠΎΠ΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ оцСниваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ измСняСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ список, ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ ΠΈΠ»ΠΈ экзСмпляры Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° классов.НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ функция Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ Π΅ΠΌΡƒ ΠΏΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²Π°Ρ…:

 def f (a, L = []):
    L.append (Π°)
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ L

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (f (1))
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (f (2))
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (f (3))
 

Π‘ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΎ

Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ использовалось для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ вмСсто этого Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ‚Π°ΠΊ:

 def f (a, L = НСт):
    Ссли L Ρ€Π°Π²Π½ΠΎ None:
        L = []
    L.append (Π°)
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ L
 

4.7.2. АргумСнты ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Ρ„ΠΎΡ€ΠΌΡ‹ kwarg = Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ .НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ функция:

 def parrot (Voltage, state = 'a stiff', action = 'voom', type = 'Norwegian Blue'):
    print ("- Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠΏΡƒΠ³Π°ΠΉ Π½Π΅ стал Π±Ρ‹", action, end = '')
    print («Ссли ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒΒ», напряТСниС, Β«Ρ‡Π΅Ρ€Π΅Π· это Π²ΠΎΠ»ΡŒΡ‚Β»).
    print ("- МилоС ΠΎΠΏΠ΅Ρ€Π΅Π½ΠΈΠ΅,", Ρ‚ΠΈΠΏ)
    print ("- Π­Ρ‚ΠΎ", состояниС, "!")
 

ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ( напряТСниС ) ΠΈ Ρ‚Ρ€ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. ( состояниС , дСйствиС ΠΈ Ρ‚ΠΈΠΏ ). Π­Ρ‚Π° функция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° Π² любом ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… способов:

 parrot (1000) # 1 ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚
parrot (Voltage = 1000) # 1 Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова
parrot (Voltage = 1000000, action = 'VOOOOOM') # 2 Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова
parrot (action = 'VOOOOOM', Voltage = 1000000) # 2 Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова
parrot ('ΠΌΠΈΠ»Π»ΠΈΠΎΠ½', 'Π»ΠΈΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΆΠΈΠ·Π½ΠΈ', 'ΠΏΡ€Ρ‹ΠΆΠΎΠΊ') # 3 ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹
parrot ('тысяча', state = 'поднимая Ρ€ΠΎΠΌΠ°ΡˆΠΊΠΈ') # 1 ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ, 1 ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово
 

, Π½ΠΎ всС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ:

 parrot () # отсутствуСт ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚
ΠΏΠΎΠΏΡƒΠ³Π°ΠΉ (напряТСниС = 5.0, 'dead') # Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π±Π΅Π· ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова послС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова
parrot (110, Voltage = 220) # ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π΅ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°
ΠΏΠΎΠΏΡƒΠ³Π°ΠΉ (Π°ΠΊΡ‚Π΅Ρ€ = 'Π”ΠΆΠΎΠ½ Клиз') # нСизвСстный Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова
 

ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π·Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ. ВсС ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² принимаСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ являСтся допустимым Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ для parrot function), ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΈΡ… порядок Π½Π΅ Π²Π°ΠΆΠ΅Π½. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,Π³Ρ€Π°ΠΌΠΌ. ΠΏΠΎΠΏΡƒΠ³Π°ΠΉ (напряТСниС = 1000) Ρ‚ΠΎΠΆΠ΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ). Ни ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π°. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ·-Π·Π° этого ограничСния:

 >>> функция def (a):
...     ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ
...
>>> функция (0, a = 0)
ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (послСдний Π²Ρ‹Π·ΠΎΠ² послСдний):
  Π€Π°ΠΉΠ» "", строка 1, Π² 
TypeError: функция () ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° 'a'
 

Когда присутствуСт послСдний Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ„ΠΎΡ€ΠΌΡ‹ ** имя , ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ (см. Π’ΠΈΠΏΡ‹ сопоставлСния - dict), содСрТащий всС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов, ΠΊΡ€ΠΎΠΌΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ.Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ„ΠΎΡ€ΠΌΡ‹ * имя (описан Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ, содСрТащий ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ списка Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². ( * имя Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ ** имя .) НапримСр, Ссли ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Ρ‚Π°ΠΊΡƒΡŽ β€‹β€‹Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

 def cheeseshop (Π²ΠΈΠ΄, * Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ** ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова):
    print ("- Π•ΡΡ‚ΡŒ Π»ΠΈ Ρƒ вас", Π΄ΠΎΠ±Ρ€Ρ‹ΠΉ, "?")
    print ("- Π˜Π·Π²ΠΈΠ½ΠΈΡ‚Π΅, нас всСх Π½Π΅Ρ‚", любСзно)
    для Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ…:
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚)
    print ("-" * 40)
    для ΠΊΠ’Ρ‚ Π² ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… словах:
        print (ΠΊΠ²Ρ‚, ":", ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова [ΠΊΠ²Ρ‚])
 

Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

 сырный ΠΌΠ°Π³Π°Π·ΠΈΠ½ (Β«Π›ΠΈΠΌΠ±ΡƒΡ€Π³Π΅Ρ€Β», Β«ΠžΡ‡Π΅Π½ΡŒ ΠΆΠΈΠ΄ΠΊΠΈΠΉ, сэр.",
           "Π­Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ, ΠžΠ§Π•ΠΠ¬ ΠΆΠΈΠ΄ΠΊΠΈΠΉ, сэр.",
           shopkeeper = "Майкл Пэйлин",
           client = "Π”ΠΆΠΎΠ½ Клиз",
           sketch = "Эскиз сырной Π»Π°Π²ΠΊΠΈ")
 

ΠΈ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚:

 - Π£ вас Π΅ΡΡ‚ΡŒ Π»ΠΈΠΌΠ±ΡƒΡ€Π³Π΅Ρ€?
- Π˜Π·Π²ΠΈΠ½ΠΈΡ‚Π΅, Ρƒ нас всС ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈΡΡŒ ΠΈΠ· Π›ΠΈΠΌΠ±ΡƒΡ€Π³Π΅Ρ€Π°
Он ΠΎΡ‡Π΅Π½ΡŒ ΠΆΠΈΠ΄ΠΊΠΈΠΉ, сэр.
Он Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ, ΠžΠ§Π•ΠΠ¬ ΠΆΠΈΠ΄ΠΊΠΈΠΉ, сэр.
----------------------------------------
Π²Π»Π°Π΄Π΅Π»Π΅Ρ† ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°: Майкл Пэйлин
ΠΊΠ»ΠΈΠ΅Π½Ρ‚: Π”ΠΆΠΎΠ½ Клиз
эскиз: Эскиз сырной Π»Π°Π²ΠΊΠΈ
 

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ порядок, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‚ΡΡ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ порядку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ прСдоставлСны ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

4.7.3. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Python Π»ΠΈΠ±ΠΎ ΠΏΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈΠ»ΠΈ явно ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌΡƒ слову. Для удобочитаСмости ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ способ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π»ΠΈ элСмСнты ΠΏΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, позиция ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово, ΠΈΠ»ΠΈ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌΡƒ слову.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

 def f (pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):
      ----------- ---------- ----------
        | | |
        | ΠŸΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово |
        | - Волько ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово
         - Волько ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅
 

, Π³Π΄Π΅ / ΠΈ * Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹.Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, эти символы ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° Π²ΠΈΠ΄ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅, ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

4.7.3.1. АргумСнты ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова

Если / ΠΈ * Π½Π΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌΡƒ слову.

4.7.3.2. Волько ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

Рассматривая это Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ .Если Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ , порядок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌΡƒ слову. Волько ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ помСщаСтся ΠΏΠ΅Ρ€Π΅Π΄ / (косая Ρ‡Π΅Ρ€Ρ‚Π°). / ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для логичСского ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Если Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅Ρ‚ /, Π½Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π° /, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом ΠΈΠ»ΠΈ с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом .

4.7.3.3. АргумСнты Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова , указывая, Ρ‡Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ ΠΏΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρƒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова помСститС * Π² список Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€.

4.7.3.4. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, удСляя ΠΏΡ€ΠΈΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ / ΠΈ * :

 >>> def стандартный_Π°Ρ€Π³ (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚):
... ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚)
...
>>> def pos_only_arg (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, /):
... ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚)
...
>>> def kwd_only_arg (*, arg):
... ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚)
...
>>> def ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ_ΠΏΡ€ΠΈΠΌΠ΅Ρ€ (pos_only, /, standard, *, kwd_only):
... print (pos_only, standard, kwd_only)
 

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, standard_arg , Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ знакомая Ρ„ΠΎΡ€ΠΌΠ°, Π½Π΅ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° соглашСниС ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°Ρ…, ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ пСрСдаСтся ΠΏΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌΡƒ слову:

 >>> стандартный_Π°Ρ€Π³Π³Π΅Ρ‚ (2)
2

>>> стандартный_Π°Ρ€Π³ (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ = 2)
2
 

Вторая функция pos_only_arg ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ /:

 >>> pos_only_arg (1)
1

>>> pos_only_arg (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ = 1)
ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (послСдний Π²Ρ‹Π·ΠΎΠ² послСдний):
  Π€Π°ΠΉΠ» "", строка 1, Π² 
TypeError: pos_only_arg () ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова: 'arg'
 

Π’Ρ€Π΅Ρ‚ΡŒΡ функция kwd_only_args Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π½Π° * Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

 >>> kwd_only_arg (3)
ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (послСдний Π²Ρ‹Π·ΠΎΠ² послСдний):
  Π€Π°ΠΉΠ» "", строка 1, Π² 
TypeError: kwd_only_arg () ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ 0 ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π½ΠΎ Π΄Π°Π½ 1

>>> kwd_only_arg (arg = 3)
3
 

И послСдний ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ всС Ρ‚Ρ€ΠΈ соглашСния ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°Ρ… Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅:

 >>> ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ_ΠΏΡ€ΠΈΠΌΠ΅Ρ€ (1, 2, 3)
ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (послСдний Π²Ρ‹Π·ΠΎΠ² послСдний):
  Π€Π°ΠΉΠ» "", строка 1, Π² 
TypeError: Combined_example () ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ 2 ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Π½ΠΎ Π±Ρ‹Π»ΠΎ Π΄Π°Π½ΠΎ 3

>>> ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ_ΠΏΡ€ΠΈΠΌΠ΅Ρ€ (1, 2, kwd_only = 3)
1 2 3

>>> ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ_ΠΏΡ€ΠΈΠΌΠ΅Ρ€ (1, стандартный = 2, kwd_only = 3)
1 2 3

>>> ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ_ΠΏΡ€ΠΈΠΌΠ΅Ρ€ (pos_only = 1, standard = 2, kwd_only = 3)
ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (послСдний Π²Ρ‹Π·ΠΎΠ² послСдний):
  Π€Π°ΠΉΠ» "", строка 1, Π² 
TypeError: Combined_example () ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова: 'pos_only'
 

НаконСц, рассмотрим это ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ коллизию ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ name ΠΈ ** kwds , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ name Π² качСствС ΠΊΠ»ΡŽΡ‡Π°:

 def foo (имя, ** kwds):
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ 'name' Π² kwds
 

НСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ заставил Π±Ρ‹ Π΅Π³ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ True Π² качСствС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова 'name' всСгда Π±ΡƒΠ΄Π΅Ρ‚ привязан ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ.НапримСр:

 >>> foo (1, ** {'имя': 2})
ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (послСдний Π²Ρ‹Π·ΠΎΠ² послСдний):
  Π€Π°ΠΉΠ» "", строка 1, Π² 
TypeError: foo () ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° 'name'
>>>
 

Но ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ / (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹), это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΎ позволяСт name Π² качСствС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ Β«nameΒ» Π² качСствС ΠΊΠ»ΡŽΡ‡Π° Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова:

 def foo (имя, /, ** kwds):
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ 'name' Π² kwds
>>> foo (1, ** {'имя': 2})
ΠŸΡ€Π°Π²Π΄Π°
 

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΈΠΌΠ΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ** kwds Π±Π΅Π· двусмыслСнности.

4.7.3.5. РСзюмС

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ использования ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

 def f (pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):
 

Π’ качСствС руководства:

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ имя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»ΠΎΡΡŒ доступны ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΈΠΌΠ΅Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ соблюдСниС порядка Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΠ³Π΄Π° функция вызываСтся ΠΈΠ»ΠΈ Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова.

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, Ссли ΠΈΠΌΠ΅Π½Π° ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ понятным, Ссли ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ явныС ΠΈΠΌΠ΅Π½Π°, ΠΈΠ»ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

  • Для API ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ API Ссли имя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

4.7.4. Бписки ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

НаконСц, Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ - ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ функция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ вызываСтся с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ количСством Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².Π­Ρ‚ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Ρ‹ Π²Π²Π΅Ρ€Ρ… Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆ (см. ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ). ΠŸΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ количСством Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ ноль ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

 def write_multiple_items (Ρ„Π°ΠΉΠ», Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ, * Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹):
    file.write (separator.join (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹))
 

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ эти Π²Π°Ρ€ΠΈΠ°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ послСдними Π² спискС Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ всС ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ пСрСдаСтся Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Π›ΡŽΠ±Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ послС * args ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, содСрТащими Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова, Π° Π½Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹.

 >>> def concat (* args, sep = "/"):
... Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ sep.join (args)
...
>>> concat («зСмля», «марс», Β«Π²Π΅Π½Π΅Ρ€Π°Β»)
'зСмля / марс / Π²Π΅Π½Π΅Ρ€Π°'
>>> concat ("зСмля", "марс", "Π²Π΅Π½Π΅Ρ€Π°", sep = ".")
'earth.mars.venus'
 

4.7.5. Распаковка списков Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ ситуация Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΡƒΠΆΠ΅ находятся Π² спискС ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅. Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ для Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅ΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹. НапримСр, встроСнная функция range () ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΈ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².Если ΠΎΠ½ΠΈ Π½Π΅ доступны ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ * для распаковки Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ· списка ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ:

 >>> list (range (3, 6)) # Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ
[3, 4, 5]
>>> args = [3, 6]
>>> list (range (* args)) # Π²Ρ‹Π·ΠΎΠ² с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, распакованными ΠΈΠ· списка
[3, 4, 5]
 

Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ словари ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов с ** -ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€:

 >>> def parrot (Voltage, state = 'a stiff', action = 'voom'):
... print ("- Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠΏΡƒΠ³Π°ΠΉ Π½Π΅ стал Π±Ρ‹", action, end = '')
... print ("Ссли ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ", напряТСниС, "Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π³ΠΎ Π²ΠΎΠ»ΡŒΡ‚.", end = '')
... print ("E", состояниС "!")
...
>>> d = {"Voltage": "Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°", "state": "bleedin 'demised", "action": "VOOM"}
>>> ΠΏΠΎΠΏΡƒΠ³Π°ΠΉ (** d)
- Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠΏΡƒΠ³Π°ΠΉ Π½Π΅ Π·Π°Π³ΡƒΠ΄ΠΈΡ‚, Ссли Π²Ρ‹ пропуститС Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π³ΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° Π²ΠΎΠ»ΡŒΡ‚. E's bleedin 'кончился!
 

4.7.6. Лямбда-выраТСния

НСбольшиС Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова lambda .Π­Ρ‚Π° функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ сумму Π΄Π²ΡƒΡ… своих Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²: лямбда a, b: a + b . Лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Они Π΅ΡΡ‚ΡŒ синтаксичСски ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ ΠΎΠ΄Π½ΠΈΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. БСмантичСски ΠΎΠ½ΠΈ просто синтаксичСский сахар для опрСдСлСния Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Как влоТСнная функция опрСдСлСния, лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· содСрТащих объСм:

 >>> def make_incrementor (n):
... Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ лямбда x: x + n
...
>>> f = make_incrementor (42)
>>> f (0)
42
>>> f (1)
43 Π³ΠΎΠ΄
 

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ лямбда-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.Π”Ρ€ΡƒΠ³ΠΎΠ΅ использованиС - ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

 >>> ΠΏΠ°Ρ€Ρ‹ = [(1, 'ΠΎΠ΄ΠΈΠ½'), (2, 'Π΄Π²Π°'), (3, 'Ρ‚Ρ€ΠΈ'), (4, 'Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅')]
>>> pair.sort (ΠΊΠ»ΡŽΡ‡ = лямбда-ΠΏΠ°Ρ€Π°: ΠΏΠ°Ρ€Π° [1])
>>> ΠΏΠ°Ρ€Ρ‹
[(4, 'Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅'), (1, 'ΠΎΠ΄ΠΈΠ½'), (3, 'Ρ‚Ρ€ΠΈ'), (2, 'Π΄Π²Π°')]
 

4.7.7. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ

Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ соглашСния ΠΎ содСрТании ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. струны.

ΠŸΠ΅Ρ€Π²Π°Ρ строка всСгда Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ описаниСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ†Π΅Π»ΡŒ.Для краткости Π² Π½Π΅ΠΌ Π½Π΅ слСдуСт явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ имя ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ доступны Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ способами (ΠΊΡ€ΠΎΠΌΠ΅ случаСв, ΠΊΠΎΠ³Π΄Π° имя оказываСтся Π³Π»Π°Π³ΠΎΠ», ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ). Π­Ρ‚Π° строка Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹. Π±ΡƒΠΊΠ²Π° ΠΈ заканчиваСтся Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ.

Если Π² строкС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ большС строк, вторая строка Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ пустой, Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ отдСляя Ρ€Π΅Π·ΡŽΠΌΠ΅ ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ описания. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ нСсколькими Π°Π±Π·Π°Ρ†Π°ΠΌΠΈ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ Π²Ρ‹Π·ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° условности, Π΅Π³ΠΎ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты ΠΈ Ρ‚. Π΄.

БинтаксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Python Π½Π΅ удаляСт отступы ΠΈΠ· многострочных строковых Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² Π² Python, поэтому инструмСнты, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ отступы, Ссли ΠΆΠ΅Π»Π°Π½Π½Ρ‹ΠΉ. Π­Ρ‚ΠΎ дСлаСтся ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ соглашСнию. ΠŸΠ΅Ρ€Π²Π°Ρ нСпустая строка послС пСрвая строка строки опрСдСляСт Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ отступа для вся строка Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. (ΠœΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ рядом с ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ строки, поэтому отступ Π½Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Π² строковом Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π΅.) ΠŸΡ€ΠΎΠ±Π΅Π», «эквивалСнтный» этому отступу: Π·Π°Ρ‚Π΅ΠΌ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ с Π½Π°Ρ‡Π°Π»Π° всСх строк строки. Π›ΠΈΠ½ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ с мСньшим отступом Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ, Π½ΠΎ Ссли ΠΎΠ½ΠΈ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ, всС ΠΈΡ… Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ слСдуСт Ρ€Π°Π·Π΄Π΅Ρ‚ΡŒ. Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² слСдуСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ послС раскрытия. Π²ΠΊΠ»Π°Π΄ΠΎΠΊ (Π΄ΠΎ 8 ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ).

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ многострочной строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ:

 >>> def my_function ():
... "" "НичСго Π½Π΅ Π΄Π΅Π»Π°ΠΉΡ‚Π΅, Π½ΠΎ Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅.
...
... НСт, ΠΏΡ€Π°Π²Π΄Π°, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚.... "" "
...     ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ
...
>>> print (my_function .__ doc__)
НичСго Π½Π΅ Π΄Π΅Π»Π°ΠΉΡ‚Π΅, Π½ΠΎ Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅.

    НСт, ΠΏΡ€Π°Π²Π΄Π°, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚.
 

4.7.8. Аннотации Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Аннотации Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ - это ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ информация ΠΎ Ρ‚ΠΈΠΏΠ°Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… опрСдСляСмыми ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ функциями (см. PEP 3107 ΠΈ PEP 484 для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ).

Аннотации хранятся Π² __annotations__ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°ΠΊ словаря ΠΈ Π½Π΅ влияСт Π½ΠΈ Π½Π° ΠΊΠ°ΠΊΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ части функция.Аннотации ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ послС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ. Π’ΠΎΠ·Π²Ρ€Π°Ρ‚Π½Ρ‹Π΅ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ опрСдСляСтся Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ -> , Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ list ΠΈ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π΅Π΅ ΠΊΠΎΠ½Π΅Ρ† ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° def . Π’ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΅ΡΡ‚ΡŒ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

 >>> def f (Π²Π΅Ρ‚Ρ‡ΠΈΠ½Π°: str, яйца: str = 'яйца') -> str:
... print ("Аннотации:", f .__ annotations__)
... print ("АргумСнты:", Π²Π΅Ρ‚Ρ‡ΠΈΠ½Π°, яйца)
... Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π²Π΅Ρ‚Ρ‡ΠΈΠ½Ρƒ + 'ΠΈ' + яйца
...
>>> f ('спам')
Аннотации: {'Π²Π΅Ρ‚Ρ‡ΠΈΠ½Π°': <класс 'str'>, 'return': <класс 'str'>, 'яйца': <класс 'str'>}
АргумСнты: спам-яйца
"спам ΠΈ яйца"
 

4.8. Π˜Π½Ρ‚Π΅Ρ€ΠΌΠ΅Ρ†Ρ†ΠΎ: ΡΡ‚ΠΈΠ»ΡŒ кодирования

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΈ слоТныС части Python, это Π₯ΠΎΡ€ΠΎΡˆΠ΅Π΅ врСмя ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ стилС кодирования . На Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ языков ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ (ΠΈΠ»ΠΈ большС Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΉ, ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ) Π² Ρ€Π°Π·Π½Ρ‹Ρ… стилях; Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹, Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.ВсСгда ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ вашСго ΠΊΠΎΠ΄Π° для Π΄Ρ€ΡƒΠ³ΠΈΡ…. Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΡΡ‚ΠΈΠ»ΡŒ кодирования ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π² этом.

Для Python PEP 8 стал руководством ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ придСрТиваСтся Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²; ΠΎΠ½ способствуСт ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌΡƒ ΠΈ приятному для Π³Π»Π°Π· ΡΡ‚ΠΈΠ»ΡŽ кодирования. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Python Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ это Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚; Π²ΠΎΡ‚ самыС Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΎ для вас:

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ отступ ΠΈΠ· 4 ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π±Π΅Π· табуляции.

    4 ΠΏΡ€ΠΎΠ±Π΅Π»Π° - Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ компромисс ΠΌΠ΅ΠΆΠ΄Ρƒ малСньким отступом (позволяСт ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π³Π»ΡƒΠ±ΠΈΠ½Π° влоТСнности) ΠΈ большой отступ (Π»Π΅Π³Ρ‡Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ).Π’ΠΊΠ»Π°Π΄ΠΊΠΈ вводят ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π°, ΠΈ ΠΈΡ… Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ.

  • ΠŸΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ строки Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π»ΠΈ 79 символов.

    Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ с нСбольшими дисплСями ΠΈ позволяСт ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ΄Π° Π±ΠΎΠΊ ΠΎ Π±ΠΎΠΊ Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… дисплСях.

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ пустыС строки для раздСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ классов, Π° Ρ‚Π°ΠΊΠΆΠ΅ большиС Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

  • По возмоТности ΠΏΠΎΠΌΠ΅Ρ‰Π°ΠΉΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС.

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ послС запятых, Π½ΠΎ Π½Π΅ нСпосрСдствСнно Π²Π½ΡƒΡ‚Ρ€ΠΈ конструкции Π² скобках: a = f (1, 2) + g (3, 4) .

  • НазывайтС классы ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ; соглашСниС Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² использовании UpperCamelCase для классов ΠΈ lowercase_with_underscores для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ self Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° (Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ классах ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ взгляд Π½Π° классы»).

  • НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΈΡ‡ΡƒΠ΄Π»ΠΈΠ²Ρ‹Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, Ссли ваш ΠΊΠΎΠ΄ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования Π² ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹Ρ… срСды. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ Python, UTF-8 ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ простой ASCII Π»ΡƒΡ‡ΡˆΠ΅ всСго Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² любом кСйс.

  • Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ символы, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΡ‚ ASCII, Π² ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°Ρ…, Ссли Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ малСйший шанс, Ρ‡Ρ‚ΠΎ люди, говорящиС Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ языкС, Π±ΡƒΠ΄ΡƒΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄.

Бноски

Python для Ρ†ΠΈΠΊΠ»Π°: ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство

Π¦ΠΈΠΊΠ» for Π² Python выполняСт ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, ΠΏΠΎΠΊΠ° этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½.НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ содСрТимоС списка ΠΈΠ»ΠΈ строки. Π’ Ρ†ΠΈΠΊΠ»Π΅ for ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ синтаксис: для элСмСнта Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅, Π³Π΄Π΅ Β«ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Β» - это итСрация, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ.

НайдитС свой ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ Π»Π°Π³Π΅Ρ€ΡŒ Match