TRANSCRIPTRussian

Уроки Python с нуля / #6 – Циклы и операторы в них (for, while)

15m 51s2,955 words440 segmentsRussian

FULL TRANSCRIPT

0:00

Привет В ходе этого урока мы с вами

0:01

научимся работать с циклами а также с

0:03

операторами циклов в языке Python а

0:06

перед началом Я бы хотел порекомендовать

0:08

сайт itproger.com на этом сайте вы

0:10

найдёте код домашние задания и много

0:12

другой полезной информации ссылка на

0:14

этот урок на сайте будет в описании к

0:15

этому видео для начала Давайте

0:17

определимся с тем что такое циклы циклы

0:20

- это специальные конструкции что

0:21

позволяют выполнять код несколько раз

0:24

подряд причём количество выполнений мы

0:26

можем указать самостоятельно в языке

0:28

Python существует два формата циклов это

0:30

цикл for а также цикл while эти циклы мы

0:33

как раз с вами сейчас и изучим для

0:36

начала Давайте познакомимся с таким

0:37

циклом как for для его записани мы

0:40

должны прописать ключевое слово for А

0:42

дальше мы должны создать некую

0:43

переменную эту переменную можете назвать

0:46

как угодно Ну допустим давайте я её

0:48

просто назову как I эта же переменная

0:50

она будет использоваться внутри цикла

0:52

далее мы с Вами просто указываем

0:54

диапазон для указания диапазона можно

0:56

использовать такой метод который есть в

0:58

языке Python он называется Range здесь

1:01

мы допустим скажем что диапазон у нас

1:03

пускай будет до шести чисел Ну и далее Я

1:06

просто хочу внутри самого этого цикла

1:08

что-либо делать поначалу мы Давайте

1:10

здесь просто будем каждый раз выводить

1:11

Вот эту вот нашу переменную если на

1:14

данный момент всё это запустить то в

1:16

таком случае мы заметим что каждый раз у

1:18

нас будет выводиться значение самой этой

1:20

переменной причём Вы можете заметить что

1:22

изначально значение переменной оно у нас

1:25

идёт от нуля и далее оно идёт вплоть до

1:29

пяти То бишь У нас вот это вот число оно

1:31

не учитывается и соответственно отсчёт

1:33

ведётся с нуля до вот этого числа не

1:36

включительно Кроме того всё что вы

1:39

будете записывать внутри цикла оно здесь

1:41

также должно выделяться Вот такими Вот

1:42

отступами точно здесь такая же концепция

1:45

как и в условных операторах То есть если

1:47

вам нужно прописать несколько строчек

1:49

кода то соответственно каждую строчку

1:51

кода вы отделяется определённым

1:52

количеством отступов Это количество

1:55

отступов должно быть одинаковым помимо

1:57

того что мы можем просто вот указать ЦИК

2:00

который будет идти У нас от нуля до

2:01

определённого числа не включительно Мы

2:03

также можем сказать что у нас пускай

2:06

будет наш цикл идти например от числа

2:09

один и дальше например до шести не

2:11

включительно в таком случае мы замечаем

2:13

что видите ноль у нас уже пропал у нас

2:15

было пять итераций и соответственно за

2:18

пять этих итераций у нас были выведены

2:19

такие числа как 1 2 3 4 ну и

2:22

соответственно 5 в эту же функцию Вы

2:24

можете передать и третий параметр и в

2:27

третьем параметре вы указываете

2:29

насколько мы будем увеличивать саму нашу

2:31

переменную по умолчанию эта переменная

2:33

она увеличивается на единицу Ну и у нас

2:35

получается вывод 1 2 3 4 и так далее но

2:38

также если мы укажем допустим Число два

2:40

то в таком случае у нас изначально будет

2:42

идти один потом у нас число будет три

2:44

потом число пять Ну и дальше Всё дальше

2:46

уже ничего у нас выводиться не будет

2:48

таким образом для создания цикла мы

2:50

можем использовать функцию Range а также

2:53

сам цикл for и здесь мы можем указать

2:55

во-первых начальное значение во-вторых

2:57

конечное значение а также можем указать

3:00

определённый шаг если нам подходит чтобы

3:03

значение начиналось от нуля то

3:05

соответственно просто можем использовать

3:06

лишь один параметр например указать

3:08

какое-то конечное значение Ну и в целом

3:10

вот у нас и будет нужный нам цикл через

3:13

цикл фр Мы также можем перебирать

3:14

определённые строки Дело в том что любая

3:17

строка - это список что состоит из

3:19

множества символов и соответственно

3:21

каждый символ мы можем как раз и

3:23

перебрать Для начала я Давайте создам

3:26

некую строку Пускай здесь будет написано

3:28

Hello world что-то в этом духе и далее

3:30

мы создаём цикл цикл создаём точно так

3:33

же само вот только уже вместо функции

3:35

Range здесь Я указываю нашу вот эту Вот

3:37

переменную которую мы и будем перебирать

3:39

также по необходимости Вы можете сюда не

3:41

указывать переменную а просто здесь

3:43

Можете создавать некую строку и эту же

3:45

строку вы как раз и будете перебирать Ну

3:47

я Давайте лучше укажу всё-таки

3:48

переменную если я здесь внутри цикла

3:50

просто укажу вывод Ну вот этой нашей

3:53

переменной I то в таком случае мы

3:55

получим с вами следующий результат у нас

3:57

каждый раз будет выводиться как бы один

3:59

определённый символ из этой строки Ну и

4:02

получается что каждый символ из этой

4:04

строки он здесь как раз и был выведен

4:06

даже Даже тот же самый пробел он тоже

4:08

здесь был выведен Ну и с каждым из

4:11

символов мы можем на самом-то деле

4:12

работать как нам только вздумается

4:14

допустим я могу умножить каждый символ

4:16

на три и в таком случае мы получаем то

4:18

что у нас видите каждый символ вводится

4:20

по три раза Но это всё не особо

4:22

практично мы Давайте лучше с вами

4:24

разработаем небольшую программку и в

4:26

этой программ Я хочу делать то что я

4:28

буду осуществлять поиск определённого

4:30

символа в строке как такое можно сделать

4:33

мы вот прямиком здесь в цикле

4:35

прописываем с вами определённое условие

4:37

и в этом условии мы скажем то что если у

4:39

нас сама вот эта вот переменная она

4:42

будет равна такому символу как

4:43

восклицательный знак предположим Что

4:45

именно такой символ Я хочу как раз

4:47

искать в строке так вот если у нас

4:49

какая-либо какой-либо символ будет равен

4:52

вот этому восклицательного знаку то в

4:54

таком случае мы с вами будем говорить о

4:56

том что Yes Ну просто допустим будем

4:58

выводить слово Yes и будем понимать то

5:00

что действительно такой символ он был

5:03

найден давайте мы ещё раз запустим

5:05

программку и вот мы замечаем что ничего

5:07

У нас не было выведено на экран тем

5:09

самым мы понимаем что такого символа

5:11

попросту нету в строке в то же время

5:13

если я добавлю Этот символ в строку то

5:15

мы замечаем что вот у нас вводится Yes и

5:17

всё я теперь понимаю что в этой строке у

5:19

меня точно есть вот этот вот символ

5:21

Также можно было бы ну как бы искать

5:24

какой-либо другой символ Допустим мы

5:26

будем искать такую букво как L и и в

5:29

нашем случае здесь Аж три раза у нас

5:31

выводится е по той причине что здесь

5:33

действительно Аж три таких есть символа

5:36

Ну и конечно же это можно не просто всё

5:38

выводить потому что э ну это не особо

5:40

интересно мы Давайте лучше с вами будем

5:42

делать Вот что мы создадим здесь некую

5:44

переменную она пускай будет у меня

5:46

называться как coun она будет идти со

5:47

значением ноль и каждый раз когда мы

5:49

будем находить определённую Когда будем

5:52

находить определённый символ мы эту

5:54

переменную будем увеличивать на единицу

5:56

и после того как цикл уже закончится мы

5:58

буде просто будем будем выводить

6:00

количество элементов здесь давайте мы

6:02

так и напишем что Count и будем выводить

6:04

нашу Вот эту вот переменную Count если

6:06

такое запустить то вот мы замечаем что у

6:08

нас как бы количество вот этих вот

6:10

символов равно числу три да то есть три

6:12

Вот таких вот символа было найдено если

6:14

я попробую найти какой-то другой символ

6:16

то вот у нас например букво W её здесь

6:19

ноль как бы символов Почему кстати букво

6:22

W не была найдена потому что мы ищем на

6:25

такую букво в Нижнем регистре А здесь

6:27

она находится в верхнем регистре для

6:29

питона - это как две разные буквы как

6:31

два разных символа поэтому у нас не было

6:33

найдено ни одного подобного символа в

6:35

самой этой строке помимо цикла for в

6:38

языке Python существует ещё такой цикл

6:40

как while суть этого цикла заключается в

6:42

том что он также позволяет нам выполнять

6:44

определённый код несколько раз подряд и

6:46

количество выполнений мы можем

6:48

определить самостоятельно разница между

6:50

циклом for и циклом while заключается

6:52

лишь в формате записи если мы говорим

6:55

про цикл for то там мы всегда используем

6:57

вот это вот ключевое слово in и как мы

6:59

говорим что конкретно мы с вами

7:01

перебираем Либо мы указываем диапазон

7:03

Либо мы просто с вами перебираем

7:04

определённую там строку или в будущем мы

7:06

ещё будем перебирать определённые списки

7:09

если мы говорим про цикл while то в

7:11

цикле while мы можем просто указать

7:12

определённое условие Давайте Вот мы

7:14

сейчас с вами создадим простой как бы

7:17

пример этого цикла а чуть позже ещё

7:18

создадим с условием вот к примеру Я

7:20

создаю некую переменную Пускай это будет

7:22

I у неё изначально будет значение как

7:24

пять Ну предположим Пускай такое будет

7:26

значение далее мы создаём сам этот цикл

7:28

мы прописываем ключевое слово while и

7:31

здесь мы должны просто указать лишь одно

7:33

определённое условие мы как бы говорим о

7:36

том что весь наш цикл он будет длиться

7:39

до тех пор пока у нас I будет меньше чем

7:42

значение 15 здесь же в цикле Я просто

7:45

говорю что конкретно мы будем делать

7:47

предположим Я просто эту переменную буду

7:48

выводить на экран а также я хочу сказать

7:51

то что мы к этой же переменной будем

7:53

добавлять каждый раз например Число два

7:56

Ну можно один добавлять конечно Ну я

7:57

допустим вот два хочу добавлять если

7:59

такое сейчас запущу то мы замечаем вот

8:01

что изначально у нас значение переменной

8:03

было пять это значение как раз здесь и

8:05

было выведено Потом мы переменную

8:07

увеличили на два и как бы опять-таки

8:09

вернулись к циклу опять это Значение

8:11

было выведено Итак у нас было выведено

8:13

ещё 9 11 и 13 15 уже не было выведено по

8:16

той причине что у нас оно как бы не

8:18

подпадает под условия я могу немного

8:20

изменить условия сказать что до тех пор

8:22

пока I будет меньше или равно значению

8:25

15 у нас будет выполняться цикл и если я

8:27

такое сейчас запущу то видите 15 тоже

8:29

будет выводиться на экран по той причине

8:31

что теперь условие позволяет это сделать

8:34

Ну и циклы while они именно удобны тем

8:37

что здесь можно просто прописать условие

8:39

и пока это условие будет верным пока оно

8:42

будет истинным то у нас и цикл будет

8:44

работать вот предположим я могу создать

8:46

здесь некую переменную из has Car Пускай

8:49

она будет называться и дам ей значение

8:51

True и по сути я могу просто указать Вот

8:53

эту вот переменную и до тех пор пока эта

8:55

переменная будет идти со значением True

8:57

до тех пор у нас и будет выполняться сам

8:59

этот код конкретно такой цикл я не

9:01

Рекомендую вам запускать потому что он

9:03

будет бесконечным циклом Ну и это может

9:08

немножко поломать так сказать Ваш

9:09

компьютер потому что он просто зависнет

9:10

данный цикл яв является бесконечным по

9:13

причине того что у нас вот это вот

9:16

условие Оно всегда будет верным Мы

9:18

никогда с вами не указываем для этой

9:19

переменной другого значения А по этой

9:22

причине у нас этот цикл он всегда будет

9:23

верным Ну это называется как раз как

9:25

бесконечный цикл поэтому такое Я не

9:27

Рекомендую вам запускать а в то же время

9:30

мы Давайте с вами сделаем нечто другое

9:32

Мы всё-таки попытаемся реализовать этот

9:33

цикл только как-то в более верном

9:35

формате мы Давайте с вами Вот здесь

9:38

будем получать от пользователя некую

9:40

информацию и эту информацию Мы можем

9:42

сразу же и проверять Если он напишет

9:45

такое ключевое слово Как стоп то в таком

9:47

случае мы будем обращаться к вот этой

9:49

вот переменной из HC и будем

9:51

устанавливать ей значение как false вот

9:53

таким вот образом Теперь давайте мы это

9:55

запустим вот у нас как бы идёт ожидание

9:58

ввода е если я веду здесь что угодно но

10:01

не слово стоп то в таком случае мы

10:02

опять-таки будем ждать от пользователя

10:04

информацию Давайте единственное здесь

10:06

буду вводить ну здесь вернее выведу

10:09

информацию некую Да потому что непонятно

10:10

что вообще делать нужно Давайте здесь

10:12

будет написано Enter Data что-то в этом

10:14

духе и мы ещё раз это запустим вот

10:17

теперь как-то там более Понятно Мы здесь

10:19

можем ввести какие-либо данные потом

10:21

опять-таки мы можем ещё раз вести эти

10:23

данные и так будет до тех пор пока я не

10:25

веду ключевое слово стоп как только вёл

10:26

ключевое слово стоп Всё у нас это

10:29

переменная она стала со значением fse мы

10:31

вышли из этого цикла таким образом цикл

10:33

while удобно использовать Когда нам

10:35

нужно просто прописать условие и дальше

10:37

выполнять определённый цикл цикл for

10:39

удобно использовать в те моменты когда

10:41

нам нужно что-то перебрать Когда нам

10:42

нужно создать либо какой-то диапазон

10:44

либо нужно что-то перебрать будь то это

10:46

строка или же список списки будем чуть

10:49

позже изучать с вами также мы Давайте

10:51

изучим несколько операторов что можно

10:53

использовать в циклах мы эти операторы

10:55

сейчас будем изучать в цикле форм но

10:57

также их можно будет в дальнейшем

10:58

использовать в цикле while мы просто

11:00

изучим их конкретно на цикле for для

11:03

начала Давайте создадим некий цикл этот

11:06

цикл он у нас будет идти в определённом

11:08

диапазоне пускай от нуля до допустим

11:11

десяти Не включительно но лучше наверное

11:13

до одиннадцати и здесь каждый раз я

11:15

просто буду выводить само значение вот

11:18

этой вот нашей переменной если такое

11:20

запустить мы получаем вполне ожидаемый

11:22

результат от нуля У нас идёт до 10 не

11:24

включительно Возможно даже Давайте

11:26

скажем что от единицы до дети

11:28

включительно вернее будет выводиться у

11:30

нас теперь давайте рассмотрим Такой

11:31

оператор как Брей за счёт этого

11:33

оператора мы можем просто выходить из

11:36

цикла вот предположим что я хочу выйти

11:38

из цикла как только мы дойдём до числа

11:40

пять Ну вот у меня есть такая вот идея

11:43

для этого я прописываю здесь одно

11:44

небольшое условие в этом условии я

11:46

говорю что если у нас I будет ну либо

11:49

равно пяти либо можем указать что оно

11:51

там будет например больше либо равно

11:52

пяти Ну мы можем тут любое условие уже

11:55

указать так вот если я просто указываю

11:57

что у нас I будет например Давайте равно

11:59

ти то в таком случае мы будем

12:00

использовать Такой оператор как Брей

12:03

Брей он просто берёт и выходит из цикла

12:06

если такое запустить то мы заметим с

12:08

вами следующее у нас будет выведено 1 2

12:10

3 4 А вот пятёрка она уже не была

12:12

выведена потому что мы как бы проверили

12:14

с вами определённое условие у нас э

12:17

получилось что вот сейчас текущий

12:18

элемент - это пятёрка и мы полностью

12:20

вышли из этого цикла Всё дальше у нас

12:22

код не обрабатывал то есть брейк Он

12:25

выходит из цикла помимо брейк существует

12:27

ещё Такой оператор как contin в отличие

12:30

от Break он не выходит из цикла а он

12:32

просто пропускает одну определённую

12:34

итерацию и Давайте вот мы его тоже здесь

12:37

с вами пропишет предположим что я хочу

12:39

сделать Я хочу проверить следующее что

12:42

если при делении на два у нас число у

12:45

нас остаток будет равен нулю то в таком

12:47

случае я буду использовать Такой

12:48

оператор как continue если я сейчас

12:50

такое запущу у нас будут выведены

12:52

исключительно нечётные числа и так

12:55

произошло по той причине что когда мы с

12:56

вами находим чётное число а находим мы

12:59

его за счёт вот этой вот конструкции как

13:01

только мы находим чётное число мы с вами

13:04

пропускаем эту итерацию то есть брейк он

13:06

бы полностью вышел из цикла а continue

13:09

он просто пропустил эту итерацию То есть

13:11

как только мы попали на continue у нас

13:12

весь дальнейший код не обработал се а

13:14

как бы с cont мы обратно перешли сюда и

13:16

пошла следующая итерация по этой причине

13:19

у меня здесь были выведены только один и

13:21

три Все чётные числа они не были

13:23

выведены Ну и напоследок мы Давайте

13:25

разработаем одну небольшую программу для

13:27

нахождения символа в определён строке мы

13:30

такую программу уже делали но сейчас

13:31

давайте сделаем её правильно для начала

13:34

создаём некий цикл и перебираем такую

13:36

строку как например Hello дальше здесь

13:38

мы прописываем условие если мы найдём

13:40

такой символ как L то в таком случае в

13:43

переменную found мы будем устанавливать

13:44

значение как True Если же мы не найдём

13:48

такой символ то в таю то в таком случае

13:50

я хочу в эту же переменную устанавливать

13:52

значение например как false Также можно

13:55

было бы создать эту переменную давайте

13:56

мы её вверху лучше всё-таки создадим и

13:59

началу не хочу я туда добавлять ни

14:01

значение True ни значение fse и чтобы

14:03

мне просто создать переменную и ничего в

14:05

неё не добавлять можно указать значение

14:07

NAN NAN - это как бы значение ничего да

14:10

то есть мы как бы в переменную ничего не

14:12

устанавливаем а чуть позже мы в эту

14:13

переменную как раз и что-то будем

14:15

устанавливать Ну и здесь мы Давайте

14:17

просто в конце-то концов просто будем

14:19

выводить саму эту переменную и посмотрим

14:22

что же у нас получилось по логике вещей

14:24

у нас здесь должно выводиться значение

14:26

как True в то же время у нас выводится

14:29

значение именно как false так происходит

14:31

по той причине что на данный момент вот

14:33

здесь у нас это условие срабатывает мы

14:35

устанавливаем значение True но потом

14:37

когда цикл завершается мы в эту

14:39

переменную всё равно устанавливаем

14:40

значение false и именно это значение оно

14:43

и выводится чтобы нам это реализовать

14:45

всё корректно мы здесь должны с вами

14:46

сделать следующее мы просто сюда должны

14:48

Дописать цикл вернее оператор Break за

14:51

счёт этого оператора мы с вами как бы мы

14:53

с вами как бы говорим что как только мы

14:55

найдём нужный символ мы тут же Выходим

14:58

из цикла а соответственно оператор els

15:00

Он тоже Не сработает Если я сейчас такое

15:03

запущу то вот мы замечаем что у нас

15:05

здесь отображается значение True всё

15:07

сработало корректно в то же время если я

15:09

буду искать например на какой-то

15:10

несуществующий несуществующий символ

15:12

например букво R то в таком случае у нас

15:15

будет выводиться значение false Вот

15:17

теперь этот цикл он является корректным

15:20

для нахождения именно определённого

15:22

символа в строке Ну что же на этом наш

15:24

урок Подошёл к концу в ходе этого урока

15:26

мы с вами научились работать с циклами

15:28

мы изучили такие циклы как for а также

15:30

while ну и плюс мы изучили операторы что

15:33

можно использовать внутри них это

15:34

операторы continue а также оператор

15:36

Break на этом У меня всё Надеюсь урок

15:38

вам понравился Если так то не забывайте

15:40

подписываться на канал и вступать в наши

15:42

соцсети все ссылки на них будут в

15:44

описании к этому видео У меня же на этом

15:46

всё до скорых встреч пока

UNLOCK MORE

Sign up free to access premium features

INTERACTIVE VIEWER

Watch the video with synced subtitles, adjustable overlay, and full playback control.

SIGN UP FREE TO UNLOCK

AI SUMMARY

Get an instant AI-generated summary of the video content, key points, and takeaways.

SIGN UP FREE TO UNLOCK

TRANSLATE

Translate the transcript to 100+ languages with one click. Download in any format.

SIGN UP FREE TO UNLOCK

MIND MAP

Visualize the transcript as an interactive mind map. Understand structure at a glance.

SIGN UP FREE TO UNLOCK

CHAT WITH TRANSCRIPT

Ask questions about the video content. Get answers powered by AI directly from the transcript.

SIGN UP FREE TO UNLOCK

GET MORE FROM YOUR TRANSCRIPTS

Sign up for free and unlock interactive viewer, AI summaries, translations, mind maps, and more. No credit card required.