Что такое питон язык программирования. Введение в 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 (лучше произносить "питон", хотя некоторые говорят "пайтон") - предмете данного изучения, лучше всего говорит создатель этого языка программирования, голландец Гвидо ван Россум:

"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 развивался при поддержке тех организаций, в которых Гвидо работал. Особенно активно язык совершенствуется в настоящее время, когда над ним работает не только команда создателей, но и целое сообщество программистов со всего мира. И все-таки последнее слово о направлении развития языка остается за Гвидо ван Россумом.

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

Немного истории

Язык программирования Python начал разрабатываться Гвидо ван Россумом в конце восьмидесятых. Гвидо в то время был сотрудником голландского института CWI. Он писал этот язык на досуге, вложив туда некоторые идеи по языку ABC, в работе над которым он участвовал.

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

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

Не так давно, в 2008 году, вышла первая, до этого долго тестировавшаяся версия Python 3000 (3.0), где было устранено множество недостатков архитектуры. При этом разработчики постарались сохранить совместимость с предыдущими версиями языка. Несмотря на наличие более свежей версии, обе ветки (2.х и 3.х) поддерживаются.

Лаконичный язык программирования

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

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

Неуверенность в себе

Стоит отбросить заблуждение о том, что программирование - это сложно. Нет, программирование гораздо интереснее, чем кажется; помешать могут другие занятия и так называемая "нехватка времени" или лень.

Базовая литература поможет быстро изучить программирование на языке Python. Учебный курс следует начать с чтения двух книг, из которых можно почерпнуть основы. Первая из них - это "Программирование на Python" Марка Лутца, а вторая - "Программирование на Python 3" Марка Саммерфилда. Книга Лутца подробно, порой даже слишком, описывает все базовые принципы, на которых строится язык. Некоторые советуют читать Марка Лутца не для освоения, а для углубления базовых знаний. Книга Саммерфилда объясняет все более лаконично, автор не пугает читателя никакими сложностями. Есть и другая литература, однако эти учебники наиболее полезны и информативны.

Вводный курс

Давайте вспомним начальную школу. Как правило, даже в первый класс ребенок приходит с какими-то минимальными знаниями: с кем-то занимались родители, кто-то ходил в "нулевку". Так же проходит и обучение языку программирования Python. Он действительно удобен и "прозрачен", но без минимальных знаний о базовых принципах действия программ обучение будет идти тяжело. Это как изучать ноты, не слыша музыки. Поэтому тем, кто вообще никогда не сталкивался с программированием, стоит ознакомиться с "вводным минимумом".

Полезным подспорьем будут лекции CS50. Это курс Гарвардского университета, посвященный программированию на Java Script, однако в первых лекциях доступно и понятно объясняется взаимодействие компьютера и программ в целом. Русскоязычному пользователю доступны видеозаписи этого курса с переводом, дополнительными материалами, текстовыми вариантами лекций и практическими заданиями. Видео можно найти практически где угодно, например, на YouTube, а вот все материалы целиком - на сайте Java Script.

В интернете

Язык программирования Python набирает популярность, поэтому уже давно существует несколько порталов, на которых множество материалов для самообучения. Например, «Python 3 для начинающих». На этом сайте много материалов для новичков, его можно использовать как шпаргалку. Также большой объем информации по данной теме с бесплатным доступом на сайте Codecademy.

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

Платные курсы

Всегда можно воспользоваться и платными курсами, но стоит это порой немалых денег, а результат может быть неудовлетворительным. Поэтому, конечно, желательно выбирать курсы, которые предлагают бесплатное ознакомительное задание. Например, интенсив по теме "Основы программирования на языке Python" есть на GeekBrains. Занятие бесплатное, проводится каждые десять дней. Чтобы записаться, необходимо авторизоваться на сайте.

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

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

Использование

Язык программирования Python был использован для создания множества приложений, которыми многие люди пользуются ежедневно. Например, это шестая версия торрент-клиента BitTorrent. Также «Питон» («Пайтон») используется в растровом графическом редакторе Gimp. С помощью него создаются дополнительные модули, фильтры, к примеру. На этом языке написана значительная часть игры Civilization IV и Batterfield 2.

«Питон» используют такие компании, как «Гугл», «Фейсбук», «Инстаграм», «Дропбокс», «Пинтерест». Он также работает в ядре приложения «Яндекс-диск». Около 10% сотрудников компании пишут именно на «Питоне», а многие программисты называют его своим любимым языком.

Как начать работу

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

Обратите внимание, что необходимо скачивать файл, подходящий под установленную на компьютере операционную систему!

Если установка прошла успешно, откройте консоль (как правило, это можно сделать сочетанием клавиш «ctrl+alt+T»). Теперь можете написать свою первую программу. Например, введите "python3". Если консоль вывела "приветствие", где указана версия программы (например, 3.4.0), то все в порядке, если нет, то нужно установить третью версию «Питона» командой: «sudo apt-get install python3».
Однако это не обязательно. Можно писать код в любом удобном текстовом редакторе, после чего запускать через консоль, а можно пользоваться средой разработки IDLE, идущей в комплекте с дистрибутивом.

Запустите IDLE. Чтобы создать крошечную программу, достаточно написать всего одну строку кода.

print("Hello world!")

Введите этот код в окно IDLE и нажмите «Ввод». Среда мгновенно отзовется действием - выведет на экране требуемый текст. Первая программа готова.

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)


(Перевод)

На сайте Poromenos" Stuff была опубликована статья, в которой, в сжатой форме, рассказывают об основах языка Python. Я предлагаю вам перевод этой статьи. Перевод не дословный. Я постарался подробнее объяснить некоторые моменты, которые могут быть непонятны.

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

Основные свойства

Python не требует явного объявления переменных, является регистро-зависим (переменная var не эквивалентна переменной Var или VAR - это три разные переменные) объектно-ориентированным языком.

Синтаксис

Во первых стоит отметить интересную особенность Python. Он не содержит операторных скобок (begin..end в pascal или {..}в Си), вместо этого блоки выделяются отступами : пробелами или табуляцией, а вход в блок из операторов осуществляется двоеточием. Однострочные комментарии начинаются со знака фунта «#», многострочные - начинаются и заканчиваются тремя двойными кавычками «"""».

Чтобы присвоить значение пременной используется знак «=», а для сравнения - «==». Для увеличения значения переменной, или добавления к строке используется оператор «+=», а для уменьшения - «-=». Все эти операции могут взаимодействовать с большинством типов, в том числе со строками. Например

>>> myvar = 3

>>> myvar += 2

>>> myvar -= 1

"""Это многострочный комментарий

Строки заключенные в три двойные кавычки игнорируются"""

>>> mystring = "Hello"

>>> mystring += " world."

>>> print mystring

Hello world.

# Следующая строка меняет

Значения переменных местами. (Всего одна строка!)

>>> myvar, mystring = mystring, myvar

Структуры данных

Python содержит такие структуры данных как списки (lists), кортежи (tuples) и словари (dictionaries ). Списки - похожи на одномерные массивы (но вы можете использовать Список включающий списки - многомерный массив), кортежи - неизменяемые списки, словари - тоже списки, но индексы могут быть любого типа, а не только числовыми. "Массивы" в Python могут содержать данные любого типа, то есть в одном массиве может могут находиться числовые, строковые и другие типы данных. Массивы начинаются с индекса 0, а последний элемент можно получить по индексу -1 Вы можете присваивать переменным функции и использовать их соответственно.

>>> sample = , ("a", "tuple")] #Список состоит из целого числа, другого списка и кортежа

>>> mylist = ["List item 1", 2, 3.14] #Этот список содержит строку, целое и дробное число

>>> mylist = "List item 1 again" #Изменяем первый (нулевой) элемент листа mylist

>>> mylist[-1] = 3.14 #Изменяем последний элемент листа

>>> mydict = {"Key 1": "Value 1", 2: 3, "pi": 3.14} #Создаем словарь, с числовыми и целочисленным индексами

>>> mydict["pi"] = 3.15 #Изменяем элемент словаря под индексом "pi".

>>> mytuple = (1, 2, 3) #Задаем кортеж

>>> myfunction = len #Python позволяет таким образом объявлять синонимы функции

>>> print myfunction(mylist)

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

>>> 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] #Считываются элементы от нулевого (-3) до второго (-1) (не включительно)

["List item 1", 2]

>>> print mylist #Считываются элементы от первого, до последнего

Строки

Строки в Python обособляются кавычками двойными «"» или одинарными «"» . Внутри двойных ковычек могут присутствовать одинарные или наоборот. К примеру строка «Он сказал "привет"!» будет выведена на экран как «Он сказал "привет"!». Если нужно использовать строку из несколько строчек, то эту строку надо начинать и заканчивать тремя двойными кавычками «"""». Вы можете подставить в шаблон строки элементы из кортежа или словаря. Знак процента «%» между строкой и кортежем, заменяет в строке символы «%s» на элемент кортежа. Словари позволяют вставлять в строку элемент под заданным индексом. Для этого надо использовать в строке конструкцию «%(индекс)s». В этом случае вместо «%(индекс)s» будет подставлено значение словаря под заданным индексом.

>>>print "Name: %s\nNumber: %s\nString: %s" % (myclass.name, 3, 3 * "-")

Name: Poromenos

Number: 3

String: ---

strString = """Этот текст расположен

на нескольких строках"""

>>> print "This %(verb)s a %(noun)s." % {"noun": "test", "verb": "is"}

This is a test.

Операторы

Операторы while, if , for составляют операторы перемещения. Здесь нет аналога оператора select, так что придется обходиться if . В операторе for происходит сравнение переменной и списка . Чтобы получить список цифр до числа - используйте функцию range(). Вот пример использования операторов

rangelist = range(10) #Получаем список из десяти цифр (от 0 до 9)

>>> print rangelist

for number in rangelist: #Пока переменная number (которая каждый раз увеличивается на единицу) входит в список...

# Проверяем входит ли переменная

# numbers в кортеж чисел (3, 4, 7, 9)

If number in (3, 4, 7, 9): #Если переменная number входит в кортеж (3, 4, 7, 9)...

# Операция «break» обеспечивает

# выход из цикла в любой момент

Break

Else:

# «continue» осуществляет "прокрутку"

# цикла. Здесь это не требуется, так как после этой операции

# в любом случае программа переходит опять к обработке цикла

Continue

else:

# «else» указывать необязательно. Условие выполняется

# если цикл не был прерван при помощи «break».

Pass # Ничего не делать

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

Функции

Для объявления функции служит ключевое слово «def» . Аргументы функции задаются в скобках после названия функции. Можно задавать необязательные аргументы, присваивая им значение по умолчанию. Функции могут возвращать кортежи, в таком случае надо писать возвращаемые значения через запятую. Ключевое слово «lambda » служит для объявления элементарных функций.

# arg2 и arg3 - необязательые аргументы, принимают значение объявленное по умолчни,

# если не задать им другое значение при вызове функци.

def myfunction(arg1, arg2 = 100, arg3 = "test"):

Return arg3, arg2, arg1

#Функция вызывается со значением первого аргумента - "Argument 1", второго - по умолчанию, и третьего - "Named argument".

>>>ret1, ret2, ret3 = myfunction("Argument 1", arg3 = "Named argument")

# ret1, ret2 и ret3 принимают значения "Named argument", 100, "Argument 1" соответственно

>>> print ret1, ret2, ret3

Named argument 100 Argument 1

# Следующая запись эквивалентна def f(x): return x + 1

functionvar = lambda x: x + 1

>>> print functionvar(1)

Классы

Язык Python ограничен в множественном наследовании в классах. Внутренние переменные и внутренние методы классов начинаются с двух знаков нижнего подчеркивания «__» (например «__myprivatevar»). Мы можем также присвоить значение переменной класса извне. Пример:

class Myclass:

Common = 10

Def __init__(self):

Self.myvariable = 3

Def myfunction(self, arg1, arg2):

Return self.myvariable

# Здесь мы объявили класс Myclass. Функция __init__ вызывается автоматически при инициализации классов.

>>> classinstance = Myclass() # Мы инициализировали класс и переменная myvariable приобрела значение 3 как заявлено в методе инициализации

>>> classinstance.myfunction(1, 2) #Метод myfunction класса Myclass возвращает значение переменной myvariable

# Переменная common объявлена во всех классах

>>> classinstance2 = Myclass()

>>> classinstance.common

>>> classinstance2.common

# Поэтому, если мы изменим ее значение в классе Myclass изменятся

# и ее значения в объектах, инициализированных классом Myclass

>>> Myclass.common = 30

>>> classinstance.common

>>> classinstance2.common

# А здесь мы не изменяем переменную класса. Вместо этого

# мы объявляем оную в объекте и присваиваем ей новое значение

>>> classinstance.common = 10

>>> classinstance.common

>>> classinstance2.common

>>> Myclass.common = 50

# Теперь изменение переменной класса не коснется

# переменных объектов этого класса

>>> classinstance.common

>>> classinstance2.common

# Следующий класс является наследником класса Myclass

# наследуя его свойства и методы, ктому же класс может

# наследоваться из нескольких классов, в этом случае запись

# такая: class Otherclass(Myclass1, Myclass2, MyclassN)

class Otherclass(Myclass):

Def __init__(self, arg1):

Self.myvariable = 3

Print arg1

>>> classinstance = Otherclass("hello")

hello

>>> classinstance.myfunction(1, 2)

# Этот класс не имеет совйтсва test, но мы можем

# объявить такую переменную для объекта. Причем

# tэта переменная будет членом только classinstance.

>>> classinstance.test = 10

>>> classinstance.test

Исключения

Исключения в Python имеют структуру try -except :

def somefunction():

Try:

# Деление на ноль вызывает ошибку

10 / 0

Except ZeroDivisionError:

# Но программа не "Выполняет недопустимую операцию"

# А обрабатывает блок исключения соответствующий ошибке «ZeroDivisionError»

Print "Oops, invalid."

>>> fnexcept()

Oops, invalid.

Импорт

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

import random #Импортируем библиотеку «random»

from time import clock #И заодно функцию «clock» из библиотеки «time»

randomint = random.randint(1, 100)

>>> print randomint

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

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

import pickle

mylist = ["This", "is", 4, 13327]

# Откроем файл C:\binary.dat для записи. Символ «r»

# предотвращает замену специальных сиволов (таких как \n, \t, \b и др.).

myfile = file(r"C:\binary.dat", "w")

pickle.dump(mylist, myfile)

myfile.close()

myfile = file(r"C:\text.txt", "w")

myfile.write("This is a sample string")

myfile.close()

myfile = file(r"C:\text.txt")

>>> print myfile.read()

"This is a sample string"

myfile.close()

# Открываем файл для чтения

myfile = file(r"C:\binary.dat")

loadedlist = pickle.load(myfile)

myfile.close()

>>> print loadedlist

["This", "is", 4, 13327]

Особенности

  • Условия могут комбинироваться. 1 < a < 3 выполняется тогда, когда а больше 1, но меньше 3.
  • Используйте операцию «del » чтобы очищать переменные или элементы массива .
  • Python предлагает большие возможности для работы со списками . Вы можете использовать операторы объявлении структуры списка. Оператор for позволяет задавать элементы списка в определенной последовательности, а if - позволяет выбирать элементы по условию.

>>> lst1 =

>>> lst2 =

>>> print

>>> print

# Оператор «any» возвращает true, если хотя

# бы одно из условий, входящих в него, выполняется.

>>> any(i % 3 for i in )

True

# Следующая процедура подсчитывает количество

# подходящих элементов в списке

>>> sum(1 for i in if i == 3)

>>> del lst1

>>> print lst1

>>> del lst1

  • Глобальные переменные объявляются вне функций и могут быть прочитанны без каких либо объявлений. Но если вам необходимо изменить значение глобальной переменной из функции, то вам необходимо объявить ее в начале функции ключевым словом «global », если вы этого не сделаете, то Python объявит переменную, доступную только для этой функции.

number = 5

def myfunc():

# Выводит 5

Print number

def anotherfunc():

# Это вызывает исключение, поскольку глобальная апеременная

# не была вызванна из функции. Python в этом случае создает

# одноименную переменную внутри этой функции и доступную

# только для операторов этой функции.

Print number

Number = 3

def yetanotherfunc():

Global number

# И только из этой функции значение переменной изменяется.

Number = 3

Эпилог

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

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

  • Скорость выполнения программ написанных на Python очень высока. Это связанно с тем, что основные библиотеки Python
    написаны на C++ и выполнение задач занимает меньше времени, чем на других языках высокого уровня.
  • В связи с этим вы можете писать свои собственные модули для Python на C или C++
  • В стандартныx библиотеках Python вы можете найти средства для работы с электронной почтой, протоколами
    Интернета, FTP, HTTP, базами данных, и пр.
  • Скрипты, написанные при помощи Python выполняются на большинстве современных ОС. Такая переносимость обеспечивает Python применение в самых различных областях.
  • Python подходит для любых решений в области программирования, будь то офисные программы, вэб-приложения, GUI-приложения и т.д.
  • Над разработкой Python трудились тысячи энтузиастов со всего мира. Поддержкой современных технологий в стандартных библиотеках мы можем быть обязаны именно тому, что Python был открыт для всех желающих.