Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Зачем программировать?Глава 1
Python for Informatics: Exploring Informationwww.pythonlearn.com
Компьютеры хотят быть полезными...
• Компьютеры созданы для одной цели – выполнять работу для нас
• Но чтобы объяснить компьютерам, что мы хотим сделать, нам нужно говорить на понятном им языке
• Пользователям в этом отношении легко, так как кто-то уже заложил в компьютер разные программы (инструкции), и пользователи просто выбирают нужные программы
Что дальше?
Что дальше?
Что дальше?
Что дальше?
Что дальше?
Что дальше?
Что дальше?
Программисты предвидят потребности
• Приложения для iPhone – это рынок
• Приложения для iPhone загружались более 3 миллиардов раз
• Многие программисты уволились с работы, чтобы быть разработчиками приложений для iPhone
• Программисты знают, как программа устроена
Выбери меня!
Выбери меня!
Выбери меня!
Заплати мне!
Выбери меня!
Выбери меня!
Пользователи по сравнению с программистами
• Пользователи видят компьютер как набор инструментов, таких как текстовый процессор, электронные таблицы, карта, список дел и т.д.
• Программисты изучают компьютерный язык, а также то, как компьютер устроен
• Программисты обладают инструментами, позволяющими им создавать новые инструменты
• Иногда программисты пишут программы для большого количества пользователей, а иногда – небольшие программки, которые помогают им автоматизировать некоторые процессы
КомпьютерОборудование + Программное
обеспечение
Сети....
С точки зрения создателя программного обеспечения мы создаем программы. Конечные пользователи (заинтересованные лица) – это своего рода наши начальники, которым мы хотим
угодить, и когда это у нас получается, нам часто за это платят деньги. Что же касается данных,
информации и сетей – это уже наша задача, которую мы решаем для пользователей. Оборудование и
программное обеспечение являются нашими друзьями и союзниками в этом деле.
ИнформацияДанные
Пользователь
Программист
Зачем быть программистом?
• Чтобы выполнять определенные задачи. В этом отношении мы являемся и пользователями, и программистами
> Обработать данные опроса
• Чтобы создать что-то для других пользователей – работа программиста
> Устранить проблему в работе программного обеспечения Sakai
> Добавить на веб-сайт гостевую книгу
Что такое код, программное обеспечение, программа?
• Набор сохраненных инструкций
> Это частичка нашего ума в компьютере
> Это частичка нашего ума, которой мы можем поделиться с другими. Мы придумали что-то, создали код и дали его другим пользователям, чтобы сэкономить им время и силы
• Частичка творчества, особенно когда нам удается создать максимально удобную для пользователя программу
Программы для людей...
http://www.youtube.com/watch?v=vlzwuFkn88Uhttp://www.youtube.com/watch?v=sN62PAKoBfE
Программы для людей...
Под музыку: левая рука вперед, правая рука вперед, левая ладонь вверх, правая ладонь вверх. Левая рука на правое плечо, правая рука на левое плечо, левая рука на затылок, правая дуга на затылок. Левая рука на правое ребро, правая рука на левое ребро, левая рука назад, правая рука назад. Вращение тазом,вращение тазом,прыжок.
http://www.youtube.com/watch?v=vlzwuFkn88Uhttp://www.youtube.com/watch?v=sN62PAKoBfE
Программы для людей...
http://www.youtube.com/watch?v=vlzwuFkn88Uhttp://www.youtube.com/watch?v=sN62PAKoBfE
Под музыку: левая рука вперед, правая рука вперед, левая ладонь вверх, правая ладонь вверх. Левая рука на правое плечо, правая рука на левое плечо, левая рука на затылок, правая дуга на затылок. Левая рука на правое ребро, правая рука на левое ребро, левая рука назад, правая рука назад. Вращение тазом,вращение тазом,прыжок.
Программы для людей...
http://www.youtube.com/watch?v=vlzwuFkn88Uhttp://www.youtube.com/watch?v=sN62PAKoBfE
Под музыку: левая рука вперед, правая рука вперед, левая ладонь вверх, правая ладонь вверх. Левая рука на правое плечо, правая рука на левое плечо, левая рука на затылок, правая рука на затылок. Левая рука на правое бедро, правая рука на левое бедро, левая рука назад, правая рука назад. Вращение тазом,вращение тазом,прыжок.
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...
Программы для Python...
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
Архитектура аппаратного обеспечения
http://upload.wikimedia.org/wikipedia/commons/3/3d/RaspberryPi.jpg
Программное обеспечение
Устройства ввода и вывода
Централь-ный
процессор
Основная память
Вспомога- тельная память
Типичный компьютерЧто
дальше?
Определения• Центральный процессор запускает программу. ЦП
всегда хочет знать, "что дальше"? Это не мозг. ЦП очень тупой, но очень, очень быстрый.
• Устройства ввода: клавиатура, мышь, сенсорный экран.
• Устройства вывода: экран, колонки, принтер, DVD-рекордер.
• Основная память: быстрое небольшое временное запоминающее устройство (ОЗУ). Данные теряются при перезагрузке компьютера.
• Вспомогательная память: более медленное устройство постоянного хранения данных - дисковод и карта памяти. Данные хранятся, пока их не удалить.
Что дальше?
Программное обеспечение Что
дальше?
Типичный компьютер
Централь-ный
процессор
Основная память
if x< 3: print
Устройства ввода и вывода
Вспомога- тельная память
Программное обеспечение
Язык программирования
Что дальше?
Основная память
Централь-ный
процессор
0100100100111001
Устройства ввода и вывода
Вспомога- тельная память
Перегревшийся процессор
http://www.youtube.com/watch?v=y39D4529FM4
Что дальше?
Жесткий диск в действии
http://www.youtube.com/watch?v=9eMWG3fwiEU
Python как язык
http://harrypotter.wikia.com/wiki/Parseltongue
Парсултанг (англ. Parseltongue) - язык змей и тех, кто способен общаться со змеями. Людей, владеющих этим языком, также называют змеиными магами. Это очень редкая способность, которая, вероятно, передается по
наследству. Почти все известные змеиные маги являются потомками Салазара Слизерина.
Python - это язык интерпретатора Python и тех, кто может общаться на этом языке. Людей, владеющих языком
Python, также называют “пайтонистами”. Это очень редкая способность, которая, вероятно, передается по наследству.
Почти все известные “пайтонисты” используют программное обеспечение, разработанное господином
Гвидо ван Россумом.
Начинающие программисты: синтаксические ошибки
• Нам нужно выучить язык Python, чтобы передавать инструкции компьютеру. Сначала у нас будет много ошибок и мы, подобно детям, будет издавать невнятные звуки.
• Когда вы сделаете ошибку, компьютер не подумает, какие же вы “хорошенькие”. Если он *знает* этот язык, а вы его только изучаете, он скажет “синтаксическая ошибка”. Может показаться, что Python жестокий и бесчувственный.
• Запомните, что *вы* умны, и вы *способны* учиться, тогда как компьютер, хотя простой и быстрый, не способен учиться. Следовательно, легче вам выучить язык Python, чем компьютеру - ваш родной язык...
Общение на языке Python
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.>>>
Что дальше?
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().
Поговорим на языке Python...
Что сказать?
Элементы языка Python
• Словарь / слова - переменные и зарезервированные слова (глава 2)
• Структура предложений - допустимые синтаксические структуры (главы 3-5)
• Структура программы - создание программы для определенной цели
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
Зарезервированные слова
• Использование зарезервированных слов не допускается в названии переменных/идентификаторов
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
Строки
x = 2x = x + 2print x
Переменная Оператор Константа Зарезервированное слово
Оператор присваиванияПрисваивание с выражениемОператор печати
Абзацы в программировании
Скрипты на языке Python
• Python в интерактивном режиме хорошо подходит для экспериментирования и программ длиной в 3-4 строки
• Большинство программ гораздо длиннее, поэтому мы сохраняем их в документе и даем команду запустить программы с этого документа
• В некотором смысле мы “даем интерпретатору Python скрипт”
• Как правило, файлы на языке Python следует сохранять с расширением “.py”
Написание простой программы
Интерактивный режим по сравнению со скриптом
• Интерактивный режим Python
> Команды построчно вводятся и выполняются непосредственно в оболочке Python
• Скрипт
> Набор команд (строк) вводится в файле с использованием текстового редактора и затем выполняется интерпретатором Python
Шаги или выполнение программы
• Подобно рецепту или инструкциям по установке, программа - это набор последовательных шагов
• Некоторые из этих шагов - условные, то есть их можно пропустить
• Иногда шаг включает в себя группу повторяющихся шагов
• Иногда набор шагов сохраняется для последующего использования в нескольких местах на протяжении всей программы (Глава 4)
Последовательные шаги
Программа:
x = 2print xx = x + 2print x
Результат:
24
x = 2
print x
x = x + 2
print x
Все шаги программы выполняются последовательно. Программисты прокладывают “дорожку” для выполнения
программы. Глава 2
Условные шаги
Результат:
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
Нет
Повторяющиеся шаги Результат:
54321Blastoff!
Программа:
n = 5while n > 0 : print n n = n – 1print 'Blastoff!'
n > 0 ?
n = n -1
Циклы (повторяющиеся шаги) имеют итерационные переменные, которые изменяются по ходу цикла. Зачастую такие итерационные переменные принимают ряд значений в
числовой последовательности.
Нет
print 'Blastoff'
Глава 5
Да
n = 5
print n
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
Последовательные
Повторяющиеся
Условные
Обзор
• Это краткий обзор первой главы
• Мы вернемся к этим понятиям на протяжении курса
• Сосредоточьтесь на общей картине
Благодарность / Содействие
Данная презентация охраняется авторским правом “Copyright 2010- Charles R. Severance (www.dr-chuck.com) University of Michigan School of Information” open.umich.edu и доступна на условиях лицензии 4.0 “С указанием авторства”. В соответствии с требованием лицензии “С указанием авторства" данный слайд должен присутствовать во всех копиях этого документа. При внесении каких-либо изменений в данный документ вы можете указать свое имя и организацию в список соавторов на этой странице для последующих публикаций.
Первоначальная разработка: Чарльз Северанс, Школа информации Мичиганского университета
...