Программирование Python по моим конспектам. Лекция 30

Пост можно топить, минусить и всячески убивать, ибо в горячем он нахер не нужен, а вот подписчикам пригодится.


Для тех кто не в теме, тут я перевожу свои лекции по питону с языка немецкого на язык человеческий, поэтому- если что- я не виноват. Эти лекции созданы не для того, чтобы сделать из человека говнокодера, а для того, чтобы помочь в сложных темах, которые некому объяснить, а книга по программированию не может с этим помочь. Если вы никогда не были в такой ситуации- значит вы вундеркинд и я хочу от вас детей.

Отвечая на 90% одинаковых вопросов-

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

Я это делаю, потому что мне это нравится.


Привет товарищи, сегодня переживаем маленький юбилей. Тридцатая лекция. Думал, что меня не хватит так на долго.

Сегодня мы продолжим заниматься списками, повторяя то, что мы уже знаем и еще выучивая что-то новое.

Вроде как мы уже умеем делать кучу всяких интересных штук со списками, однако, это еще не все финты ушами, которые мы сможем сделать с ними. Впрочем, я все и не знаю)

Давайте мы еще раз и подробнее рассмотрим создание списка.  Обратите ваши взоры на муть ниже, но особо не заморачивайтесь. В процессе примеров я все объясняю. Данное есть ни что иное, как выписка из документации, которая показывает нам возможные пути создания списка.

Программирование Python по моим конспектам. Лекция 30 Python, Питон, Лекция, Длиннопост

Начнем с первого, который нам уже известен, но повторение -мать учения.

Программирование Python по моим конспектам. Лекция 30 Python, Питон, Лекция, Длиннопост

То, что выше мы уже делали много раз, и в объяснении не нуждается. Элементы обозначаются в квадратных скобках. Они могут быть просто перечислены, как в строке 1, или быть в форме выражений как в строке 3.

Элементами могут быть и другие списки, как в строке 2.


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

Проще говоря, выглядит она так

lists=[выражение for элемент in новый список]

Итак, что мы делаем. Грубо говоря, мы используем элементы одного списка, для создания другого с помощью фор-цикла. Рассмотрим подробнее наш фор-цикл, который мы уже проходили. Мы хотим вывести на экран все элементы списка

Программирование Python по моим конспектам. Лекция 30 Python, Питон, Лекция, Длиннопост

А как же нам запихнуть эти значения в новый список?

Можно, конечно, так как мы раньше делали.

Программирование Python по моим конспектам. Лекция 30 Python, Питон, Лекция, Длиннопост

А можно и по "модному".

Программирование Python по моим конспектам. Лекция 30 Python, Питон, Лекция, Длиннопост

Итак, открываем квадратную скобку и пишем выражение, у нас оно сейчас представляет собой i**2. Далее все выглядит как самый обычный фор-цикл, который мы уже прошли выше.

Перебирается каждый элемент строки от 0 до 5 и возводится в квадрат.

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


Можно еще и так делать

Программирование Python по моим конспектам. Лекция 30 Python, Питон, Лекция, Длиннопост

Переходим к третьей строке первой картинки. Переводя это дело на человеческий язык, выглядит она так

s=[выражение for элемент in другой список if условие]

Очень этот список похож на предыдущий, однако мы добавили условие. Давайте испытаем на практике. Мы, к  примеру, хотим получить элементы одного списка, которые делятся на 5 в другом списке.

Программирование Python по моим конспектам. Лекция 30 Python, Питон, Лекция, Длиннопост

Смотрим теперь на строку 4 первой картинки. Она позволяет нам из двух списков находить общие элементы и добавлять их в третий список

Программирование Python по моим конспектам. Лекция 30 Python, Питон, Лекция, Длиннопост

На этом на сегодня все.



На следующей лекции мы рассморим новые методы для работы со списками.


del s[i] удаляем элемент с индексом i, длина списка уменьшается


del s[j:i] удаляем элементы с индексами от i до j


s.extend(t) список s дополняется элементами последовательности t


s.index(x) будет возвращен наименьший индекс i когда s[i]==x


s.pop() возвращает последний элемент списка, причем он из списка удаляется


s.remove(x) удаляется первый элемент списка со значением x


s.reverse() порядок элементов сортируется "наоборот"- например было [1,2] стало [2,1]

Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

Привет, спасибо за поддержку. Рад, что не зря тратил время на эти посты)

Автор поста оценил этот комментарий

Зачем???
Ты не питонщик, языка ты не знаешь, стандартов не знаешь, на кой хер ты прешься в учителя?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

я повторяю уже куй знает какой раз. Я никого не учу. Я тупо перевожу. Поэтому там и написано не "уроки по питону", а "мои лекции по питону". Я еще на первых лекциях говорил, что я не питонщик. Это всех устроило.  

показать ответы
Автор поста оценил этот комментарий

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

Видел у вас сублайм, там кажется есть плагин pep8, возможно даже встроенный не помню.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Да согласен я. Но сам пойми, не просто перевести лекцию, да еще и понятным языком. Мне приходится жертвовать чем то.

Если я буду проверять пробелы и отступы- мои выходные накроются. А плагин- хороший совет. Спасибо

1
Автор поста оценил этот комментарий

Во всех его примерах не соблюдается pep8, его бы распяли просто ещё на входе. Любой питонщик плюнет в него ядовитой слюной.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Поэтому я и не питонщик)

Я уже говорил как -то, что мне в последнее время понадобилось вспомнить питон, поэтому я перечитываю свои университетские лекции, и заодно их перевожу.

показать ответы
1
Автор поста оценил этот комментарий
Элементы списка должны быть разделены пробелами, У тебя  - нет.

Между переменными и операторами в выражении должны быть пробелы, у тебя их нет.


неужели ты правда поверил, что я не знаю что такое PEP8?

Мне не надо верить, я же не в церкви. Я вижу собственными глазами, что PEP8 ты не знаешь.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Ну вот это уже ответ, который я хотел услышать. Теперь я ошибку понял. Спасибо

1
Автор поста оценил этот комментарий

Есть такой документ https://www.python.org/dev/peps/pep-0008/

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

неужели ты правда поверил, что я не знаю что такое PEP8?

Я знаю где именно в предыдущих лекциях не соблюдены правила, и это уже обсуждалось.

Однако, скажи мне где они в данной лекции не соблюдены. В трех строках, да еще и в консоли.

Кроме того- я не учу людей программированию. Я это уже много раз тут говорил.

Специальность у меня -"теоретическая информатика". Я даже права не имею людей учить программированию. Я тупо перевожу лекцию. Где то забил на формат, согласен. Но кто зарабатывать будет с питоном- он уж точно не будет ориентироваться на мои переводы лекций.

показать ответы
2
Автор поста оценил этот комментарий

Я не знаю, кого ты перевродишь, но мой тебе совет - бросай это дело. Человек, который не знает и не соблюдает принятых в отрасли стандартов не может научить ничему хорошему. Есть куча литературы, достойной перевода, например, https://kotlinlang.org/docs/books.html

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

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

А пока лучше расскажи где чего я не выполнил.

показать ответы
2
Автор поста оценил этот комментарий

Слышь, лектор, а ты про PEP8 что-нибудь слышал?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

не, проспал к куям.

Только лектор не я- читай выше. Я только перевожу.

показать ответы
DELETED
Автор поста оценил этот комментарий

Еб@ть...

Мне при одном виде этого всего плохо становится.

А кто-то этим всю жизнь занимается.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

И не говори..несчастные люди..