46
Зачем программировать? Глава 1 Python for Informatics: Exploring Information www.pythonlearn.com

Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Зачем программировать?Глава 1

Python for Informatics: Exploring Informationwww.pythonlearn.com

Page 2: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Компьютеры хотят быть полезными...

• Компьютеры созданы для одной цели – выполнять работу для нас

• Но чтобы объяснить компьютерам, что мы хотим сделать, нам нужно говорить на понятном им языке

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

Что дальше?

Что дальше?

Что дальше?

Что дальше?

Что дальше?

Что дальше?

Что дальше?

Page 3: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Программисты предвидят потребности

• Приложения для iPhone – это рынок

• Приложения для iPhone загружались более 3 миллиардов раз

• Многие программисты уволились с работы, чтобы быть разработчиками приложений для iPhone

• Программисты знают, как программа устроена

Выбери меня!

Выбери меня!

Выбери меня!

Заплати мне!

Выбери меня!

Выбери меня!

Page 4: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Пользователи по сравнению с программистами

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

• Программисты изучают компьютерный язык, а также то, как компьютер устроен

• Программисты обладают инструментами, позволяющими им создавать новые инструменты

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

Page 5: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

КомпьютерОборудование + Программное

обеспечение

Сети....

С точки зрения создателя программного обеспечения мы создаем программы. Конечные пользователи (заинтересованные лица) – это своего рода наши начальники, которым мы хотим

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

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

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

ИнформацияДанные

Пользователь

Программист

Page 6: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Зачем быть программистом?

• Чтобы выполнять определенные задачи. В этом отношении мы являемся и пользователями, и программистами

> Обработать данные опроса

• Чтобы создать что-то для других пользователей – работа программиста

> Устранить проблему в работе программного обеспечения Sakai

> Добавить на веб-сайт гостевую книгу

Page 7: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Что такое код, программное обеспечение, программа?

• Набор сохраненных инструкций

> Это частичка нашего ума в компьютере

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

• Частичка творчества, особенно когда нам удается создать максимально удобную для пользователя программу

Page 8: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Программы для людей...

http://www.youtube.com/watch?v=vlzwuFkn88Uhttp://www.youtube.com/watch?v=sN62PAKoBfE

Page 9: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Программы для людей...

Под музыку: левая рука вперед, правая рука вперед, левая ладонь вверх, правая ладонь вверх. Левая рука на правое плечо, правая рука на левое плечо, левая рука на затылок, правая дуга на затылок. Левая рука на правое ребро, правая рука на левое ребро, левая рука назад, правая рука назад. Вращение тазом,вращение тазом,прыжок.

http://www.youtube.com/watch?v=vlzwuFkn88Uhttp://www.youtube.com/watch?v=sN62PAKoBfE

Page 10: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Программы для людей...

http://www.youtube.com/watch?v=vlzwuFkn88Uhttp://www.youtube.com/watch?v=sN62PAKoBfE

Под музыку: левая рука вперед, правая рука вперед, левая ладонь вверх, правая ладонь вверх. Левая рука на правое плечо, правая рука на левое плечо, левая рука на затылок, правая дуга на затылок. Левая рука на правое ребро, правая рука на левое ребро, левая рука назад, правая рука назад. Вращение тазом,вращение тазом,прыжок.

Page 11: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Программы для людей...

http://www.youtube.com/watch?v=vlzwuFkn88Uhttp://www.youtube.com/watch?v=sN62PAKoBfE

Под музыку: левая рука вперед, правая рука вперед, левая ладонь вверх, правая ладонь вверх. Левая рука на правое плечо, правая рука на левое плечо, левая рука на затылок, правая рука на затылок. Левая рука на правое бедро, правая рука на левое бедро, левая рука назад, правая рука назад. Вращение тазом,вращение тазом,прыжок.

Page 12: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

the clown ran after the car and the car ran into the tent and the tent fell down on the clown and the car

клоун побежал за машиной, машина въехала в палатку, и палатка упала на клоуна и машину

Программы для Python...

Page 13: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Программы для Python...

Page 14: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

name = raw_input('Enter file:')handle = open(name, 'r')text = handle.read()words = text.split()

counts = dict()for word in words: counts[word] = counts.get(word,0) + 1bigcount = Nonebigword = None

for word,count in counts.items(): if bigcount is None or count > bigcount: bigword = word bigcount = countprint bigword, bigcount

python words.py Enter file: words.txt to 16

python words.py Enter file: clown.txt the 7

Page 15: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Архитектура аппаратного обеспечения

Page 17: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Программное обеспечение

Устройства ввода и вывода

Централь-ный

процессор

Основная память

Вспомога- тельная память

Типичный компьютерЧто

дальше?

Page 18: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Определения• Центральный процессор запускает программу. ЦП

всегда хочет знать, "что дальше"? Это не мозг. ЦП очень тупой, но очень, очень быстрый.

• Устройства ввода: клавиатура, мышь, сенсорный экран.

• Устройства вывода: экран, колонки, принтер, DVD-рекордер.

• Основная память: быстрое небольшое временное запоминающее устройство (ОЗУ). Данные теряются при перезагрузке компьютера.

• Вспомогательная память: более медленное устройство постоянного хранения данных - дисковод и карта памяти. Данные хранятся, пока их не удалить.

Что дальше?

Page 19: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Программное обеспечение Что

дальше?

Типичный компьютер

Централь-ный

процессор

Основная память

if x< 3: print

Устройства ввода и вывода

Вспомога- тельная память

Page 20: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Программное обеспечение

Язык программирования

Что дальше?

Основная память

Централь-ный

процессор

0100100100111001

Устройства ввода и вывода

Вспомога- тельная память

Page 21: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Перегревшийся процессор

http://www.youtube.com/watch?v=y39D4529FM4

Что дальше?

Page 22: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Жесткий диск в действии

http://www.youtube.com/watch?v=9eMWG3fwiEU

Page 23: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Python как язык

Page 24: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

http://harrypotter.wikia.com/wiki/Parseltongue

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

наследству. Почти все известные змеиные маги являются потомками Салазара Слизерина.

Page 25: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Python - это язык интерпретатора Python и тех, кто может общаться на этом языке. Людей, владеющих языком

Python, также называют “пайтонистами”. Это очень редкая способность, которая, вероятно, передается по наследству.

Почти все известные “пайтонисты” используют программное обеспечение, разработанное господином

Гвидо ван Россумом.

Page 26: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Начинающие программисты: синтаксические ошибки

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

• Когда вы сделаете ошибку, компьютер не подумает, какие же вы “хорошенькие”. Если он *знает* этот язык, а вы его только изучаете, он скажет “синтаксическая ошибка”. Может показаться, что Python жестокий и бесчувственный.

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

Page 27: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Общение на языке Python

Page 28: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

csev$ pythonPython 2.5 (r25:51918, Sep 19 2006, 08:49:13) [GCC 4.0.1 (Apple Computer, Inc. build 5341)] on darwinType "help", "copyright", "credits" or "license" for more information.>>>

Что дальше?

Page 29: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

csev$ pythonPython 2.5 (r25:51918, Sep 19 2006, 08:49:13) [GCC 4.0.1 (Apple Computer, Inc. build 5341)] on darwinType "help", "copyright", "credits" or "license" for more information.>>> x = 1>>> print x1>>> x = x + 1>>> print x2>>> exit()

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

использовать команду quit().

Page 30: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Поговорим на языке Python...

Page 31: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Что сказать?

Page 32: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Элементы языка Python

• Словарь / слова - переменные и зарезервированные слова (глава 2)

• Структура предложений - допустимые синтаксические структуры (главы 3-5)

• Структура программы - создание программы для определенной цели

Page 33: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

name = raw_input('Enter file:')handle = open(name, 'r')text = handle.read()words = text.split()

counts = dict()for word in words: counts[word] = counts.get(word,0) + 1bigcount = Nonebigword = None

for word,count in counts.items(): if bigcount is None or count > bigcount: bigword = word bigcount = countprint bigword, bigcount

python words.py Enter file: words.txt to 16

Короткий “рассказ” о том, как считать слова

в документе с использованием языка

Python

Page 34: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Зарезервированные слова

• Использование зарезервированных слов не допускается в названии переменных/идентификаторов

and del for is raise assert elif from lambda return break else global not try class except if or while continue exec import pass yield

def finally in print as with

Глава 2

Page 35: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Строки

x = 2x = x + 2print x

Переменная Оператор Константа Зарезервированное слово

Оператор присваиванияПрисваивание с выражениемОператор печати

Page 36: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Абзацы в программировании

Page 37: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Скрипты на языке Python

• Python в интерактивном режиме хорошо подходит для экспериментирования и программ длиной в 3-4 строки

• Большинство программ гораздо длиннее, поэтому мы сохраняем их в документе и даем команду запустить программы с этого документа

• В некотором смысле мы “даем интерпретатору Python скрипт”

• Как правило, файлы на языке Python следует сохранять с расширением “.py”

Page 38: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Написание простой программы

Page 39: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Интерактивный режим по сравнению со скриптом

• Интерактивный режим Python

> Команды построчно вводятся и выполняются непосредственно в оболочке Python

• Скрипт

> Набор команд (строк) вводится в файле с использованием текстового редактора и затем выполняется интерпретатором Python

Page 40: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Шаги или выполнение программы

• Подобно рецепту или инструкциям по установке, программа - это набор последовательных шагов

• Некоторые из этих шагов - условные, то есть их можно пропустить

• Иногда шаг включает в себя группу повторяющихся шагов

• Иногда набор шагов сохраняется для последующего использования в нескольких местах на протяжении всей программы (Глава 4)

Page 41: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Последовательные шаги

Программа:

x = 2print xx = x + 2print x

Результат:

24

x = 2

print x

x = x + 2

print x

Все шаги программы выполняются последовательно. Программисты прокладывают “дорожку” для выполнения

программы. Глава 2

Page 42: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Условные шаги

Результат:

SmallerFinis

Программа:

x = 5if x < 10: print 'Smaller’if x > 20: print 'Bigger'

print 'Finis'

x = 5

x < 10 ?

print 'Smaller'

x > 20 ?

print 'Bigger'

print 'Finis'

Да

Глава 3

Нет

Page 43: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Повторяющиеся шаги Результат:

54321Blastoff!

Программа:

n = 5while n > 0 : print n n = n – 1print 'Blastoff!'

n > 0 ?

n = n -1

Циклы (повторяющиеся шаги) имеют итерационные переменные, которые изменяются по ходу цикла. Зачастую такие итерационные переменные принимают ряд значений в

числовой последовательности.

Нет

print 'Blastoff'

Глава 5

Да

n = 5

print n

Page 44: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

name = raw_input('Enter file:')handle = open(name, 'r')text = handle.read()words = text.split()

counts = dict()for word in words: counts[word] = counts.get(word,0) + 1bigcount = Nonebigword = None

for word,count in counts.items(): if bigcount is None or count > bigcount: bigword = word bigcount = count

print bigword, bigcount

Последовательные

Повторяющиеся

Условные

Page 45: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Обзор

• Это краткий обзор первой главы

• Мы вернемся к этим понятиям на протяжении курса

• Сосредоточьтесь на общей картине

Page 46: Глава 1 - Wikimedia€¦ · Зачем программировать? Глава 1 Python for Informatics: Exploring Information

Благодарность / Содействие

Данная презентация охраняется авторским правом “Copyright 2010- Charles R. Severance (www.dr-chuck.com) University of Michigan School of Information” open.umich.edu и доступна на условиях лицензии 4.0 “С указанием авторства”. В соответствии с требованием лицензии “С указанием авторства" данный слайд должен присутствовать во всех копиях этого документа. При внесении каких-либо изменений в данный документ вы можете указать свое имя и организацию в список соавторов на этой странице для последующих публикаций.

Первоначальная разработка: Чарльз Северанс, Школа информации Мичиганского университета

...