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

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

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


-Нет "хелоуворд" будет позже.

-Мне пофиг, что теоретическая информатика вам не нужна, если бы была не нужна- ее бы тогда из Вузов исключили.


Сейчас мы  работаем над тем, чтобы понять что такое программирование, и учим основные термины языка. Без этого- никак.


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


В прошлый  раз мы пытались понять что такое объекты в реальном мире на примере пересылки букета цветов из Москвы в Киев. А сегодня мы попытаемся понять что такое класс.

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

Итак..вспоминаем наши объекты из прошлой лекции.



Маша: 28 лет


безработная миллионерша



Джамал: 63 года


сотрудник фирмы по продаже цветов в Москве



Тарас: 33 года



сотрудник фирмы по продаже цветов в Киеве



Паша: 25 лет


не единожды судимый придурок, подрабатывает доставкой цветов в Киеве



Светлана: 20 лет


светская львица



А теперь мы разделим наши объекты по определенным свойствам.

Джамал и Тарас- они оба торговцы цветами. Значит они оба содержат одинаковые методы и одинаковые атрибуты (город к примеру). Однако они содержат разные данные. Например, хотя они оба имеют атрибут "город", но в случае Джамала это Москва, а в случае Тараса это Киев. В мире информатики говорят- Джамал и Тарас являются экземплярами класса "торговцы цветами". Таким образом класс- это фундамент объекта. Дальше углубляться не станем пока что (яд нужно принимать мелкими порциями), но начальное понятие объекта и класса нам скоро пригодится.

На этом хватит, и мы оставим это для дальнейшего размышления.



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

https://www.python.org/downloads/ 

качаем питон версии 3. Устанавливаем на машину.

(для Unix систем питон уже установлен, для проверки вводим в консоли

$ python -V и получаем ответ "Python 3.5.2 " (версия может быть другой), если получаем ошибку, устанавливаем питон (в интернете можно найти как это сделать)


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

Вопрос понял. Отвечаю


Официальный дистрибутив питона (того, что вы скачали и установили) содержит в себе

-Питон интерпретатор. На первой лекции говорили о нем

-IDLE (среда разработки). Проще говоря- блокнот, в котором мы говнокодить будем.

-Модули, которые могут использоваться интерпретатором (пока просто понимаем, киваем, но не заморачиваемся)

-Документация


Питон в интерактивном режиме.


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


Выглядит окно интерпретатора в консоли так:

Программирование Python по моим конспектам Лекция 1 ч.2 Питон, Программирование, Язык, Длиннопост
Первая строка, надеюсь всем понятна, вторая- это список команд для помощи.

а вот последняя строка, а именно символы ">>>"приглашает нас ввести нашу первую команду. После того как мы ее введем, у  нас есть три варианта развития событий.


1. Мы вводим обычное арифметическое выражение 2+2*6, интерпретатор обрабатывает его и дает ответ 14.  Важно знать, что правила математики и арифметики играют важную роль. Если вы заметили из примера выше. Сначала умножаем 2 на шесть, а к результату добавляем 2.

Программирование Python по моим конспектам Лекция 1 ч.2 Питон, Программирование, Язык, Длиннопост

2 мы вводим ошибочное выражение, противоречащее правилам арфиметики  2)+6  и получаем ответ с ошибкой. То есть интерпретатор обрабатывая строку движется посимвольный с лева направо, и как только найдет не понятную ему хрень (в данном случае это  ")", он начинает орать)

Программирование Python по моим конспектам Лекция 1 ч.2 Питон, Программирование, Язык, Длиннопост

И третий вариант. Мы даем команду, на которую не бывает внешней реакции. Например если мы присвоим переменной a значение 2. Ну присвоили себе и присвоили. Если о шибки нет, значит все ок. И мы можем вводить следующую строку.

Программирование Python по моим конспектам Лекция 1 ч.2 Питон, Программирование, Язык, Длиннопост

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


Таким образом мы можем писать коротенькие программки прямо в консоли, а если у вас стальные яйца, то можно и большие програаамищи.

тоже самое можно делать и в оболочке python-shell  в IDLE (среде разработки) которая входит в состав питона, который вы уже установили.

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

Программирование Python по моим конспектам Лекция 1 ч.2 Питон, Программирование, Язык, Длиннопост

Однако, есть еще и горячие клавиши в python-shell, а именно

Alt+p- показывает предыдущую команду (шаг назад)

Alt+N - показывает следующую команду (шаг вперед)

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


Теперь курс теоретической информатики


Итак..попытаемся понять как работает компьютер, точнее основополагающую успеха его работы.


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

то


00 -свет выключен, на связь не выходит никто


01 свет включен только в правой комнате. Значит агенту Васе надлежит явиться с докладом


10 свет включен только в левой комнате. Значит аненту Пете нужно прийти и доложить


11 свет горит везде. Приходит агент Джамал (чувак из прошлой лекции)



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

Но как бы заставить это все работать. Как бы заставить машину с помощью всех этих еденичек и ноликов изобразить, скажем число "434"..

Поэтому собрались мудрецы и стали думу думать..думали думали..и выдумали вот что-

берем мы наше число 434. Делим его на  2, а остаток от деления записываем. Получили мы 217..супер, а остаток 2. Делим мы теперь 217 на 2, и выписываем остаток. И так до упора (как на украденной в интернете картинке ниже). Добравшись до упора. мы видем, что наш остаток состоит из единичек и ноликов, который нам просто напросто нужно переписатть наоборот. (или снизу вверх) - это и будет число 434 в двоичной системе счисления. И теперь компьютеру нужно будет всего лишь взять 9 окон(бит) и правильно включить-выключить в них свет.

Программирование Python по моим конспектам Лекция 1 ч.2 Питон, Программирование, Язык, Длиннопост

Попробуйте потренироваться с другими положительными числами. А еще подумайте, сколько бит нужно, чтобы отобразить число 5 или 10 или 300

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


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

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

Время увлекательных тупых вопросов) Вы пишете "интерпретатор обрабатывая строку движется посимвольно слева направо", а посимвольно двигаясь в примере 2+2*6, он не начинает делать сложение раньше, чем умножение, чтоб одуматься позже и пересчитать? Ну то есть понятно, что там заложены математические принципы и в любом случае программа не накосячит и подсчитает правильно, но как она это сделает? или он все-таки анализирует всё выражение прежде, чем начать его выполнять, и выставляет порядок действий?
Извините, не вычисляйте по айпи :(

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

Раз уж тут про установку, есть еще софтина JetBrains PyCharm Community Edition, это уже не интерпретатор, а компилятятор. Да и чем-то на Visual Studio смахивает.


З.Ы. это не реклама, тапками не бейте, просто инструмент, который юзаю я для изучения питона.

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

У вас неточность (описка) в тексте при описании примера с числом 434: "...число 434. Делим его на 2, а остаток от деления записываем. Получили мы 217..супер, а остаток 2."  Должно быть написано "остаток 0".

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

Отличный урок! ТС спасибо! Так держать :) И поржал, и знания получил.

З.Ы. Под какую разрядность лучше качать? У меня обе поддерживаются.

З.Ы.Ы. Там ещё есть "Gzipped source tarball" и "XZ compressed source tarball" - оно нам надо? Или это плюшки/дополнения/неведомая хрень какая-то (не обязательная/нах ненужная)?

раскрыть ветку
Автор поста оценил этот комментарий
О как) питон не знаю, ваш подход понравился, определенно подписываюсь, спасибо!