Уроки Python с нуля / #6 - Циклы и операторы в них (for, while)
Вставка
- Опубліковано 14 чер 2024
- В ходе урока мы с вами изучим тему циклов в языке Python. Мы научимся прописывать цикл for, а также цикл while. Дополнительно нами будут рассмотрены операторы break и continue, что используются в циклах.
✅ Полезные ссылки:
- Урок на сайте itProger: itproger.com/course/python/6
⏰ Тайм коды:
00:00 - Начало
00:16 - Что такое циклы?
00:36 - Цикл «for»
02:00 - Функция «range»
03:13 - Перебор строки
06:37 - Цикл «while»
08:45 - Бесконечный цикл
10:50 - Операторы циклов
13:25 - Поиск символа в строке
15:23 - Заключительная часть
✔ Сообщество программистов: itproger.com/
✔ -------------
Вступай в группу Вк - prog_life 🚀
Инстаграм itProger: / itproger_official
Группа FaceBook - goo.gl/XW0aaP
Instagram: / gosha_dudar
Telegram: t.me/itProger_official
Twitter - / goshadudar
- Уроки от #itProger 👨🏼💻
- Все уроки по хештегу #itprogerLessons
Запустила бесконечный цикл на своем ведре - вырубился свет во всей деревне. Сейчас к нам едут военные из соседнего города, говорят, будут ликвидировать особо опасного хакера. Уроком довольна, спасибо!
+
Запустил бесконечный цикл на ноуте теперь пишу с телефона. Спасибо за урок)))
удачи с завершением цикла
хз я тоже запустил оставил на 3 минуты и все норм
если что характеристики ryzen 5 5600h rtx 3060 6gb
@@Fikus24 а причём здесь видеокарта?
@@user-jr2yz2ch1t ахахах
Реально после шести уроков стал хоть что-то понимать. Спасибо
Я посмотрел много различных курсов. Этот самый лучший !!!!
@@mstr-hq6cdсможешь калькулятор в одну строку написать?
9:09 пов сделал бесконечный цикл,развлекался с ним,а потом доходишь до момента,где говорят:" не нужно так делать"
•́ ‿ ,•̀
lol 🤣
я думала я одна такая, думаю что не так..
твоя ОЗУ: памагити... 😆
Топ 10 пранков в програмирование, первое место:
такая же фигня, слышал что питон очень продуман в подобных вещах и был уверен, что он не умрет. и оказался прав xD
Где вы были раньше? Эти уроки - просто находка!
Спасибо за бесконечный цикл теперь это генератор паролей!
Поздравляем! Вы открыли смысл занятий в питоне!
А как вы это сделали?
@@vladkotenko9968 while true:
Print("пишем хоть что")
И вроде там можно сделать добавляет чтоб 1 но я хз как это сделать ну забыл
Я тот, кто запустил бесконечный цикл)))
🤣
Комп сгорел?
Поздравляю, ты герой
Сколько смысла в твоём коменте
А говорят нельзя сделать вечный двигатель, дураки
Благодарю, за идею. Ломаю комп не себе, а знакомым. Бесконечный бомбер сообщений это круто.
Спасибо большое, лучшие уроки для новичков!
x=1000
for i in range(143):
x=x-7
print(x+7,"- 7 =",x)
if x
1000-7?
лютый
Либо можно:
x=1000
while x>0:
print(x, '-7', sep="")
x-=7
else:
print("Гуль, остановись")
Ты сам до этого додумался?
@@forgor2breathe или :
for i in range(1000, -2, -7):
print(i)
if i
Спасибо большое за урок, все очень доходчиво и просто )
Учусь у вас с удовольствием! 🥰
спасибо за курсы, ясно и понятно👍👍👍
Спасибо за уроки.Очень хорошо объясняете
У вас талант, вы сложные вещи объясняете на простом языке. Спасибо, вы лучший.
Спасибо за Ваш труд! Коммент в поддержку канала.
Большое спасибо за ваш труд. Пробно оформил месячную подписку на вашем ресурсе.
Спасибо Вам 😊
Cпасибо, с интересом смотрю ваши видео, очень залипательные)
Спасибо за уроки! Сегодня начал изучать Python. После этого урока решил устроить себе практику и написать програмку, которая определяла бы, простое или составное число ввёл пользователь. Всё получилось)
UPD: И генератор n - го количества простых чисел
Ура, я сделал свою первую мизерную программу по дз с сайта! Да и 1/4 данного курса за считанные часы уже пройдено )
Можно поподробнее?
Привет! Слушай, у тебя крутые курсы, но было бы неплохо, если бы ты объяснял, в каких случаях можно было бы использовать циклы, условия, и так далее. Имеется в виду на реальном примере (не обязательно практическом). К примеру ты пишешь какую-нибудь игру или приложение и объясняешь, как именно можно использовать эти штуки, так как гуманитариям вроде меня довольно сложно понимать это
❤🔥💋💋💋💋😈😈😈😈😮👴🏿 сам разберайся это тебе не курс за который ты платишь своей почкой!! скажи спасибо что кто-то это вообще делает бесплатно❤🔥❤🔥💋💋💋😈😈😈👿👿👿☠💀☠👺👺💩
@@yatonaru3592 если автор канала хочет большего успеха - он обязан прислушиваться к подписчикам и коммуницировать с ними, а ты пишешь какую-то хуйню
@@vacuumsplitting3143 уничтожил(а) по факту😂
@@vacuumsplitting3143 Ахахахх. Ты просто смешон XDDDD
@@vacuumsplitting3143 ты бы хотел бесплатно работать ?
Очень хорошо объясняете, подписался
Урок был так интересно👍
спасибо большое за уроки.
Сегодня у меня тупо ветер в голове, но всё равно всё из этого урока усвоил (более менее). Спасибо!
Аааааа как это сложно но вы понятно объясняете хоть.Спасибо вам
Уроки просто топ!!!!я хть начал понимать что то!!!
Ооо, спасибо! Хорошая подача материала! Доходчиво и с примерами, по началу плохо запоминаю, но если 100 раз повторить то доходит.
Ну или если бы не делал на оть..бись) тараторит так как будто его сзади с автоматом подгоняют... ставлю скорость видео на 0.75 хахаха ..жесть)
тоже самое))
Приучай себя смотреть на скорости 1,5 Х 2Х,быстрее начнешь материал усваивать ,скорость восприятия информации увеличится ,и меньше будешь тратить время на просмотр видео !
@@user-vp1hk7lv6y
Спасибо! Написал простенькую игру с паролем !
15:20 почему оно работает, если else не на такой же табуляции, как if? Else и вне for выходит, и не относится к if?
Почему нет ошибки?
Спасибо за уроки
Данная программа осень полезна если я хочу в большом тексте найти нужное слово, спасибо!
Это как Ctrl F в браузере)
hi, thanks a lot for the video! It was interesting
Спасибо за старания, очень напоминает С+
iskal iskal i k scastyu nashel tot samiy videokurs pro piton.Spasibo
Действительно понятно, лучше чем в книгах. Хотя учу другой язык уже, python паралельно.
после с++ нормально Питон залетает, на ура!
Видео развит на части это тоже помогает.
Я не сразу понял про for, пришлось погуглить
Это от foreaсh, то есть для каждого
for item in collection:
# do something
То есть для каждого предмета tem из набора collection выполнить действие, и с каждым витком цикла(итерацией) в качестве объекта для какого-нибудь действия будет использоваться определённое значение из последовательности collection
Спасибо большое
1:20 заметила, что если при выводе взять переменную i в кавычки (у автора без кавычек), то переменная будет выводиться не как цифры от 0 до 5, а как символ i, 6 раз:
for i in range(6):
print("i")
i
i
i
i
i
i
Для тех у кого как и у меня возник вопрос "какого else не в одной строке с IF?"
Пришлось погуглить отдельно и нашел на хабре.
Это короткая статья для новичков. Наверняка вы знаете, что в пайтоне для циклов for и while предусмотрен блок else. И с этим блоком возникает много путаницы, потому что его действие на первый взгляд неинтуитивно. Приходится тратить немного времени или заглядывать в документацию каждый раз, когда он встречается:
for f in files:
if f.uuid == match_uuid:
break
else:
raise FileNotFound()
Когда будет исключение: когда файл не найден? Когда найден? Когда список пуст? На этот вопрос сложно ответить, потому что блок else находится на одном уровне с блоком for и кажется, что это какое-то условие, относящиеся к самому списку; например, когда for не нашел ни одной записи. Но достаточно знать главный секрет блока else для циклов, чтобы больше никогда не терять на это время:
Блок else после циклов относится не к самому циклу, а к оператору break!
И действительно, блок else выполнится в любом случае, если только выполнение цикла не было прервано оператором break, return или raise.
Если читать пример выше так: «если файл имеет нужный нам uuid, то закончить цикл, иначе вызвать исключение», то все становится на свои места.
Привет! 14:00 Скажи, почему ты else ставишь на одном уровне с for? Ведь вроде он должен относиться к if, и в таком случае break не понадобится. или я что-то не правильно понял?
В питон else можно дописать к циклу. Об этом я рассказывал в уроке
планируется ли свежий курс по джанго?
ЛАЙК
Мне кажется так бы было более корректно оформить последний пример:?
slovo = input("Введите слово: ")
bukva = input("Введите букву которую ищем: ")
found = 0
for i in slovo:
if i == bukva:
found += 1
print ("В слове:", slovo, "буква:", bukva,"встречается:", found, "раз.")
Автор просто показал и объяснил код программы и смысл её работу, а ты ее доработал
спасибо, теперь я поняла как именно работает программа
большое спасибо! Теперь понял лучше
Спасибо большое за помощь, понял материал намного лучше
И можно дополнить :
Else not i
Print ("В этом слове нет такой буквы")
Для новичка передоз инфы А как по быстрому повторить шикарно
да нет нормально
Я вроде понимаю
думаю раза с 10 я запомню ;)
14:37 В примере с True и False непонятно почему при выполнении условий if, следом выполняется условие else... Они вроде взаимоисключающие - else выполняется только в том случае, если не выполнено условия if, а в этом примере оно выполняется. В чём подвох?
В том что дано слово hello, цикл ищет букву "l", а в первой итерации цикла стоит буква "h", соответственно выполняется условие else. На следующей итерации уже буква "e", тоже не подходит значит выполняется else, вот на 3 и 4 уже выполняется if, значит в этом случае переменная found получает значение True, но так как нет никакой остановки, а остановка цикла это break, то выполняется следующая итерация, а там уже буква "o" и она не подходит в условии if и исполняется условие else, значит значение переменной found устанавливается False
Случайно сделала бесконечный цикл, еще до того, как Автор про них рассказал. Испугалась, думала, что спалю комп. Шах и мат тем, кто думает, что программирование скучное. 10/10 никогда бы больше не повторила, но всем рекомендую. Заряд адреналина не позволит уснуть и вы сможете кодить всю ночь напролет!
8:00 если к переменной ничего не добавлять и запустить то число которое было указано в переменной будет бесконечно.Чтобы решить проблему нужно сделать команду:переменная (любая которую вы указали) += 1.
можешь сказать как сделать разные цвета в строке, как у него
@@cyberpunk8156 в vs code есть кастомизатор где и можно менять цвета текста. Незнаю зачем я тебе это пишу через 2 месяца, как твои успехи в программировании ? Многие после пары уроков сливаются
Для тех, кто не понял, что за "шаг" делает 2 в этом коде:
for i in range(4, 10, 2):
print(i)
оно выводит каждое 2 число, те вывод будет такой: 4 6 8
если бы там стояло 3, то там бы выводило каждое 3 число от 4, те 7 (10 не включительно).
спс
Решил задачу на сайте, но немного другим и простым способом
n1 = 34
while n1
Правильно, но ты забыл пробел перед "2".
Почему когда мы написали break, который по отступам подходит к условию if, он сработал для цикла for, и else не выполнилось?
Короче, пока писал вопрос, походу понял, что на каком бы отступе тот брейк не стоял, он прекратит работу цикла, в котором он написан, верно?
У меня тут больше вопрос, почему элз стоит на уровне фор. Как будто вне цикла
В конце видео так и не понятноо почему все таки Фолс выходит если нашлась буква L в HELLO, автоматом else не должно было сработать
Если кто-то сразу не понимает (как я, например), то читайте код построчно, а не смотрите на него целиком. Так работает наш мозг. Я не могла понять конец урока, а именно, почему выводится True, если затем, после команды break, присваеваем значение переменной found в виде False. Потом я прочитала всё по порядку и подключила логику и поняла, что команда break останавливает цикл, предотвращая ДАЛЬНЕЙШЕЕ его выполнение, но при этом сохраняя результат. То есть чтобы результат был False, нужно после break заново создать цикл. А так как дальше цикл не создаётся, а идёт команда else, которая не выполняется из-за команды break, то в принципе компилятор даже "не смотрит" на else, так как цикл уже остановлен и ЕМУ пофиг, что там дальше будет с ним происходить))) В общем, делите сложные элементы на более простые и тогда будет легче. Всем успеха!
for x in range (1000,0,-7):
print(x)
спасибо за внимание
Вот точно сам себе рассказал
Здравствуйте, а почему Else левее, чем оператор If? Разве они не на одном уровне должны быть?
а он же к не относится к выполнению тех строк вроде, он же означает что то типо такого "если это не случится то" ну типо такого вроде
# Поиск заданной буквы в тексте
text = input('Введите текст, в котором нужно выполнить поиск: ')
finding_letter = input('Введите искомую букву: ')
count = 0
for i in text:
if i == finding_letter:
count += 1
print('Количество букв "', finding_letter,'" в заданном тексте: ', count, sep='')
Как же после джавы хочется в конце ; поставить ты не представляешь
Подскажите пожалуйста момент if i%2 == 0 почему это равняется четному числу?
Мы в 90х на ассемблере (asm просто пишешь в досе) писали циклы которые заполняли рандомные фалы нулями до упора пока место на диске не заканчивалось и файл сохранялся в епенях ))) а это были 386 SX - с малюсенькими винчестерами... только сейчас мне нашу информатичку жалко стало - бедная )) Понятно что можно было утилитой или через волков командер файл отыскать большой - но она не блестала знаниями )))
Также я который запустил бесконечный цикл я создал вечный двигатель
ctrl+/ быстрое комментирование (ставить решетку в выбранных строках)
Привет, а можно ли в цикл while добавлять условия if i else?
можно
Про совмещение else и циклов можно было более развёрнуто рассказать... а то начинающим объясняли сперва что else может использоваться в связке с if и elif при проверке условий, а тут взяли из воздуха и вставили не пойми к чему... А самое главное, что использование else в циклах - это особенность языка Python... многие языки такое не поддерживают!
Сам начал недавно заниматься на платформе stepik и параллельно смотрю твои уроки, в итоге хорошее дополнение друг другу получается)
Так а что можно добавить про цикл и else? Все что можно про него сказать - было сказано. Больше не добавить, ведь логика и функционал его прост
@@itproger чувак, он правильно замечание сделал, ты просто взял фичу языка из воздуха и применил, не объясняя за нее ничего. Мне как плюсовику вообще не понятно было в конце какого хера else находится в теле цикла, а не if'а
@@itproger Да, непонятно почему срабатывает else если оно должно только в противном случае работать. Поясните пожалуйста. В курсе было что else c if работает.. Спасибо вам за такие прекрасные ролики..
@@andrewdmit3793 Он имел ввиду "Как оно работает else , если находится в теле цикла, а не конструкции if else". Я тоже до этого только на плюсах довольно долго писал и мне не понятно. (посмотрите на отступы, else вообще не должен попадать в конструкцию if else)
решил посмотреть вечером, вроде понял но мозги кипят, не зря говорят утро вечера мудренее
6:00 Выводится значение i, а не номер. Как тогда получить номер i?
Например, чтобы сделать условие, что номер буквы по порядку чётный
Так тут другое совсем. Тут i это буквы слова. И если эта буква равна той которая нам нужна, тогда мы в друю переменную плюсуем еденичку
я сделал программу, которая считает все простые числа от 1 до заданного включительно с помощью этого видео. Спасибо
как вы обозначили простое число?
Кааак?
Подскажите, как можно найти не символ, а сочетание символов с помощью оператора for ?
slovo = input("Введите слово: ")
bukva = input("Введите сочетание которое ищем: ")
found = 0
for i in slovo:
if i == bukva:
found += 1
print ("В слове:", slovo, "сочетание:", bukva,"встречается:", found, "раз.") И просто во втором вопросе запиши сочетание
@@gddotop2231 не работает так
Введите слово: шиншила
Введите сочетание которое ищем: ши
В слове: шиншила сочетание: ши встречается: 0 раз.
Вопрос: я записал переменную значение которой можно менять для того что бы в дальнейшем выборочно искать и подсчитывать число повторений этой переменной в введенном сообщении
Но, при вводе более одного символа или даже слова и запуске программы при наличии этого слова в тексте, программа выдает 0, так и должно быть? Потому что при вводе 1 символа все работает исправно
Надеюсь вопрос понятен, спасибо за ответ
Вопрос ещё актуален?
@@KosaneSegel сомневаюсь
Поясните пожалуйста, почему else без отступа? Он типа относится не к if, а к for?
Да, верно
@@itproger если подвинуть все элс табуляцией под иф, то и там всеравно фолс
Прошу очень, нет доступа к уроку к видео. Возможно восстановить, или ссылку на урок.
должно быть так
found = None
for i in "hello":
if i == "e":
found = True
break
else:
found = False
print(found)
а не так
found = None
for i in "hello":
if i == "e":
found = True
break
else:
found = False
print(found)
Даже редактор подчеркивает ошибку
Я в этом примере автора тоже немного запутался. Я так понимаю, инструкцию "else" нужно было прописать для "if". Т.е. отступить 4-я пробелами. А у автора "else" прописана буд-то бы для "for".
14:32 но если установить значение found = True изначально, то не потребуется оператор break... Или я что-то не так понял?
когда взглянул на просмотры первой части программированная на Python и на последнюю часть и её просмотры понял что до конца дошли не все(
В конце урока у else отступа нет как у if это можно так делать?
9:00 ЛЮБЫЕ ПРЕДУПРЕЖДЕНИЯ ДЛЯ МЕНЯ ЭТО ПРИЗЫВ К ДЕЙСТВИЮ
11:34 Дьяволо оценит👍
12:50 Ты говоришь что там числа которые не делаться на 2 без остатка, почему там не 9, если 9 / 2 = 4.5?
11:37 Дьяволо: Я тоже хочу
3:30 Пожалуйста ответьте, почему "i" ? Я так и не понял причем здесь эта переменная ведь мы разбераем переменную "word" а не "i" ? Это как вообще? У меня мозг сломался 🙄
15:10 Почему else за пределами блока if? Или он относится к for? Такое вообще допустимо? В моей голове не укладывается.
word = input("Введите текст: ")
sim = input ("Введите символ:")
count = 0
for i in word:
if i == sim:
count += 1
print(count)
print("В тексте ", count, "символов: ", sim)
9:01 я которая не дослушала, и знатно приофигела от проиходящего😂
9:09 сохранил файл и создал этот бесконечный цикл, зря)))
Подскажите пожалуйста, после полного просмотра и польного запонимания и понимания этого курса, какой уровень в python я получу?
Базовый
@@Never_gonna_give_you_up298 даже не junior?
сразу сеньером станешь), а если честно что бы стать джуном нужно много еще чего изучать, изучай дополнительно библиотеки Django например, много вообщем там изучать годик уйдет точно на изучение +- как говорят@@bebraevroe452
Я ошибился в коде и случайно запустил бесконечный цикл:
Капец у меня паника случилась.
Я в тот момент: "ААА! Стоп! Стоп! Как это остановить?! (Вырубает PyCharm)"
скажи пожалуйста стоит ли пересматривать твои старые видео уроки?
конечно стоит и не только его уроки, учиться можно вечно, только делайте для себя определенные выводы, проверяйте, работает ли код, который выполнялся два года назад. если нет - не берите на свой счет, но, в общем-то, стоит.
Старый курс по Питону очень плохой, совершенно ничего мне не дал. Но он довольно старый, ему более 4 лет. Поэтому оптимальнее найти другие каналы.
Этот курс по питону очень хороший, смотря его и параллельно 1-2 других, мне кажется, можно хорошо понять основы языка
@@andrey6552 не дал потому что знали или потому что плохо учились?
В последнем коде у тебя else стоит неправильно, она не отделяется пробелами
Я запустил бесконечный цикл на ноуте. Всё норм))) Правда ноут новый и специально по характеристикам подходит для программирования.
Тянет блокнот?)
@@Dmytrokan У тебя есть проблемы с компом? Скинуть недорогую сборку? Лично мне никто ещё не жаловался
Подскажите почему в последнем примере else написано без отступа?
found = None
for i in "hello world":
if i == "h":
found = True
break
else:
found = False
print(found)
Если написать так, то будет синтаксическая ошибка, я тоже задался этим вопросом и решил проверить.
@@lokifram452 break тоже с отступом должен быть, как и вложенный found = true
здесь есть небольшая ошибочка в коде на 15:05.
оператор BREAK здесь не нужен.
необходимо просто проставить табуляцию перед ELSE и тогда эта часть кода не выполнится при условии выполнения IF
т.е. :
found = None
for i in "hello":
if i == "l":
found = True
else:
found = False
print(found)
Неа
парни хелп пишет при запуски когда can't find '__main__' module
Для тех кто не вкурил, что вообще произошло в конце - True/False. Короче for in не зацикленно бегает по диапазону, а один раз и по порядку. В слове Hello есть две буквы l, но эти буквы находятся посередине слова. А for in "идет" и i по порядку принимает значения i='H' i='e' i='l' i='l' i='o'. И последняя буква в диапазоне - 'o'. Ну так вот - когда i принимала значение 'l', то переменной found присваивалось True (дважды). Но ПОТОМ i шла дальше (ведь ей нужно прогнаться диапазону от начала до конца) , а диапазон заканчивается буквой 'o' (и она - не соответствует условию) - поэтому в конце концов тру так и не присвоилось. А когда прописали брейк, то i принудительно выкинуло из цикла, как только он нашел букву 'l' и на этом всё остановилось. Если бы условием была буква 'o'(последняя в диапазоне, на которой заканчивается прогон) - то мы бы получили заветный True без брейка. PS1 кстати - else должен быть положен под if, а не под for. Из-за этого линтер ругается и выделил фоном переменную found. PS2 - если вы вообще else не пропишете, тогда тру будет присваиваться независимо от того в каком месте диапазона находится искомая буква, тут я сам пока не вкурил почему.
слушай, а почему у него в этом примере else на одном уровне с for? Разве он не должен быть на уровне с if? Вот этот момент не поняла... Работать работает, но почему так-то .-.
По поводу PS2: переменной found без else не присваивается никакое другое значение, кроме true, которое присваивается в одном случае: видим букву l :) С этим всë ок)
i = "1000-7"
while not i == "15" :
print(i)
гули, берите на заметку
хотел сделать программу для поиска определенного слова в предложении чере 2 input-а не получитлось :(
14:50
Разве if и else не должы иметь одинаковый отступ?
Если нет, то к чему относится else, а также на какой строке кончается цикл for?
Пытаюсь понять и не получается
Вы верно пишите, для примера проще было бы для if сделать его.
Это в самом конце плохой пример - else может быть не только для if, но и для for, это редко используют - он выполняется если for прошел полностью без вызова break
@@GogiTavadze спасибо. не знал этой тонкости про else в цикле for
14:45 Почему, присваивается False? Ведь жеж, вроде если в условии if будет true, то else не будет выполнятся...?
Потому что цикл работает до конца слова. Дойдя до буквы o, он увидит, что это не r и перейдёт в else
Потому что автор поместил оператор else не под оператор if, а под цикл for (посмотрите внимательно на расположение строк кода на экране и табуляцию) - поэтому оператор else сработал не зависимо от оператора if, а если бы else стоял точно под if (т.е. принадлежал конструкции if-else), то программа сработала бы по другому и в терминал вывелось бы "True" и не нужно было бы прописывать break. Скорее всего автор этим хотел показать наглядно работу ключевого слова break, а не сделать ошибку, но это не точно..😁