1 of 46

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

Глава 1

Python for Informatics: Exploring Information

www.pythonlearn.com

2 of 46

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

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

Что дальше?

Что дальше?

Что дальше?

Что дальше?

Что дальше?

Что дальше?

Что дальше?

3 of 46

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

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

Выбери меня!

Выбери меня!

Выбери меня!

Заплати мне!

Выбери меня!

Выбери меня!

4 of 46

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

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

5 of 46

Компьютер

Оборудование + Программное

обеспечение

Сети

....

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

Информация

Данные

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

Программист

6 of 46

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

  • Чтобы выполнять определенные задачи. В этом отношении мы являемся и пользователями, и программистами
    • Обработать данные опроса
  • Чтобы создать что-то для других пользователей – работа программиста
    • Устранить проблему в работе программного обеспечения Sakai
    • Добавить на веб-сайт гостевую книгу

7 of 46

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

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

8 of 46

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

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

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

9 of 46

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

Под музыку:

левая рука вперед,

правая рука вперед,

левая ладонь вверх,

правая ладонь вверх.

Левая рука на правое плечо,

правая рука на левое плечо,

левая рука на затылок,

правая дуга на затылок.

Левая рука на правое ребро,

правая рука на левое ребро,

левая рука назад,

правая рука назад.

Вращение тазом,

вращение тазом,

прыжок.

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

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

10 of 46

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

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

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

Под музыку:

левая рука вперед,

правая рука вперед,

левая ладонь вверх,

правая ладонь вверх.

Левая рука на правое плечо,

правая рука на левое плечо,

левая рука на затылок,

правая дуга на затылок.

Левая рука на правое ребро,

правая рука на левое ребро,

левая рука назад,

правая рука назад.

Вращение тазом,

вращение тазом,

прыжок.

11 of 46

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

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

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

Под музыку:

левая рука вперед,

правая рука вперед,

левая ладонь вверх,

правая ладонь вверх.

Левая рука на правое плечо,

правая рука на левое плечо,

левая рука на затылок,

правая рука на затылок.

Левая рука на правое бедро,

правая рука на левое бедро,

левая рука назад,

правая рука назад.

Вращение тазом,

вращение тазом,

прыжок.

12 of 46

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

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

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

13 of 46

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

14 of 46

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) + 1

bigcount = None

bigword = None

for word,count in counts.items():

if bigcount is None or count > bigcount:

bigword = word

bigcount = count

print bigword, bigcount

python words.py

Enter file: words.txt

to 16

python words.py

Enter file: clown.txt

the 7

15 of 46

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

16 of 46

17 of 46

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

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

Централь-ный процессор

Основная

память

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

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

Что дальше?

18 of 46

Определения

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

всегда хочет знать, "что дальше"? Это не мозг. ЦП

очень тупой, но очень, очень быстрый.

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

Что дальше?

19 of 46

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

Что дальше?

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

Централь-ный процессор

Основная

память

if x< 3: print

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

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

20 of 46

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

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

Что дальше?

Основная

память

Централь-ный процессор

01001001

00111001

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

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

21 of 46

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

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

Что дальше?

22 of 46

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

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

23 of 46

Python как язык

24 of 46

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

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

25 of 46

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

26 of 46

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

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

27 of 46

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

28 of 46

csev$ python

Python 2.5 (r25:51918, Sep 19 2006, 08:49:13)

[GCC 4.0.1 (Apple Computer, Inc. build 5341)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>>

Что дальше?

29 of 46

csev$ python

Python 2.5 (r25:51918, Sep 19 2006, 08:49:13)

[GCC 4.0.1 (Apple Computer, Inc. build 5341)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>> x = 1

>>> print x

1

>>> x = x + 1

>>> print x

2

>>> exit()

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

30 of 46

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

31 of 46

Что сказать?

32 of 46

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

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

33 of 46

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) + 1

bigcount = None

bigword = None

for word,count in counts.items():

if bigcount is None or count > bigcount:

bigword = word

bigcount = count

print bigword, bigcount

python words.py

Enter file: words.txt

to 16

Короткий рассказ” о том, как считать слова в документе с использованием языка Python

34 of 46

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

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

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

35 of 46

Строки

x = 2

x = x + 2

print x

Переменная

Оператор

Константа

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

Оператор присваивания

Присваивание с выражением

Оператор печати

36 of 46

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

37 of 46

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

  • Python в интерактивном режиме хорошо подходит для экспериментирования и программ длиной в 3-4 строки
  • Большинство программ гораздо длиннее, поэтому мы сохраняем их в документе и даем команду запустить программы с этого документа
  • В некотором смысле мы “даем интерпретатору Python скрипт
  • Как правило, файлы на языке Python следует сохранять с расширением .py

38 of 46

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

39 of 46

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

  • Интерактивный режим Python
    • Команды построчно вводятся и выполняются непосредственно в оболочке Python
  • Скрипт
    • Набор команд (строк) вводится в файле с использованием текстового редактора и затем выполняется интерпретатором Python

40 of 46

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

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

41 of 46

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

Программа:

x = 2

print x

x = x + 2

print x

Результат:

2

4

x = 2

print x

x = x + 2

print x

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

Глава 2

42 of 46

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

Результат:

Smaller

Finis

Программа:

x = 5

if x < 10:

print 'Smaller’

if x > 20:

print 'Bigger'

print 'Finis'

x = 5

x < 10 ?

print 'Smaller'

x > 20 ?

print 'Bigger'

print 'Finis'

Да

Глава 3

Нет

43 of 46

Повторяющиеся шаги

Результат:

5

4

3

2

1

Blastoff!

Программа:

n = 5

while n > 0 :

print n

n = n 1

print 'Blastoff!'

n > 0 ?

n = n -1

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

Нет

print 'Blastoff'

Глава 5

Да

n = 5

print n

44 of 46

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) + 1

bigcount = None

bigword = None

for word,count in counts.items():

if bigcount is None or count > bigcount:

bigword = word

bigcount = count

print bigword, bigcount

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

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

Условные

45 of 46

Обзор

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

46 of 46

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

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

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

...