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

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


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


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


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



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



Привет, друзья.

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



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

В следующих лекциях мы поговорим с вами о последовательностях и генераторах.

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

Последовательности отличаются от других объектов ( к примеру чисел) тем, что они, к примеру, имеют длину, элементы находятся в определенном порядке и имеют свой номер(индекс). Исходя из этого в питоне существует ряд операторов, которые помогут нам работать с последовательностями.


оператор  in


x in str-  Возвращает 1, когда элемент со значением x присутствует в последовательности str

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

x not in str Возвращает 0, когда элемент со значением x присутствует в последовательности str


str*n- создание n копий последовательности str

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

str[i:j] так зыванный slice, или отрезок последовательности от элемента i до элемента j (не включительно)

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

Можно, также, не указывать первый или последний элимент слайса, в таком случае интерпритатор будет выводить нам элименты с самого начала (если мы напишем так str[:n])

или до конца, если мы напишем так str[n:]

Пример ниже.

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

Тут все просто, объяснений, надеюсь не требуется. Угадайте, что же будет при print (str[:])

Правильно, будет выведена целая последовательность на наш экран.


Иногда возникают ситуации, когда индекс нашей последовательности имеет отрицательное значение, что же тогда?

А ничего страшного. Просто мы "приходимся" по последовательности задом на перед.

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

Если вы знаете длину строки, то есть еще такая штука, которую мы можем провернуть с последовательностями, как распаковка значений. Это значит, в одном присвоении мы каждой переменной даем ссылку на определенный элимент последовательности. Звучит сложно, а на практике все просто

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

Вот как мы можем использовать этот прием на практике

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

А сейчас мы посмотрим на финт ушами, или более продвинутую распаковку

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

Ну как вам? а стало указывать на нулевой элемент, а  end стал у нас списком, который включает в себя все элементы после нулевого.


а еще так можно

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

Мы взяли первый элемент, который укажет на нулевой индекс, затем середину, и последний элемент, который укажет на 5 индекс.


На сегодня хватит. Пойду спать.

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

Из шапки понял, что Вы сам ЯП программируете, а не используя ЯП.

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

Но в целом удачи Вам :)
Жаль, что не "мой" ЯП, так может и на практике опроовал бы.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку