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

Поділитися
Вставка
  • Опубліковано 17 гру 2024

КОМЕНТАРІ • 248

  • @alishevN
    @alishevN  4 роки тому +4

    1) Плейлист этого курса вот здесь: ua-cam.com/play/PLAma_mKffTOSY12JZS6l8lxKCpooPVcrn.html
    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

    • @ДиванныйКритик-к7л
      @ДиванныйКритик-к7л 3 роки тому

      Привет, если увидишь этот сообщение, прокомментируй, пожалуйста, мое решение:
      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 роки тому +169

    Ехал список через список, видит список - список список. Сунул список список в список: список список список список.

  • @ПавелРостовцев-з7п
    @ПавелРостовцев-з7п 5 років тому +39

    Я так долго ждал курсы по питону , что стал джуном php )

    • @iz_90x
      @iz_90x 4 роки тому

      ахахаха)))

    • @iz_90x
      @iz_90x 4 роки тому

      @Leon Bezbojnik что за бред

  • @vikkat1
    @vikkat1 3 роки тому +1

    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)

  • @username864
    @username864 4 роки тому +25

    Хочу выразить вам огромную, просто ОГРОМНУЮ благодарность за то, что вы всё это бесплатно сделали для и нас. Очень доходчиво.
    Пару месяцев назад, когда я только залез в IT, мне, что б понять и полностью освоить тему нужна была неделя(и то, если тема эта не сложная), и поэтому я даже не мог понять то, что вы объясняете, хотя сейчас, когда я почти закончил курс Питон для новичков, то смотрю новый материал у вас для себя с огромным кайфом !)
    Спасибо вам !!!

  • @marinaagafonova2573
    @marinaagafonova2573 4 роки тому +8

    Задачи хорошие, и бОльшая часть материала для их решения и правда была дана ранее, но тем не менее реальным новичкам решить их самостоятельно нереально. Сразу оговорюсь, что помощь гугла - уже априори не является "самостоятельным решением", на мой взгляд.
    Может я просто тупая такая и в моей голове что то не укладывается, но мне кажется вы не даете полной картины. Вы отлично объясняете, все понятно пока вы говорите.
    Но когда дело доходит до задач, то оказывается, что знаний не достаточно. Просто потому, что нет полной картины в голове новичка.
    Вот лично мне казалось в предыдущих уроках, что я полностью поняла синтаксис и смысл функции append. Я запомнила, что добавить к списку элемент это a.append(0), например. Но массив это другая структура, и синтаксис немного иной (с точки зрения новичка).
    Для меня
    a.append(0) (добавление элемента к обычному списку) и
    arr.append(inter_arr) (добавление целой строки к массиву)
    это разные выражения.
    Конечно посидев пару минут глядя в это выражение и осознав его, ты понимаешь, что "да, это ведь логично". Но посмотрев ваше решение я для себя поняла, что не додумалась бы до него наверное и через неделю.
    Во второй задаче выражение (len(arr) // 2) - откуда вообще взялось? Как до этого мог додуматься человек, впервые столкнувшийся с языком программирования? Это абсолютно новая возможность языка, о которой не упоминалось ранее ни в коем виде.
    Понятно, что вы пытаетесь приучать людей думать, это круто. Но, мне кажется, что надо шире показывать возможности новых функций. Показывать, что "вот со строками это выглядит так, а с массивами вот так, но о массивах поговорим позже". И тогда дойдя до массива, у новичка в голове будет инфа, что вот когда то вы об этом упоминали, можно посмотреть в более раннем уроке и применить на практике. Ну или хотя бы давать какие то подсказки о том, какую информацию можно поискать самостоятельно, чтобы дойти до решения.
    Новички понятия не имеют о том, какими возможностями обладает язык. К примеру, мне не понятно почему нет встроенной функции печати массива в виде таблицы без запятых и скобок, почему такую функцию надо писать самому? Это же совершенно очевидная и базовая функция, такая же как обычный print. И я полагаю если бы она существовала, вы бы ее показали. И так далее, в общем)
    Решения ваших задач часто подразумевают существование у новичка некой интуиции на наличие тех или иных возможностей языка, но у нас ее нет :)
    В общем, надеюсь мой посыл правильно понят и, возможно, поможет вам в будущем строить свои уроки еще более доступно для совсем зеленых)

    • @alishevN
      @alishevN  4 роки тому +1

      Спасибо за обратную связь

    • @derekcollins9739
      @derekcollins9739 4 роки тому

      Согласен. Решение задач действительно требует знаний приёмов программирования, которые в предыдущих видео не объяснялись. Я тоже не смог решить сам.

    • @oleggg
      @oleggg 4 роки тому

      Поддерживаю. В какой-то момент я перестал пытаться решать задачи самостоятельно потому как был уверен, что в решениях окажется материал который не проходили. И практически всегда так и получалось. Автор видимо имел в виду совсем не тех начинающих когда делал этот курс. Видимо имелось в виду начинающих конкретно в Python, а не начинающих в программировании.

  • @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

  • @HIPHOPALIVE
    @HIPHOPALIVE 5 років тому +26

    Спасибо за твои старание. Очень интересно. Ждем продолжения. С наступающим тебя бро

    • @alishevN
      @alishevN  5 років тому +1

      Спасибо!

    • @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
    Огромная благодарность автору канала за труды!

  • @nadyamoscow2461
    @nadyamoscow2461 4 роки тому +1

    Спасибо за отличный урок! Долго мучилась, но идея у меня была более простая - распечатать вложенные списки в обратном порядке. Признаюсь честно, что скомпилировать мысль получилось только после просмотра вашего решения.
    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) # распечатаем, что вышло в итоге

  • @pozzitifosha8121
    @pozzitifosha8121 4 роки тому +4

    вы мне очень помогаете готовиться к урокам информатики,спасибо большое!мастер своего дела.

  • @ilnur_nambavan
    @ilnur_nambavan 4 роки тому +1

    Задача 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
    ПС. Спасибо за классные уроки и задачки!

  • @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 запомнил просто когда смотрел в документации к питону основные фичи списков.
    Спасибо за урок!

  • @qazaqbalasy916
    @qazaqbalasy916 3 роки тому

    Жирнейший like и подписка. Для меня лучший видеурок по многомерным массивам и заодно циклам.

  • @ВалентинСмирнов-б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
    # Работает при различных размерах матрицы.
    Спасибо за урок!

  • @NeoWaIker
    @NeoWaIker 4 роки тому +3

    555 лайков под этим видео, круто. Очень хорошо объясняешь. Долго в инете искал тутор по двумерным массивам, нигде нормально не объясняли. Спасибо, удачи!

  • @ДаниилЦалик
    @ДаниилЦалик 2 роки тому +1

    Или лыжи, или я:
    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 роки тому

      жиза, только по другому реализовал

  • @megamaanpython1143
    @megamaanpython1143 4 роки тому

    Уроки- огонь!!!
    Мои три варианта решения задачи по зеркальному отображению матрицы(создано по принципу скопировать- вставить, все работает):
    #Вариант 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)

  • @onegamer6429
    @onegamer6429 4 роки тому +6

    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
    за помощь!

    • @АртёмМарков-х8х
      @АртёмМарков-х8х 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 Рік тому

    Спасибо за ваш труд. Все очень понятно на простом Русском языке. Без лишней воды, туману и слов паразитов "эээээ", "нууууу", подковы гну и т. д. Слава Богу я что то начинаю понимать. Вы молодец!!! Респект!!! 🎉🎉🎉 делайте свое дело никого не слушайте. Решение одной и той же задачи может быть разным способом. Цель достигнута, код рабочий в чем проблема???

  • @ЕгорЗверев-й8к
    @ЕгорЗверев-й8к 4 роки тому

    Последнюю задачу сначала решил так:
    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] соответствует последнему элементу в списке!
    Огромное вам спасибо!!!!!!!!!

  • @ЛеппсДядя
    @ЛеппсДядя 4 роки тому +3

    Мне кажется второе задание легче первого
    p.s Они оба простые. Спасибо тебе, ты очень хорошо объясняешь, даже слишком для бесплатного курса на UA-cam.
    мой вариант решения 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х и более значений средствами питона. И через пару укроков делает те же операции, но более сложным способом.
      Могу объяснить это только одним, между уроками прошло много времени и успел забыть какие фишки питона уже рассказал, а какие еще нет. А у нас между этими уроками разница несколько дней.

  • @АнжеликаБогдан-ч1ъ
    @АнжеликаБогдан-ч1ъ 4 роки тому +4

    Народ ! Если что не поняли, можете посмотреть лекции Тимофея Хирьянова : Практика программирования на Питон 3. Сам начинал учить Питон там. Всего 14 лекций. Обязательно посмотреть, хотя б первую половину. Хоть 7, 8 лекций. Или просто спросите у Наиля, он с радостью ответит !

    • @АнжеликаБогдан-ч1ъ
      @АнжеликаБогдан-ч1ъ 4 роки тому +1

      Советую ! Ну а что там не понял подчерпнул у Наиля. Мне лично Наиля легче понимать, ведь он расжевал и в рот положил, а там физтех. Но, все равно там все предельно понятно. И то, что я там некоторые вещи не понимал не значит, что там все непонятно или я туп. Мне 20 марта только 13 стукнуло. И, к тому же, меня тянет к автомобилям. А вобще, то по точным наукам я - спец в классе. Даже по городу участвовал с матеши и 3 место занял. Ну и вобще, с математики( алгебра, геометрия) во всяких олимпиадах побеждал ( например, кенгуру). Нет, я не хвалюсь, да и не суть. Просто хочу сказать, что может всякий и, что я не все понимаю, ведь не совсем в теме, но и не тупой. Короче, удачного обучения и не забудьте поддержать Наиля лайкосом, а лучше - и подпиской !

  • @ЯКИНаступают
    @ЯКИНаступают 4 роки тому

    #сначала создал 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)

  • @alexvernua
    @alexvernua 4 роки тому

    комментарий просто для рейтинга) комбинация двух задач - сначала создается список с заданными размерами, а потом он отзеркаливается
    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])

  • @vladimirefimov3672
    @vladimirefimov3672 5 років тому +40

    Хорошие курсы. Но для бегиннеров тяжело. Это скажем так для настойчивых бегиннеров) А так да, пили дальше! Единственно аудитория узкая. Лайк и прочее)
    и зачем подфункция если работает прямой обмен a, b = b, a?

    • @Daredee000
      @Daredee000 4 роки тому +11

      кому ж нынче нужны ненастойчивые бегиннеры? :)

    • @sergeyfomichev736
      @sergeyfomichev736 3 роки тому +4

      ох по поводу бегиннеров я с тобой согласен. ибо же порой урок выглядит (особенно в части, где задачи), как преподаватель просто кодит, а мы смотрим. каждый символ в коде имеет принципиальное значение, и предполагается, что ученики, однажды узнав, что значит тот или иной символ, безошибочно начнут его применять, и нет никакой надобности проговаривать подробно, что, откуда и зачем взялось. возможно так и должно быть, не знаю. автору курса огромное спасибо!

    • @maxwellhawk
      @maxwellhawk 3 роки тому +8

      да тут и для не бегинеров фиг поймешь. Мол надо было догадаться про аперант //. Была у меня мысля делить на 2 в начале, но потом ушел в другую сторону, и в общем нифига не получилось. Я думаю надо тчательно проговарить все операторы, их аргументы, методы применения, чтобы при появившеся задачи можно было уже использовать имеющийся опыт, а не сидеть пол часа пытаться втыкнуть, а оказывается мы там в уроках чет пропустили и без этого нифига не получится. Но то что есть задачи, это плюс. Без практики и самостоятельно работы, знания быстро выветриваются

    • @ArGoSpks
      @ArGoSpks 2 роки тому +3

      Да, тяжко в этом плане, я раньше не кодил никогда, теорию понимаю нормально, дают задачу, а у меня просто мозг не работает в таком ключе и я просто не могу прийти к решению через всякие другие ходы как в видео. Но ничего начну с самых легких задач, чтобы начать понимать как все работает)

    • @zombich
      @zombich 2 роки тому

      @@ArGoSpks бро, это у всех так, походу

  • @suprun1982
    @suprun1982 4 роки тому +4

    Как тебе такой вариант решения?
    def print_2d(arr):
    for i in arr:
    k = i[::-1]
    for j in k:

    print(j, end=' ')
    print()
    print_2d(arr_2d)

  • @SaXalIneC1993
    @SaXalIneC1993 4 роки тому +24

    Уроки смотрю, вроде вникаю. Но как практика, так почти не понимаю.

    • @serjiodanilenko743
      @serjiodanilenko743 3 роки тому +2

      Нужно просто гуглить реализации различных решений. И стараться вникать в них подробно, желательно первое время в более простые из найденых. Все приходит с практикой. А практика лучше на мой взгляд строится на опыте различных реализаций в первое время. Плюс доп источники книги, статьи и другие различные видео по питону.

    • @МаксИ-ъ9т
      @МаксИ-ъ9т 3 роки тому

      Гугли, многие программисты тоже так делают

    • @huhnak
      @huhnak 3 роки тому +1

      @@МаксИ-ъ9т не многие, а все. Главное отличие хорошего программиста от плохого, это то что он умеет правильно гуглить.

    • @ЛимитНеё
      @ЛимитНеё 3 роки тому

      Тоже самое) как говорил мой знакомый татарин «я как собака, что говорят по татарски понимаю а говорить немого»:) не хватает практики) лично я начал выписывать функции и синтаксис, как минимум проще потом искать, чем ролики перематывать)

  • @indiego9459
    @indiego9459 3 роки тому +1

    Показалось, что у меня более бестолковый способ решения первого задания, но все тесты с разными аргументами функция прошла успешно:)
    def arr2(m, n):
    for array in range(m):
    for el in range(n):
    print(0, end=" ")
    print()

    • @wladeg2827
      @wladeg2827 Рік тому

      такая же тема! также решил

  • @jack5279
    @jack5279 4 роки тому

    Ура! Первое задание, из курса, которое сам сделал. Поставил на паузу и сделал отзеркаливание массива. Так же использовал целочисленное деление //. Спасибо и от меня за уроки.

    • @hummerneadekvat1832
      @hummerneadekvat1832 4 роки тому

      я за 4 дня до экза сделал первое задание по питону)))

    • @jack5279
      @jack5279 4 роки тому

      @@hummerneadekvat1832 я для себя изучаю. Так еще сложней )

  • @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 #для вызова, если удобно
    Спасибо за уроки, они пригодятся многим, доступные и понятные!

  • @vladimirkulakov6126
    @vladimirkulakov6126 3 роки тому

    Супер! Первая задачка и самому пришла на ум пока слушал урок)

  • @betsxxl7297
    @betsxxl7297 4 роки тому +8

    Будто талант обяснять, чесное слововсе понятно!

  • @КонстантинМизуло
    @КонстантинМизуло 9 місяців тому

    Возможно где-то в комментах уже есть: 2ая задача проще:
    def reverse_list(arr):
    for item in arr:
    item.reverse()
    # здесь arr - двумерный массив, соответственно item в цикле - каждый подмассив, который встроенной функцией переворачиваем

  • @JohanLiebert2003
    @JohanLiebert2003 2 роки тому +1

    Задача 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("Не Удовлетворяет условию задачи")

  • @Foontiq
    @Foontiq 5 років тому +12

    Хорошо объясняешь. Когда про классы видос запилишь?

  • @ЕгорСемиренко
    @ЕгорСемиренко 4 роки тому +1

    Зачем все усложнять в последней задаче?
    def reverse_arr_2d(arr_2d):
    for arr in arr_2d:
    arr.reverse()
    return arr_2d

    • @ЕгорЗверев-й8к
      @ЕгорЗверев-й8к 4 роки тому +1

      с точки зрения решения конкретной задачи - да, это наиболее простой способ, однако в процессе обучения полезно придумывать и свои алгоритмы)

  • @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)

  • @huhnak
    @huhnak 3 роки тому +5

    Для создания массива нулей, можно использовать [0]*5, а для двумерного [[0]*10]*5

  • @Dr._S_Brule
    @Dr._S_Brule 2 роки тому

    Спасибо, после урока, получилось немного лучше уложить в голове матрицы и их обход!

  • @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))

  • @ruslansamigullin628
    @ruslansamigullin628 4 роки тому +2

    # Задача 2)
    def mirror(arr_2d):
    for arr in arr_2d:
    arr2 = arr.reverse()
    arr = arr2
    return(arr_2d)

  • @10tabs35
    @10tabs35 4 роки тому +2

    Сделал вторую задачу с циклом for и list.reverse(). Но Ваше решение просто гениально

    • @lukandrate9866
      @lukandrate9866 3 роки тому +1

      С этой функцией всё облегчается

  • @yamataa
    @yamataa 4 роки тому

    задачи реально заставляют думать я пытался найти подсказки в интернете по поводу второй задачи и сделал
    def ren_matrix(l):
    return l[::-1]
    print(ren_matrix(text))
    в итоге всетаки неправильно ) но зато подумал) хорошо объясняешь спасибо за уроки!

  • @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)

  • @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)

  • @Ростислав-м1е
    @Ростислав-м1е 5 років тому +4

    Годно, давай новый урок)
    Круто получается объяснять и понятно

  • @relaxchanelmix
    @relaxchanelmix 3 роки тому +3

    задача очень хорошая но я не понимаю логику
    я понимаю что делают те или иные функции
    но не понимаю как они взаимодействуют друг с другом

  • @OleksiiZhuravlov
    @OleksiiZhuravlov 3 роки тому

    Спасибо за уроки! Успехов автору и учащимся! ;)

  • @alisaholainen6334
    @alisaholainen6334 4 роки тому +2

    Наиль, вам надо периодически давать частные уроки=) У вас хорошо получается ведь. Спасибо за этот урок.

  • @Дом-ч8е
    @Дом-ч8е 2 роки тому

    Можно проще решить:
    def create_2d_arr(m, n):
    for i in range(n):
    print('0' * m)
    print()
    arr = create_2d_arr(6, 3)
    print(arr)

  • @weneryagawarow5133
    @weneryagawarow5133 4 роки тому

    Огромное спасибо, что так понятно объясняешь, другие так не могут. С нетерпением жду следующих уроков. Хочется что бы они выходили как можно чаще. С первой зарплаты программиста задоначу 5 % . Только не забудь добавить кнопку спонсировать

    • @cryptobubbles3261
      @cryptobubbles3261 2 роки тому

      Как успехи? Устроился программистом?

    • @Совет_силы
      @Совет_силы Рік тому

      @@cryptobubbles3261 Забросил наверное он

  • @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)

  • @donfedor007
    @donfedor007 4 роки тому +1

    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)

  • @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)

  • @Kate131290
    @Kate131290 2 роки тому

    добрый вечер, подскажите, а как создать 2д массив, при этом пользователь сам вводит элементы строки и столбца?

  • @Last0n3
    @Last0n3 4 роки тому

    Классно обьясняешь. Очкень часто помогаешь в школе

  • @domino9204
    @domino9204 4 роки тому +2

    Добрый день!
    Прошу подсказать какие-нибудь видео-лекции или книги для изучения питона.
    Этот курс очень нравится, но ждать столько времени новых видео нереально(

    • @user-xi1du6rh7r
      @user-xi1du6rh7r 4 роки тому

      Укус питона bute of python отличная книга по изучению основ питонп

    • @derekcollins9739
      @derekcollins9739 4 роки тому +1

      Курсы от 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

  • @АндрейКтрсо
    @АндрейКтрсо 2 роки тому

    Здравствуйте. А я по первой задаче не могу понять, каким образом в варианте решения Наиля мы получаем на выходе именно таблицу. Мой вариант выглядит так:
    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)

  • @---ul5qc
    @---ul5qc 4 роки тому +4

    спасибо тебе огромное за твои уроки !!!! ТЫ ЛУЧШИЙ !!! жду с нетерпением новых уроков по питону!!! Так же очень интересно было бы посмотреть серию видео:
    1. Python+PyGame для начинающих,
    2. Python + OpenGl
    3. Python + Kivy
    смотрел бы с удовольствием!!!!

  • @user-xi1du6rh7r
    @user-xi1du6rh7r 4 роки тому +2

    Спасибо за уроки, очень понятно объясняешь ;)

  • @ЯКИНаступают
    @ЯКИНаступают 4 роки тому

    #сделал опять через 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 ()

  • @jekiangel6
    @jekiangel6 5 років тому +2

    всё очен понятно и приятно слушать. Огромное спасибо вам за ваш труд ) very big like

  • @Rusya2000
    @Rusya2000 4 роки тому

    а есть ли в jupyter notebook функция отладчика программы, посмотреть как код пошагово работает ? (для циклов как мне кажется само то посмотреть)

  • @ijustseen-sth
    @ijustseen-sth 3 роки тому +1

    Я не очень понял, а что за print_matrix?

  • @pate2418
    @pate2418 2 роки тому

    end = ' ' в функции print не работает, подскажите почему, и как там это можно реализовать, спасибо.

  • @КорнейЕвлампович
    @КорнейЕвлампович 2 роки тому

    Первая задача, решение:
    def create_2d_arr(m, n):
    list_m = [] # список будет содержать m количество нулей
    list_n = [] # список будет содержать n количество списков, содержащих m количество нулей
    for i in range(m):
    list_m.append(0)
    for j in range(n):
    list_n.append(list_m)
    for e in list_n:
    for j in e:
    print(j, end=' ')
    print()
    create_2d_arr(10, 5)
    В консоли:
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0

  • @ernestdzugkoev2002
    @ernestdzugkoev2002 4 роки тому +2

    Не работает, почему?
    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)
    если пишу принт матрикс выдает что не опознанная переменная

  • @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)
    тогда можно будет создавать бесконечное множество списков и списков внутри списка)

  • @Susan-en9he
    @Susan-en9he 3 роки тому

    Скажите, а как сделать, чтобы элементы матрицы вводились с клавиатуры?

  • @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)

  • @АлексейБут-д3я
    @АлексейБут-д3я Рік тому

    Что то в этом уроке ты прям усложнил решение, я сделал покомпактнее вот примеры.
    Задача на заполнение нулями массива с выбранными параметрами:
    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)

  • @ЭлбекМаксудов-й3и
    @ЭлбекМаксудов-й3и 4 роки тому +2

    после окончания 10 урока что будем делать дадите направление или чтота в этом роде

    • @alishevN
      @alishevN  4 роки тому +3

      Будут следующие уроки скоро

  • @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

  • @ВиталийСтанкевич-н6щ

    Добрый день. Когда пытаешься делать как вы в программе Pycharm, вызывать элемент по индексу, не получается вызывать!!! Пишет вот такое определение no newline at end of life

  • @ИгорьЛавренчук-ы7п

    Здравствуйте. Почему копирование списка в 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) )

  • @АлександрТурмов
    @АлександрТурмов 3 роки тому

    Осилил 1-ю задачу:
    a=[]
    b=[]
    def func(stolb,str):
    for i in range(stolb):
    b.append(i)
    b[i]=b[i]*0
    for j in range(str):
    a.append(b)
    print("Введите количество столбцов:")
    stolb=int(input())
    print("Введите количество строк:")
    str=int(input())
    func(stolb,str)
    def func(a):
    for m in range(len(a)):
    for n in range(len(a[m])):
    print(a[m][n], end=" ")
    print()
    func(a)

  • @postmmark
    @postmmark 4 роки тому +1

    вторая задачка:
    def mirror(arr_1):
    for el in arr_1:
    el.reverse()
    print(el)
    работает, но как-то подозрительно легко

  • @jackdeo4564
    @jackdeo4564 4 роки тому

    Вторая задача
    def matrix_mirror(my_list):
    for i in range(len(my_list)):
    k=-1
    for j in range(len(my_list[i])):
    if k>-len(my_list[i]):
    my_list[i][j], my_list[i][j+k] = my_list[i][j+k], my_list[i][j]
    k-=2

    return(my_list)

  • @tohaaleksandrov5670
    @tohaaleksandrov5670 3 роки тому +1

    вышло как-то так, зато работает
    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)

  • @АнжеликаБогдан-ч1ъ
    @АнжеликаБогдан-ч1ъ 4 роки тому +2

    НЕ ПОНИМАЮ, КТО за все старания Наиля ставит ему дизлайк !? Так и будут змейку до конца жизни программировать ! Лично мне - норм, ведь все на высшем уровне. Если уже не поняли или что - то не так, просто напишите в комментах. Наиль обязательно ответит ! За что дизлайк - то !?

  • @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)

  • @shozanax1530
    @shozanax1530 3 роки тому

    Как аргумент len(Z[k]) - 1 - w из функции mirror стал входным аргументом j в функции swap ?

  • @Strannick89
    @Strannick89 4 роки тому +2

    Спасибо за урок. нравится формат очень. Я так понимаю - следующий урок не скоро? Пока можно по другим курсам пройтись)

  • @aakozlov85
    @aakozlov85 3 роки тому

    вторая задача решается проще - через reversed или через метод reverse
    from typing import List
    array = [[1,2,3],
    [4,5,6],
    [7,8,9]
    ]
    def mirror_array(array:List):
    for element in range(len(array)):
    array[element] = list(reversed(array[element]))
    return array
    print(array)
    print('
    Mirror array
    ')
    print(mirror_array(array))

  • @GANGST1ER
    @GANGST1ER 4 роки тому +2

    Вторую задачу сам не решил, немного запутался.
    #Задача 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)

  • @ask971
    @ask971 3 роки тому

    Я только учусь, но задание на 19 минуте можно было сделать так? :
    def create_array(m, n):
    for element in range(n):
    print('0 ' * m)

    • @Kirill-Kantur
      @Kirill-Kantur 3 роки тому

      Нельзя. Вы напечатайте ответ, но не сформируете матрицу. Т.е. в дальнейшем работать с ней не сможете.

  • @Georgy.V
    @Georgy.V Рік тому

    ###Так если чисто вывести на экран###
    def zero(m, n):
    for i in range(m):
    print("0" * n)
    return ""
    print(zero(5, 6))
    ###Так вернуть из функции именно двумерный список и вывести его на экран в солбик.###
    def zero(m, n):
    ms = []
    ns = []
    for i in range(m):
    ns.append("0" * n)
    ms.append(ns)
    ns = []
    return ms
    for i in range(len(zero(5, 6))):
    print(zero(5, 6)[i])

  • @ikromjon97
    @ikromjon97 4 роки тому

    Может кто нибудь объяснить как решается вторая задача ? Откуда мы взяли j ? Как функция понимает что есть что в функции swap(arr, i, j) ??? Почему создали две функции и как их соединили

    • @derekcollins9739
      @derekcollins9739 4 роки тому

      Решение действительно запутанное.
      j плохое название для переменной. Лучше было бы назвать last_element_index, то есть последний элемент строки. И i плохое, потому что оно используется два раза в разных смыслах. Лучше было бы назвать first_element_index
      Здесь j используется для подставления любого входящего параметра, в данном случае равного len(arr) - 1 - i.
      Когда Python доходит до строки swap(arr, i, len(arr) - 1 - i), но так как такой встроенной функции в Python нет, то он ищет строку, начинающуюся с def swap в коде программы и загружает логику оттуда. При это Python подставляет вместо i из swap(arr, i, j), второй функции, i из mirror_2d_arr. А вместо j подставляет len(arr) - 1 - i.
      Объяснил как смог.

  • @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)

  • @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)

  • @ValeraParasii
    @ValeraParasii Рік тому

    Добрый день! подскажите пожалуйста, не понимаю один момент.
    почему когда я пишу код с нуля, то при выводе "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

  • @talgatb.4030
    @talgatb.4030 2 роки тому

    Почему у меня в VS code решение 1 задачи выдает только одну строку из 10 нулей. (переписал все как в ответе)

  • @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)

  • @talisman7776
    @talisman7776 2 роки тому

    Отчаянно пытаясь решать задачи, только зная питон по предыдущим урокам, волей не волей становишься Джуном)))

  • @МаратКарданов-ъ6ж
    @МаратКарданов-ъ6ж 4 роки тому

    скажите пожалуйста, а есть ли способ задать массив как в С? например мне нужен массив 100х25. не булу же я его забивать вручную
    или я где-то что-то упустил в видео?

    • @derekcollins9739
      @derekcollins9739 4 роки тому +2

      20:15 решение первой задачи это и есть задание массива. Делается через цикл for.

  • @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()

  • @awgoodman
    @awgoodman 4 роки тому

    Последнюю задачку можно было решить так, правильно? По-моему так даже короче и проще:
    def print_matrix_mirror(arr_2d):
    for arr in arr_2d:
    print(arr[::-1])
    print_matrix_mirror(arr_2d)

  • @vitekofp
    @vitekofp 4 роки тому

    И тут я понимаю, что у меня проблемы с абстрактным мышлением. Почему-то не выводятся строки в столбик в первом задании. Всё идет одной строкой. А при 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)

  • @DimarikCanada
    @DimarikCanada 5 років тому +1

    Спасибо за материал, загрузите пожалуйста материал о Tree