Главная страница

Лекция 1. Введение. Знакомство с Python. Команды print и input... Программа список команд (инструкций) для компьютера. Команды могут быть любыми, например


Скачать 297.74 Kb.
НазваниеПрограмма список команд (инструкций) для компьютера. Команды могут быть любыми, например
Дата19.06.2022
Размер297.74 Kb.
Формат файлаdocx
Имя файлаЛекция 1. Введение. Знакомство с Python. Команды print и input...docx
ТипПрограмма
#603099

Лекция 1. Введение. Знакомство с Python. Команды print и input. Параметры sep и end
Введение

Компьютерная программа — список команд (инструкций) для компьютера. Команды могут быть любыми, например:

В каждом компьютере установлено много разнообразных программ. Например, Google Chrome, через которую вы, скорее всего, проходите этот курс, — это программа-браузер. Она позволяет просматривать страницы сайтов в интернете. Программа Skype позволяет совершать звонки и обмениваться мгновенными сообщениями. В конце концов, сама операционная система, будь то Windows, OS X или Linux, тоже программа.

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

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

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

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

Если программа написана на интерпретируемом языке (Python, PHP, Ruby), она не переводится в машинный код целиком. Вместо этого специальная программа, которая называется интерпретатором, идет по коду, анализирует его и выполняет каждую отдельную команду.

Существуют языки программирования, которые совмещают оба подхода (C#, Java). В таких языках код исходной программы сначала компилируется в промежуточный код (байт-код), а уже потом, во время выполнения, переводится в машинный код.

Язык Python

Язык Python разработал голландский программист Гвидо Ван Россум (Guido van Rossum) в 1991 году. Гвидо был фанатом британского комедийного сериала «Monty Python’s Flying Circus», откуда и пришло название языка.



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



Monty Python’s Flying Circus

Python 2 VS Python 3

Основные версии языка Python – Python 2 и Python 3 Версия Python 2 считается устаревающей, версия 3 — более новой и современной. Почему не откажутся от второй версии? Если коротко, Python 3 не имеет полной обратной совместимости с предыдущей версией: на Python 2 написано очень много программ, и у разработчиков нет возможности переписать всё на новую версию.

В нашем курсе мы будем пользоваться только Python 3 и не будем говорить о Python 2.

Преимущества Python

  1. Это интерпретируемый язык программирования:

    • он не требует отдельного этапа компиляции;

    • программа на языке Python запускается прямо из исходного кода;

  2. Это высокоуровневый язык программирования;

  3. Это платформонезависимый язык:

    • программы на Python можно создавать на разных операционных системах (Linux, Windows, OS X);

    • программы на Python можно запускать на разных операционных системах (Linux, Windows, OS X);

  4. Это open source проект;

  5. Это простой язык;

  6. Это встраиваемый скриптовый язык;

  7. Это динамический язык, что упрощает написание несложных программ;

  8. Для Python существует огромная библиотека классов на любой вкус.

Недостатки Python

  1. Низкая скорость выполнения по сравнению с такими языками, как C и C++;

  2. Динамическая типизация языка — минус при написании сложных программ.

Задачи, решаемые с помощью Python

Python подходит для решения широкого спектра задач. Разобьем их на категории:

  1. Системное программирование. Встроенные в  Python интерфейсы доступа к службам операционных систем делают его идеальным инструментом для создания переносимых программ и утилит системного администрирования;

  2. Графические приложения. Простота Python и быстрота разработки делают его отличным средством создания графического интерфейса. В состав Python входит стандартный объектно-ориентированный интерфейс к GUI API;

  3. Веб-приложения. С помощью дополнительных фреймворковnbsp;на языке Python (Django, Flask, Pyramid) можно создавать полнофункциональные сайты;

  4. Веб-сценарии. Python поставляется вместе со стандартными интернет-модулями, которые позволяют программам выполнять разнообразные сетевые операции как в режиме клиента, так и в режиме сервера;

  5. Интеграция компонентов. Возможность Python расширяться и встраиваться в системы на языке C++ делает его удобным для описания поведения других систем и компонентов;

  6. Приложения баз данных. В Python имеются интерфейсы доступа ко всем основным реляционным базам данных: Sybase, Oracle, Informix, ODBC, MySQL, PostgreSQL, SQLite и многим другим. С их помощью можно создавать приложения баз данных.

Проекты, в которых используется Python

  1. Компания Google использует Python в своей поисковой системе;

  2. Компании Intel, Cisco, Hewlett-Packard, Seagate, Qualcomm и IBM, используют Python для тестирования аппаратного обеспечения;

  3. Сервис YouTube в значительной степени реализован на Python;

  4. Агентство национальной безопасности (NSA) использует Python для шифрования и анализа данных;

  5. Компании JPMorgan Chase, UBS, Getco и Citadel применяют Python для прогнозирования финансового рынка;

  6. Программа BitTorrent для обмена файлами в пиринговых сетях написана на языке Python;

  7. NASA, Los Alamos, JPL и Fermilab используют Python для научных вычислений.


Философия Python

Разработчики языка Python придерживаются определённой философии программирования, называемой «The Zen of Python». Её текст выдаётся интерпретатором Python по команде import this (работает один раз за сессию). Автором этой философии считается Тим Петерс (Tim Peters).





В оригинале

Перевод на русский язык

1

Beautiful is better than ugly;

Красивое лучше, чем уродливое;

2

Explicit is better than implicit;

Явное лучше, чем неявное;

3

Simple is better than complex;

Простое лучше, чем сложное;

4

Complex is better than complicated;

Сложное лучше, чем запутанное;

5

Flat is better than nested;

Плоское лучше, чем вложенное;

6

Sparse is better than dense;

Разреженное лучше, чем плотное;

7

Readability counts;

Читаемость имеет значение;

8

Special cases aren't special enough to break the rules;

Особые случаи не настолько особые, чтобы нарушать правила;

9

Although practicality beats purity;

При этом практичность важнее безупречности;

10

Errors should never pass silently;

Ошибки никогда не должны замалчиваться;

11

Unless explicitly silenced;

Если не замалчиваются явно;

12

In the face of ambiguity, refuse the temptation to guess;

Встретив двусмысленность, отбрось искушение угадать;

13

There should be one — and preferably only one — obvious way to do it;

Должен существовать один — и, желательно, только один — очевидный способ сделать это;

14

Although that way may not be obvious at first unless you're Dutch;

Хотя он поначалу может быть и не очевиден, если вы не голландец;

15

Now is better than never;

Сейчас лучше, чем никогда;

16

Although never is often better than *right* now;

Хотя никогда зачастую лучше, чем прямо сейчас;

17

If the implementation is hard to explain, it's a bad idea;

Если реализацию сложно объяснить — идея плоха;

18

If the implementation is easy to explain, it may be a good idea;

Если реализацию легко объяснить — идея, возможно, хороша;

19

Namespaces are one honking great idea — let's do more of those!

Пространства имён — отличная вещь! Давайте будем делать их больше!


Команды print и input
Вывод данных, команда print

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

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

Например, следующий код:



выведет на экран текст:


Запомни: кавычки могут быть и одинарными, и двойными. Следующие две строки делают одно и тоже.



То, что мы пишем в круглых скобках у команды print(), называется аргументами или параметрами команды.

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

Например, следующий код:



выведет на экран текст:


Обратите внимание, в качестве разделителя при выводе данных между аргументами команды используется символ пробел. По умолчанию команда print() добавляет ровно один пробел между всеми своими аргументами. Например, следующая программа:



выводит числа  . Числа выведены ровно через один пробел.
Запомни: при написании кода, между аргументами команды print() после запятой мы ставим 1 символ пробел. Это общепринятое соглашение в языке Python. Этот символ пробела не влияет на вывод данных.

Примечания

Примечание 1. Команда print() записывается только маленькими буквами, другое написание недопустимо, так как в Python строчные и заглавные буквы различны.

Примечание 2. Каждая последующая команда print() выводит указанный текст с новой строки. Например, следующая программа:



выведет на экран две строки:



Примечание 3. Команда print() с пустым списком аргументов просто вставляет новую пустую строку. Например:



выведет на экран три строки, одна из которых пустая:


Примечание 4. Почему в Python можно использовать как одинарные, так и двойные кавычки для обрамления текста? Ответ очень прост — часто кавычки это часть текста. И чтобы Python мог правильно распознать такой текст, пользуемся разными:

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

  • если в тексте нужны двойные кавычки, то обрамляем его одинарными.

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



будет: 


Ввод данных, команда input

Все предыдущие программы выводили на экран текст, известный в момент написания программного кода. Однако программы могут работать с данными, которые станут известны только во время выполнения программы. Другими словами, программы могут считывать данные, а затем их использовать.

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

Рассмотрим следующую программу:



Сначала программа распечатает текст на экран «Как тебя зовут?». Далее программа будет ждать от пользователя ввода данных. Ввод данных реализуется с помощью команды input().

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

То есть, если вы ввели строку «Parrot», программа дальше будет работать так, как будто на месте input() было написано «Parrot».

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

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

Команда print() выводит на экран данные.

Команда input() считывает введенные с клавиатуры данные.

Примечания

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



мы сначала выведем текст «Как тебя зовут?», а уже потом считаем данные.

Поскольку это достаточно распространённый сценарий, то в языке Python можно выводить текст, передавая его в качестве параметра в команду input(). Предыдущий код можно переписать так:


Необязательные параметры команды print

По умолчанию команда print() принимает несколько аргументов (параметров), выводит их через один пробел, после чего ставит перевод строки. Это поведение можно изменить, используя необязательные именованные параметры sep (separator, разделитель) и end (окончание).
Параметр sep

Рассмотрим следующий код:



Результатом выполнения такого кода будет:



Рассмотрим следующий код: 



Результатом выполнения такого кода будет:



При первой печати в качестве строки разделителя между аргументами команды print() установлена строка sep='*'.

При второй печати в качестве строки разделителя между аргументами команды print() установлена строка sep='**'.

Таким образом, необязательный параметр sep команды print() позволяет установить строку, с помощью которой будут разделены аргументы при печати.
Параметр end

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

Рассмотрим следующий код:



Результатом выполнения такого кода будет:



По завершении первой печати вставлена строка @ вместо перевода строки. Аналогично, по завершении второй печати вставлена строка @@.

Параметры sep и end можно использовать вместе. Рассмотрим следующий код:



Результатом выполнения такого кода будет:


Примечания

Примечание 1. Вызов команды print() с пустыми скобками ставит перевод строки.

Примечание 2. Последовательность символов \n называется управляющей последовательностью и задает перевод строки.

Примечание 3. Значения по умолчанию у параметров sep и end следующие:



Примечание 4. Чтобы убрать все дополнительные выводимые символы, можно вызывать командуprint() так:



Примечание 5. Программный код



равнозначен коду



 Примечание 6. Если после вывода данных нужно более одного перевода строки, то необходимо использовать следующий код:


Переменные

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

Мы знаем, что команда input() обозначает «подожди, пока пользователь введет что-нибудь с клавиатуры, и запомни то, что он ввёл». Просто так просить «запомнить» довольно бессмысленно: нам ведь потом надо будет как-то сказать компьютеру, чтобы он вспомнил то, что запомнил. Для этого используем переменные и пишем такой код:



Данный код означает: «Сохрани то, что ввёл пользователь, в памяти, и дальше это место в памяти мы будем называть именем variable_name». Соответственно, команда print(variable_name) означает: «Посмотри, что лежит в памяти, под именем variable_name, и выведи это на экран».

Вот такие «места в памяти» называются переменными. Любая переменная имеет имя и значение.

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

  1. В имени переменной используйте только латинские буквы a-z, A-Z, цифры и символ нижнего подчеркивания (_);

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

  3. Имя переменной по возможности должно отражать её назначение.


Запомни: Python — регистрочувствительный язык. Переменная name и Name — две совершенно разные переменные. Для именования переменных принято использовать стиль lower_case_with_underscores (слова из маленьких букв с подчеркиваниями).

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

Значение переменной — сохраненная в ней информация. Это может быть текст, число и т.д.

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

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

Значения переменной, естественно, можно менять (переприсваивать).



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



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

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



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

Следующий код приведет к ошибке:  'Timur' = name.
Множественное присваивание

В языке Python можно за одну инструкцию присваивания изменять значение сразу нескольких переменных. Делается это так:



Этот код можно записать и так:



Отличие двух способов состоит в том, что множественное присваивание в первом способе присваивает значение двум переменным одновременно.

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



Если слева от знака «равно» в множественном присваивании должны стоять через запятую имена переменных, то справа могут стоять произвольные выражения, разделённые запятыми. Главное, чтобы слева и справа от знака присваивания было одинаковое число элементов.

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


Примечания

Примечание 1. Названия переменных ничего не говорят интерпретатору, и даже в очень хорошо названной переменной не появится нужное значение, если мы сами его туда не запишем.

Примечание 2. Новое значение переменной вытесняет старое. Важно представлять, чему равно значение переменной в каждый момент времени.

Примечание 3. Переменные можно вводить в любой момент (не только в самом начале программы).

Примечание 4. В качестве названия переменных запрещено использовать ключевые (зарезервированные) слова. К ключевым словам в языке Python относятся:

  1. False;

  2. True;

  3. None;

  4. and;

  5. with;

  6. as;

  7. assert;

  8. break;

  9. class;

  10. continue;

  11. def;

  12. del;

  13. elif;

  14. else;

  15. except;

  16. finally;

  17. try;

  18. for;

  19. from;

  20. global;

  21. if;

  22. import;

  23. in;

  24. is;

  25. lambda;

  26. nonlocal;

  27. not;

  28. or;

  29. pass;

  30. raise;

  31. return;

  32. while;

  33. yield.


PEP 8

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

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

Правильно:



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



Рекомендация 2. После запятой нужен пробел.

Правильно:



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



Рекомендация 3. Не отделяйте пробелами знак «равно», когда он употребляется для обозначения значения параметра по умолчанию.

Правильно:



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


Комментарии

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

Такие примечания называются комментариями.

Однострочные комментарии

Любую строку можно превратить в комментарий, поместив перед ней символ #.

Рассмотрим следующий код:



Если запустить эту программу, то получится:



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

Комментарий можно поместить после строки кода.



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


Примечания

Примечание 1. Согласно стандарту PEP 8, комментарии должны отделяться хотя бы двумя пробелами от кода. Они должны начинаться с символа # и одного пробела.

Правильно:



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



Примечание 2. При вводе комментариев в среде Wing IDE вы обнаружите, что они выделяются цветом. Это сделано, чтобы облегчить чтение кода.


написать администратору сайта