Программирование Python по моим конспектам

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


Итак, дорогие 10 подписчиков, вот мы и встретились.

Далее я буду переводить свои конспекты по Питону (или как говорят бородатые мужики в узких штанах "паааайййтаааан").

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


Итак..начнем мы не с Питона, о нееееет...падаван еще не готов к этому. Начнем мы с понятия


Что значит "Программировать"


Итак любой человек, которого спросят "что такое "программировать?"- ответит "программировать- это писать программу". И этот человек будет прав.

Однако мы используем слово "программа" не только в разрезе информатики как науки, но и в жизни. Так, у нас есть такие понятие, как театральная программа или программа новостей по зомбоящику. У нас, также есть программа (или же план) наших дней рождения. И каждый раз эти вещи обедняет одно- это список действий или событий, изложенных в определенном порядке. К примеру, у меня день рождения, и я решил закатить вечеринку с блек джеком и тортиком. Что я делаю? Я сам себя программирую, иначе говоря составляю план


1  зову гостей

2 в день патинахате я покупаю торт и готовлю кучу вкусняшек

3 Накрываю на стол

4 Одеваю чистые носки и пЯнжак

5 Жду гостей


Однако, если я плохой программист самого себя (другими словами дебил), я составлю такую программу, которая состоит из таких же команд..нооо


1 в день патинахате я покупаю торт и готовлю кучу вкусняшек


2 Накрываю на стол


3 Одеваю чистые носки и пЯнжак


4 Зову гостей


5 Жду гостей


Может кто то и придет из соседнего подъезда, но людей стоило бы заранее предупреждать.


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


Что же мы имеем ввиду, говоря о понятии программирования, в науке "информатика"


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

1 Понятны человеку

2 понятны машине

3 управляют машиной


Алгоритм

Очень хорошее слово, которое мы будем довольно часто употреблять

А. - это инструкция к решению задачи. Не больше ни меньше. Вот вам пример Алгоритма


"Смешайте яйца с сахаром и добавьте кефир, всыпьте соду, сахар, щепотку соли, затем муку и всё хорошо перемешайте. Натрите на крупной тёрке яблоко, смешайте его с творогом и добавьте полученную массу в тесто. Поместите тесто в смазанную маслом форму для выпечки и выпекайте пирог в разогретой до 200°С духовке 30 минут."



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

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


Синтаксис и Семантика


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

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

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


Интерпретатор и Компилятор


оооотличные слова. Удивительные 2 слова, я бы сказал


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

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


Тут то и вся соль.


Компилятор:


Компьютер с помощью компилятора читает текст программы (код), если он находит ошибку, не запускает программу, а орет о том, что найдена ошибка. Если не находит- создает в памяти машины исполняемый файл и запускает его как обычную программу. Это касается таких языков программирования как С или С++ или им подобные.


работает так:


наш код--компилятор--исполняемый файл--(ОС--хардварЭ (железо))


Интерпретатор:

А вот интерпретатор- это продвинутый джин - переводчик

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


наш код--интерпретатор--(ОС--хардварЭ (железо))


Пока этого достаточно. В процессе мы к этому вернемся


Мир Обьектов


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


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


Итак. Предоставим ситуацию. Маша из Москвы решила послать своей подруге Светлане из Киева букет цветов. Поэтому она звонит в цветочную фирму (или как там их называют), и делает заказ у работника по имени Джамал. Ну Москва- поди не резиновая разные имена бывают.

Рассмотрим теперь Джамала как обьект. На языке программирования обьект Маша шлет обьекту Джамалу послание "пошли 7 роз Светлане, по адресу г. Киев, улица Народного Ополчения 9". Джамал принимает сообщение и уже знает что ему нужно делать. Это значит, что ему известен алгоритм с тем, что же ему делать нужно в таких ситуациях. И такой алгоритм прост- найти среди своих коллег в Киеве такого, который работает не далеко от Светланы и может доставить букет цветов. Джамал находит такого. Его зовут Тарас. И шлет Джамал ему немного измененное сообщение "  Купи 7 роз и пришли по адресу г. Киев, улица Народного Ополчения 9. От Маше Светлане". На этом Джамал со своей задачей справился и передал ответственность за задачу Тарасу. Но и Тарас парень нее простой у него тоже есть свой алгоритм работы. Тарас собирает розы и зовет простого паренька Пашку, который должен на велосипеде доставить букет непосредственно Светлане. А Пашка..ну поди не отличается от других же..у Пашки есть свой алгоритм..найти карту, посмотреть куда ехать, доставить букет и сказать от кого они ну и получить подпись в акт приема передачи. После чего отдать акт Тарасу, чтобы тот отдал Джамалу, а Джамал отчитался перед Машей. На этом цепочка передачи информации закончена.

Вроде ничего не ясно. Но в этом и вся суть.


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

Если мы рассмотрим человека как обьект. У него есть свойства.

Пример


имя обьекта  свойства

Маша:  28 лет

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


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

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


Тарас:  33 года


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


Паша:  25 лет

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


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

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



Итак, прокручиваем все заново. Обьект Маша ищет обьект, у которого есть свойства "продажа цветов в Москве", тот в свою очередь ищет обьект со свойством "продажа цветов в Киеве", дальше ищется обьект со свойством "доставка цветов в Киеве" и тд.

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

Однако доставка цветов это не все что умеет делать Джамал. Он еще умеет читать, курить трубку, летать на самолете и тд и тп. Все это собрание алгоритмов. И есть еще отдельный алгоритм "что делать, если позвонит заказчик и закажет цветы". Этот алгоритм называется Методом.


Дальше мы будем еще 1500 раз говорить об обьектах и классах ( о них позже)  и

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


На след теме доберемся до классов и будем учиться включить компьютер:)



А теперь вопрос- возможно, стоит мне это в виде видео делать? А то как то чувство, мол книгу пишу)))

6
Автор поста оценил этот комментарий
Не надо видео, пожалуйста. С текстом гораздо удобнее работать и воспринимать, особенно если информация не развлекательного характера.
раскрыть ветку
2
Автор поста оценил этот комментарий

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

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

ИМХО, нужно совместить, теорию описывать текстом, а вот примерчики можно и в видеоформате сделать. Если это конечно не сильно накладно автору. Жду продолжения. )))

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

спасибо, продолжайте!

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

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

раскрыть ветку