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:28Python существует два формата циклов это
0:30цикл for а также цикл while эти циклы мы
0:33как раз с вами сейчас и изучим для
Цикл «for»
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того что мы можем просто вот указать ЦИК
Функция «range»
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:28Hello world что-то в этом духе и далее
3:30мы создаём цикл цикл создаём точно так
3:33же само вот только уже вместо функции
3:35Range здесь Я указываю нашу вот эту Вот
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:22W не была найдена потому что мы ищем на
6:25такую букво в Нижнем регистре А здесь
6:27она находится в верхнем регистре для
6:29питона - это как две разные буквы как
6:31два разных символа поэтому у нас не было
6:33найдено ни одного подобного символа в
6:35самой этой строке помимо цикла for в
Цикл «while»
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:22I у неё изначально будет значение как
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:2515 у нас будет выполняться цикл и если я
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:51True и по сути я могу просто указать Вот
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:33while удобно использовать Когда нам
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:103 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:07NAN 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:30while ну и плюс мы изучили операторы что
15:33можно использовать внутри них это
15:34операторы continue а также оператор
15:36Break на этом У меня всё Надеюсь урок
15:38вам понравился Если так то не забывайте
15:40подписываться на канал и вступать в наши
15:42соцсети все ссылки на них будут в
15:44описании к этому видео У меня же на этом
15:46всё до скорых встреч пока