Слайд 1Язык программирования
Лекция 1
Python
Слайд 2Python — высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности
разработчика и читаемости кода.
Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой объём полезных функций.
Слайд 3Python поддерживает несколько парадигм программирования, в том числе структурное, объектно-ориентированное, функциональное,
императивное и аспектно-ориентированное.
Код в Python организовывается в функции и классы, которые могут объединяться в модули (они в свою очередь могут быть объединены в пакеты).
Парадигма программирования — это совокупность идей и понятий, определяющих стиль написания компьютерных программ (подход к программированию).
Слайд 4Python — активно развивающийся язык программирования, новые версии (с добавлением/изменением языковых
свойств) выходят примерно раз в два с половиной года.
Вследствие этого и некоторых других причин на Python отсутствуют стандарт ANSI, ISO или другие официальные стандарты.
Слайд 5Установка и запуск Python
Для начала, две программы должны быть установлены: Python
и Pygame.
Python - компьютерный язык (язык программирования), на котором мы будем программировать, а Pygame - библиотека с командами, которые сделают написание игр проще.
Слайд 6Вывод данных
Научимся выводить данные на экран. Для того, чтобы это сделать,
создадим простую программу. Эта программа выводит надпись “Hello World.” на экран. На языке Python она выглядит вот так:
print ("Hello World.")
Слайд 7print – это оператор вывода.
После самой команды следуют скобки ( ).
Внутри этих скобок находится то, что нужно вывести на экран. Использовать скобки для передачи входных данных функции - обычное дело как в математике, так и в программировании.
Заметьте, что передаваемый функции текст заключён в кавычки. Если текст находится в кавычках, компьютер выведет его точно таким, каким он был подан.
Слайд 8print ("2+3")
На экране появится 2+3
У следующей программы кавычки вокруг отсутствуют, поэтому
компьютер попытается рассчитать результат, анализируя входные данные как математическое выражение.
Он просто выведет 5, а не 2+3.
print (2+3)
Слайд 9Попытка запустить программу с нижеприведённым кодом приведёт к ошибке: компьютер постарается
рассчитать “Hello World” как математическое выражение, каковым оно вовсе не является.
print (Hello World)
Вышеуказанный код выдаст ошибку:
SyntaxError: invalid syntax, означающую, что компьютер не знает, что значат “Hello” и “World”.
Слайд 10Print позволяет выводить много значений одновременно; нужно лишь перечислить их через
запятые. Например, следующий код выведет: Ответом на 10+10 является 20
print ("Ответом на 10+10 является",10+10)
Слайд 11Следующая строка кода выведет:
Ответом на 10+10 является 10+10.
Числа не складываются,
потому что они написаны внутри кавычек.
Всё, что написано внутри кавычек, воспринимается компьютером как текст.
Всё, что написано без кавычек, компьютер воспринимает как математическое выражение либо "компьютерный код".
print ("Ответом на 10+10 является","10+10")
Слайд 12Этот образец кода вовсе не будет работать. Потому, что в нём
нет запятой, разделяющей текст в кавычках и выражение 10+10. Вначале может показаться, что запятая поставлена, однако можно заметить, что запятая находится внутри кавычек.
Запятая, разделяющая аргументы, поданные в функцию, должна находиться вне кавычек. Запятая, которую программист хочет вывести на экран должна находиться внутри кавычек:
print ("Ответом на 10+10 является," 10+10)
Слайд 13Следующий пример будет работать потому, что после текста следует запятая, отделяющая
print
("Ответом на 10+10 является,", 10+10)
Слайд 14Комментарии
Иногда в коде требуется дать дополнительные объяснения для его читателя. Для
этого мы добавляем “комментарии” в код. Комментарии предназначены не для компьютера, а для людей, читающих код.
Комментарии очень важны (несмотря на то, что компьютер их игнорирует)
Слайд 15Существует два способа создать комментарий. Первый: использовать символ #. Компьютер будет
игнорировать любой текст программы Python'а, встречающийся после #.
Например:
# Это комментарий, он начинается со знака #,
# поэтому компьютер будет его игнорировать.
print("Это не комментарий. Компьютер")
print("выведет это на экран.")
Слайд 16Знак # внутри кавычек не оценивается как комментарий. Программист может “отключить”
строчку кода, поставив знак # перед нею. Также, возможно оставить комментарий после самой строки.
print("Знак # внутри кавычек не считается комментарием.")
# print ("Это комментарий, несмотря на то, что эта строка является программным кодом.")
print ("Привет") # Это комментарий в конце строки
Слайд 17Также, возможно закомментировать несколько строк кода, поставив три одиночные кавычки подряд.
разделителя комментария.
print("Привет")
‘ ‘ ‘
Это
Многостроковый комментарий. Ничего
из написанного в этих кавычках не будет исполнено
print("Вот так вот")
‘ ‘ ‘
print("Готово")
Слайд 18Операторы присваивания
Как начать хранить очки игрока в игре? Или следить за
здоровьем врага? Для этого нам понадобятся операторы присваивания. (оператор это символ вроде + или -.) Они помогают сохранить значение в переменной для дальнейшего использования. Код, приведённый внизу, присвоит переменной x значение 10, а затем выведет значение, сохранённое в переменной x.
Слайд 20Заметьте: Вышеприведённый пример также демонстрирует разницу между двумя вариантами: x внутри
кавычек и x снаружи кавычек.
Если x внутри кавычек, то компьютер просто выводит x.
Если x написан вне кавычек, то компьютер выведет значение x. Это бывает частой ошибкой у тех, кто учится программировать.
Слайд 21Присвоение не является тем же самым, что и алгебраическое уравнение. Не
рассматривайте их как одно и то же. В присвоении, слева от знака равенства находится переменная. Ничего другого там быть не может.
Справа от знака равенства находится выражение. Выражением является всё то, у чего в результате может быть значение.
Слайд 22Изучите код снизу. Он верен, даже несмотря на то, что он
не является чистым математическим уравнением. Математические уравнения устроены совсем по другому, вопреки тому, что у них тоже есть перменные, числа и знак равенства. Это выражение берёт текущее значение x, добавляет к нему единицу и сохраняет результат обратно в x.
x = x + 1
Слайд 23Результатом нижеприведённого кода будет вывод цифры 6.
x=5
x = x + 1
print(x)
Следующее
выражение является корректным, но бессмысленным. Компьютер прибавит единицу к х, но результат никогда не будет сохранён или выведен.
x + 1
Слайд 24Нижеприведённый код выведет 5, а не 6, потому что программист забыл
сохранить результат х+1 обратно в переменную x.
x=5
x + 1
print(x)
Выражение внизу не корректно, потому что слева от знака равенства находится не только переменная.
x + 1 = x
Слайд 25У Python'а также есть операторы присвоения. Это позволяет программисту легче изменять
переменные. Например:
x += 1
Вышеприведённое выражение эквивалентно коду, приведённому ниже:
x = x + 1
Существуют операторы присвоения для сложения, вычитания, умножения и деления.
Слайд 26Переменные
Имена переменных должны начинаться с маленькой буквы латинского алфавита. Переменные могут
начинаться с заглавной буквы или знака подчёркивания, но это особые случаи, которые не следует использовать на постоянной основе. После первой маленькой буквы, переменные могут включать в себя как заглавные, так и маленькие буквы, вперемешку с числами и знаками подчёркивания. Переменные не могут содержать пробелы.
Слайд 27Переменные чувствительны к регистру символов. Это может сбить с толку, если
программист не ожидает этого. В коде внизу, на экран будет выведено 6, а не 5, потому что x и X - это две разные переменные.
x=6
X=5
print(x)
Слайд 28Дозволенные имена переменных
distance first_name
ds9
Запрещённые имена переменных
9ds first name %correct
Дозволенные, но не правильные
FirstName X LIVES_LEFT
Слайд 29Для более сложных математических операций доступны обычные математические операторы. Вместе с
не так часто используемыми:
Операторы
Слайд 30“Деление с целочисленным результатом” всегда будет округлять дробный ответ вниз до
целочисленного результата.
Например 11//2 будет равно 5, а не 5.5, и 99//100 будет равно 0.
Слайд 31Умножение без написания оператора не работает в Python.
Обязательно нужно использовать
оператор умножения для того, чтобы этот код работал:
Слайд 32Последовательность операций
Python будет рассчитывать выражения в том же порядке, который ожидается
от стандартных математических выражений. Например, это уравнение неправильно вычислит среднее значение(average):
average=90+86+71+100+98/5
Первым выполненным действием будет 98/5. Компьютер высчитывает:
Слайд 33Эта проблема может быть решена используя скобки:
average=(90+86+71+100+98)/5
Слайд 34Тригонометрические функции
Тригонометрические функции используются для вычисления синуса и косинуса в уравнениях:
По умолчанию, Python не знает, как считать синус и косинус, но он может это делать после того, как была подключена (импортирована) нужная библиотека. Единицы измерения в радианах.
Слайд 35# Импортировать библиотеку math
# Эта строка должна быть написана один раз,
# в самом верху файла нашей программы.
from math import *
# Вычислить x используя синус и косинус
x = sin(0) + cos(0)
Слайд 36Калькулятор для специализированных вычислений
Программа может использовать Python для вычисления пройденного расстояния
/ галлон(~4.55л) топлива автомобиля, проехавшим 294 мили(~470 км) на 10.5 галлонах бензина.
m=294/10.5
print(m)
Слайд 37Эта программа может быть улучшена с использованием переменных. Это позволяет легко
менять значения в коде без изменения самого уравнения.
m=294
g=10.5
m2=m/g # Используем переменные
print(m2)
Слайд 38Сама со себе, эта программа малопонятна для стороннего читателя. Переменные m
и g ничего не значат без знания контекста. После преобразования имён переменных, программа станет намного понятнее:
milesDriven=294 #миль пройдено
gallonsUsed=10.5 #использовано галлонов
mpg=milesDriven/gallonsUsed
print(mpg) #пройденные мили на один галлон топлива
Слайд 39Теперь даже далёкий от программирования человек скорее всего сможет понять, что
делает программа. Ещё один пример плохих и хороших названий переменных:
Слайд 40В редакторе IDLE возможно редактировать предыдущую линию без повторного её набора
на клавиатуре. Для этого переведите курсор на нужную линию и нажмите клавишу “enter”. Содержимое выбранной линии будет скопировано в текущую линию.
Ввод кода в >>> консоли очень медленный, к тому же вы можете вводить только одну строчку кода за раз. Также, невозможно сохранить код для передачи его другим людям. Однако есть и другой, лучший, вариант для ввода кода на Python'e.
Слайд 41Код из Python'а может быть введён используя скрипт. Скрипт - это
набор строк кода, которые будут выполнены сразу. Для создания скрипта, откройте новое окно, как это показано на рисунке
Слайд 42Введите вышеописанную программу для рассчёта расхода топлива, затем сохраните файл в
любое место на вашем компьютере, по вашему выбору. Файлы со скриптами Python'а всегда должны заканчиваться расширением .py. Пример на рисунке.
Слайд 43Запустите написанную программу, кликнув на меню “Run” и выбрав “Run Module”
(либо просто нажмите F5). Попробуйте изменять количество пройденных миль и затраченных галлонов.
Осторожно, частая ошибка!
С этого момента, весь введённый код должен находиться в файле скрипта/модуле. Не пишите код программы в >>> консоли IDLE
Слайд 44Эта программа будет ещё более полезной, если она сможет обращаться к
пользователю с запросом ввести пройденные мили и затраченное количество топлива. Это может быть сделано с помощью выражения input. Посмотрите на нижеприведённый код:
Слайд 45Эта программа просит пользователя ввести мили и галлоны, однако она показывает
странную ошибку, показанную на рисунке
Слайд 46Причина ошибки может быть выявлена после небольшого изменения программы:
Слайд 47Запуск программы, показанной выше, даст результат, показанный на Рисунке
Слайд 48Программа не складывает два числа вместе, она просто пишет одно после
другого. Так случается от того, что программа не знает, что пользователь будет вводить числа. С таким же успехом пользователь может ввести “Bob” и “Mary”, а результатом сложения этих двух переменных будет “BobMary”;
Слайд 49Ввод должен быть конвертирован в числа
Чтобы сказать компьютеру, что пользователь вводит
числа, необходимо поставить функцию input внутрь int( ) или float( ). Первое используется для целых чисел, второе - для дробных.
Слайд 50Финальная версия работающей программы:
Слайд 51В консоли программа выглядит следующим образом:
Слайд 52Рассмотрим другой пример, вычисляющий кинетическую энергию объекта:
Слайд 53Для сокращения программы возможно сразу поставить выражение input внутрь выражения float.
Например, эти строки кода:
milesDriven=input("Введите пройденные мили:")
milesDriven=float(milesDriven)
Выполняют то же самое, что и строка:
milesDriven=float(input("Введите пройденные мили:"))
Слайд 54В данном случае, результат функции input сразу будет передан в функцию
float. Оба варианта работают, и, конечно, программист сам должен выбирать, какой же вариант ему использовать. Однако в любом случае очень важно понимать оба варианта.