спасибо огромное, все очень доходчиво! до ваших уроков долго тупила, читала и смотрела кучи других видео, но никак не удавалось понять некоторые темы, в т.ч. и вложенные списки. а сейчас даже не знаю, в чем именно было непонимание)
Тут самый правильный подход в обучении. Как правило сразу дают условные конструкции. И задачи, которые должны решаться одни методом (написанным , кстати, на быстром С,) люди колбасят жуткими if конструкциями. И что в итоге Реальный пример. Задача - получить строку и вывести ее наоборот. Большая часть людей ( дело было на codewars) такое наколбасили, жуть! И самое топовое решение ,конечно - return string[: :-1] . Там такие комменты были. Один даже написал - Мне не нужно было рождаться на этот свет
Ну, срез с шагом это же довольно высокоуровневая штука, и у нее явно есть что-то более низкоуровневое под капотом. Допустим, на курсах с++ от Яндекса на степике мы только под самый конец начали пользоваться высокоуровневыми функциями из библиотеки STL, а до этого такие вещи как нахождение минимального/максимального числа, разворот строки/массива, поиск количества заданного значения и все остальное мы делали обычным проходом цикла for по элементу массива и в него уже вписывали условия. Так что люди на codewars предполагали, что решать надо обычными методами, а тут какой-то чел просто знал про уже встроенную функцию и использовал ее. А что если бы этой функции не было?
Спасибо огромное за такое подробное объяснение! Жаль, что не находила Ваши видео раньше, было бы намного-намного проще понять, что мне не понятно😃 От души!🤗❤
Программы можно оформлять в виде исполняемого файла и, затем, запускать вне интегрированной среды. Кроме того также можно создавать диалоговые приложения - GUI.
Сергей. Ты один из лучших преподавателей, что мне встречался в ютубе. Да собственно и в реальной жизни... Доходчиво, планомерно, с примерами. Хорошо поставленная речь и подготовленный план обучения👍👍👍👍
line=[0,0,0] img=[line[:],line[:],line[:]] img[0][0]=1 print(img) дает результат [1, [0, 0, 0], [0, 0, 0]] А если заменить на img=[line,line,line] , то результат будет [[1, 0, 0], [1, 0, 0], [1, 0, 0]] Попробуйте также поставить img=[ line[:] ]*3 и img=[ line ]*3
На 4:49 Вы говорите что ссылается на строку, а нарисовано так, что ссылается на столбик. Визуальное восприятие отказывается воспринимать слова - "ссылается нас строку", а рисунок говорит обратное. Можно как то поправить чтобы объяснение совпадало с первоначальным квадратом на 1:17
понятно, только не сказано, как выпрямить вложенные списки и , тем самым, увеличить количество элементов списка за счет вложенных элементов, ну... или как из многомерного списка списков сделать один - выпрямленный , не потеряв ни одного элемента
@@ДмитрийПал-н8е в том-то и дело, что, например, в первом случае line[0][0] = 1 меняет ВСЕ первые элементы во всех вложенных списках, а во втором случае только в первом списке. Как-то коряво наверно выразился, но попробуйте.
@@ВасилийПетунин-я3г я не очень понял вопрос, но попытаюсь объяснить подвох. При img=[line]*5 создастся список с ссылками на line (5 раз), т.е. при изменении line в img, 5 line'ов тоже изменятся. Чтобы этого избежать, необходимо копировать значения, т.е. img_copy=[line[:]]*5.
Уроки действительно очень хорошие, и за них спасибо, но задания, которые нужно после этих уроков делать просто конченные и ничего более конченного я да же представить не могу. Рекомендую смотреть автора для ознакомления с теорией, реально лучший курс на ютубе, но не в коем случае не делать задания вы убьете по часу на каждое что бы решить его именно тем вариантом как хочет автор хотя может быть ещё 10 правильных вариантов
Поскольку список является "вектором пронумерованных переменных", а переменная в питоне - это ссылка на значение, список можно вложить сам в себя и создать, например, "список, который содержит сам себя в качестве последнего элемента": L = [1,2] L.append(L) print(L, L[-1], L[-1][-1], L[-1][-1] [-1])
Сергей, благодарю Вас за отличное объяснение материала!) Сам гуманитарий, но нравится работать с числами и с компьютером. Решил попробовать изучить и вникнуть в язык Python! Дошел до этого урока и хотел бы выразить Вам свою благодарность за столь четкие и точные объяснения! Все предельно ясно и понятно! Вы обладаете талантом преподавателя! Спасибо Вам большое за Ваш неоценимый труд и вклад!
Имею огромную благодарность за создание этого курса, автор хороший преподаватель. Я все также стараюсь быть лучше, чтобы в будущем стать счастливым.
спасибо огромное, все очень доходчиво! до ваших уроков долго тупила, читала и смотрела кучи других видео, но никак не удавалось понять некоторые темы, в т.ч. и вложенные списки. а сейчас даже не знаю, в чем именно было непонимание)
Сергей, спасибо большое за курс. Это великое добро
Спасибо за урок и за канал. За то, что наполняете мир (интернет) благом.
Тут самый правильный подход в обучении. Как правило сразу дают условные конструкции. И задачи, которые должны решаться одни методом (написанным , кстати, на быстром С,) люди колбасят жуткими if конструкциями. И что в итоге Реальный пример. Задача - получить строку и вывести ее наоборот. Большая часть людей ( дело было на codewars) такое наколбасили, жуть! И самое топовое решение ,конечно - return string[: :-1] . Там такие комменты были. Один даже написал - Мне не нужно было рождаться на этот свет
Ну, срез с шагом это же довольно высокоуровневая штука, и у нее явно есть что-то более низкоуровневое под капотом. Допустим, на курсах с++ от Яндекса на степике мы только под самый конец начали пользоваться высокоуровневыми функциями из библиотеки STL, а до этого такие вещи как нахождение минимального/максимального числа, разворот строки/массива, поиск количества заданного значения и все остальное мы делали обычным проходом цикла for по элементу массива и в него уже вписывали условия.
Так что люди на codewars предполагали, что решать надо обычными методами, а тут какой-то чел просто знал про уже встроенную функцию и использовал ее. А что если бы этой функции не было?
Сергей, спасибо за Вашу работу.
Лучшие уроки не только по Python 👍👍👍, Сергей спасибо Вам за такую возможность получать знания🤗 Вы лучший
Сергей большое спасибо за замечательное видео.
После просмотра Ваших видео остаётся только один вопрос: ну, и как это можно было не понять?!!!🥰
Огромная благодарность за такой кропотливый труд!
От души спасибо за уроки и ваш труд.
Как же все отлично объяснил. 👍 Спасибо автору за видео!
Спасибо огромное за такое подробное объяснение!
Жаль, что не находила Ваши видео раньше, было бы намного-намного проще понять, что мне не понятно😃
От души!🤗❤
Спасибо за уроки, все понятно! Немного в Python смущает по сути "диалоговый" режим программирования. После C# непривычно все это выглядит.
Программы можно оформлять в виде исполняемого файла и, затем, запускать вне интегрированной среды. Кроме того также можно создавать диалоговые приложения - GUI.
Сергей. Ты один из лучших преподавателей, что мне встречался в ютубе. Да собственно и в реальной жизни... Доходчиво, планомерно, с примерами. Хорошо поставленная речь и подготовленный план обучения👍👍👍👍
Спасибо. Понравился урок.
спасибо!👏👍
Круто
Спасибо!
спасибо
Благодарю Вас! Отличные уроки! А где возможно найти задания, о которых вы упоминаете на последних секундах видео?
ссылка на Stepik под видео
На 2:30 вы создаете список (img), в качестве его элементов используете line[:]. А зачем здесь [:]? Ведь и просто line будет достаточно?
не совсем, line[:] создает копию списка, а просто line давал бы ссылку на тот же самый список
line=[0,0,0]
img=[line[:],line[:],line[:]]
img[0][0]=1
print(img)
дает результат [1, [0, 0, 0], [0, 0, 0]]
А если заменить на img=[line,line,line] , то результат будет [[1, 0, 0], [1, 0, 0], [1, 0, 0]]
Попробуйте также поставить img=[ line[:] ]*3 и img=[ line ]*3
На 4:49 Вы говорите что ссылается на строку, а нарисовано так, что ссылается на столбик. Визуальное восприятие отказывается воспринимать слова - "ссылается нас строку", а рисунок говорит обратное. Можно как то поправить чтобы объяснение совпадало с первоначальным квадратом на 1:17
Like!
👍
понятно, только не сказано, как выпрямить вложенные списки и , тем самым, увеличить количество элементов списка за счет вложенных элементов, ну... или как из многомерного списка списков сделать один - выпрямленный , не потеряв ни одного элемента
Об этом в теме генераторы списков
2:50 >>> img = [line] * 5 # но есть подвох!
Почему [line[:]]*3 НЕ РАВНО [line[:],line[:],line[:]] ?
@@ВасилийПетунин-я3г [line[:]]*3 == [line[:],line[:],line[:]] >>> True, следовательно они равны.
@@ДмитрийПал-н8е в том-то и дело, что, например, в первом случае line[0][0] = 1 меняет ВСЕ первые элементы во всех вложенных списках, а во втором случае только в первом списке. Как-то коряво наверно выразился, но попробуйте.
@@ВасилийПетунин-я3г я не очень понял вопрос, но попытаюсь объяснить подвох. При img=[line]*5 создастся список с ссылками на line (5 раз), т.е. при изменении line в img, 5 line'ов тоже изменятся. Чтобы этого избежать, необходимо копировать значения, т.е. img_copy=[line[:]]*5.
@@ВасилийПетунин-я3г т.е. во втором случае изменяется только первая копия [line[:], ...]
где практика?
ссылка под видео на Stepik
Уроки действительно очень хорошие, и за них спасибо, но задания, которые нужно после этих уроков делать просто конченные и ничего более конченного я да же представить не могу. Рекомендую смотреть автора для ознакомления с теорией, реально лучший курс на ютубе, но не в коем случае не делать задания вы убьете по часу на каждое что бы решить его именно тем вариантом как хочет автор хотя может быть ещё 10 правильных вариантов
Приветствую. На 4:57 мне непонятно, почему прежний список был удален сборщиком мусора? Ведь на него всё еще ссылаются остальные 4 столбца.
там каждый столбец - это независимые списки, поэтому на тот ничто уже не ссылается
@@selfedu_rus они же все равны друг другу вроде
@@northern_man_ равны по значениям, но это разные хранилища (области памяти)
@@selfedu_rus а почему бы им не ссылаться на одно хранилище?
@@northern_man_ можно и так сделать, но в данном занятии разные
🦾 Merci☝🖖👏🙌
Вот это мне и надо было знать.
Поскольку список является "вектором пронумерованных переменных", а переменная в питоне - это ссылка на значение, список можно вложить сам в себя и создать, например, "список, который содержит сам себя в качестве последнего элемента":
L = [1,2]
L.append(L)
print(L, L[-1], L[-1][-1], L[-1][-1] [-1])
Отлично.
Сергей, благодарю Вас за отличное объяснение материала!) Сам гуманитарий, но нравится работать с числами и с компьютером. Решил попробовать изучить и вникнуть в язык Python! Дошел до этого урока и хотел бы выразить Вам свою благодарность за столь четкие и точные объяснения! Все предельно ясно и понятно! Вы обладаете талантом преподавателя! Спасибо Вам большое за Ваш неоценимый труд и вклад!
6:03 - 6:30 по моему все наоборот
проверил, все верно (в видео)
Про print. Где же его писать: без отступа или с? 🤔
The best course I`ve ever seen!
как преобразовать простой текст в список, хотя бы в простой?
весь материал есть, подумайте )
@@selfedu_rus
split()