🫵 Теория без практики - ничто, поэтому 👇 🐍 stepik.org/course/63085/promo 👉 специально для тебя создал бесплатный топовый курс по Python 👉 В нем тебя ждет: 📗 более 400 практических заданий на программирование 📗 более 250 тестовых заданий на проверку материала 📗 десятки часов видеоматерилов по теории 📗 видеоразборы решения заданий 📗 текстовые материалы по урокам, примеры кода 📗 доступ к закрытому чату с дружественной обстановкой 📗 сертификат в случае успешного прохождения курса
Дружище, у тебя очень классный контент. Надеюсь к тому моменту когда я пройду этот курс и ооп, ты запилишь что нибудь про топовые фреймворки, джанго и т.д. Спасибо, респект, йоу!!!
Вы великолепно объясняете! Прохожу курс в РАНХиГС, но Вы просто находка! Из всей кучи видео про Python вы объясняете лучше всех правда! Всё для супер одарённых как я! Спасибо
Таблицы и умножение: 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)
Видео доступно на патреоне www.patreon.com/posts/34560120 Стать спонсором ruclips.net/channel/UCMcC_43zGHttf9bY-xJOTwAjoin Стать патроном www.patreon.com/artem_egorov Разбор задач Волосатый бизнес ruclips.net/video/yZ41GVuHrSA/видео.html Подарок от Лены ruclips.net/video/YSqZmLr9uss/видео.html
Спасибо, очень доходчивое объяснение. Сам сейчас только начал изучение Python, наткнулся на эту тему в Лутце, немного не понял и нашел твое видео. В дальнейшем планирую ознакомиться со всем курсом.
Спасибо вам большое за ваш труд. Ваш канал лучший по качеству объяснение, а я уже много чего пересмотрела. Большая просьба рассказать про ОПП Python, с примерами и задачками, а то пока что не очень понятно. Спасибо!
Точки в отрезках: 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)
Лиса и змейка: 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)
задача огэ немножко изменил 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)
блин, как увидел подобную вложенную функцию, так сразу пришла в голову мысль, как написать код, который выводит таблицу умножения, получилось прикольно 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()
Здравствуйте, можете помочь: 1. Напишите вложенный двойной цикл от 1 до N. В теле цикла напишите единственный оператор int a = 1; N = 100. Оцените время выполнения программы. 2. Сделайте то же самое что в пункте 1, только для N = 20 000. 3. Сделайте то же самое что в пункте 1, только для N = 50 000.
Задача / змійка _________________ 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)
9:20. Всм не фиксируется? У тебя оно записано в строчку : первая переменная i, потом идет j. Как бы ты не менял , первый множитель все равно фиксируется, потому что для каждой переменной внешнего цикла исполняется внутренний цикл полностью
Точки в отрезках: 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=' ')
Система уравнений: 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)
Лиса и змейка: 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='')
Подарок от Лены: 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
Волосатый бизнес: 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)
Можно же вместо перемены местами циклов for просто изменить print. print(f'{ j } * { i } = { i * j } ', end=' ') или print(j, '*', i, '=', i*j, end=' '). Это проще, хотя я только начал изучать, и может чего-то не догоняю
Задача "Змейка"🐍: #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)
Подарок от Лены 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()
import time from universe a = "programist" age = int(input("Введите свой возраст: ") life = time.years.years lessons = "28 Вложенные циклы Python" def learning_programming(lesson): brain = lesson if age
Подарок от Лены, недоделанный на четверть. Рли голову сломал над концовкой. Если кто-то сможет закончить или знает более лаконичный способ, напишите плз 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()
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()
почему в примере на седьмой минуте у меня выводились по два символа, по одному, и в разных строчках. так же что означает символ прямоугольника с чертой из правого верхнего угла в левый нижний?
Подскажите, пожалуйста, а вложенные циклы for могут повторяться несколько раз? например выполняется первый цикл до определённого условия, например, i=10, после выполняется вложенный цикл и пи этом уменьшает i о исходного значения и потом снова повторяется первый цикл до нужного условия? Надеюсь понятно объяснил )
Считаю что такое решение задачи про тыкву будет правильнее, т.к. в условии указано что каждая буква может входить в слово несколько раз: 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 Если я не прав, объясняете пожалуйста почему.
# 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()
@@Vassilyev я разобрался..) j будет начинаться с 2 и далее 3,4,5,6,7,8,9,10, итого 9 циклов, в визуализаторе это хорошо видно, в голове трудно переварить
@@vladimir7759 i в диапазоне (1,10) будет максимум 9кой и значит максимальное j в диапазоне (1,i+1) будет тоже 9кой. Причем эта логика подтверждается аналогичным примером 7:45
c примером тыква всё ясно, но у нас заранее известное количество символов в слове, а значит мы знаем сколько нужно циклов чтобы пройти все символы, а что делать если у нас слово подается инпутом на вход? как тогда к примеру перебрать все возможные анаграммы этого слова?
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)
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()
У меня вопрос по задаче - t u k v a: Почему было сказано, что нужно перебрать все значения для "первой, второй.... ...и шестой буквы"? Букв всего пять. То есть, циклов должно быть пять. Или что-то я не понял.
Артём, у вас очень хорошие и полезные видеоуроки. Но зачастую Вы слишком много разжёвываете очевидные из ранее сказанного вещи, что раза в 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)
🫵 Теория без практики - ничто, поэтому 👇
🐍 stepik.org/course/63085/promo
👉 специально для тебя создал бесплатный топовый курс по Python
👉 В нем тебя ждет:
📗 более 400 практических заданий на программирование
📗 более 250 тестовых заданий на проверку материала
📗 десятки часов видеоматерилов по теории
📗 видеоразборы решения заданий
📗 текстовые материалы по урокам, примеры кода
📗 доступ к закрытому чату с дружественной обстановкой
📗 сертификат в случае успешного прохождения курса
Спасибо! Прохожу курс на stepik, задачи решаю, а мозг не осознает, что вообще происходит.
я думал я один такой)
Тогда надо думать о том, что не происходит, то есть идти от обратного
Я тоже прохожу курс на stepik рад что нас много)))
Я тоже не степике курс прохожу. Очень нравится.
Me too
Когда рандомный программист объяснил все нагляднее моего препода!) респект и подписка:)
не рандомный, а.....
import from random*
a = "programist"
time = yearsyearsyears
def explain_to_user(lesson):
if age
@@romanvishnyakov6835 kruto :d
Дружище, у тебя очень классный контент. Надеюсь к тому моменту когда я пройду этот курс и ооп, ты запилишь что нибудь про топовые фреймворки, джанго и т.д. Спасибо, респект, йоу!!!
Прошёл ООП?
Из всех встречавшихся объяснений это самое доходчивое. Спасибо!
Таблица умножения
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 вы объясняете лучше всех правда!
Всё для супер одарённых как я!
Спасибо
Спасибо, спасибо, спасибо!!! Очень доходчиво.
Таблицы и умножение:
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)
Видео доступно на патреоне www.patreon.com/posts/34560120
Стать спонсором
ruclips.net/channel/UCMcC_43zGHttf9bY-xJOTwAjoin
Стать патроном
www.patreon.com/artem_egorov
Разбор задач
Волосатый бизнес ruclips.net/video/yZ41GVuHrSA/видео.html
Подарок от Лены ruclips.net/video/YSqZmLr9uss/видео.html
Спасибо! Просто и понятно! Очень помогли с прямоугольником из звездочек👍😅
с каждым уроком все меньше людей, видимо поняли, что это не халява на которой можно много заработать
Да уж люди считающие программирование легким заработком очень сильно ошибаются
Спасибо, очень доходчивое объяснение. Сам сейчас только начал изучение Python, наткнулся на эту тему в Лутце, немного не понял и нашел твое видео. В дальнейшем планирую ознакомиться со всем курсом.
Привет, как успехи изучения? Сам занимаюсь 1,5 месяца, вот решил поинтересоваться.
@@СергейВасильев-з2ц9у Привет, а у тебя как успехи?))
@@rostikniks походу они все становятся успешными и уходят с ютуба безвозвратно))
Наконец-то я понял как они работают))) за 6 минут этого ролика_)) сейчас дальше досмотрю, может еще понятнее станет)) задача на степике решена!!!!))
Огромное спасибо за видео. Хоть ты очень быстро объясняешь из-за этого приходиться смотреть несколько раз. Но видео топовые !!!
Лучшее объяснение. Спасибо, Артем.
Артём, благодарю! 👍🤝🔥🔥🔥
Вы гений! Спасибо большое
Подача прекрасная, но сложно запоминать. Спасибо за Ваш труд!
Спасибо вам большое за ваш труд. Ваш канал лучший по качеству объяснение, а я уже много чего пересмотрела. Большая просьба рассказать про ОПП Python, с примерами и задачками, а то пока что не очень понятно. Спасибо!
Точки в отрезках:
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)
Лиса и змейка:
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)
Спасибо, наконец-то понял.
Спасибо, по другому стала смотреть на питон )))
задача огэ немножко изменил
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)
Можно ли при помощи написания программы угадать, например слово из 5 букв, не только смотря все варианты?
блин, как увидел подобную вложенную функцию, так сразу пришла в голову мысль, как написать код, который выводит таблицу умножения, получилось прикольно
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()
Круто, спасибо! А задачка из ЕГЭ по информатике, какого уровня сложности была?
Здравствуйте,
можете помочь:
1. Напишите вложенный двойной цикл от 1 до N.
В теле цикла напишите единственный оператор int a = 1; N = 100.
Оцените время выполнения программы.
2. Сделайте то же самое что в пункте 1, только для N = 20 000.
3. Сделайте то же самое что в пункте 1, только для N = 50 000.
комментарий в поддержку канала :)
Задача / змійка
_________________
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)
ты лучший
спасибо)
Спасибо за разъяснение)) Помогло в моём случае
не за что)
благодарю
Какой прикольный пайчарм был 5 лет назад
9:20. Всм не фиксируется? У тебя оно записано в строчку : первая переменная i, потом идет j. Как бы ты не менял , первый множитель все равно фиксируется, потому что для каждой переменной внешнего цикла исполняется внутренний цикл полностью
Точки в отрезках:
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=' ')
Таблица умножения:
n, x = map(int, input().split())
count = 0
for i in range(1, n + 1):
if x%i == 0 and x//i
Система уравнений:
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)
Лиса и змейка:
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='')
Подарок от Лены:
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
Волосатый бизнес:
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)
Так лучше таблица умножения выглядит
for i in range(1, 10):
for u in range(1, 11):
p = i*u
if p
Можно же вместо перемены местами циклов for просто изменить print.
print(f'{ j } * { i } = { i * j } ', end=' ') или print(j, '*', i, '=', i*j, end=' '). Это проще, хотя я только начал изучать, и может чего-то не догоняю
УМНИЦА!
Задача "Змейка"🐍:
#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)
Как же круто и понятно объясняет автор!
Пример:
# Вводим число которое нужно перемножать. В переменной 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
Одно число можно перемножать без вложенного цикла :
a = int(input())
for i in range(1, 21):
print(f'{a} * {i} = {a * i}', end = ' ')
print()
Достойно уважения
Благодарю
Подарок от Лены
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()
import time from universe
a = "programist"
age = int(input("Введите свой возраст: ")
life = time.years.years
lessons = "28 Вложенные циклы Python"
def learning_programming(lesson):
brain = lesson
if age
почему в задании из егэ, в слове "tukva" мы используем 6 букв в цикле, если слово состоит из 5 букв
Потому что в задании просят узнать, сколько 6-буквенных слов можно составить из 5-ти букв
Подарок от Лены, недоделанный на четверть.
Рли голову сломал над концовкой. Если кто-то сможет закончить или знает более лаконичный способ, напишите плз
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()
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()
почему в примере на седьмой минуте у меня выводились по два символа, по одному, и в разных строчках. так же что означает символ прямоугольника с чертой из правого верхнего угла в левый нижний?
Потому что вложенный цикл забирает управление на себя, когда заканчивается главный цикл
Комментарии для поддержки канала 🖐️😉
Подскажите, пожалуйста, а вложенные циклы for могут повторяться несколько раз? например выполняется первый цикл до определённого условия, например, i=10, после выполняется вложенный цикл и пи этом уменьшает i о исходного значения и потом снова повторяется первый цикл до нужного условия? Надеюсь понятно объяснил )
Считаю что такое решение задачи про тыкву будет правильнее, т.к. в условии указано что каждая буква может входить в слово несколько раз:
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
Если я не прав, объясняете пожалуйста почему.
# 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()
жесть,не могу решить ни одну задачу уже несколько уроков подряд
Поставил бы 100 лайков, но тут можно только один.
3:46 почему выводится только 9 строк, если в i range 1-10, это 1-9, в j мы к i прибавляем еще 1, должно получиться 10, не понимаю логику выполнения...
Я тоже удивлён и сбит с толку.
@@Vassilyev я разобрался..) j будет начинаться с 2 и далее 3,4,5,6,7,8,9,10, итого 9 циклов, в визуализаторе это хорошо видно, в голове трудно переварить
@@vladimir7759 i в диапазоне (1,10) будет максимум 9кой и значит максимальное j в диапазоне (1,i+1) будет тоже 9кой.
Причем эта логика подтверждается аналогичным примером 7:45
@@Vassilyev да точно, тупанул, j в диапазоне i + 1 значит что j включительно до i, и j так же будет 1-9, логика range во всей ее красе..
@egoroff_channel Артём, вы не подскажете, в чем подвох?
👏👍
c примером тыква всё ясно, но у нас заранее известное количество символов в слове, а значит мы знаем сколько нужно циклов чтобы пройти все символы, а что делать если у нас слово подается инпутом на вход? как тогда к примеру перебрать все возможные анаграммы этого слова?
длина строки len
Когда неизвестно количество символов, можно использовать цикл while, где i < len(s)
Как ускорить вложенные циклы? Есть же какие-то для этого библиотеки на Си
Избавиться от них)
Не могу понять, почему в условии if rez[0] in 'tkv' and rez[-1] in 'tkv': [0] это первая буква, а [-1] последняя откуда эта последовательность?
Cчет начинается с 0, поэтому первая буква имеет индекс 0. Вы не знаете, сколько букв в слове, но последняя всегда первая с конца, поэтому индекс -1. Минус показывает, что счет идет с конца.
По Комбинаторике? формула Перестановки? 6! / ((6!-4!)4!) = 15
не понял выражение x//=10, объясните пожалуйста
х = х//10
у вас просто краткая версия
Привет, отличное видео!
Возможно ли решение задачи # 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)
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()
Есть ли какие-то способы ускорить циклы в циклах, где может потребоваться перебрать миллион миллионов
Есть кто половины темы вообще не понял?Только начинаю на Pythone программировать)
У меня вопрос по задаче - t u k v a:
Почему было сказано, что нужно перебрать все значения для "первой, второй.... ...и шестой буквы"? Букв всего пять. То есть, циклов должно быть пять. Или что-то я не понял.
Не нравится мне это pycharm. Ошибки выдаёт и ноут тормозит. Буду по прошлой проге учится.
Артём, у вас очень хорошие и полезные видеоуроки. Но зачастую Вы слишком много разжёвываете очевидные из ранее сказанного вещи, что раза в 2 растягивает продолжительность видео, а следовательно, и обучения по ним
у меня это видео не открывается, пишет что случилась ошибка((
но скачать через savefromnet получилось www.ssruclips.net/video/tsVgSwSdsa8/видео.html
фак мой мозг
Вообще ничего не понял
заметил интересный момент, как мне кажется два одинаковых условия, но работают по разному
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)
Кто знает почему так?
такие вложенные циклы со строкой 'tukva' лучше избегать, они медленные, особенно заметно когда данных много
да, я об этом видео говорил. Перебор всегда лучше избегать, но знать что такой способ есть тоже нужно)
@@egoroffchannel а если бы у нас был список букв(как а и ы в примере с тыквой) которых в слове должно быть 2 что можно сделать?
Смотрю в двойном замедлении, пишу из 2045 года
слишком быстро говорю?)
egoroff_channel Очень быстро говоришь но потом когда самое сложное начинается начинаешь говорить в два раза быстрее.
Я тоже замедляю
а у меня получилось 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)
автор конечно молодец, спору нет! хорошо объясняет, но примеры уж очень примитивны. это даже не уровень стажера, не говоря уже о junior
а какие должны быть примеры для новичков?
d
))))))