Урок 1 из 0
В процессе

1. Начало работы

Аннотация

     Первый урок посвящен введению в язык Python и знакомству с теми техническими средствами, которые понадобятся нам для обучения.

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

Введение

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

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

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

     Язык программирования — набор строгих правил, согласно которым компьютер может понимать команды и выполнять их. Текст программы, написанной на любом языке программирования, называется программным кодом (или просто кодом).

     Языки программирования бывают двух основных типов: компилируемые и интерпретируемые. Если программа написана на компилируемом языке (например, Pascal или C++), перед ее выполнением нужно сначала полностью проверить на некоторые ошибки и перевести в более понятную для компьютера форму. Это делает специальная программа — компилятор.

     Если программа написана на интерпретируемом языке (например, Java или Python), она не переводится целиком в машинный код, а специальная программа — интерпретатор — идет по коду, анализирует и выполняет каждую отдельную команду. Такой подход придает языку особую гибкость и простоту в написании программ.

     Язык Python разработал голландский программист Гвидо Ван Россум (Guido van Rossum) в 1991 году. Не подумайте, что язык назван в честь змеи-питона: Гвидо был большим фанатом британского комедийного сериала «Летающий цирк Монти Пайтона» (англ. Monty Python’s Flying Circus), и именно оттуда пришло название языка. В настоящее время в русском языке для обозначения используют два варианта — «Питон» и «Пайтон».

     Python относится к интерпретируемым языкам программирования: чтобы запустить написанную на Python программу, нужен интерпретатор Python (его можно скачать с сайта python.org). Разбор установки будет показан в видеоуроке.

 

Знакомство с IDE

     Команды для интерпретатора можно писать в обычном текстовом редакторе (например, в «Блокноте»). Но чаще для этого пользуются специальной программой, которая называется средой разработки (англ. IDE, Integrated Development Environment). Среда разработки — тоже текстовый редактор, но с дополнительными возможностями. Например, она умеет сама находить на компьютере программу-интерпретатор и запускать одной кнопкой. Среда разработки, кроме того, форматирует написанный вами код, чтобы его удобно было читать, а иногда даже подсказывает, где вы допустили ошибку.

     Мы будем использовать среду разработки Wing IDE. Ее можно скачать с сайта разработчика, фирмы Wingware.

     Ну что же, пора приступать к разработке программ. Для начала запустите среду разработки WingIDE.

PEP 8

     При оформлении программ мы будем пользоваться PEP 8 — Python Enhanced Proposal. Это документ, описывающий общепринятый (рекомендуемый) стиль написания программ на языке Python. Документ создан по рекомендациям Гвидо Ван Россума и Барри Уорсо.

PEP8 – стиль кода в языке Python

     Среды разработки могут помогать с форматированием по PEP 8. Для включения такой возможности в Wing IDE зайдите в меню Edit → Preferences. Перейдите к категории Editor → PEP 8. Для опции Auto-Reformat for PEP 8 выберите значение Lines After Edit.

Команда print()

А теперь изучим команду вывода на экран. Для вывода на экран используется команда print().

Команда print()

     Внутри круглых скобок через запятую мы указываем то, что необходимо вывести на экран. Если это какой-то текст, указываем его внутри кавычек. Кавычки могут быть как одинарными, так и двойными. Главное, чтобы текст начинался и заканчивался кавычками одного типа. Команда print записывается только строчными буквами, другое написание недопустимо, так как в Python строчные и заглавные буквы различны.

     Создайте в среде новый файл и напишите в нем команду вывода на экран слова «Привет!» Команда будет выглядеть так:

print(‘Привет!’)

     Обратите внимание: слово print в Wing выделено голубым цветом, а слово «Привет!» — фиолетовым. В среде Wing IDE используется цветовое выделение синтаксиса. Все стандартные команды и функции выделяются синим и голубым цветом, фиолетовым цветом выделяются текстовые данные — строки, заключенные в кавычки.

PEP 8

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

Правильно:

print(‘Привет!’)

Неправильно:

print (‘Привет!’)

     Настало время запустить первую программу. Однако кнопка запуска Run  пока недоступна. Перед запуском необходимо сохранить файл на диск.

     Ваша программа пока умеет только здороваться. Давайте сделаем так, чтобы она выводила две строчки с текстом. В первой строке «Привет, Python!», а на второй — «Приятно познакомиться.». Для этого нам понадобится еще одна команда print. Эту команду нам обязательно надо написать с новой строки. Каждая новая команда пишется с новой строки! Сохраните программу, запустите и проверьте.

     Попробуйте внести в свою программу ошибки: добавьте опечатку в слово print, уберите открывающую или закрывающую скобку, придумайте еще что-нибудь необычное. Обратите внимание: в консоли появляется сообщение, в котором есть слово Error. SyntaxError: invalid syntax часто означает именно забытую кавычку или скобку. Проведите небольшой эксперимент: если вы добавите опечатку в слово print, оно станет черным — редактор не узнает его и не понимает, что это команда.

PEP 8

     Обратите внимание: после запятой согласно стандарту PEP 8 обязательно нужно добавлять пробел.

Правильно:

print(‘Привет’, Python!’)

Неправильно:

print(‘Привет’,’Python!’)

Команда input()

     Пока что все наши программы выводили на экран фразы, известные в момент написания кода. Но программы могут работать и с данными, которые станут известны только во время выполнения: например, их будет вводить пользователь с клавиатуры. Мы можем реализовать это так:

print(‘Как тебя зовут?’)

name = input()

print(‘Привет,’, name)

     Запустите эту программу. Она выводит на экран строчку «Как тебя зовут?» и дальше ждет от пользователя ввода ответа на вопрос, ввода имени.

     Введите имя. Запустите еще раз. Введите чужое имя.

     Здесь используется команда input().

Команда input()

     Она всегда пишется с круглыми скобками. Команда работает так: когда программа доходит до места, где есть input(), она ждет, пока пользователь введет строку с клавиатуры (ввод завершается нажатием клавиши Enter). Введенная строка подставляется на место input().

     Таким образом, input()  получает от пользователя какие-то данные и в место вызова подставляет строковое значение, в нашем случае записывает его в качестве значения переменной name. Мы рассмотрим, что значит сохранить в значение переменной, а пока запомните: если нужно, чтобы программа что-то печатал на экране и пользователь мог это увидеть, — print. Если нужно, чтобы пользователь что-то напечатал с клавиатуры и затем   использовать эти данные, — input().

Переменные

     Команду name = input() можно считать так: «Подожди, пока пользователь введет какую-то строку и помести введенную строку в переменную name».

Имя переменной

     Имя переменной должно отражать ее назначение и может состоять из латинских букв, цифр и символа подчеркивания.

     Имя не может начинаться с цифры.

PEP 8

     Для именования переменных принято использовать стиль lower_case_with_underscores (слова из маленьких букв с подчеркиваниями).

     Соблюдайте правило: если в переменной хранится приветствие, пусть она так и называется, если имя — пусть она и называется соответственно.

Значение переменной

     Значение переменной — то, что сохраняет в себе переменная.

     Знак «=» обозначает команду под названием «оператор присваивания». Оператор присваивания присваивает значение, которое находится справа от знака равно, переменной, которая находится слева от знака равно.

     В нашем случае это то, что поместил в нее пользователь командой input(). Это текстовое значение — строка. То есть переменная сохраняет в себе строковое значение. Говорят, что переменная строкового типа.

PEP 8

     Всегда окружайте оператор присваивания одним пробелом с каждой стороны:

Правильно:

bird = “Тук-тук”

Неправильно:

bird=”Тук-тук”

Еще пример:

print(‘Какая твоя любимая еда?’)

meal = input()

print(‘Да.’, meal, ‘- это вкусно.’)

     Обратите внимание: интерпретатор ждет, что пользователь что-то введет с клавиатуры ровно столько раз, сколько команд input() встречается в программе. Каждый input() завершается нажатием Enter на клавиатуре.

print(‘Как тебя зовут?’)

name = input()

print(‘Привет,’, name)

print(‘А какая твоя любимая еда?’)

meal = input()

print(‘Да.’, meal, ‘- это вкусно.’)

     Мы задали значение переменной. И что же, оно никогда не меняется? Конечно, в двух разных программах могут быть переменные с одинаковыми названиями, но разными значениями. Но могут ли в пределах одной программы под одним именем быть разные значения?

     Да! Оператор присваивания сообщает переменной то или иное значение независимо от того, была ли эта переменная введена раньше. Вы можете менять значение переменной, записав ещё один оператор присваивания. Если у нас имеется переменная, мы можем делать с ее значением все что угодно — например, присвоить другой переменной:

hello = ‘Здравствуйте.’

hello2 = hello

print(hello2)

     Итак, если вы хотите, чтобы у вас была переменная с каким-то именем и каким-то значением, нужно написать на отдельной строчке:

<имя переменной> = <значение переменной>

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

     Помните: команды выполняются последовательно, в том же порядке, в котором они написаны.

Трассировка

     Задача (для разбора). Предположим, у нас есть программа, которая входит в интерфейс сайта «Госуслуги» и служит для смены имени. Как будет работать эта программа, что она выведет при каком-либо пользовательском вводе?

print(‘Введите фамилию:’)

surname = input()

print(‘Введите имя:’)

name = input()

print(name, surname)

print(‘Введите новое имя:’)

new_name = input()

print(name, surname)

print(new_name, name)

name = new_name

print(new_name, name)

print(name, surname)

Давайте немного изменим программу и посмотрим, что теперь получится.

print(‘Введите фамилию:’)

surname = input()

print(‘Введите имя:’)

name = input()

print(name, surname)

print(‘Введите новое имя:’)

new_name = input()

old_name = name

name = new_name

print(new_name, old_name)

print(name, surname)

     Если вы написали программу и не уверены в правильности ее написания, разберите, что она делает. Если не уверены, что все сделали правильно, — запустите и проверьте свои рассуждения.

Комментарии

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

     Если вы начнете строчку со знака решетки #, интерпретатор Python будет игнорировать всю эту строчку. Программа будет выполняться так, как будто строчки нет. Такая строчка называется комментарием.

     Комментарии нужны в двух случаях:

  • Когда нужно добавить в программу какую-то пометку для человека, который будет читать эту программу (например, см. третью строчку guessing_game).
  • Когда нужно убрать какую-то строчку кода, но удалять ее не хочется (например, потом ее, возможно, понадобится вернуть). Это называется «закомментировать» строчку.

PEP 8

     «Встрочные» комментарии находятся в той же строке, что и инструкция. Они должны отделяться по крайней мере двумя пробелами от инструкции и начинаться с символа # и одного пробела.

     Комментарии в строке с кодом не нужны и только отвлекают от чтения, если они объясняют очевидное.

     Правильно:

x = x + 1  # компенсация границы

     Неправильно:

x = x + 1  # увеличение на единицу

     Если нужно закомментировать сразу несколько строчек подряд, не делайте это вручную. Выделите эти строчки и выберите Source → Toggle block comment (там же можно убрать комментирование).

     Заметьте: если запустить программу, у которой в конце input(), из редактора Wing IDE, в конце ее работы придется лишний раз нажать Enter, хотя в этом и нет необходимости.

     Попробуйте запустить программу hello или любую другую из своих старых программ двойным кликом — сначала в исходном виде, потом с input() в конце.