Настройка. Установка. Windows. Софт и утилиты

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

Этот материал расчитан на тех, кто уже знаком с программированием и хочет освоить язык программирования Python. Он расчитан на то, чтобы за 10 минут показать вам особенности языка Python, особенности синтаксиса и основные принципы работы с Python на примерах. Здесь нет никакой «воды» — информации, которая не имеет непосредственного отношения к языку программирования. Начнем!

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

Объявление переменных необязательно, названия восприимчивы к регистру (var и VAR — две разные переменные).

Язык Python объектно-ориентирован, все в языке является объектом.

Получение справки

Справка (помощь) в Python всегда доступна прямо в интерпретаторе. Если вы хотите знать, как объект работает, вызовите help(). Также полезной инструкцией является dir() , которая показывает все методы объекта, и свойство объектов .__doc__ , которая покажет вам строку документации:

>>> help(5) Help on int object: (etc etc) >>> dir(5) ["__abs__", "__add__", ...] >>> abs.__doc__ "abs(number) -> number Return the absolute value of the argument."

Синтаксис языка Python

В Python нет конструкций для завершения блоков (таких как описание класса или функции, например) — блоки определяются с использованием отступов. Увеоичение отступа в начале блока, уменьшение — в конце блока. Инстукции, которые предполагают наличие отступов, завершаются символом двоеточия (:). Если после инструкции начала блока у вас пока нет кода, вставьте оператор pass для прохождения синтаксической проверки.

While rangelist == 1: pass

Однострочные комментарии начинаются с символа решетки (#), многострочные используют (""") в начале и в конце комментария.

Значения присваиваются с использованием знака равенства («=») (по факту объектам присваиваются имена в процессе).

Проверка на различие выполняется с двумя символами равенства («==»).

Можно увеличить значение с помощью оператора += и уменьшить с -=, указав в левой части переменную, а в правой — значение, на которую произойдет увеличение/уменьшение. Это работает со многими типами данных в Python, включая строки.

Можно присвоить значение неспольким переменным в одной строке. Примеры:

>>> myvar = 3 >>> myvar += 2 >>> myvar 5 >>> myvar -= 1 >>> myvar 4 """This is a multiline comment. The following lines concatenate the two strings.""" >>> mystring = "Hello" >>> mystring += " world." >>> print mystring Hello world. # This swaps the variables in one line(!). # It doesn"t violate strong typing because values aren"t # actually being assigned, but new objects are bound to # the old names. >>> myvar, mystring = mystring, myvar

Типы данных в Python

В Python доступны такие типы данных, как списки (lists), кортежи (tuples) и словари (dictionaries). Также доступны множества — с использованием модуля sets в версиях до Python 2.5 и встроены в язык в более поздних.

Списки похожи на одномерные массивы. При этом можно иметь список, состоящий из других списков.

Словари — это ассоциативные массивы, в которых доступ к данным осуществляется по ключу.

Кортежи — это неизменяемые одномерные массивы.

«Массивы» в Python могут быть любого типа, то есть вы можете совмещать числа, строки и другие типы данных в списках/словарях/кортежах.

Индекс первого элемента — 0. Негативное значение индекса начинает отсчет от последнего к первому, [-1] укажет на последний элемент.

Переменные могут указывать на функции.

>>> sample = , ("a", "tuple")] >>> mylist = ["List item 1", 2, 3.14] >>> mylist = "List item 1 again" # We"re changing the item. >>> mylist[-1] = 3.21 # Here, we refer to the last item. >>> mydict = {"Key 1": "Value 1", 2: 3, "pi": 3.14} >>> mydict["pi"] = 3.15 # This is how you change dictionary values. >>> mytuple = (1, 2, 3) >>> myfunction = len >>> print myfunction(mylist) 3

Вы можете получить срез массива (списка или кортежа) через использование двоеточия (:). Оставляя пустым начальное значение индекса, вы укажете начинать с первого значения, пустое значение конца индекса предполагает последний элемент массива. Негативные индексы считаются с конца массива назад (-1 — укажет на последний элемент).

Посмотрите примеры:

>>> mylist = ["List item 1", 2, 3.14] >>> print mylist[:] ["List item 1", 2, 3.1400000000000001] >>> print mylist ["List item 1", 2] >>> print mylist[-3:-1] ["List item 1", 2] >>> print mylist # Adding a third parameter, "step" will have Python step in # N item increments, rather than 1. # E.g., this will return the first item, then go to the third and # return that (so, items 0 and 2 in 0-indexing). >>> print mylist[::2] ["List item 1", 3.14]

Строки в Python

Для обозначения строки может использоваться апостроф (‘) или двойные кавычки (double quote — «). Благодаря этому вы можете иметь кавычки внутри строки, обозначенной с помощью апострофов (например ‘He said «hello».’ — правильная строка).

Многострочные строки обозначаются с использованием тройного апострофа или кавычек ("""). Python поддерживает юникод из коробки. При этом во второй версии Python для обозначения строки, содержажей unicode, используется символ (u): u»This is a unicode string». В Python3 все строки содержат юникод. Если в Python3 вам нужна последовательность байтов, которой была по сути строка в предыдущих версиях, используется символ (b): b»This is a byte string».

Для подстановки значений параметров в строку используется оператор (%) и кортеж. Каждый %s заменяется на элемент из кортежа, слева направо. Также вы можете использовать словарь для подстановки именованнх параметров:

>>>print "Name: %s\ Number: %s\ String: %s" % (myclass.name, 3, 3 * "-") Name: Poromenos Number: 3 String: --- strString = """This is a multiline string.""" # WARNING: Watch out for the trailing s in "%(key)s". >>> print "This %(verb)s a %(noun)s." % {"noun": "test", "verb": "is"} This is a test.

Инструкции для контроля потока — if, for, while

Для контроля порядка выполнения программы используются инстукции if , for и while . В Python нет switch или case , вместо них используется if . For используется для прохождения по элементам списка (или кортежа). Для получения последовательности чисел, используйте range() . Для прерывания выполнение цикла используется break .

Синтаксис этой конструкции следующий:

Rangelist = range(10) >>> print rangelist for number in rangelist: # Check if number is one of # the numbers in the tuple. if number in (3, 4, 7, 9): # "Break" terminates a for without # executing the "else" clause. break else: # "Continue" starts the next iteration # of the loop. It"s rather useless here, # as it"s the last statement of the loop. continue else: # The "else" clause is optional and is # executed only if the loop didn"t "break". pass # Do nothing if rangelist == 2: print "The second item (lists are 0-based) is 2" elif rangelist == 3: print "The second item (lists are 0-based) is 3" else: print "Dunno" while rangelist == 1: pass

Функции в Python

Функции объявляются с использованием ключевого слова «def». Необязательные аргументы следуют в объявлении функции после обязательных и им назначается значение по-умолчанию. При вызове функции, можно передавать аргументы через указание их имени и значения, при этом пропуская часть необязательных аргументов или располагая их в порядке, отличном от объявленном в функции.

Функции могут возвращать кортеж и используя распаковку кортежа вы можете возвращать несколько значений.

Лямбда-функции (lambda functions) — специальные фукции, обрабатывающие один аргумент.

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

Примеры кода:

# Same as def funcvar(x): return x + 1 funcvar = lambda x: x + 1 >>> print funcvar(1) 2 # an_int and a_string are optional, they have default values # if one is not passed (2 and "A default string", respectively). def passing_example(a_list, an_int=2, a_string="A default string"): a_list.append("A new item") an_int = 4 return a_list, an_int, a_string >>> my_list = >>> my_int = 10 >>> print passing_example(my_list, my_int) (, 4, "A default string") >>> my_list >>> my_int 10

Классы Python

Python поддерживает ограниченную форму множественного наследования в классах.

Частные переменные и методы могут быть объявлены (по соглашению, это не проверяется интерпретатором) с использованием двух символов подчеркивания вначале и не более одного в конце имени (напрмер: «__spam»).

Мы также можем назначать произвольные имена экземплярам класса. Просмотрите примеры:

Class MyClass(object): common = 10 def __init__(self): self.myvariable = 3 def myfunction(self, arg1, arg2): return self.myvariable # This is the class instantiation >>> classinstance = MyClass() >>> classinstance.myfunction(1, 2) 3 # This variable is shared by all classes. >>> classinstance2 = MyClass() >>> classinstance.common 10 >>> classinstance2.common 10 # Note how we use the class name # instead of the instance. >>> MyClass.common = 30 >>> classinstance.common 30 >>> classinstance2.common 30 # This will not update the variable on the class, # instead it will bind a new object to the old # variable name. >>> classinstance.common = 10 >>> classinstance.common 10 >>> classinstance2.common 30 >>> MyClass.common = 50 # This has not changed, because "common" is # now an instance variable. >>> classinstance.common 10 >>> classinstance2.common 50 # This class inherits from MyClass. The example # class above inherits from "object", which makes # it what"s called a "new-style class". # Multiple inheritance is declared as: # class OtherClass(MyClass1, MyClass2, MyClassN) class OtherClass(MyClass): # The "self" argument is passed automatically # and refers to the class instance, so you can set # instance variables as above, but from inside the class. def __init__(self, arg1): self.myvariable = 3 print arg1 >>> classinstance = OtherClass("hello") hello >>> classinstance.myfunction(1, 2) 3 # This class doesn"t have a .test member, but # we can add one to the instance anyway. Note # that this will only be a member of classinstance. >>> classinstance.test = 10 >>> classinstance.test 10

Исключения в Python

Исключения в Python обрабатываются в блоках try-except :

Def some_function(): try: # Division by zero raises an exception 10 / 0 except ZeroDivisionError: print "Oops, invalid." else: # Exception didn"t occur, we"re good. pass finally: # This is executed after the code block is run # and all exceptions have been handled, even # if a new exception is raised while handling. print "We"re done with that." >>> some_function() Oops, invalid. We"re done with that.

Импорт модулей в Python

Внешние библиотеки используются после импорта с использованием ключевого слова import . Вы также можете использовать from import для импорта индивидуальных функций.

Import random from time import clock randomint = random.randint(1, 100) >>> print randomint 64

Работа с файлами в Python

Python обладает большим количеством библиотек для работы с файлами. Например, сериализация (конвертирование данных в строки с библиотекой pickle):

Import pickle mylist = ["This", "is", 4, 13327] # Open the file C:\\binary.dat for writing. The letter r before the # filename string is used to prevent backslash escaping. myfile = open(r"C:\\binary.dat", "w") pickle.dump(mylist, myfile) myfile.close() myfile = open(r"C:\\text.txt", "w") myfile.write("This is a sample string") myfile.close() myfile = open(r"C:\\text.txt") >>> print myfile.read() "This is a sample string" myfile.close() # Open the file for reading. myfile = open(r"C:\\binary.dat") loadedlist = pickle.load(myfile) myfile.close() >>> print loadedlist ["This", "is", 4, 13327]

Разное

  • Условия могут склеиваться, например 1 < a < 3 проверит, что a одновременно меньше 3 и больше 1.
  • Вы можете использовать del для удаления переменных или элементов в массивах.
  • Списки дают очень сильные возможности для манипуляции данными. Вы можете составить выражение с использованием for и последующими инструкциями if или for:
>>> lst1 = >>> lst2 = >>> print >>> print # Check if a condition is true for any items. # "any" returns true if any item in the list is true. >>> any(]) True # This is because 4 % 3 = 1, and 1 is true, so any() # returns True. # Check for how many items a condition is true. >>> sum(1 for i in if i == 4) 2 >>> del lst1 >>> print lst1 >>> del lst1
  • Глобальные переменные объявляются вне функций и могут читаться без специальных объявлений внутри, но если вы хотите записывать их, вы должны объявить из в начале функции с использованием специального ключевого слова «global», иначе Python назначит новое значение локальной переменной:
number = 5 def myfunc(): # This will print 5. print number def anotherfunc(): # This raises an exception because the variable has not # been bound before printing. Python knows that it an # object will be bound to it later and creates a new, local # object instead of accessing the global one. print number number = 3 def yetanotherfunc(): global number # This will correctly change the global. number = 3

Как выучить язык программирования Python

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

Если вам недостаточно изложенной информации — просмотрите расширенный материал с описанием языка программирования Python — — в нем сведения о языке изложены более подробно.

Среди других материалов рекомендую Learn Python The Hard Way . И, конечно The Python 2 Tutorial и The Python 3 Tutorial .

Большая благодарность Stavros Korokithakis за его отличный tutorial «Learn Python in 10 minutes» .

Если вы хотите что-то улучшить в этом материале — пожалуйста напишите в комментариях.

О Python (лучше произносить "питон", хотя некоторые говорят "пайтон") - предмете данного изучения, лучше всего говорит создатель этого языка программирования, голландец Гвидо ван Россум:

"Python - интерпретируемый, объектно-ориентированный высокоуровневый язык программирования с динамической семантикой. Встроенные высокоуровневые структуры данных в сочетании с динамической типизацией и связыванием делают язык привлекательным для быстрой разработки приложений ( RAD , Rapid Application Development ). Кроме того, его можно использовать в качестве сценарного языка для связи программных компонентов. Синтаксис Python прост в изучении, в нем придается особое значение читаемости кода, а это сокращает затраты на сопровождение программных продуктов. Python поддерживает модули и пакеты, поощряя модульность и повторное использование кода. Интерпретатор Python и большая стандартная библиотека доступны бесплатно в виде исходных и исполняемых кодов для всех основных платформ и могут свободно распространяться."

В процессе изучения будет раскрыт смысл этого определения, а сейчас достаточно знать, что Python - это универсальный язык программирования. Он имеет свои преимущества и недостатки, а также сферы применения. В поставку Python входит обширная стандартная библиотека для решения широкого круга задач. В Интернете доступны качественные библиотеки для Python по различным предметным областям: средства обработки текстов и технологии Интернет, обработка изображений, инструменты для создания приложений, механизмы доступа к базам данных, пакеты для научных вычислений, библиотеки построения графического интерфейса и т.п. Кроме того, Python имеет достаточно простые средства для интеграции с языками C, C++ (и Java) как путем встраивания (embedding) интерпретатора в программы на этих языках, так и наоборот, посредством использования библиотек, написанных на этих языках, в Python-программах. Язык Python поддерживает несколько парадигм программирования: императивное (процедурный, структурный, модульный подходы), объектно-ориентированное и функциональное программирование.

Можно считать, что Python - это целая технология для создания программных продуктов (и их прототипов). Она доступна почти на всех современных платформах (как 32-битных, так и на 64-битных) с компилятором C и на платформе Java.

Может показаться, что, в программной индустрии нет места для чего-то другого кроме C/C++, Java, Visual Basic, C#. Однако это не так. Возможно, благодаря данному курсу лекций и практических занятий у Python появятся новые приверженцы, для которых он станет незаменимым инструментом.

Как описать язык?

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

Однако стоит обратить внимание на правильный подход к описанию языка. Создание программы - это всегда коммуникация, в которой программист передает компьютеру информацию, необходимую для выполнения последним действий. То, как эти действия понимает программист (то есть "смысл"), можно назвать семантикой . Средством передачи этого смысла является синтаксис языка программирования. Ну а то, что делает интерпретатор на основании переданного, обычно называют прагматикой . При написании программы очень важно, чтобы в этой цепочке не возникало сбоев.

Синтаксис - полностью формализованная часть: его можно описать на формальном языке синтаксических диаграмм (что и делается в справочных руководствах). Выражением прагматики является сам интерпретатор языка. Именно он читает записанное в соответствии с синтаксисом "послание" и превращает его в действия по заложенному в нем алгоритму. Неформальным компонентом остается только семантика. Именно в переводе смысла в формальное описание и кроется самая большая сложность программирования. Синтаксис языка Python обладает мощными средствами, которые помогают приблизить понимание проблемы программистом к ее "пониманию" интерпретатором. О внутреннем устройстве Python будет говориться в одной из завершающих лекций.

История языка Python

Создание Python было начато Гвидо ван Россумом (Guido van Rossum) в 1991 году, когда он работал над распределенной ОС Амеба. Ему требовался расширяемый язык, который бы обеспечил поддержку системных вызовов. За основу были взяты ABC и Модула-3. В качестве названия он выбрал Python в честь комедийных серий BBC "Летающий цирк Монти-Пайтона", а вовсе не по названию змеи. С тех пор Python развивался при поддержке тех организаций, в которых Гвидо работал. Особенно активно язык совершенствуется в настоящее время, когда над ним работает не только команда создателей, но и целое сообщество программистов со всего мира. И все-таки последнее слово о направлении развития языка остается за Гвидо ван Россумом.

Последнее обновление: 24.01.2018

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

Впервые язык Python был анонсирован в 1991 году голландским разработчиком Гвидо Ван Россумом. С тех пор данный язык проделал большой путь развития. В 2000 году была издана версия 2.0, а в 2008 году - версия 3.0. Несмотря на вроде такие большие промежутки между версиями постоянно выходят подверсии. Так, текущей актуальной версией на момент написания данного материала является 3.7 . Более подробную информацию о всех релизах, версиях и изменения языка, а также собственно интерпретаторы и необходимые утилиты для работы и прочую полезную информацию можно найти на официальном сайте https://www.python.org/ .

Основные особенности языка программирования Python:

Python - очень простой язык программирования, он имеет лаконичный и в то же время довольно простой и понятный синтаксис. Соответственно его легко изучать, и собственно это одна из причин, по которой он является одним из самых популярных языков программирования именно для обучения. В частности, в 2014 году он был признан самым популярным языком программирования для обучения в США.

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

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

Для создания программ на Python нам потребуется интерпретатор. Для его установки перейдем на сайт https://www.python.org/ и на главной станице в секции Downloads найдем ссылку на загрузку последней версии языка (на данный момент это 3.7.2):

Перейдем по ссылке к странице с описанием последней версии языка. Ближе к низу на ней можно найти список дистрибутивов для разных операционных систем. Выберем нужный нам пакет и загрузим его. Например, в моем случае это ОС Windows 64-х разрядная, поэтому я выбираю ссылку на пакет Windows x86-64 executable installer . После загрузки дистрибутива установим его.

Соответственно для MacOS можно выбрать пункт macOS 64-bit installer .

На ОС Windows при запуске инсталлятора запускает окно мастера установки:

Здесь мы можем задать путь, по которому будет устанавливаться интерпретатор. Оставим его по умолчанию, то есть C:\Users\[имя_пользователя]\AppData\Local\Programs\Python\Python36\ .

Кроме того, в самом низу отметим флажок "Add Python 3.6 to PATH", чтобы добавить путь к интерпретатору в переменные среды.

После установки в меню Пуск на ОС Windows мы сможем найти иконки для доступа к разным утилитам питона:

Здесь утилита Python 3.7 (64-bit) представляет интерпретатор, в котором мы можем запустить скрипт. В файловой системе сам файл интерпретатора можно найти по пути, по которому производилась установка. На Windows по умолчанию это путь C:\Users\[имя_пользователя]\AppData\Local\Programs\Python\Python37 , а сам интерпретатор представляет файл python.exe . На ОС Linux установка производится по пути /usr/local/bin/python3.7 .

Історія

Мова програмування Python була створена приблизно в 1991 році голандцем .

Своє ім"я - Python (Пайтон) - отримав від назви телесеріалу (“Monty Python”) , а не плазуна.

Після того, як Россум розробив мову, він виклав її в Інтернет, де вже ціле співтовариство програмістів приєдналося до її поліпшення. Python активно вдосконалюється і в даний час. Часто виходять його нові версії. Офіційний сайт http://python.org

З появою версії 3.0 розвиток Python як би пішов в двох напрямках: одночасно розвиваються і 2-га і 3-я версії Python.

Примітка: В даному підручнику ми будемо вивчати 3-ю версію Python. Хоча для тих хто хоче вчити 2-гу версію, цей підручник буде однаково корисним: на даному етапі вивчення мови різниця між версіями практично не відчутна (окрім правил написання команд print() та input() , про що буде повідомлено нижче).

Особливості

Python - інтерпретована мова програмування: вихідний код частинами перетворюється в машинний в процесі виконання спеціальною програмою - інтерпретатором.

Python характеризується ясним синтаксисом. Читати код на цій мові програмування досить легко, тому що в ньому мало допоміжних елементів, а правила мови змушують програмістів робити відступи . Зрозуміло, що добре оформлений текст з малою кількістю відволікаючих елементів читати і розуміти легше.

Python - це повноцінна, можна сказати універсальна, мова програмування. Він підтримує об"єктно-орієнтоване програмування (насправді вона і розроблявся як об"єктно-орієнтована мова).

Також Python поширюється вільно на підставі ліцензії GNU General Public License.

Дзен Пітона

Якщо інтерпретатору Пітона дати команду import this (імпортувати "сам об"єкт"), то виведеться так званий "Дзен Пітона", який ілюструє ідеологію і особливості даної мови. Глибоке розуміння цього дзену приходить тим, хто зможе освоїти мову Python в повній мірі і отримає досвід практичного програмування.

Фраза Переклад
1. Beautiful is better than ugly. Красиве краще за потворне.
2. Explicit is better than implicit. Просте краще за складне.
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! Простори назв - прекрасна ідея, давайте робити їх більше!

Як писати програми

Програмне забезпечення

    Сам інтерпретатор з інтерактивною оболонкою IDLE. Його можна взяти тут (http://python.org/download/). Існують версії для Linux, Windows, MacOS.

    Середовище розробки. Воно для початку необов"язкове, та й те що йде в дистрибутиві підійде новачкові, але для серйозних проектів потрібно щось серйозніше. Для Windows, наприклад, можна використовувати чудовий легкий PyScripter , для Linux - Komodo IDE .

Інтерактивний режим

Для початку попрацюємо в інтерактивні оболочці IDLE. Просто запустіть дистрибутив (перед цим, звичайно, його треба закачати та інсталювати). Запрошення введення не змусить себе довго чекати, воно виглядає так:

>>>

В основному інтерпретатор виконує команди порядково: пишеш рядок, натискаєш Enter, інтерпретатор виконує її, спостерігаєш результат.

Це дуже зручно, коли людина тільки вивчає програмування або тестує якусь невелику частину коду. Адже якщо працювати на компільованій мові, то довелося б спочатку написати код на вихідній мові програмування, потім скомпілювати і вже потім запустити виконуваний файл на виконання.

Примітка: Працювати в інтерактивному режимі в ОС Linux можна не лише в оболочці IDLE але й безпосередньо в консолі. Для цього слід виконати команду python . Запуститься інтерпретатор, де спочатку виведеться інформація про інтерпретатор. Далі, послідує запрошення до вводу (>>> ). Хоча працювати в інтерактивній оболочці IDLE зручніше, так як там є підсвічування синтаксису (залежно від значення синтаксичної одиниці вона виділяється певним кольором) і спливаючі підказки.

Оскільки ніяких команд ми поки не знаємо, то будемо використовувати Python як калькулятор (можливості мови це дозволяють). Пишемо вираз, натискаємо Enter і отримуємо результат:

>>>2+5
7
>>>3*(5-8)
-9
>>>2.4+3.0/2
3.9

Прокручувати список раніше введених команд можна за допомогою комбінацій Alt + N , Alt + P .

Створення скриптів

Незважаючи на зручності інтерактивного режиму роботи при написанні програм на Python, зазвичай потрібно зберігати вихідний програмний код для подальшого використання. У такому випадку підготовлюються файли, які передаються потім інтерпретатору на виконання. По відношенню до інтерпретованих мов програмування часто вихідний код називають скриптом . Файли з кодом на Python зазвичай мають розширення py .

Підготувати скрипти можна в тому ж середовищі IDLE. Для цього, після запуску програми в меню слід вибрати команду File → New Window (Crtl + N) , відкриється нове вікно. Потім бажано відразу зберегти файл (не забуваємо про розширення py ). Після того як код буде підготовлений, знову збережіть файл (щоб оновити збереження). Ну і нарешті, можна запустити скрипт, виконавши команду меню Run → Run Module (F5) . Після цього в першому вікні з"явиться результат виконання коду. (Примітка: якщо набирати код, не зберігши спочатку файл, то підсвічування синтаксису буде відсутнє.)

Підготуйте скрипт (з прикладами). Запустіть його на виконання.

Насправді скрипти можна готувати в будь-якому текстовому редакторі (бажано, щоб він підтримував підсвічування синтаксису мови Python). Крім того, існують спеціальні програми для розробки.

Запускати підготовлені файли можна не тільки в IDLE, але і в консолі (для Linux) за допомогою команди

У консолі передайте інтерпретатору Пітона на виконання підготовлений файл.

Крім того, існує можливість налаштувати виконання скриптів за допомогою подвійного кліка по файлу (в Windows дана можливість присутня від початку).

Python відноситься до тих рідкісних мов програмування які можуть бути визнані простими і в той же час потужними. Ти будеш приємно здивований як легко сконцентруватися на вирішення власне самої проблеми, а не на синтаксису і структурі мови програмування на якій ти пишеш.

Офіційне введення в мову Python наступне:

Python легка у вивченні, потужна мова програмування. Вона має ефективні високорівневі структури даних і простий, але ефективний підхід до об’єктно- орієнтованого програмування. Елегантний синтаксис мови і динамічна типізація поєднані з командно-інтерпретованою природою роблять Python ідеальною мовою для написання скриптів та швидкої розробки програм в багатьох сферах та на різних платформах.

Просто вивести на екран “Привіт, світе” недостатньо, чи не так? Ти хочеш зробити більше за це - ти хочеш отримати якісь дані від користувача, виконати над ними якісь дії і щось із цього отримати. Ми можемо досягти цього у Python викор. константи і змінні.

Літеральні константи

Прикладом літеральної константи може бути число, напр. 5, 1.23 чи, наприклад, рядок: "Це рядок!". Домовимося що під літеральною константою тут розуміється константа (після визначення її не можна змінити), яка включена в текст програми безпосередньо, буквально, тобто до неї не можна отримати доступ, зіславшись на неї, наприклад зі змінної. Трохи мутно, але це дані числового чи рядкового типу включені в програму як вони є (змінна не може вважатися літеральною константою).

Числа

В Python існують числа трьох типів: цілочисельні(integers), числа з плаваючою комою(floating point) і комлексні числа.

Прикладом цілочислового числа може бути число 2.

Прикладом чисел з плаваючою комою є 3.23.

Прикладом комплексних чисел є: 52.3E-4 .

Зауваження для досвідчених програмістів

В Python не існує окремого типу даних "long int". Т ип int може бути як завгодно довгим.

Рядки

Рядок - це послідовність символів. Загалом, рядки це просто жмут слів. Слова можуть бути написані на будь-якій мові яку підтримує стандарт Unicode, що значить - майже будь-яка мова на Землі.

Я майже гарантую тобі, що ти будеш використовувати рядки у будь-якій програмі на Python, тому будь уважним до наступної частини де розказується як використовувати рядки.

Одинарні лапки

Ти можеш створити рядок використовуючи одинарні лапки такі як "Quote me on this". Всі розділові знаки показується як є.

Подвійні лапки

Рядки у подвійних лапках обробляються так само як і рядки в одинарних лапках. Приклад: "Як твоє ім"я?".

Потрійні лапки

Можна визначати багаторядкові рядки викор. потрійні лапки (""" або """). Подвійні і одинарні лапки можна вільно використовувати всередині потрійних. Приклад:

"""This is a multi-line string.This is the first line. This is the second line. "What"s your name?," I asked. He said "Bond, James Bond". """

Керуючі послідовності

Припустимо, що ти хочеш мати рядок який містить одинарну лапку ("), як ти визначиш рядок? Наприклад, рядок What"s your name?. Ти не можеш написати "What"s your name?" тому що Python не зможе визначити де рядок починається, а де він закінчується. Тому, потрібно вказати, що та лапка не вказує на кінець рядка. Це можна зробити скориставшись так званими керуючими послідовностями. Треба написати \" - зауваж зворотню косу лінію. Тепер, ти можеш визначити рядок так: "What\"s your name?".

Інший спосіб, яким можна визначити цей специфічний рядок, написати ось так: "What"s your name?". Використовуючи подвійні лапки. Таким же чином ти повинен викор. подвійні лапки у рядку, що оточений подвійними лапками. Для того щоб вказати на те що потрібен саме зворотній слеш, пишемо ось так: \\.

Що якщо ти захотів вказати логічний рядок розташований на двох фізичних рядках? Один із можливих способів використання потрійних лапок, але існує також інший варіант - використання керуючого символу для позначення початку нового рядка - \n. Приклад використання:

{pre class="brush: python; gutter:false;" }This is the first line\nThis is the second line{/pre}

Інша корисна послідовність керуючих символів це відступ - \t. Існує багато інших керуючих символів, але я зауважив тільки найбільш корисніші.

Слід зауважити, що один символ \ в кінці рядка позначає те, що рядок продовжується на наступній лінії, але ніяких символів до нового рядка не додається! Приклад:

"This is the first sentence.\ This is the second sentence."

що еквівалентно “This is the first sentence. This is the second sentence.”.

Необроблювані рядки

Якщо потрібно визначити рядок де не відбувається обробка жодних спеціальних символів, треба написати букву r або R на початку рядка. Приклад:

R"Newlines are indicated by \n"

Рядки незмінні (immutable)

Це означає, що з того часу як ти створив рядок, ти не можеш його змінити. Наприклад, написати someString="a". Це може виглядати недобре, але насправді це не так.

Об’єднання рядків

Якщо ти розмістиш два рядки поряд, то вони будуть автоматично об’єднані (конкатеновані). Наприклад, "What\"s" "your name?" автоматично перетвориться на "What"s your name?".

Зауваження для C/C++ програмістів

В Python не існує окремого типу даних char. В цьому не має реальної потреби, і я впевнений що ти в цьому переконаєшся.

Зауваження для Perl/PHP програмістів

Запам’ятай, що різниці між рядками у подвійних і одинарних лапках не існує.

Зауваження для користувачів регулярних виразів

Завжди використовуй необроблювані рядки, коли користуєшся регулярними виразами. Інакше може знадобиться багато екранування. Наприклад, зворотні ссилки можна позначати як "\\1" або r"\1".

Метод format

Іноді ми можемо захотіти створити рядок з іншої якоїсь інформації. Ось де метод format() стане в нагоді.

#!/usr/bin/python # Filename: str_format.py age = 25 name = "Swaroop" print("{0} is {1} years old".format(name, age)) print("Why is {0} playing with that python?".format(name))

Виведе:

$ python str_format.py

Swaroop is 25 years old

Why is Swaroop playing with that python?

Як це працює?

Всередині рядка ми вставили певні специфікатори і викликали метод format. Який заміняє ці специфікатори відповідними аргументами переданими методу. Перший специфікатор це - {0}, він відповідає змінній name, яка є першим аргументом для вищевказаного методу format. Та ж історія із другим специфікатором - {1}, він відповідає другому аргументу - age.

Зауваж, що ми також можемо досягти того ж результату скориставшись конкатенацією рядків: name + " is " + str(age) + " years old", але зверни увагу на те, що це більш незручно, крім того такий спосіб може збільшити к-ть помилок. Перетворення в рядковий тип відбувається автоматично (це робить метод format). Не потрібно це робити явно, в ручну. Коли викор. метод format можна змінювати повідомлення не маючи справи зі змінними.

Що Python робить так це замінює аргументами відповідні специфікатори. Можна скористатися і більш деталізованими специфікаторами:

>>> "{0:.3}".format(1/3)# число з дробною часткою (.). Точність 3 знаки "0.333" >>> "{0”__^11}".format("hello")# заповнити нижнім підкреслюванням. Текст #відцентровано (^) до довжини 11 "___hello___" >>> "{name} wrote {book}".format(name="Swaroop", book="A Byte of Python")#ключові слова "Swaroop wrote A Byte of Python"

Деталі форматування специфікацій пояснені в Python Enhancement Proposal No. 3101 (http://www.python.org/dev/peps/pep-3101/).

Поняття змінної

Використання тільки літеральних констант може дуже швидко стати нудним - нам потрібен спосіб який би дозволив зберігати будь-яку інформацію і маніпулювати цією інформацією. Ось тут змінні стануть нам в нагоді. Поняття змінної означає саме те що значить саме слово - їхні значення можуть змінюватися, іншими словами ти можеш зберігати будь-які дані користуючись змінною. Змінні це - просто іменована частина пам’яті твого комп’ютера де ти тримаєш певну інформацію. На відміну від літеральних констант потрібен якийсь спосіб для отримання доступу до змінних і саме тому ти даєш їм імена.

Іменування ідентифікаторів

Змінні є прикладом ідентифікаторів. В свою чергу ідентифікатори це імена які на щось вказують (ідентифікують). Існують певні правила яким ти повинен слідувати при іменуванні ідентифікаторів:

1) Першим символом ідентифікатора має бути літера (символ з набору ASCII або Unicode-символ. Байдуже у якому регістрі.) чи знак нижнього підкреслювання (underscore) - "_".

2) Решта ідентифікатору може складатися з літер, чисел, або знаків нижнього підкреслювання.

3) Імена ідентифікаторів чутливі до регістру символів. Наприклад, myname і myName це не одне й теж саме (це різні змінні).

4) Прикладом правильних імен ідентифікаторів є i, __my_name, name_23, a1b2_c3 і resumÃÆâ€TMƒÂ©_count.

5) Приклад неправильних імен ідентифікаторів: 2things, this is spaced out, my-name, "this_is_in_quotes".

Типи даних

Змінні можуть містити значення які відносяться до різних типів даних. Базовими типами є числа і рядки. Далі ми розглянемо як створювати власні типи даних користуючись класами.

Об’єкти

Запам’ятай, Python відноситься до всього, що використано в програмі як до об’єкта.

Зауваження для користувачів ООП

Python дуже об’єктно-орієнтований у тому значенні, що все є об’єктом, включаючи такі базові типи, як рядки, числа і навіть функції.

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

Приклад: використання змінних і літеральних констант

#Filename: var.py i = 5 print(i) i=i+1 #або i+=1. Така конструкція є більш вживаною print(i) s="""This is a multi-line string. This is the second line""" print(s)

Що виведе на екран:

$ python var.py

This is a multi-line string.

This is the second line.

Як це працює:

Спершу ми присвоїли число 5 змінній з іменем i використовуючи оператор присвоєння (=). Цей рядок називається твердженням тому що він наголошує на тому, що щось має бути зроблено, у даному випадку ми поєднали ім’я змінної iз числом 5. Далі, ми вивели на екран значення змінної i використовуючи вбудовану функцію print, яка, як це не дивно, просто виводить на екран значення змінної.

Потім ми додали 1 до значення яке міститься в змінній i і повернули його назад в ту ж саму змінну. Все що робить конструкція i=i+1 так це додає до значення, яке міститься у змінній i число 1, а потім перевизначає змінну i новим значенням (повертає результат операції 5+1 у змінну). Вираз слід читати зправа наліво (Запусти інтерпретатор Python в інтерактивному режимі і спробуй спочатку написати i=5 а потім i+1. Після кожної операції виводячи значення змінної (достатньо просто написати ім’я змінної)).

Зауваження для програмістів на статичних мовах програмування

Змінні визначаються (їх можна починати використовувати) відразу після присвоєння їй якогось значення (достатньо написати ім’я змінної оператор присвоєння і значення для змінної). Ніяких оголошень чи визначення типу даних не потрібно.

Різниця між логічними та фізичним рядками тексту

Під логічним рядком слід розуміти ОДНУ завершену інструкцію (будемо вважати, що одна така завершена конструкція є оператором) для Python. Фішка в тому що зазвичай, кожна така інструкція має в кінці якийсь знак який і вказує на її завершеність (ніби крапка в реченні, якщо в кінці речення не вказати крапку, то буде не зрозуміло чи це завершене твердження чи ти ще щось хотів сказати). Зазвичай таким знаком є ;. В таких мовах програмування як С, С++ etc в кінці кожної інструкції ОБОВ’ЯЗКОВО ставиться крапка з комою. Python же є винятком - тут це робити необов’язково і більшість програмістів на Python цього не роблять. Але зауваж, що якщо ти цього не робиш, то кожен оператор має розташовуватися на одному рядку, тобто

A=5 print(a)

неправильно, а от

A=5 print(a)

правильно.
Для того щоб розташувати декілька операторів на одному фізичному рядку слід після кожного вказувати крапку з комою:

A=5; print(a); b=input("How old are you?")#даний код працює. В кінці немає ; бо це була остання ірструкція в цьому фізичному рядку

Неявно Python заохочує до практики один рядок - одна інструкція. Це робить код більш читабельним (його легше сприймати).

Також не варто змішувати різні стилі в одній програмі.

Якщо виникне необхідність вивести на екран довгий рядок тексту, який бажано було б розбити на декілька фізичних рядків в тексті програми, і який повинен знаходитися на одному фізичному рядку на екрані слід писати так:

S="This is a string. \ This continues the string." print(s)

Після виконання даного коду на екрані відобразиться:

This is a string. This continues the string

Схожим чином,

те ж саме що й

Існують випадки коли не потрібно використовувати явне об’єднання рядків. Це стосується рядків які знаходяться всередині дужок, квадратних чи фігурних дужок.

Відступи

Відступи відіграють дуже важливу роль в Python. Пробіли або відступи (таби) на початку логічного рядка вказують рівень вкладеності логічного рядка, який у свою чергу, використовується для групування операторів (в багатьох інших мовах програмування для цього використовуються {}).

Це означає що оператори які йдуть разом повинні мати однаковий рівень вкладеності. Кожен такий набір операторів називається блоком. Пізніше ми побачимо наскільки блоки важливі.

Одну дуже важливу річ яку ти маєш запам’ятати це те що невірна к-ть відступів може призвести до виникнення помилок.. Для прикладу:

I=5 print("Value is ", i) #Помилка! Зауваж пробіл на початку print("I repeat, the value is", i)

Коли ти це запустиш, то отримаєш помилку:

File "whitespace.py", line 4

print("Value is ", i) #Помилка! Зауваж пробіл на початку

IndentationError: unexpected indent

Як правильно робити відступи?

Ні в якому разі не використовуй мішанину з пробілів і відступів! Варто використовувати тільки або 4- и пробіли або один відступ (клавіша Tab)


Загрузка...
elecarauto.ru - Настройка. Установка. Windows. Софт и утилиты