28 Вложенные циклы Python
🔥🔥🔥 Инди-курс по Python 🔥🔥🔥
stepik.org/course/63085/promo
👉👉👉 Свой вопрос по курсу можешь задать в чате
t.me/+SlnNhAO7caBlNDM6
👉👉👉 Также подписывайся на мой телеграмм-канал
t.me/python_egoroff
Стать спонсором канала
/ @egoroffchannel
boosty.to/egoroff_channel
/ artem_egorov
egoroffartem.pythonanywhere.co...
На сайте будет выкладываться более подробная информация о данном курсе и будущих видео.
Все видео этого курса можете найти на сайте
egoroffartem.pythonanywhere.co...
или в Вк
videos-177962775?secti...
Если кому нужна помощь, предлагаю индивидуальные занятия. Подробнее пишите в личку в вк
artem_egoroff
python.study
В данном группе можете найти информацию о новых видео и задать вопросы
Пікірлер: 142
🫵 Теория без практики - ничто, поэтому 👇 🐍 stepik.org/course/63085/promo 👉 специально для тебя создал бесплатный топовый курс по Python 👉 В нем тебя ждет: 📗 более 400 практических заданий на программирование 📗 более 250 тестовых заданий на проверку материала 📗 десятки часов видеоматерилов по теории 📗 видеоразборы решения заданий 📗 текстовые материалы по урокам, примеры кода 📗 доступ к закрытому чату с дружественной обстановкой 📗 сертификат в случае успешного прохождения курса
Спасибо! Прохожу курс на stepik, задачи решаю, а мозг не осознает, что вообще происходит.
@kirik06711
2 жыл бұрын
я думал я один такой)
@user-su1wf3wz6c
2 жыл бұрын
Тогда надо думать о том, что не происходит, то есть идти от обратного
@user-ln5gp4ij1o
2 жыл бұрын
Я тоже прохожу курс на stepik рад что нас много)))
@denistalko6585
2 жыл бұрын
Я тоже не степике курс прохожу. Очень нравится.
@islamakmatov5685
2 жыл бұрын
Me too
Из всех встречавшихся объяснений это самое доходчивое. Спасибо!
Когда рандомный программист объяснил все нагляднее моего препода!) респект и подписка:)
@romanvishnyakov6835
Жыл бұрын
не рандомный, а..... import from random* a = "programist" time = yearsyearsyears def explain_to_user(lesson): if age
@claudian6257
11 ай бұрын
@@romanvishnyakov6835 kruto :d
Спасибо, спасибо, спасибо!!! Очень доходчиво.
Дружище, у тебя очень классный контент. Надеюсь к тому моменту когда я пройду этот курс и ооп, ты запилишь что нибудь про топовые фреймворки, джанго и т.д. Спасибо, респект, йоу!!!
@john_galt97
11 ай бұрын
Прошёл ООП?
Спасибо, по другому стала смотреть на питон )))
Спасибо! Просто и понятно! Очень помогли с прямоугольником из звездочек👍😅
Вы великолепно объясняете! Прохожу курс в РАНХиГС, но Вы просто находка! Из всей кучи видео про Python вы объясняете лучше всех правда! Всё для супер одарённых как я! Спасибо
Лучшее объяснение. Спасибо, Артем.
Артём, благодарю! 👍🤝🔥🔥🔥
с каждым уроком все меньше людей, видимо поняли, что это не халява на которой можно много заработать
@mishell4910
4 жыл бұрын
Да уж люди считающие программирование легким заработком очень сильно ошибаются
Спасибо, наконец-то понял.
Огромное спасибо за видео. Хоть ты очень быстро объясняешь из-за этого приходиться смотреть несколько раз. Но видео топовые !!!
Спасибо вам большое за ваш труд. Ваш канал лучший по качеству объяснение, а я уже много чего пересмотрела. Большая просьба рассказать про ОПП Python, с примерами и задачками, а то пока что не очень понятно. Спасибо!
Вы гений! Спасибо большое
Наконец-то я понял как они работают))) за 6 минут этого ролика_)) сейчас дальше досмотрю, может еще понятнее станет)) задача на степике решена!!!!))
Видео доступно на патреоне www.patreon.com/posts/34560120 Стать спонсором kzread.info/dron/McC_43zGHttf9bY-xJOTwA.htmljoin Стать патроном www.patreon.com/artem_egorov Разбор задач Волосатый бизнес kzread.info/dash/bejne/q45ok6mPpavYg6Q.html Подарок от Лены kzread.info/dash/bejne/i4elvM-Fopzbo9Y.html
Спасибо большое
Таблица умножения n, x = map(int, input().split()) count = 0 for i in range(1, n+1): for j in range(1, n+1): if i*j == x: count += 1 print(count)
Спасибо, очень доходчивое объяснение. Сам сейчас только начал изучение Python, наткнулся на эту тему в Лутце, немного не понял и нашел твое видео. В дальнейшем планирую ознакомиться со всем курсом.
@user-yh8lj9od5z
3 жыл бұрын
Привет, как успехи изучения? Сам занимаюсь 1,5 месяца, вот решил поинтересоваться.
@rostikniks
2 жыл бұрын
@@user-yh8lj9od5z Привет, а у тебя как успехи?))
@kolianno476
2 жыл бұрын
@@rostikniks походу они все становятся успешными и уходят с ютуба безвозвратно))
Подача прекрасная, но сложно запоминать. Спасибо за Ваш труд!
Таблицы и умножение: tabl, num = map(int, input().split()) counter=0 for i in range(1, tabl+1): for j in range(1, tabl+1): if j*i == num: counter+=1 print(counter)
благодарю
Круто, спасибо! А задачка из ЕГЭ по информатике, какого уровня сложности была?
Какой прикольный пайчарм был 5 лет назад
Достойно уважения
@egoroffchannel
5 жыл бұрын
Благодарю
Спасибо за разъяснение)) Помогло в моём случае
@egoroffchannel
5 жыл бұрын
не за что)
Можно ли при помощи написания программы угадать, например слово из 5 букв, не только смотря все варианты?
ты лучший
@egoroffchannel
5 жыл бұрын
спасибо)
Подскажите, пожалуйста, а вложенные циклы for могут повторяться несколько раз? например выполняется первый цикл до определённого условия, например, i=10, после выполняется вложенный цикл и пи этом уменьшает i о исходного значения и потом снова повторяется первый цикл до нужного условия? Надеюсь понятно объяснил )
комментарий в поддержку канала :)
УМНИЦА!
Можно же вместо перемены местами циклов for просто изменить print. print(f'{ j } * { i } = { i * j } ', end=' ') или print(j, '*', i, '=', i*j, end=' '). Это проще, хотя я только начал изучать, и может чего-то не догоняю
Точки в отрезках: from random import randint n, m = map(int, input().split()) k=[] for i in range(1,m): k.append(i) for i in range(1, n + 1): a,b = randint(1,m),randint(1,m) print(a,b,end=' ') print() if a==b: if a in k: k.remove(a) elif ab: for b in range(b,a+1): if b in k: k.remove(b) print(k)
почему в примере на седьмой минуте у меня выводились по два символа, по одному, и в разных строчках. так же что означает символ прямоугольника с чертой из правого верхнего угла в левый нижний?
Здравствуйте, можете помочь: 1. Напишите вложенный двойной цикл от 1 до N. В теле цикла напишите единственный оператор int a = 1; N = 100. Оцените время выполнения программы. 2. Сделайте то же самое что в пункте 1, только для N = 20 000. 3. Сделайте то же самое что в пункте 1, только для N = 50 000.
👏👍
блин, как увидел подобную вложенную функцию, так сразу пришла в голову мысль, как написать код, который выводит таблицу умножения, получилось прикольно s = 0 d = 0 for i in range(1, 9+1): for j in range(1, 9+1): s = i * j d += 1 print(f"\t{s}", end = "") if d == 9: d = 0 print()
задача огэ немножко изменил for b1 in 'tkv': for b2 in 'tukva': for b3 in 'tukva': for b4 in 'tukva': for b5 in 'tukva': for b6 in 'tkv': sea = b1+b2+b3+b4+b5+b6 if sea.count('a')+sea.count('u')==2: print(sea)
Лиса и змейка: n, m = map(int, input().split()) for i in range(1, n +1): if i % 4 == 0: print('#' + ' ' * m) continue if i % 2 == 0: print(' '*(m-1) + '#') continue else: print('#'*m)
Комментарии для поддержки канала 🖐️😉
Поставил бы 100 лайков, но тут можно только один.
жесть,не могу решить ни одну задачу уже несколько уроков подряд
9:20. Всм не фиксируется? У тебя оно записано в строчку : первая переменная i, потом идет j. Как бы ты не менял , первый множитель все равно фиксируется, потому что для каждой переменной внешнего цикла исполняется внутренний цикл полностью
Так лучше таблица умножения выглядит for i in range(1, 10): for u in range(1, 11): p = i*u if p
Как ускорить вложенные циклы? Есть же какие-то для этого библиотеки на Си
@egoroffchannel
4 жыл бұрын
Избавиться от них)
Подарок от Лены, недоделанный на четверть. Рли голову сломал над концовкой. Если кто-то сможет закончить или знает более лаконичный способ, напишите плз n=input() for i in range(n+1) : print(' '*((n-i)*2), end='') for j in range(i+1) : print(j, end=' ') for k in range(i) : print(i-1-k, end=' ') print() for i1 in range(n) : print(' ' * ((i1+1) * 2), end='') for j1 in range(n) : print(j1, end=' ') print()
@user-zw5lq8wv7o
Жыл бұрын
def foo(): """ В функции вводим число которое будет центром ромба. С помощью циклов делаем спад и возрастание от главной линии. Главная линия - строка где присутствует наше число. """ n = int(input('Введите цифру')) for i in range(n+1): # чтобы избавится от квадратных скобок добавляем * (распаковываем список) print(' '*(n-i), *list(range(i)), i, *list(range(i)[::-1]), end='') print() for i in list(range(n)[::-1]): print(' ' * (n - i), *list(range(i)), i, *list(range(i)[::-1]), end='') print() if __name__ =='__main__': foo()
почему в задании из егэ, в слове "tukva" мы используем 6 букв в цикле, если слово состоит из 5 букв
@user-wg2vt4oq4j
2 жыл бұрын
Потому что в задании просят узнать, сколько 6-буквенных слов можно составить из 5-ти букв
Задача / змійка _________________ n, d = map(int, input().split()) for i in range(1, n + 1): if i % 4 == 0: print('#' + '.' * (d - 1)) elif i % 2 == 0: print('.' * (d - 1) + '#') else: print('#' * d)
Не могу понять, почему в условии if rez[0] in 'tkv' and rez[-1] in 'tkv': [0] это первая буква, а [-1] последняя откуда эта последовательность?
@nataliyagedzyk3848
Жыл бұрын
Cчет начинается с 0, поэтому первая буква имеет индекс 0. Вы не знаете, сколько букв в слове, но последняя всегда первая с конца, поэтому индекс -1. Минус показывает, что счет идет с конца.
Привет, отличное видео! Возможно ли решение задачи # A. Лиса и змейка через вложенные циклы? у меня получилось только вот так # A. Лиса и змейка n, m = map(int, input().split()) for i in range(1, n+1): if i % 4 == 0: print("#" + ("." * (m-1))) elif i % 2 == 0: print("." * (m-1) + "#") else: print("#" * m)
@user-fi2fi7jc1i
3 жыл бұрын
n, m = map(int, input().split()) a = 0 b = [] for i in range(1, n + 1): for j in range(1, m + 1): if i % 2 != 0: print('#', end='') if j == m: print() else: if a % 2 == 0: b.append('.') if j == m: b[-1] = '#' a += 1 print(''.join(b)) b.clear() else: b.append('.') if j == m: b[0] = '#' a += 1 print(''.join(b)) b.clear()
Считаю что такое решение задачи про тыкву будет правильнее, т.к. в условии указано что каждая буква может входить в слово несколько раз: k=0 for b1 in 'tukva': for b2 in 'tukva': for b3 in 'tukva': for b4 in 'tukva': for b5 in 'tukva': for b6 in 'tukva': rez=b1+b2+b3+b4+b5+b6 if rez[0] and rez[-1] in "tkv": if rez.count("a")==2 or rez.count("u")==2 or rez.count("a")+rez.count("u")==2: k+=1 print(k) Ответ 5190 Если я не прав, объясняете пожалуйста почему.
@exqplay4801
4 жыл бұрын
# if rez.count("a")==2 or rez.count("u")==2 or rez.count("a")+rez.count("u")==2: По этому условию подходит, например, слово "taauuv", которое не удовлетворяет требованию задачи про только 2 гласные в слове
Не могу придумать, как реализовать код задачи, с последним условием. Остановился на таком коде. Результат ######### #........ ######### #........ ######### #........ ######### #........ ######### for n in range(9): for m in range(9): if n % 2 == 0: print('#', end="") else: if n % 2 > 0 and m == 0: print('#', end="") else: print('.', end="") print()
import time from universe a = "programist" age = int(input("Введите свой возраст: ") life = time.years.years lessons = "28 Вложенные циклы Python" def learning_programming(lesson): brain = lesson if age
c примером тыква всё ясно, но у нас заранее известное количество символов в слове, а значит мы знаем сколько нужно циклов чтобы пройти все символы, а что делать если у нас слово подается инпутом на вход? как тогда к примеру перебрать все возможные анаграммы этого слова?
@Scoofy__doo
Жыл бұрын
длина строки len
@nataliyagedzyk3848
Жыл бұрын
Когда неизвестно количество символов, можно использовать цикл while, где i < len(s)
Есть ли какие-то способы ускорить циклы в циклах, где может потребоваться перебрать миллион миллионов
не понял выражение x//=10, объясните пожалуйста
@hardworker1977
Жыл бұрын
х = х//10 у вас просто краткая версия
Точки в отрезках: n, m = map(int,input().split()) s = [] for i in range(n): l, r = map(int,input().split()) for j in range(l, r + 1): if j not in s: s.append(j) print(m - len(s)) for i in range(1, m + 1): if i not in s: print(i, end=' ')
@alex_pure
2 жыл бұрын
Таблица умножения: n, x = map(int, input().split()) count = 0 for i in range(1, n + 1): if x%i == 0 and x//i
@alex_pure
2 жыл бұрын
Система уравнений: n, m = map(int, input().split()) count = 0 for a in range(n + 1): for b in range(m + 1): if a**2 + b == n and a + b**2 == m: count += 1 print(count)
@alex_pure
2 жыл бұрын
Лиса и змейка: n, m = map(int, input().split()) for i in range(n): for j in range(m): if i%4 == 1 and j != m - 1: print('.', end='') elif i%4 == 3 and j != 0: print('.', end='') else: print('#', end='') print() или так: n, m = map(int, input().split()) for i in range(n): if i%2 == 0: print('#' * m) elif i%4 == 3: print('#','.' * (m - 1), sep='') else: print('.' * (m - 1), '#', sep='')
@alex_pure
Жыл бұрын
Подарок от Лены: n = int(input()) for i in range(2 * n + 1): for j in range(2 * n + 1): for a in range(n + 1): if (j == n - i + a or j == i - n + a) and a
@alex_pure
Жыл бұрын
Волосатый бизнес: n = int(input()) c = list(map(int, input().split())) count, sum = 0, 0 for i in range(len(c)): count += 1 if c[i] == max(c[i:]): sum += c[i] * count count = 0 print(sum)
По Комбинаторике? формула Перестановки? 6! / ((6!-4!)4!) = 15
Подарок от Лены def foo(): """ В функции вводим число которое будет центром ромба. С помощью циклов делаем спад и возрастание от главной линии. Главная линия - строка где присутствует наше число. """ n = int(input('Введите цифру')) for i in range(n+1): # чтобы избавится от квадратных скобок добавляем * (распаковываем список) print(' '*(n-i), *list(range(i)), i, *list(range(i)[::-1]), end='') print() for i in list(range(n)[::-1]): print(' ' * (n - i), *list(range(i)), i, *list(range(i)[::-1]), end='') print() if __name__ =='__main__': foo()
3:46 почему выводится только 9 строк, если в i range 1-10, это 1-9, в j мы к i прибавляем еще 1, должно получиться 10, не понимаю логику выполнения...
@Vassilyev
2 жыл бұрын
Я тоже удивлён и сбит с толку.
@vladimir7759
2 жыл бұрын
@@Vassilyev я разобрался..) j будет начинаться с 2 и далее 3,4,5,6,7,8,9,10, итого 9 циклов, в визуализаторе это хорошо видно, в голове трудно переварить
@Vassilyev
2 жыл бұрын
@@vladimir7759 i в диапазоне (1,10) будет максимум 9кой и значит максимальное j в диапазоне (1,i+1) будет тоже 9кой. Причем эта логика подтверждается аналогичным примером 7:45
@vladimir7759
2 жыл бұрын
@@Vassilyev да точно, тупанул, j в диапазоне i + 1 значит что j включительно до i, и j так же будет 1-9, логика range во всей ее красе..
@Vassilyev
2 жыл бұрын
@egoroff_channel Артём, вы не подскажете, в чем подвох?
фак мой мозг
У меня вопрос по задаче - t u k v a: Почему было сказано, что нужно перебрать все значения для "первой, второй.... ...и шестой буквы"? Букв всего пять. То есть, циклов должно быть пять. Или что-то я не понял.
Есть кто половины темы вообще не понял?Только начинаю на Pythone программировать)
))))))
Задача "Змейка"🐍: #n = кол-во строк #m = кол-во ячеек #i = единица строки #j - единица ячейки n,m = map(int,input("Введите кол-во строк и кол-во ячеек в них: ").split()) while n%2==0 or n50: n,m = map(int,input("Введите кол-во строк и кол-во ячеек в них: ").split()) for i in range(1,n+1): for j in range(m): if i%4==0: j = ("#" + "."*(m-1)) elif i%2==0: j = ("."*(m-1) + "#") else: j = ("#"*m) print(j)
d
у меня это видео не открывается, пишет что случилась ошибка((
@iaroslavdavydiak6439
5 жыл бұрын
но скачать через savefromnet получилось www.sskzread.info/dash/bejne/pqeKybWwg8fZkZs.html
Как же круто и понятно объясняет автор! Пример: # Вводим число которое нужно перемножать. В переменной a_x на сколько умножать указанно от 1 до 20 a=int(input('Какое число будем умножать?: ')) print('Таблица умножения числа %s.'%(a)) for a_n in range(a,a+1): for a_x in range(1,21): print('%s) %s * %s = %s'%(a_x,a_n,a_x,a_n*a_x)) Результат кода: Какое число будем умножать?: 526 Таблица умножения числа 526. 1) 526 * 1 = 526 2) 526 * 2 = 1052 3) 526 * 3 = 1578 4) 526 * 4 = 2104 5) 526 * 5 = 2630 6) 526 * 6 = 3156 7) 526 * 7 = 3682 8) 526 * 8 = 4208 9) 526 * 9 = 4734 10) 526 * 10 = 5260 11) 526 * 11 = 5786 12) 526 * 12 = 6312 13) 526 * 13 = 6838 14) 526 * 14 = 7364 15) 526 * 15 = 7890 16) 526 * 16 = 8416 17) 526 * 17 = 8942 18) 526 * 18 = 9468 19) 526 * 19 = 9994 20) 526 * 20 = 10520
@nataliyagedzyk3848
8 ай бұрын
Одно число можно перемножать без вложенного цикла : a = int(input()) for i in range(1, 21): print(f'{a} * {i} = {a * i}', end = ' ') print()
такие вложенные циклы со строкой 'tukva' лучше избегать, они медленные, особенно заметно когда данных много
@egoroffchannel
5 жыл бұрын
да, я об этом видео говорил. Перебор всегда лучше избегать, но знать что такой способ есть тоже нужно)
@user-xt5hs1lz6f
5 жыл бұрын
@@egoroffchannel а если бы у нас был список букв(как а и ы в примере с тыквой) которых в слове должно быть 2 что можно сделать?
Не нравится мне это pycharm. Ошибки выдаёт и ноут тормозит. Буду по прошлой проге учится.
Смотрю в двойном замедлении, пишу из 2045 года
@egoroffchannel
4 жыл бұрын
слишком быстро говорю?)
@user-qs3mn1jg3x
4 жыл бұрын
egoroff_channel Очень быстро говоришь но потом когда самое сложное начинается начинаешь говорить в два раза быстрее.
@medovikov
2 жыл бұрын
Я тоже замедляю
автор конечно молодец, спору нет! хорошо объясняет, но примеры уж очень примитивны. это даже не уровень стажера, не говоря уже о junior
@egoroffchannel
3 жыл бұрын
а какие должны быть примеры для новичков?
Артём, у вас очень хорошие и полезные видеоуроки. Но зачастую Вы слишком много разжёвываете очевидные из ранее сказанного вещи, что раза в 2 растягивает продолжительность видео, а следовательно, и обучения по ним
заметил интересный момент, как мне кажется два одинаковых условия, но работают по разному z=[] for i in range(3): x1, x2 = map(int, input().split()) z.append(x1) and z.append(x2) print(z) z=[] for i in range(3): x1, x2 = map(int, input().split()) z.append(x1) z.append(x2) print(z) Кто знает почему так?
а у меня получилось 864 слова а скопировал точ в точ специально ( что за прикол n = 0 for b1 in 'tukwa': for b2 in 'tukwa': for b3 in 'tukwa': for b4 in 'tukwa': for b5 in 'tukwa': for b6 in 'tukwa': rex = b1+b2+b3+b4+b5+b6 if rex[0] in 'tkv' and rex[-1] in 'tkv': if rex.count('a') + rex.count('u') == 2: n += 1 print(n)
Вообще ничего не понял