Python для начинающих. Урок 10: Многомерные массивы.

  Рет қаралды 85,444

alishev

alishev

4 жыл бұрын

ВСЕ ВИДЕО ПО PYTHON: • Python для начинающих
МОЙ КУРС ПО GIT: www.udemy.com/course/git-alis...
ДЛЯ ЖИТЕЛЕЙ РФ: swiftbook.org/courses/586
Реклама и сотрудничество: alishev.neil@gmail.com

Пікірлер: 248
@alishevN
@alishevN 4 жыл бұрын
1) Плейлист этого курса вот здесь: kzfaq.info/sun/PLAma_mKffTOSY12JZS6l8lxKCpooPVcrn 2) Не обязательно использовать Jupyter Notebook. Можно использовать любую другую IDE, например PyCharm - www.jetbrains.com/ru-ru/pycharm/ Telegram: t.me/alishev_g Курс по GIT: www.udemy.com/course/git-alishev/?referralCode=71994763964B8E2E6A4E
@user-lg2ri6dz5u
@user-lg2ri6dz5u 2 жыл бұрын
Привет, если увидишь этот сообщение, прокомментируй, пожалуйста, мое решение: def mirrow_arr(orig_arr): for el in orig_arr: for i in range(len(orig_arr) // 2): el[i], el[-1-i] = el[-1-i], el[i] return orig_arr
@Robozveria
@Robozveria 4 жыл бұрын
Ехал список через список, видит список - список список. Сунул список список в список: список список список список.
@user-kr2bf6tn1w
@user-kr2bf6tn1w 4 жыл бұрын
Я так долго ждал курсы по питону , что стал джуном php )
@iz_90x
@iz_90x 4 жыл бұрын
ахахаха)))
@iz_90x
@iz_90x 4 жыл бұрын
@Leon Bezbojnik что за бред
@username864
@username864 4 жыл бұрын
Хочу выразить вам огромную, просто ОГРОМНУЮ благодарность за то, что вы всё это бесплатно сделали для и нас. Очень доходчиво. Пару месяцев назад, когда я только залез в IT, мне, что б понять и полностью освоить тему нужна была неделя(и то, если тема эта не сложная), и поэтому я даже не мог понять то, что вы объясняете, хотя сейчас, когда я почти закончил курс Питон для новичков, то смотрю новый материал у вас для себя с огромным кайфом !) Спасибо вам !!!
@marinaagafonova2573
@marinaagafonova2573 4 жыл бұрын
Задачи хорошие, и бОльшая часть материала для их решения и правда была дана ранее, но тем не менее реальным новичкам решить их самостоятельно нереально. Сразу оговорюсь, что помощь гугла - уже априори не является "самостоятельным решением", на мой взгляд. Может я просто тупая такая и в моей голове что то не укладывается, но мне кажется вы не даете полной картины. Вы отлично объясняете, все понятно пока вы говорите. Но когда дело доходит до задач, то оказывается, что знаний не достаточно. Просто потому, что нет полной картины в голове новичка. Вот лично мне казалось в предыдущих уроках, что я полностью поняла синтаксис и смысл функции append. Я запомнила, что добавить к списку элемент это a.append(0), например. Но массив это другая структура, и синтаксис немного иной (с точки зрения новичка). Для меня a.append(0) (добавление элемента к обычному списку) и arr.append(inter_arr) (добавление целой строки к массиву) это разные выражения. Конечно посидев пару минут глядя в это выражение и осознав его, ты понимаешь, что "да, это ведь логично". Но посмотрев ваше решение я для себя поняла, что не додумалась бы до него наверное и через неделю. Во второй задаче выражение (len(arr) // 2) - откуда вообще взялось? Как до этого мог додуматься человек, впервые столкнувшийся с языком программирования? Это абсолютно новая возможность языка, о которой не упоминалось ранее ни в коем виде. Понятно, что вы пытаетесь приучать людей думать, это круто. Но, мне кажется, что надо шире показывать возможности новых функций. Показывать, что "вот со строками это выглядит так, а с массивами вот так, но о массивах поговорим позже". И тогда дойдя до массива, у новичка в голове будет инфа, что вот когда то вы об этом упоминали, можно посмотреть в более раннем уроке и применить на практике. Ну или хотя бы давать какие то подсказки о том, какую информацию можно поискать самостоятельно, чтобы дойти до решения. Новички понятия не имеют о том, какими возможностями обладает язык. К примеру, мне не понятно почему нет встроенной функции печати массива в виде таблицы без запятых и скобок, почему такую функцию надо писать самому? Это же совершенно очевидная и базовая функция, такая же как обычный print. И я полагаю если бы она существовала, вы бы ее показали. И так далее, в общем) Решения ваших задач часто подразумевают существование у новичка некой интуиции на наличие тех или иных возможностей языка, но у нас ее нет :) В общем, надеюсь мой посыл правильно понят и, возможно, поможет вам в будущем строить свои уроки еще более доступно для совсем зеленых)
@alishevN
@alishevN 4 жыл бұрын
Спасибо за обратную связь
@derekcollins9739
@derekcollins9739 4 жыл бұрын
Согласен. Решение задач действительно требует знаний приёмов программирования, которые в предыдущих видео не объяснялись. Я тоже не смог решить сам.
@oleggg
@oleggg 3 жыл бұрын
Поддерживаю. В какой-то момент я перестал пытаться решать задачи самостоятельно потому как был уверен, что в решениях окажется материал который не проходили. И практически всегда так и получалось. Автор видимо имел в виду совсем не тех начинающих когда делал этот курс. Видимо имелось в виду начинающих конкретно в Python, а не начинающих в программировании.
@pozzitifosha8121
@pozzitifosha8121 3 жыл бұрын
вы мне очень помогаете готовиться к урокам информатики,спасибо большое!мастер своего дела.
@vikkat1
@vikkat1 3 жыл бұрын
rows = [] columns = [] def matrix(n,m): i = 0 j = 0 while i < m: rows.append(columns) i += 1 while j < n: columns.append(0) j += 1 for a in rows: for b in a: print(b, end=' ') print() matrix(10,10)
@NeoWaIker
@NeoWaIker 3 жыл бұрын
555 лайков под этим видео, круто. Очень хорошо объясняешь. Долго в инете искал тутор по двумерным массивам, нигде нормально не объясняли. Спасибо, удачи!
@HIPHOPALIVE
@HIPHOPALIVE 4 жыл бұрын
Спасибо за твои старание. Очень интересно. Ждем продолжения. С наступающим тебя бро
@alishevN
@alishevN 4 жыл бұрын
Спасибо!
@betsxxl7297
@betsxxl7297 4 жыл бұрын
@@alishevN А когда же продолжение?
@andreykuprin7310
@andreykuprin7310 Жыл бұрын
Решение на Задание №1 def create_2d_arr(n,m): my_arr = [] my_arr = [[0] * m for i in range(n)] return my_arr Решение на Задание №2 def mirror_arr(mas): for i in mas: for j in range(len(i)//2): i[j],i[len(i)-j-1] = i[len(i)-j-1], i[j] return mas Огромная благодарность автору канала за труды!
@qazaqbalasy916
@qazaqbalasy916 3 жыл бұрын
Жирнейший like и подписка. Для меня лучший видеурок по многомерным массивам и заодно циклам.
@phoenixegoist4123
@phoenixegoist4123 2 жыл бұрын
спасибо большое, учусь, пересматриваю по несколько раз, всё доступно и понятно функцию с разворотом по фану сделал) def side_reflect(some_list): '''функция для чтения списка в обратном порядке''' some_list = some_list[::-1] return some_list def print_side_reflect_matrix(some_array): '''функция для отзеркаливания матрицы по вертикали''' for array in some_array: array = side_reflect(array) for element in array: print(element, end=' ') print() return some_array
@OleksiiZhuravlov
@OleksiiZhuravlov 3 жыл бұрын
Спасибо за уроки! Успехов автору и учащимся! ;)
@vladimirkulakov6126
@vladimirkulakov6126 3 жыл бұрын
Супер! Первая задачка и самому пришла на ум пока слушал урок)
@hlibyeletskyi2539
@hlibyeletskyi2539 2 жыл бұрын
Я последнюю задачу вот так решил: def reverse_arr(x): for i in range(len(x)): x[i].sort(reverse=True) return matrix_print2(x) matrix_print2 (x) - функция из начала этого же урока для вывода шахматкой. все работает также. Вариант с решением через целочисленное деление не придумал бы и за неделю. А метод .sort запомнил просто когда смотрел в документации к питону основные фичи списков. Спасибо за урок!
@nadyamoscow2461
@nadyamoscow2461 3 жыл бұрын
Спасибо за отличный урок! Долго мучилась, но идея у меня была более простая - распечатать вложенные списки в обратном порядке. Признаюсь честно, что скомпилировать мысль получилось только после просмотра вашего решения. di = [[1, 2, 8, 9], [4, 8, 6, 5], [7, 8, 9, 3]] # исходный список def mass_di(m): # вложенная функция return m[::-1] def my_mirr(di): # рабочая функция for m in di: mass_di(m) pr_m(di) # вывод исходной матрицы в печать print() # пробел для красоты my_mirr(di) # запускаем функцию pr_m(di) # распечатаем, что вышло в итоге
@user-xi1du6rh7r
@user-xi1du6rh7r 4 жыл бұрын
Спасибо за уроки, очень понятно объясняешь ;)
@onegamer6429
@onegamer6429 3 жыл бұрын
arr_2d = [['Спасибо'], [alishev], [за помощь!]] def print_matrix(arr_2d): for arr in arr_2d: for el in arr: print(el, end = ' ') print() print_matrix(arr_2d) ________________________________________ Вывод: Спасибо alishev за помощь!
@user-iz5mn9jm8j
@user-iz5mn9jm8j 3 жыл бұрын
arr_2d = [['Спасибо'], ['alishev'], ['за помощь!']] def print_matrix(arr_2d): for arr in arr_2d: for el in arr: print(el, end = ' ') print() print_matrix(arr_2d)
@Flaxet
@Flaxet Жыл бұрын
Спасибо за ваш труд. Все очень понятно на простом Русском языке. Без лишней воды, туману и слов паразитов "эээээ", "нууууу", подковы гну и т. д. Слава Богу я что то начинаю понимать. Вы молодец!!! Респект!!! 🎉🎉🎉 делайте свое дело никого не слушайте. Решение одной и той же задачи может быть разным способом. Цель достигнута, код рабочий в чем проблема???
@alisaholainen6334
@alisaholainen6334 4 жыл бұрын
Наиль, вам надо периодически давать частные уроки=) У вас хорошо получается ведь. Спасибо за этот урок.
@user-dz1uq5sd5b
@user-dz1uq5sd5b 3 жыл бұрын
Последнюю задачу сначала решил так: def mirror_swap(array2d): for arr in array2d: arr.reverse() return array2d Потом решил, что такое решение не подходит для качественного усвоения материала. Подумал... и пришел к такому решению: def mirror_swap(array2d): for arr in array2d: for el in range(len(arr) // 2): arr[el], arr[-1-el] = arr[-1-el], arr[el] return array2d Каково было мое удивление, когда я впервые оказался близок к вашему алгоритму! Только я несколько иначе вычисляю индекс второго элемента в паре. Тут я вспомнил ваш урок по спискам, где вы говорили, что запись list[-1] соответствует последнему элементу в списке! Огромное вам спасибо!!!!!!!!!
@ilnur_nambavan
@ilnur_nambavan 3 жыл бұрын
Задача 2: def mirror(arr): for g in range(len(arr)): for i in range(len(arr[0]) // 2): arr[g][i], arr[g][-i - 1] = arr[g][-i - 1], arr[g][i] return arr ПС. Спасибо за классные уроки и задачки!
@user-mt9vn3pr9o
@user-mt9vn3pr9o 3 жыл бұрын
Первое задание сделал, создав сначала список из нулей, а потом добавляя его в основной. Второе, кстати, без создания вспомогательной функции. Создал переменную для перебора списка с конца. №1 def create_2d_arr (m,n): list_m = [] list_n = [] for k1 in range (n): list_n.append (0) # создаём вложенный список, добавляя нули for k2 in range (m): list_m.append (list_n) # добавляем вложенный список в основной нужное количество раз return (list_m) №2 def create_1 (m1, n1): # создаём матрицу из m1 строк и n1 столбцов cr1 = 0 arr_1 = [] for i1 in range (m1): arr_2 = [] for j1 in range (n1): arr_2.append (cr1) cr1 += 1 arr_1.append (arr_2) return (arr_1) # Это, по сути, оформление условия задачи. Функция создаёт матрицы нужных размеров с возрастающими по порядку числами (последнее для упрощения восприятия) # Теперь решение: def create_2 (m1, n1): # зеркально отражаем слева направо матрицу, созданную в create_1 arr_1 = create_1 (m1, n1) for i2 in range (m1): t2 = -1 # создали переменную, чтобы идти по спискам в обратном направлении for j2 in range (n1): if j2*2 < len (arr_1[i2]): # условие, чтобы не перейти середину матрицы и не отразить её обратно arr_1 [i2][j2], arr_1 [i2][t2] = arr_1 [i2][t2], arr_1 [i2][j2] # обмен элементами t2 -= 1 return (arr_1) # Результат # Функцию print_matrix не вывожу - она взята из урока m1, n1 = 3, 6 print_matrix (create_1 (m1,n1)) print () print_matrix (create_2 (m1,n1)) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 5 4 3 2 1 0 11 10 9 8 7 6 17 16 15 14 13 12 # Работает при различных размерах матрицы. Спасибо за урок!
@Dr._S_Brule
@Dr._S_Brule Жыл бұрын
Спасибо, после урока, получилось немного лучше уложить в голове матрицы и их обход!
@user-cm5mk7er6k
@user-cm5mk7er6k 3 ай бұрын
Возможно где-то в комментах уже есть: 2ая задача проще: def reverse_list(arr): for item in arr: item.reverse() # здесь arr - двумерный массив, соответственно item в цикле - каждый подмассив, который встроенной функцией переворачиваем
@jack5279
@jack5279 4 жыл бұрын
Ура! Первое задание, из курса, которое сам сделал. Поставил на паузу и сделал отзеркаливание массива. Так же использовал целочисленное деление //. Спасибо и от меня за уроки.
@hummerneadekvat1832
@hummerneadekvat1832 4 жыл бұрын
я за 4 дня до экза сделал первое задание по питону)))
@jack5279
@jack5279 4 жыл бұрын
@@hummerneadekvat1832 я для себя изучаю. Так еще сложней )
@Last0n3
@Last0n3 3 жыл бұрын
Классно обьясняешь. Очкень часто помогаешь в школе
@alexvernua
@alexvernua 3 жыл бұрын
комментарий просто для рейтинга) комбинация двух задач - сначала создается список с заданными размерами, а потом он отзеркаливается def createarray (x,y): zeroarray=[] for t in range (x): tempo=[] for length in range(y): tempo.append(length) zeroarray.append(tempo) return zeroarray arr1=createarray(5,5) print("source matrix") for m in range(len(arr1)): print (arr1[m]) for i in range(len(arr1)): for j in range(len(arr1)//2): temp=len(arr1)-j-1 arr1[i][j],arr1[i][temp]=arr1[i][temp],arr1[i][j] print("after mirroring") for m in range(len(arr1)): print (arr1[m])
@megamaanpython1143
@megamaanpython1143 3 жыл бұрын
Уроки- огонь!!! Мои три варианта решения задачи по зеркальному отображению матрицы(создано по принципу скопировать- вставить, все работает): #Вариант 1 #Решение задачи через функцию reverse mirrorList=[[1, 2, 3], [4, 5, 6], [7, 8,9] ] def mirror(List): for i in range(len(List)): a= List[i] a.reverse() List[i]=a return List mirror(mirrorList) #Вариант 2 #решение задание через создание доп списка вручную mirrorList1=[[1, 2, 3], [4, 5, 6], [7, 8,9] ] for i in range(len(mirrorList1)): tempList=[] j=-1 while j>=-len(mirrorList1[i]): # переворачиваем список tempList.append(mirrorList1[i][j]) j-=1 mirrorList1[i]=tempList print(mirrorList1) #Вариант 3 # решение без доп списков и вложенных массивов mirrorList1=[[1, 2, 3, 5], [4, 5, 6], [7, 8,9] ] for i in mirrorList1: last=-1 for j in range(round(len(i)/2)): temp=i[last] i[last], i[j]= i[j], i[last] last-=1 print(mirrorList1)
@Kurt21.89
@Kurt21.89 2 жыл бұрын
Просто и доходчиво супер
@vladimirefimov3672
@vladimirefimov3672 4 жыл бұрын
Хорошие курсы. Но для бегиннеров тяжело. Это скажем так для настойчивых бегиннеров) А так да, пили дальше! Единственно аудитория узкая. Лайк и прочее) и зачем подфункция если работает прямой обмен a, b = b, a?
@Daredee000
@Daredee000 4 жыл бұрын
кому ж нынче нужны ненастойчивые бегиннеры? :)
@sergeyfomichev736
@sergeyfomichev736 3 жыл бұрын
ох по поводу бегиннеров я с тобой согласен. ибо же порой урок выглядит (особенно в части, где задачи), как преподаватель просто кодит, а мы смотрим. каждый символ в коде имеет принципиальное значение, и предполагается, что ученики, однажды узнав, что значит тот или иной символ, безошибочно начнут его применять, и нет никакой надобности проговаривать подробно, что, откуда и зачем взялось. возможно так и должно быть, не знаю. автору курса огромное спасибо!
@maxwellhawk
@maxwellhawk 3 жыл бұрын
да тут и для не бегинеров фиг поймешь. Мол надо было догадаться про аперант //. Была у меня мысля делить на 2 в начале, но потом ушел в другую сторону, и в общем нифига не получилось. Я думаю надо тчательно проговарить все операторы, их аргументы, методы применения, чтобы при появившеся задачи можно было уже использовать имеющийся опыт, а не сидеть пол часа пытаться втыкнуть, а оказывается мы там в уроках чет пропустили и без этого нифига не получится. Но то что есть задачи, это плюс. Без практики и самостоятельно работы, знания быстро выветриваются
@ArGoSpks
@ArGoSpks 2 жыл бұрын
Да, тяжко в этом плане, я раньше не кодил никогда, теорию понимаю нормально, дают задачу, а у меня просто мозг не работает в таком ключе и я просто не могу прийти к решению через всякие другие ходы как в видео. Но ничего начну с самых легких задач, чтобы начать понимать как все работает)
@zombich
@zombich 2 жыл бұрын
@@ArGoSpks бро, это у всех так, походу
@Kate131290
@Kate131290 2 жыл бұрын
добрый вечер, подскажите, а как создать 2д массив, при этом пользователь сам вводит элементы строки и столбца?
@Foontiq
@Foontiq 4 жыл бұрын
Хорошо объясняешь. Когда про классы видос запилишь?
@pate2418
@pate2418 2 жыл бұрын
end = ' ' в функции print не работает, подскажите почему, и как там это можно реализовать, спасибо.
@Susan-en9he
@Susan-en9he 2 жыл бұрын
Скажите, а как сделать, чтобы элементы матрицы вводились с клавиатуры?
@user-wr7tx5eq2t
@user-wr7tx5eq2t 3 жыл бұрын
Мне кажется второе задание легче первого p.s Они оба простые. Спасибо тебе, ты очень хорошо объясняешь, даже слишком для бесплатного курса на KZfaq. мой вариант решения 2 задачи (у меня функция только одна): def perevorot(big_mass): for mass in big_mass: for i in range(len(mass)//2): mass[i], mass[-i - 1] = mass[-i - 1], mass[i]
@MaxllmuS
@MaxllmuS 3 жыл бұрын
Сам примерно так же решил. В начале Наиль научил пользоваться отрицательными индексами с конца массива и обучил способу мгновенного свапа 2х и более значений средствами питона. И через пару укроков делает те же операции, но более сложным способом. Могу объяснить это только одним, между уроками прошло много времени и успел забыть какие фишки питона уже рассказал, а какие еще нет. А у нас между этими уроками разница несколько дней.
@huhnak
@huhnak 3 жыл бұрын
Для создания массива нулей, можно использовать [0]*5, а для двумерного [[0]*10]*5
@artyshock569
@artyshock569 2 жыл бұрын
слыш, купи!
@---ul5qc
@---ul5qc 4 жыл бұрын
спасибо тебе огромное за твои уроки !!!! ТЫ ЛУЧШИЙ !!! жду с нетерпением новых уроков по питону!!! Так же очень интересно было бы посмотреть серию видео: 1. Python+PyGame для начинающих, 2. Python + OpenGl 3. Python + Kivy смотрел бы с удовольствием!!!!
@user-sz6cv1bo1l
@user-sz6cv1bo1l 3 жыл бұрын
#сначала создал 2-х мерный массив, потом стал его "печатать ")00)) def create_2d (x,n): a = 0 b = 0 a1 = [] b1 = [] while a < n : a1.append(0) a +=1 while b < x: b1.append(a1) b +=1 for i in range(len(b1)): for j in range(len(b1[i])): print (b1[i][j],end = " ") print () create_2d(10,5)
@weneryagawarow5133
@weneryagawarow5133 3 жыл бұрын
Огромное спасибо, что так понятно объясняешь, другие так не могут. С нетерпением жду следующих уроков. Хочется что бы они выходили как можно чаще. С первой зарплаты программиста задоначу 5 % . Только не забудь добавить кнопку спонсировать
@cryptobubbles3261
@cryptobubbles3261 2 жыл бұрын
Как успехи? Устроился программистом?
@Dark_._Knight
@Dark_._Knight 7 ай бұрын
@@cryptobubbles3261 Забросил наверное он
@ijustseen-sth
@ijustseen-sth 2 жыл бұрын
Я не очень понял, а что за print_matrix?
@suprun1982
@suprun1982 4 жыл бұрын
Как тебе такой вариант решения? def print_2d(arr): for i in arr: k = i[::-1] for j in k: print(j, end=' ') print() print_2d(arr_2d)
@betsxxl7297
@betsxxl7297 4 жыл бұрын
Будто талант обяснять, чесное слововсе понятно!
@derekcollins9739
@derekcollins9739 4 жыл бұрын
А мне непонятно. :(
@user-wc1xm5rl7k
@user-wc1xm5rl7k 3 жыл бұрын
@@derekcollins9739 мне уже какой урок не понятно
@user-cm6gb9rk2t
@user-cm6gb9rk2t 2 жыл бұрын
@@derekcollins9739 Пипец, я не один такой
@Strannick89
@Strannick89 4 жыл бұрын
Спасибо за урок. нравится формат очень. Я так понимаю - следующий урок не скоро? Пока можно по другим курсам пройтись)
@jekiangel6
@jekiangel6 4 жыл бұрын
всё очен понятно и приятно слушать. Огромное спасибо вам за ваш труд ) very big like
@user-sy2gx5zg8b
@user-sy2gx5zg8b 4 жыл бұрын
Народ ! Если что не поняли, можете посмотреть лекции Тимофея Хирьянова : Практика программирования на Питон 3. Сам начинал учить Питон там. Всего 14 лекций. Обязательно посмотреть, хотя б первую половину. Хоть 7, 8 лекций. Или просто спросите у Наиля, он с радостью ответит !
@user-sy2gx5zg8b
@user-sy2gx5zg8b 4 жыл бұрын
Советую ! Ну а что там не понял подчерпнул у Наиля. Мне лично Наиля легче понимать, ведь он расжевал и в рот положил, а там физтех. Но, все равно там все предельно понятно. И то, что я там некоторые вещи не понимал не значит, что там все непонятно или я туп. Мне 20 марта только 13 стукнуло. И, к тому же, меня тянет к автомобилям. А вобще, то по точным наукам я - спец в классе. Даже по городу участвовал с матеши и 3 место занял. Ну и вобще, с математики( алгебра, геометрия) во всяких олимпиадах побеждал ( например, кенгуру). Нет, я не хвалюсь, да и не суть. Просто хочу сказать, что может всякий и, что я не все понимаю, ведь не совсем в теме, но и не тупой. Короче, удачного обучения и не забудьте поддержать Наиля лайкосом, а лучше - и подпиской !
@user-xd4qz7dn9p
@user-xd4qz7dn9p 11 ай бұрын
Добрый день! подскажите пожалуйста, не понимаю один момент. почему когда я пишу код с нуля, то при выводе "print_matrix..." выдает ошибку. def create_2d_arr(m, n): arr_2d = [] for i in range(m): internal_arr = [] for j in range(n): internal_arr.append(0) arr_2d.append(internal_arr) return arr_2d arr_5_10 = create_2d_arr(5, 10) print_matrix(arr_5_10) --------------------------------------------------------------------------- NameError Traceback (most recent call last) Input In [3], in () ----> 1 print_matrix(arr_5_10) NameError: name 'print_matrix' is not defined
@10tabs35
@10tabs35 4 жыл бұрын
Сделал вторую задачу с циклом for и list.reverse(). Но Ваше решение просто гениально
@lukandrate9866
@lukandrate9866 3 жыл бұрын
С этой функцией всё облегчается
@user-sv3sd9df2l
@user-sv3sd9df2l 4 жыл бұрын
Годно, давай новый урок) Круто получается объяснять и понятно
@yamataa
@yamataa 3 жыл бұрын
задачи реально заставляют думать я пытался найти подсказки в интернете по поводу второй задачи и сделал def ren_matrix(l): return l[::-1] print(ren_matrix(text)) в итоге всетаки неправильно ) но зато подумал) хорошо объясняешь спасибо за уроки!
@talgatb.4030
@talgatb.4030 2 жыл бұрын
Почему у меня в VS code решение 1 задачи выдает только одну строку из 10 нулей. (переписал все как в ответе)
@tohaaleksandrov5670
@tohaaleksandrov5670 3 жыл бұрын
вышло как-то так, зато работает def vunc(any_sheet): save_list = [] for i in any_sheet: list3 = [] for j in i[::-1]: list3.append(j) save_list.append(list3) def func(a): for l in range(len(save_list)): for t in range(len(save_list[l])): print(save_list[l][t], end = ' ') print() func(save_list)
@user-zw1bu1xr5e
@user-zw1bu1xr5e 4 жыл бұрын
Здравствуйте. Почему копирование списка в 2д список не происходит например, ведь меняется только место объявления вложенного списка но и при этом каждую итерацию основного списка вложенный очищается: import random def print_matrix(x): for i in x: print (i) def create_2d_arr(m,n): arr_2d=[] arr = [] for i in range(m): for j in range(n): arr.append(random.random()) arr_2d.append(arr) arr.clear() return arr_2d print_matrix(create_2d_arr(7,5) )
@user-de5ck2vg7t
@user-de5ck2vg7t Жыл бұрын
Здравствуйте. А я по первой задаче не могу понять, каким образом в варианте решения Наиля мы получаем на выходе именно таблицу. Мой вариант выглядит так: m = int(input("Введите кол-во строк матрицы:")) n = int(input("Введите кол-во столбцов матрицы:")) def create(m,n): arr = [ ] for mas in range(m): arr.append([ ]) for el in range(n): arr[mas].append(0) print(arr[mas][el], end = " ") print() create(m,n)
@Borland06
@Borland06 3 жыл бұрын
Сначала "захардкодил" вторую задачу, идя по верному пути, но моя версия работала только с матрицами с 3-мя столбцами. Потом прослушал условие внимательнее и понял, что скрипт должен работать для любых матриц, поэтому закодил вот это (про себя подумал, пфф, так еще проще)- def mirr_matr(х): for m in Ali_list: m=m.reverse() return Ali_list def print_matr(x): for arr in x: for element in arr: print(element, end=" ") print() Ali_list = [[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16]] print_matr(Ali_list) print() print() print_matr(mirr_matr(Ali_list))
@user-zk2en2wf9u
@user-zk2en2wf9u 2 жыл бұрын
Или лыжи, или я: def swap_arr(array): for arr in array: temp_list = [] value = len(arr)-1 while value >= 0: temp_list.append(arr[value]) value -= 1 array[array.index(arr)] = temp_list Использовал обратный перебор индексов
@phoenixegoist4123
@phoenixegoist4123 2 жыл бұрын
жиза, только по другому реализовал
@johnJohn-yn5oh
@johnJohn-yn5oh 3 жыл бұрын
Не знаю когда именно, но в питоне появилась возможность элегантно сделать свап для списков и для других типов данных, так мы можем сократить код для зеркального отображения: def mirror_2d_arr(arr_2d): for row in arr_2d: n=len(row) for i in range(n//2): (row[i], row[n-1-i]) = (row[n-1-i], row[i]) return arr_2d #для вызова, если удобно Спасибо за уроки, они пригодятся многим, доступные и понятные!
@BOSSOB10
@BOSSOB10 Жыл бұрын
1 задание import random a = [random.randint(-7, 7) for i in range(10)] print(a) b=[] for i in range(len(a)): if a[i] < 0: b.append(a[i]) print(b)
@user-gj1wj5vm3d
@user-gj1wj5vm3d 2 жыл бұрын
Добрый день. Когда пытаешься делать как вы в программе Pycharm, вызывать элемент по индексу, не получается вызывать!!! Пишет вот такое определение no newline at end of life
@BOSSOB10
@BOSSOB10 Жыл бұрын
4 задание import random a = [random.randint(-7, 7) for i in range(10)] print(a) B=int(input('введите число B')) a.insert(5, B) print(a)
@indiego9459
@indiego9459 2 жыл бұрын
Показалось, что у меня более бестолковый способ решения первого задания, но все тесты с разными аргументами функция прошла успешно:) def arr2(m, n): for array in range(m): for el in range(n): print(0, end=" ") print()
@wladeg2827
@wladeg2827 Жыл бұрын
такая же тема! также решил
@DimarikCanada
@DimarikCanada 4 жыл бұрын
Спасибо за материал, загрузите пожалуйста материал о Tree
@user-mx4yh3ob5s
@user-mx4yh3ob5s 4 жыл бұрын
скажите пожалуйста, а есть ли способ задать массив как в С? например мне нужен массив 100х25. не булу же я его забивать вручную или я где-то что-то упустил в видео?
@derekcollins9739
@derekcollins9739 4 жыл бұрын
20:15 решение первой задачи это и есть задание массива. Делается через цикл for.
@donfedor007
@donfedor007 3 жыл бұрын
откуда взялос j в конце?
@user-fq7wz4oo5p
@user-fq7wz4oo5p Жыл бұрын
Что то в этом уроке ты прям усложнил решение, я сделал покомпактнее вот примеры. Задача на заполнение нулями массива с выбранными параметрами: def massiv_2d (m, n): mass = [[ 0 for i in range(m)] for j in range(n) ] print (mass) massiv_2d (6,5) Задача на зеркало: mas=[[1,2,3], [4,5,6], [7,8,9]] print_mas(mas) print("Зеркало масива") def zerkalo (mas): for i in range(len(mas)): t=len(mas[i])-1 while t>=0: print (mas[i][t], end = " ") t-=1 print () zerkalo(mas)
@BOSSOB10
@BOSSOB10 Жыл бұрын
2 задание import random a = [random.randint(-19, 19) for i in range(10)] print(a) for i in range(len(a)): if a[i] > 0: first_pos_index = i break else: first_pos_index = len(a) a[:first_pos_index] = [100] * first_pos_index print(a)
@user-mb1ss3rn6h
@user-mb1ss3rn6h 3 жыл бұрын
Круто
@user-xl1dn4oy4t
@user-xl1dn4oy4t Жыл бұрын
Можно проще решить: def create_2d_arr(m, n): for i in range(n): print('0' * m) print() arr = create_2d_arr(6, 3) print(arr)
@domino9204
@domino9204 4 жыл бұрын
Добрый день! Прошу подсказать какие-нибудь видео-лекции или книги для изучения питона. Этот курс очень нравится, но ждать столько времени новых видео нереально(
@user-xi1du6rh7r
@user-xi1du6rh7r 4 жыл бұрын
Укус питона bute of python отличная книга по изучению основ питонп
@derekcollins9739
@derekcollins9739 4 жыл бұрын
Курсы от Coursera Основы программирования на Python - от Высшей Школы Экономики Математика и Python для анализа данных - совместный курс от МФТИ и Яндекс Программирование на Python Specialization - курс от МФТИ и mail.ru для более продвинутых Курс Python от Stepic, а также его продолжение Курс Python от Lektorium Курс Python от Intuit (и ещё один) Курс Python от Hexlet Лекции ВМК МГУ Курс с задачами от Stepic, где сложность задаваемых задач зависит от вашего уровня подготовки pythonworld.ru/kursy/free.html
@magnum_fennec
@magnum_fennec 2 жыл бұрын
A byte of python
@talisman7776
@talisman7776 2 жыл бұрын
Отчаянно пытаясь решать задачи, только зная питон по предыдущим урокам, волей не волей становишься Джуном)))
@shozanax1530
@shozanax1530 3 жыл бұрын
Как аргумент len(Z[k]) - 1 - w из функции mirror стал входным аргументом j в функции swap ?
@ernestdzugkoev2002
@ernestdzugkoev2002 4 жыл бұрын
Не работает, почему? def create_2d_arr(m, n): arr1 = [ ] for i in range(m): arr2 = [ ] for el in range(n): arr2.append(0) arr1.append(arr2) return arr1 arr_5_10 = create_2d_arr(5, 10) print(arr_5_10) если пишу принт матрикс выдает что не опознанная переменная
@christineborovkova4679
@christineborovkova4679 4 жыл бұрын
аналогично
@derekcollins9739
@derekcollins9739 4 жыл бұрын
.
@Rusya2000
@Rusya2000 3 жыл бұрын
а есть ли в jupyter notebook функция отладчика программы, посмотреть как код пошагово работает ? (для циклов как мне кажется само то посмотреть)
@user-jd3qm5ux2u
@user-jd3qm5ux2u 3 жыл бұрын
Нету, если тебе нужен дебаггер советую использовать IDE
@SaXalIneC1993
@SaXalIneC1993 3 жыл бұрын
Уроки смотрю, вроде вникаю. Но как практика, так почти не понимаю.
@serjiodanilenko743
@serjiodanilenko743 3 жыл бұрын
Нужно просто гуглить реализации различных решений. И стараться вникать в них подробно, желательно первое время в более простые из найденых. Все приходит с практикой. А практика лучше на мой взгляд строится на опыте различных реализаций в первое время. Плюс доп источники книги, статьи и другие различные видео по питону.
@user-gd3kg3me9w
@user-gd3kg3me9w 3 жыл бұрын
Гугли, многие программисты тоже так делают
@huhnak
@huhnak 3 жыл бұрын
@@user-gd3kg3me9w не многие, а все. Главное отличие хорошего программиста от плохого, это то что он умеет правильно гуглить.
@user-ob6ny6nz8e
@user-ob6ny6nz8e 2 жыл бұрын
Тоже самое) как говорил мой знакомый татарин «я как собака, что говорят по татарски понимаю а говорить немого»:) не хватает практики) лично я начал выписывать функции и синтаксис, как минимум проще потом искать, чем ролики перематывать)
@killasst2168
@killasst2168 2 жыл бұрын
задачу 2 лучше решать так по моему arr_2d = [[1, 2, 3, 5], [6, 7, 8, 10], [11, 12, 13, 14]] def print_m(arr_2d): for arr in range(len(arr_2d)): arr_2d[arr].reverse() for j in range(len(arr_2d[arr])): print(arr_2d[arr][j], end=' ') print() print_m(arr_2d) тогда можно будет создавать бесконечное множество списков и списков внутри списка)
@user-uc7sj7cz9r
@user-uc7sj7cz9r 4 жыл бұрын
после окончания 10 урока что будем делать дадите направление или чтота в этом роде
@alishevN
@alishevN 4 жыл бұрын
Будут следующие уроки скоро
@maloleg81
@maloleg81 4 жыл бұрын
Где обучался питону?
@kaezerknomad9326
@kaezerknomad9326 Жыл бұрын
Даже 2 функции сделал, все норм сработало list1 = [1, 2, 3] list2 = [4, 5, 6] list3 = [7, 8, 9] list_2d = [list1, list2, list3] list_2d2 = [list1, list2, list3 ] def reverse_2d_mtrx (matrix): for n in matrix: n.reverse() reverse_2d_mtrx (list_2d) print(list_2d) def reverse_2d_matrix2 (matrix): for n in matrix: for k in n: j=0 if (len(n)-1) % 2 != 0: j=1 n[len(n)-1-n.index(k)]=k reverse_2d_matrix2(list_2d2) print(list_2d2)
@alexandrak.5239
@alexandrak.5239 2 жыл бұрын
Мне кажется давать такие задачи новичкам как-то сурово. Я не говорю, что все такие, но ведь есть люди в комментариях, которые пишут: «Не получается практика, видимо программирование не мое».
@nu_leh505
@nu_leh505 3 жыл бұрын
def create_arr(line, column): a = [] for line in range(line): a.append([0] * column) print(a) create_arr(5, 4)
@ruslansamigullin628
@ruslansamigullin628 3 жыл бұрын
# Задача 2) def mirror(arr_2d): for arr in arr_2d: arr2 = arr.reverse() arr = arr2 return(arr_2d)
@GANGST1ER
@GANGST1ER 4 жыл бұрын
Вторую задачу сам не решил, немного запутался. #Задача 1 def create2dArr(m, n): arr2d = [] for i in range(m): arr2d.append([]) for j in range(n): arr2d[i].append(0) return arr2d def print_matrix(l): for i in range(len(l)): for j in range(len(l[i])): print(l[i][j], end=" ") print() a = create2dArr(3, 3) print_matrix(a)
@d__k7142
@d__k7142 4 жыл бұрын
Когда следующее видео будет? Ждемс
@user-sy2gx5zg8b
@user-sy2gx5zg8b 4 жыл бұрын
НЕ ПОНИМАЮ, КТО за все старания Наиля ставит ему дизлайк !? Так и будут змейку до конца жизни программировать ! Лично мне - норм, ведь все на высшем уровне. Если уже не поняли или что - то не так, просто напишите в комментах. Наиль обязательно ответит ! За что дизлайк - то !?
@user-sy2gx5zg8b
@user-sy2gx5zg8b 4 жыл бұрын
Ну... почти понимаю ... У всех есть свои вопросы...
@user-sz6cv1bo1l
@user-sz6cv1bo1l 3 жыл бұрын
#сделал опять через while потому что с ним для меня проще )))0 (кст теперь трачу меньше 10 минут на решение задач, способ за обучение ) text = [[1,2,3,10],[4,5,6,11,],[7,8,9,12]] a = 0 b = 0 e = [] r = [] while a < len(text): w = len(text[a]) - 1 while w >= 0: e.append(text[a][w]) w = w - 1 r.append(e) e = [] a +=1 for i in range(len(r)): for j in range(len(r[i])): print (r[i][j],end = " ") print ()
@relaxchanelmix
@relaxchanelmix 3 жыл бұрын
задача очень хорошая но я не понимаю логику я понимаю что делают те или иные функции но не понимаю как они взаимодействуют друг с другом
@JohanLiebert2003
@JohanLiebert2003 2 жыл бұрын
Задача 2: (С красивым выводом в консоль без запятых) print("Введите кол-во строк ="); m = int(input()) print("Введите кол-во столбцов ="); n = int(input()) if n == m: a = [] h = 1 for i in range(m): d = [] for k in range(n): d.append(h) h += 1 a.append(d) for arr in a: for el in arr: print(el, end = " ") print() for j in range(len(a)): for l in range(len(a[j])): a[j].sort(reverse=True) print() for arr1 in a: for el1 in arr1: print(el1, end = " ") print() else: print("Не Удовлетворяет условию задачи")
@vzvanov
@vzvanov 4 жыл бұрын
Не знал как сделать целочисленное деление. Поэтому сделал без деления. def mirror_matrix2d(matrix): for string in matrix: len_str = len(string) - 1 for left in range(len_str): right = len_str - left; if left < right: string[left], string[right] = string[right], string[left] else: break
@steelheelru
@steelheelru 4 жыл бұрын
Я сделал чуть по др. вторую задачу (вроде тоже работает): a = [[1, 2, 3, 5, 6], [4, 5, 6, 4, 3], [7, 8, 9, 5, 9]] def mirror_2(a): for i in range(len(a)): for j in range(len(a[0]) - 1, -1, -1): print(a[i][j], end=' ') print() mirror_2(a)
@BOSSOB10
@BOSSOB10 Жыл бұрын
3. import random a = [random.randint(-7, 7) for i in range(10)] print(a) min_elem = min(a) min_index = a.index(min_elem) del a[min_index] print(a)
@lunamarsword
@lunamarsword 4 жыл бұрын
super
@vitekofp
@vitekofp 3 жыл бұрын
И тут я понимаю, что у меня проблемы с абстрактным мышлением. Почему-то не выводятся строки в столбик в первом задании. Всё идет одной строкой. А при print_matrix() выдает NameError. Что не так, не понимаю. def create_2d_arr(m, n): arr_2d = [] for i in range(m): cer = [] for j in range(n): cer.append(0) arr_2d.append(cer) return arr_2d arr_5_10 = create_2d_arr(5, 10) print(arr_5_10)
@sergeyinkognito7236
@sergeyinkognito7236 4 жыл бұрын
Решил вторую задачу методом буфера, по моему прикольно получилось) : def printMatrixV1(l_arr2d): for row in range(len(l_arr2d)): for column in range(len(l_arr2d[row])): print(l_arr2d[row][column], end = ' ') print() arr2d = [[1,2,3,4],[8,5,6,56],[43,7,8,9],[45,434,47,78]] m = 4 print("Original matrix:") printMatrixV1(arr2d) print("Reflected matrix:") for i in range(m): temp_list = [] for j in range(len(arr2d[i]) - 1,-1,-1): temp_list.append(arr2d[i][j]) arr2d[i] = temp_list printMatrixV1(arr2d)
@wellbe8918
@wellbe8918 2 жыл бұрын
Для начинающего пайтониста солоноватая логика 3 задачи, как по мне) Кто решил так же как и я?) Вроде все работает arr_2d = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] def mirror_2d_arr(arr_2d): for arr in arr_2d: arr.reverse() print(arr) print() mirror_2d_arr(arr_2d)
@user-md3pv1to4l
@user-md3pv1to4l 3 жыл бұрын
Зачем все усложнять в последней задаче? def reverse_arr_2d(arr_2d): for arr in arr_2d: arr.reverse() return arr_2d
@user-dz1uq5sd5b
@user-dz1uq5sd5b 3 жыл бұрын
с точки зрения решения конкретной задачи - да, это наиболее простой способ, однако в процессе обучения полезно придумывать и свои алгоритмы)
@jackdeo4564
@jackdeo4564 4 жыл бұрын
первая задача def create_2d_arr(m,n): for t in range(0, m): for k in range(0, n): print(0, end= ' ') print()
@donfedor007
@donfedor007 3 жыл бұрын
print ('Создатель Матриц-2000') m = int (input('Ввидите количество строк:')) n = int(input('Ввидите количество столбцов:')) k = int(input('чем заполнять:')) def great_2d_arr(m, n): a=[[k]*n]*m for i in range(len(a)): for j in range(len(a[i])): print(a[i][j], end=' ') print() great_2d_arr(m, n)
@RockstarAlexander
@RockstarAlexander 3 жыл бұрын
👍👍👍
@definitely777
@definitely777 3 жыл бұрын
Сначала решил задачу, но потом захотелось всё автоматизировать до конца))) def create_2d_arr(m,n): #создание матрицы arr_2d = [] #создаём массив for i in range(m): internal_array = []#создаёт m пустых массивов for j in range(n): internal_array.append(0)#добавляет в пустые массивы нули n раз arr_2d.append(internal_array)# добавляет созданные массивы в основной массив. q = 1 #вставляем числа от 1 до n вместо нулей for x in range(len(arr_2d)): for z in range(n): arr_2d[x][z] += q q += 1 return arr_2d ############################################################### def reverse_arr(array_n_m): #переворачиваем матрицу for i in range((len(array_n_m))): array_n_m[i].reverse() return array_n_m ############################################################### def print_matrix(n): #для преобразования матрицы в нормальный вид for i in range(len(n)):#проходим по спискам for j in range(len(n[i])): #проходим по элементам print(n[i][j], end = ' ') print() m = int(input())#вводим m при запуске программы n = int(input())#вводим n при запуске программы result = reverse_arr(create_2d_arr(m,n)) print_matrix(result)
@zhenypikolo7042
@zhenypikolo7042 2 жыл бұрын
Я это так сделал mn=[[1,2,3],[4,5,6],[7,8,9]] def zed(mn): for d in range(len(mn)): mn[d].reverse() for n in range(0,len(mn[d])): print(mn[d][n],end=' ') print() zed(mn) ВЫВОД: 3 2 1 6 5 4 9 8 7
I Can't Believe We Did This...
00:38
Stokes Twins
Рет қаралды 87 МЛН
아이스크림으로 체감되는 요즘 물가
00:16
진영민yeongmin
Рет қаралды 39 МЛН
Survival skills: A great idea with duct tape #survival #lifehacks #camping
00:27
Введение в корутины Kotlin (Kotlin Coroutines)
1:05:21
Рустам Курамшин
Рет қаралды 8 М.
Python для ЕГЭ. Массивы с нуля. Снова цикл for и работа с массивами.
11:56
Основы NumPy Python | Массивы, Матрицы И Операции Над Ними
38:26
PyLounge - программирование на Python и всё о IT
Рет қаралды 102 М.