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

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


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



Исправления и замечания приветствуются.


Список предыдущих лекций



http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...

http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...



Здоров, потерялся я тут немного со своими лекциями, однако збс, что этого никто не заметил.

Сегодня поговорим о важнецкой теме. Вот такой важной, шо аж ваще. Без  нее дела не будет. Крест на пузе- дела не будет!!

Сегодня мы поговорим о операторах разветвления. Ага. Разветвление-это вам не математика- тут придется думать!

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

Значит так. Представляем теперь, что ваша тушка стоит напротив светофора. Если горит зеленый- идем, если красный- стоим и вертим башней, наслаждаясь природой.

Это самый яркий пример разветвления в нашей скучной, серой жизни. Ключевое слово тут-ЕСЛИ. Иными словами есть условие, и ЕСЛИ оно исполнено- наступает действие.

В питоне тоже есть свои ЕСЛИ, которые назвали в честь слова бусурманского if (если. пинд.яз)

Выглядит это так


if условие :

инструкция


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

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

А вот вам пока мелкий примерчик. Программка принимает число, если число отрицательное- выводим его положительный эквивалент. Если положительное- не делаем ничего.

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

Теперь разбор построчно. Первая строка- переменная x начинает указывать на значение равное введенному нами параметру в целочисленном формате.

вторая строка. проверяем соответствует ли наш х условию. Если значение в скобках истинно - интерпретатор заходит в раздел "инструкция" и исполняет его. Если нет он его перепрыгивает и сразу переходит к инструкции print.


Сумрачный гений не остановился на одном ифе и выдумал еще одну полезную штукенцию, которою зовут ЭЛСЭ. else (иначе. пинд.яз). В питоне выглядит так


if условие :

инструкция

else:

инструкция


Работает схема очень похоже на if, но с одним нюансом. Если условия исполнено- переходим к инструкции if. В противном случае переходим к инструкции else-

Создаем пример программы, которая продает билеты в кино. Для детей до 7 лет и пожилых людей (свыше 65 лет)- вход три рубля. Остальным - пять рублей.

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

И последний зверь в нашем зоопарке зовется elif. Это как внебрачная дочь else и if.

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

ээээээээммммммммм....во! автомат продает разноцветные жвачки, которые по разному стоят.

Говнокодим же ниже!

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

выглядит как говно. Слишком много условий в условиях. Именно для таких случаев и изобрели elif.

Выглядет это дело так


if условие :

инструкция

elif:

инструкция

elif:

инструкция

elif:

инструкция


Пока все выглядит не очень понятно. Но когда я модифицирую программку выше, все станет понятней. Смотрим

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

Как минимум выглядит не так страшно и более логично. Разбор построчно.

Бублэ принимает строку.  Это понятно.

Первый иф- проверка условия, если условие истинно- пишем цену в рубль. Конец программы. Если не истенно - идем к строке elif ИНАЧЕЕСЛИ. Если и это условие условие не выполнено- идем к следующему и так далее.

последний else- это так званная "защита от дурака". Ведь кто знает что введет пользователь. Да мы и сами знаем какое слово из трех букв  вы введете туда однажды. Для таких случаев и работает последняя строка.

На сегодня мои полномочия все. Монолог окончен

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

Содержание этого поста описывает то, что обычно находится на первых страницах любой книги по питону. Или вообще любой книги по любому языку программирования.
UPD:

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

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

раскрыть ветку (15)
Автор поста оценил этот комментарий
Поспорю. В последние дни проглядывал две книги по питону.
Упоминание о четырех пробелах/табуляции появилось в обоих как раз таки в той главе, где упоминается ветвление.
раскрыть ветку (4)
1
Автор поста оценил этот комментарий

Суть претензии не в этом. https://pythonworld.ru/osnovy/pep-8-rukovodstvo-po-napisaniy...
Да, я немножко зануда, но если уж учишься работать с питоном - было бы неплохо с самого начала придрочиться на четырёхкратное жмаканье пробела.

раскрыть ветку (3)
Автор поста оценил этот комментарий
Читал)
Но если нет разницы, зачем жамкать по клавишам больше?
раскрыть ветку (1)
Автор поста оценил этот комментарий

Разница есть, в том-то и дело.
Автозамена, скажем, есть не везде.
Плюс, в доках отступы рекомендуются другие, а такая контекстно-зависимая автозамена уже далеко не так распространена.
Вообще, рекомендую погуглить "Дзен Питона". Вокруг него построено множество нюансов программирования именно на этом языке, от оформления кода до всяких весёлых фич типа декораторов. Ну и просто поржать.

Автор поста оценил этот комментарий
Кстати, я согласен. Это мой промах. В следующей лекции дам ссылку на твой коммент
4
Автор поста оценил этот комментарий

да ну? А ты думал, что в каждой книге свой питон?


Кроме того- это уже лекция 20-я где то. Что же я тут пишу тогда уже 20 постов, если это все на первых страницах есть? Например на прошлых лекциях я о дискретной математике писал, на ранних лекциях о бинарном коде. Я вот не встречал много книг о питоне, где о этом так рассказано. Открой первую лекцию- если ты найдешь такое же точно объяснение о объектах в одной из книг- я пост запилю о том, что ты пиздат как бог.

По pep8 - я тут для бабушек объясняю. Их это испугает до усрачки. Поэтому пытаюсь объяснить как могу. У меня Pep8 запланирован аж на хз когда.

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

Гляну. А ссылки в посте почини, они ведут в 404-е царство.

раскрыть ветку (8)
1
Автор поста оценил этот комментарий
понял. спасибо) исправлюсь
раскрыть ветку (7)
Автор поста оценил этот комментарий

а можешь расписать, что нужно выучить, чтобы стать бекэндером? с джанго

раскрыть ветку (6)
1
Автор поста оценил этот комментарий
питон не основной мой язык так что хз.

Если что- посмотри в сторону пхп.

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

а ты вебом занимаешься? или какое у тебя направление?

раскрыть ветку (4)
1
Автор поста оценил этот комментарий
моя специализация - расследование преступлений в сфере ИТ.

где работаю не скажу. Но раньше работал следователем в МВД по вышеуказанному направлению

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

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

но тут не может быть советов(

а можете по безопасности книг посоветовать?

а то почитал "мифы" Лукацкого- либо правовой аспект, либо мифы в стиле "на самом деле абсолютно защищенную систему создать нельзя"

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

У меня лично длинный путь был. Сначала Академия МВД- на факультете расследований ИТ преступлений - а это 4 года курсантом в сапогах, потом практическая работа по специальности. Потом технический университет Бранденбурга(бакалаврат)+Юрфак еще одного немецкого универа по специальности "уголовное право". Это серьезное образование для серьезной работы. Поэтому, мое мнение, серьезным программистом стать легче, чем серьезным безопасником (который тоже должен знать программирование)

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

ну я безопасником, который именно предотвращением, а не расследованиями. МСЭ, СОВы и т.д.

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