Сайт о телевидении

Сайт о телевидении

» » Как научиться программировать на языке python. Запуск сценария в консоли. Чтение и запись текстовых файлов

Как научиться программировать на языке python. Запуск сценария в консоли. Чтение и запись текстовых файлов

27 августа 2012 в 15:18

Учим Python качественно

  • Python

Здравствуйте всем!

Удобочитаемый синтаксис, прост в обучении, высокоуровневый язык, Объектно-Ориентированый язык программирования (ООП) , мощный, интерактивный режим, масса библиотек. Множество иных плюсов… И это всё в одном языке.
Для начала окунёмся в возможности и узнаем, что же умеет Python?

А зачем мне твой Python?

Много начинающих программистов задают подобные вопросы. Это как с покупкой телефона, скажите, почему я должен купить этот телефон, а не этот?
Качество программного обеспечения
Для многих, в том числе и для меня, основные преимущества - это удобочитаемый синтаксис. Не много языков могут похвастаться им. Программный код на Python читается легче, что значит, многократное его использование и обслуживание выполняется гораздо проще, чем использование программного кода на других языках сценариев. Python содержит самые современные механизмы многократного использования программного кода, каким является ООП .
Библиотеки поддержки
В составе Python поставляется большое число собранных и переносимых функциональных возможностей, известных как стандартная библиотека. Эта библиотека предоставляет Вам массу возможностей, востребованных в прикладных программах, начиная от поиска текста по шаблону и заканчивая сетевыми функциями. Python допускает расширение как за счёт ваших собственных библиотек, так и за счёт библиотек, созданных другими разработчиками.
Переносимость программ
Большая часть программ на языке Python выполняется без изменений на всех основных платформах. Перенос программного кода из Linux в Windows заключается в простом копировании файлов программ с одной машины на другую. Также Python предоставляет Вам массу возможностей по созданию переносимых графических интерфейсов .
Скорость разработки
По сравнению с компилирующим, или строго типизированными языками, такими как С, С++ или Java, Python во много раз повышает производительность труда разработчика. Объем программного кода на языке Python обычно составляет треть, или даже пятую часть эквивалентного программного кода на языке С++ или Java, что означает меньший объем ввода с клавиатуры, меньшее количество времени на откладку и меньший объем трудозатрат на сопровождение. Кроме того, программы на языке Python запускаются сразу же, минуя длительные этапы компиляции и связывания, необходимые в некоторых других языках программирования, что еще больше увеличивает производительность труда программиста.

Где используется Python?

  • Компания Google использует Python в своей поисковой системе и оплачивает труд создателя Python - Гвидо ван Россума
  • Такие компании, как Intel, Cisco, Hewlett-Packard, Seagate, Qualcomm и IBM, используют Python для тестирования аппаратного обеспечения
  • Служба коллективного использования видеоматериалов YouTube в значительной степени реализована на Python
  • NSA использует Python для шифрования и анализа разведданных
  • Компании JPMorgan Chase, UBS, Getco и Citadel применяют Python для прогнозирования финансового рынка
  • Популярная программа BitTorrent для обмена файлами в пиринговых сетях написана на языке Python
  • Популярный веб-фреймворк App Engine от компании Google использует Python в качестве прикладного языка программирования
  • NASA, Los Alamos, JPL и Fermilab используют Python для научных вычислений.
и другие компании также используют этот язык.

Литература

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

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

Настоятельно рекомендую прочитать первым делом книгу - Марк Лутц. Изучаем Python, 4-е издание . Книга переведена на русский язык, так что бояться не стоит, если Вы вдруг не знаете английский. Но именно четвёртое издание.

Для тех, кто знает английский, можно прочитать документацию на официальном сайте Python . Там всё довольно понятно описано.

А если же Вы более принимаете информацию по видео, то могу посоветовать уроки от компании Google, которые ведёт Ник Парланте - ученик из Стэнфорда. Шесть видеолекций на YouTube . Но в бочке мёда тут есть капля дёгтя… Ведёт он на английском языке с английскими субтитрами. Но надеюсь, что остановит это немногих.

Что делать, если я прочитал книги, но не знаю как применять знания?

Без паники!
Советую почитать книгу Марк Лутц. Программирование на Python (4-е издание) . Ранее было «изучаем», а тут «Программирование». В «Изучаем» - Вы получаете знания Python, в «Программирование» - Марк Вас учит как их применять в Ваши будущие программы. Книга очень полезная. И думаю одной её Вам хватит.

Хочу практики!

Легко.
Выше я писал о видеолекциях от Ника Парланте на YouTube, но у них есть также некие

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

Основы Python для начинающих программистов

Python — это мощный высокоуровневый объектно-ориентированный язык программирования, созданный Гвидо ван Россумом. У него простой в использовании синтаксис, что делает его идеальным языком для тех, кто пытается научиться программированию в первый раз. Для продолжения знакомства с языком можно прочитать книгу Дмитрия Златопольского “Python — основы программирования». Но мы начнем с самых основ. Литературы по этому направлению достаточно много. Еще один вариант — книги Гарри Персиваля “Python. Разработка на основе тестирования”. В ней рассказывается о языке с практической точки зрения.

Применение языка на практике

Итак, что же пишут на Python или “Питон”, как его еще называют в среде программистов, и зачем его учить? Python — это язык общего назначения. На нем пишут веб-приложения с использованием различный фреймворков, системные утилиты и приложения для автоматизации различных действий. Курсов по основам программирования на Python сейчас достаточно, чтобы попробовать изучить язык самостоятельно.

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

Зачем изучать язык Python

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

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

Python также является одним из старейших языков веб-разработки, созданных Гвидо ван Россумом в Национальном научно-исследовательском институте математики и информатики в Нидерландах в начале 90-х годов. Язык сильно заимствован из C++, C и других языков сценариев. Он использует ключевые слова на английском языке, которые составляют большую часть программирования на Python. Если вы освоите их, то можно считать, что по большей части уже освоили язык. Это займет некоторое время и вам будет нужно понять основные концепции, прежде чем начинать. Потому давайте начнем с того, что познакомимся с ними.

Преимущества языка Python

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

Итак, к основным преимуществам Python можно отнести:

  • Интерпретирующий характер: язык обрабатывается интерпретатором во время выполнения, например PHP или PERL, поэтому вам не нужно компилировать программу перед выполнением.
  • Интерактивность: вы можете напрямую взаимодействовать с интерпретатором при написании вашей программы.
  • Идеально подходит для начинающих: для начинающих программистов.
  • Python — отличный выбор, поскольку он поддерживает разработку приложений, от игр до браузеров до обработки текста.

    Как установить и запустить интерпретатор

    Для того чтобы начать писать на Python, нужно скачать и установить его интерпретатор на официальном сайте языка, выбрав версию для своей операционной системы. Стоит отметить, что существует две ветки языка — вторая и третья. Лучше начать изучать основы Python 3, если другой версии вы еще не устанавливали. При установке на Windows обязательно нужно обратить внимание на то, включены ли опция Add Python to Path и утилита Pip. После установки его можно запустить. Для этого в командной строке нужно ввести: “python”, и он запустится. В окне появятся три угловые скобки, означающие, что вы находитесь в интерпретаторе. Этот язык программирования также свободно распространяемый, и по нему можно найти советы, сторонние инструменты, программы, модули и дополнительную документацию.

    Ключевые слова в Python

    В интерпретаторе можно выполнять действия на языке в интерактивном режиме. Каждое действие выполняется сразу, после нажатия Enter. Можно использовать его как продвинутый калькулятор. Но писать большую программу в интерпретаторе слишком трудоемко. Поэтому имеет смысл пользоваться текстовыми редакторами. Готовый текстовый файл можно затем выполнить интерпретатором. Одна из основ Python состоит в том, что любые блоки в нем задаются с помощью отступов, поэтому необходимо должны отступать, чтобы запустить блок и удалить его. Интерпретатор может быть легко расширен новыми типами данных или функциями в C++ или C. Язык программирования Python работает как расширение для настраиваемых приложений. То, что делает этот язык настолько легким для изучения — это тот факт, что он использует английские ключевые слова, а не знаки препинания, и имеет меньше синтаксических конструкций, чем в других языках программирования.

    Начало работы с Python

    Перед началом работы вне интерпретатора, чтобы создать программу, нужно открыть текстовый редактор и создать пустой файл с кодировке utf-8 и задать расширение “py”. Лучше всего для этой цели использовать специальные редакторы кода для программистов. В первой строке нужно обозначить кодировку. Строки, начинающиеся со знака #, считаются комментариями и не выполняются. Python неявно и динамически типизирован, поэтому вам не нужно объявлять переменные. Типы принудительно применяются, и переменные также чувствительны к регистру, поэтому var и VAR рассматриваются как две отдельные переменные.Если вы хотите знать, как работает какой-либо объект, вам просто нужно ввести следующее: “help(object)”. Вы также можете использовать команду “dir (object)”, чтобы узнать все методы конкретной опции, и вы можете использовать объект “__ doc__”, чтобы узнать его строку документа.

    Как запустить написанную программу

    Запускать написанную программу нужно также в командной строке. Для этого нужно написать имя интерпретатора и через пробел — имя файла с написанной программой. При запуске программы нужно указывать полный путь к файлу. Это не всегда просто, так как путь может быть очень длинным, поэтому иногда проще сменить текущую директорию в командной строке и там запускать интерпретатор. Для этого нужно подняться в нужную директорию, зажать клавишу shift, правой кнопкой мыши кликнуть по директории и в открывшемся меню выбрать опцию “открыть окно команд”. Тогда командная строка будет запущена в этой директории. Далее в окне консоли нужно ввести имя интерпретатора и через пробел — имя файла, который находится в ней.

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

    Основы программирования на примере языка Python не слишком отличаются от других языков, но переменные несут немного другой смысл. У Python нет обязательных символов для завершения операторов. Любые блоки задаются с помощью отступов, поэтому вы должны отступать, чтобы запустить блок и удалить его. Для многострочных комментариев необходимо использовать многострочные строки. Значения присваиваются при помощью знака “=”, а тестирование равенства выполняется с двумя из них “==”. Вы можете уменьшать или увеличивать значения с помощью операторов = или — = с суммой в правой части. Это может работать со строками и другими типами данных. Вы также можете использовать несколько переменных в одной строке.

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

    Теперь рассмотрим типы данных. В основе Python лежат структуры данных — это словари (dict), кортежи (tuples) и списки (lists). Наборы можно найти в библиотеке наборов, которые доступны во всех версиях Python. Списки похожи на одномерные массивы, хотя вы также можете иметь списки других списков. Словари по существу являются ассоциативными массивами или хэш-таблицами. Кортежи представляют собой одномерные массивы. Теперь массивы в основе Python могут быть любого типа, а ypes всегда равно нулю. Отрицательные числа начинаются от конца до начала, а -1 — последний элемент. Переменные также могут указывать на функции.

    Строки в Python

    Строки Python могут использовать одиночные или двойные кавычки, и вы можете использовать кавычки одного вида в строке с использованием другого вида. Многострочные строки заключены в одиночные или тройные двойные кавычки. Чтобы заполнить строки значениями, вы можете использовать оператор modulo (%), а затем кортеж. Каждый% заменяется элементом кортежа слева направо, и вы также можете использовать словарные подстановки. Операторы управления потоком Python: “while”, “for” и “if”. Для ветвления вам нужно использовать “if”. Для перечисления через список используйте “for”. Для получения списка номеров используйте диапазон.

    Функции в Python

    Ключевое слово “def” используется для объявления функций. Привязывание другого объекта к переменной удаляет старый и заменяет неизменяемые типы. Необязательные аргументы могут быть заданы в объявлении функции после обязательных аргументов, присваивая им значения по умолчанию. В случае именованных аргументов имени аргумента присваивается значение. Функции могут возвращать кортеж, и вы можете эффективно возвращать несколько значений, используя распаковку кортежа. Параметры передаются через ссылку, но кортежи, ints, строки и другие неизменяемые типы неизменяемы, потому что передается только местоположение памяти элемента.

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

    Программа представляет собой набор алгоритмов, которые обеспечивают выполнение необходимых действий. Условно таким же образом можно запрограммировать обычного человека, написав точные команды, для того чтобы, например, он приготовил чай. Если в последнем варианте будет использоваться естественная речь (русская, украинская, английская, корейская и т. д.), то для компьютера понадобится специальный язык программирования. Python - один из таковых. Среда программирования впоследствии переведет команды в и цель человека, ради которой создавался алгоритм, будет выполнена. «Питон» имеет свой синтаксис, который будет рассмотрен ниже.

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

    Разработка началась в 1980-х году, а завершилась она в 1991. Язык Python был создан Гвидо ван Россумом. Хоть основным символом «Питона» является змея, назван он был так в честь комедийного американского шоу.

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

    Одним из факторов, которые позволили стать «Питону» достаточно известным, является дизайн. Многими весьма успешными специалистами он признается одним из лучших.

    Особенности «Питона»

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

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

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

    Как уже было сказано, код читается достаточно легко и просто. «Питон» имеет последовательные команды, отличающиеся четкостью выполнения. В принципе, используемые операторы не покажутся даже новичкам трудными. Этим и отличается язык Python. Синтаксис его легок и прост.

    Традиционные операторы:

    • При задавании условия следует использовать конструкцию if-else. Если таких строк слишком много, можно вписывать команду elif.
    • Class предназначен для понимания класса.
    • Один из простых операторов - pass. Он ничего не делает, вписывается для пустых блоков.
    • Цикловыми командами являются while и for.
    • Функция, метод и генератор определяется благодаря def.

    Кроме одиночных слов, в качестве операторов язык программирования Python позволяет использовать и выражения. Благодаря использованию цепочек строк можно уменьшить количество отдельных команд и скобок. Используются и так называемые ленивые вычисления, т. е. те, которые выполняются лишь тогда, когда того требует условие. К ним относятся and и or.

    Процесс написания программ

    Интерпретатор работает на едином механизме: при написании строки (после которой ставится «Энтер») она сразу же выполняется, и человек может уже видеть какой-то результат. Это пригодится и будет достаточно удобным для новичков или тех, кто хочет протестировать небольшой кусочек кода. В компилируемых средах пришлось бы сначала написать программу целиком, лишь потом запустить ее и проверить на ошибки.

    Язык программирования Python (для начинающих, как уже стало понятно, он подходит идеально) в операционной системе Linux позволяет работать непосредственно в самой консоли. Следует написать в командной строке название кода «Питон» на английском языке. Свою первую программу создать будет нетрудно. Прежде всего, стоит учитывать и то, что пользоваться интерпретатором здесь можно в качестве калькулятора. Так как с синтаксисом зачастую молодые и начинающие специалисты не дружат, то написать алгоритм можно таким образом:

    После каждой строки необходимо ставить «Ентер». Ответ будет выводиться непосредственно после его нажатия.

    Данные, используемые «Питоном»

    Данные, которыми пользуются компьютеры (и языки программирования), представлены несколькими типами, и это вполне очевидно. Числа бывают дробными, целыми, могут состоять из множества цифр или быть весьма массивными из-за дробной части. Чтобы интерпретатору было проще работать с ними, и он мог понять, с чем имеет дело, следует задать определенный тип. Более того, он необходим, чтобы числа поместились в отведенную ячейку памяти.

    Наиболее распространенные типы данных, которым пользуется язык программирования Python:

    • Integer. Речь идет о целых числах, имеющих как отрицательное, так и положительное значение. Ноль также входит в данный тип.
    • Для того чтобы интерпретатор понял, что работает с дробными частями, следует задать тип float point. Как правило, им пользуются в случае использования чисел с варьирующейся точкой. Следует помнить, что при написании программы нужно придерживаться записи «3.25», а не использовать запятую «3,25».
    • В случае добавления строк язык программирования Python позволяет добавить тип string. Зачастую слова или фразы заключаются в одинарные или

    Недостатки и преимущества

    В последние несколько десятилетий людей больше интересовало, как больше времени потратить на освоение данных и меньше - на то, чтобы они были обработаны компьютером. Язык о котором лишь положительные, является высшим кодом.

    Недостатков у «Питона» практически нет. Единственный серьезный минус - медлительность при выполнении алгоритма. Да, если сравнивать его с «Си» или «Джава», он, откровенно говоря, черепашка. Объясняется это тем, что данный

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

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

    Сейчас над улучшением «Питона» работает не одна группа программистов, поэтому не факт, что код, написанный на С++ будет лучше, чем тот, который создан при помощи Python.

    С какой версией лучше работать?

    Сейчас широко используются сразу две версии такой синтаксической системы, как язык Python. Для начинающих выбор между ними будет достаточно трудным. Следует заметить тот факт, что 3.х все еще находится на разработке (хотя и выпущен в массы), в то время как 2.х - полностью завершенная версия. Многие советуют использовать 2.7.8, так как она практически не лагает и не сбивается. В 3.х версии нет радикальных изменений, поэтому в любое время свой код можно перенести в среду программирования с обновлением. Чтобы скачать необходимую программу, следует зайти на официальный сайт, выбрать свою операционную систему и дождаться окончания загрузки.

    В которой, в сжатой форме,
    рассказывают об основах языка 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 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(list )
    3

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


    >>> 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 )
    2

    Классы

    Язык 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 как заявлено в методе инициализации
    >>> #Метод myfunction класса Myclass возвращает значение переменной myvariable
    3
    # Переменная common объявлена во всех классах
    >>> classinstance2 = Myclass ()
    >>> classinstance.common
    10
    >>> classinstance2.common
    10
    # Поэтому, если мы изменим ее значение в классе Myclass изменятся
    # и ее значения в объектах, инициализированных классом Myclass
    >>> Myclass.common = 30
    >>> classinstance.common
    30
    >>> classinstance2.common
    30
    # А здесь мы не изменяем переменную класса. Вместо этого
    # мы объявляем оную в объекте и присваиваем ей новое значение
    >>> classinstance.common = 10
    >>> classinstance.common
    10
    >>> classinstance2.common
    30
    >>> Myclass.common = 50
    # Теперь изменение переменной класса не коснется
    # переменных объектов этого класса
    >>> classinstance.common
    10
    >>> classinstance2.common
    50

    # Следующий класс является наследником класса 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 )
    3
    # Этот класс не имеет совйтсва test, но мы можем
    # объявить такую переменную для объекта. Причем
    # tэта переменная будет членом только class instance.
    >>> classinstance.test = 10
    >>> classinstance.test
    10

    Исключения

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


    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
    64

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

    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 )
    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 был открыт для всех желающих.

    Теги:

    • Python
    • программирование
    • урок
    Добавить метки

    Программирование на Python

    Часть 1. Возможности языка и основы синтаксиса

    Серия контента:

    Стоит ли изучать Python?

    Python – это один из наиболее популярных современных языков программирования. Он пригоден для решения разнообразных задач и предлагает те же возможности, что и другие языки программирования: динамичность, поддержку ООП и кросс-платформенность. Разработку Python начал Гвидо Ван Россум (Guido Van Rossum) еще в середине 1990-х годов, поэтому к настоящему времени удалось избавиться от стандартных «детских» болезней, существенно развить лучшие стороны языка и привлечь множество программистов, использующих Python для реализации своих проектов.

    Многие программисты считают, что необходимо изучать только «классические» языки программирования, такие как Java или C++, так как другие языки все равно не смогут обеспечить таких же возможностей. Однако в последнее время возникло убеждение, что программисту желательно знать более одного языка, так как это расширяет его кругозор, позволяя более творчески решать поставленные задачи и повышая его конкурентоспособность на рынке труда.

    Изучить в совершенстве два таких языка как Java и C++ достаточно сложно и заняло бы много времени; кроме того, многие аспекты этих языков противоречат друг другу. В то же время Python идеально подходит на роль второго языка, так как он сразу же усваивается благодаря уже имеющимся знаниям в ООП, и тому, что его возможности не конфликтуют, а дополняют опыт, накопленный при работе с другим языком программирования.

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

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

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

    Архитектура Python

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

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

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

    Также Python является языком общего назначения, поэтому может применяться практически в любой области разработки ПО (standalone, клиент-сервер, Web-приложения) и в любой предметной области. Кроме того, Python легко интегрируется с уже существующими компонентами, что позволяет внедрять Python в уже написанные приложения.

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

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

    Среда исполнения Python

    Как известно, все кросс-платформенные языки программирования построены по одной модели: это действительно переносимый исходный код и среда исполнения (runtime environment), которая не является переносимой и специфична для каждой конкретной платформы. В эту среду исполнения обычно входит интерпретатор, который исполняет исходный код, и различные утилиты, необходимые для сопровождения приложения – отладчик, обратный ассемблер и т.д.

    В среду исполнения Java дополнительно входит компилятор, так как исходный код необходимо скомпилировать в байт-код для виртуальной Java-машины. В среду исполнения Python входит только интерпретатор, который одновременно является и компилятором, однако компилирует исходный код Python непосредственно в машинный код целевой платформы.

    На данный момент существуют три известных реализации среды исполнения для Python: CPython, Jython и Python.NET. Как можно догадаться из названия, первая среда реализована на языке C, вторая на языке Java, а последняя – на платформе.NET.

    Среда исполнения CPython обычно называется просто Python, и когда говорят о Python, то чаще всего имеется в виду именно эта реализация. Эта реализация состоит из интерпретатора и модулей расширения, написанных на языке C, и может использоваться на любой платформе, для которой доступен стандартный компилятор C. Кроме того, существуют уже скомпилированные версии среды исполнения для различных операционных систем, включая различные версии OC Windows и различные дистрибутивы Linux. В этой и последующих статьях будет рассматриваться именно CPython, если иное не оговаривается отдельно.

    Среда исполнения Jython – это реализация Python для работы с виртуальной Java-машиной (JVM). Поддерживается любая версия JVM, начиная с версии 1.2.2 (текущая версия Java – 1.6). Для работы с Jython требуется установленная Java-машина (среда исполнения Java) и определенное знание языка программирования Java. Уметь писать исходный код на языке Java не обязательно, однако придется иметь дело c JAR-файлами и Java-апплетами, а также документацией в формате JavaDOC.

    Какую версию среды выбрать – зависит исключительно от предпочтений программиста, вообще же рекомендуется держать на компьютере и CPython, и Jython, так как они не конфликтуют между собой, а взаимно дополняют друг друга. Среда CPython работает быстрее, так как нет промежуточного уровня в виде JVM; кроме того, обновленные версии Python сначала выпускают именно в виде среды CPython. Однако Jython может использовать любой класс Java в качестве модуля расширения и работать на любой платформе, для которой существует реализация JVM.

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

    Начало работы с Python

    Прежде чем начать использовать Python, необходимо установить его среду исполнения – в данной статье это CPython и соответственно интерпретатор python. Существуют различные способы установки: опытные пользователи могут сами скомпилировать Python из его общедоступного исходного кода, также можно загрузить с Web-сайта www.python.org уже готовые исполняемые файлы для конкретной операционной системы, наконец, многие дистрибутивы Linux поставляются с уже предустановленным интерпретатором Python. В этой статье используется версия Python 2.x для ОС Windows, однако представленные примеры можно запускать на любой версии Python.

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

    • PATH . В этой переменной должен содержаться путь к каталогу, где установлен Python, чтобы его могла найти операционная система.
    • PYTHONHOME . Эта переменная должна содержать только путь к каталогу, где установлен Python. Также в этом каталоге должен содержаться подкаталог lib, в котором будет выполняться поиск стандартных модулей Python.
    • PYTHONPATH . Переменная со списком каталогов, содержащих модули расширения, которые будут подключаться к Python (элементы списка должны разделяться системным разделителем).
    • PYTHONSTARTUP . Не обязательная переменная, определяющая путь к сценарию Python, который должен выполняться каждый раз при запуске интерактивного сеанса интерпретатора Python.

    Командная строка для работы с интерпретатором имеет следующую структуру.

    PYTHONHOME\python (опции) [ -с команда | файл со сценарием | - ] {аргументы}

    Интерактивный режим работы Python

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

    Значение вычисленного выражения сохраняется в специальную переменную с именем «Одиночное подчеркивание» (_), так что его можно использовать в последующих выражениях. Завершить интерактивный сеанс можно сочетанием клавиш Ctrl–Z в ОС Windows или Ctrl–D в ОС Linux.

    Опции – это не обязательные строковые значения, которые могут изменять поведение интерпретатора во время сеанса; их значение будет рассматриваться в этой и последующих статьях. За опциями указывается либо отдельная команда, которую должен выполнить интерпретатор, либо путь к файлу, в котором содержится сценарий для выполнения. Стоит отметить, что команда может состоять из нескольких выражений, разделенных точкой с запятой, и должна быть заключена в кавычки, чтобы операционная система смогла ее корректно передать интерпретатору. Аргументы – те параметры, которые передаются для последующей обработки в исполняемый сценарий; они передаются в программу в виде строк и разделяются пробелами.

    Для проверки правильности установки и работоспособности Python можно выполнить следующие команды:

    c:\> python- v
    c:\> python –c “import time; print time.asctime()”

    Опция –v выводит версию используемой реализации Python и завершает работы, а вторая команда распечатывает на экран значение системного времени.

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

    Основы синтаксиса Python

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

    Далее приведен очень важный аспект, который может показаться странным программистам, изучающим Python в качестве второго языка программирования. Дело в том, что в Python нет символа, который бы отвечал за отделение выражений друг от друга в исходном коде, как, например, точка с запятой (;) в C++ или Java. Точка с запятой позволяет разделить несколько инструкций, если они находятся на одной физической строке. Также отсутствует такая конструкция, как фигурные скобки {}, позволяющая объединить группу инструкций в единый блок.

    Физические строки разделяются самим символом конца строки, но если выражение слишком длинное для одной строки, то две физических строки можно объединить в одну логическую. Для этого необходимо в конце первой строки ввести символ обратного слеша (\), и тогда следующую строку интерпретатор будет трактовать как продолжение первой, однако при этом нельзя, чтобы на первой строке за символом \ находились бы другие символы, например, комментарий с #. Для выделения блоков кода используются исключительно отступы. Логические строки с одинаковым размером отступа формируют блок, и заканчивается блок в том случае, когда появляется логическая строка с отступом меньшего размера. Именно поэтому первая строка в сценарии Python не должна иметь отступа. Усвоение этих несложных правил поможет избежать большинства ошибок, связанных с освоением нового языка.

    Других радикальных отличий от других языков программирования в синтаксисе Python нет. Имеется стандартный набор операторов и ключевых слов, большая часть которых уже знакома программистам, а специфические для Python будут рассматриваться в этой и последующих статьях. Также используются стандартные правила для заданий идентификаторов переменных, методов и классов – имя должно начинаться с подчеркивания или латинского символа любого регистра и не может содержать символов @, $, %. Также не может использоваться в качестве идентификатора только один символ подчеркивания (см. сноску, в которой говорится об интерактивном режиме работы).

    Типы данных, используемых в Python

    Типы данных, используемых в Python, также совпадают с другими языками – целые и вещественные типы данных; дополнительно поддерживается комплексный тип данных – с вещественной и мнимой частью (пример такого числа – 1.5J или 2j, где J представляет собой квадратный корень из -1). Python поддерживает строки, которые могут быть заключены в одинарные, двойные или тройные кавычки, при этом строки, как и в Java, являются immutable-объектами, т.е. не могут изменять свое значение после создания.

    Есть в Python и логический тип данных bool c двумя вариантами значения – True и False. Однако в старых версиях Python такого типа данных не было, и, кроме того, любой тип данных мог быть приведен к логическому значению True или False. Все числа, отличные от нуля, и непустые строки или коллекции с данными трактовались как True, а пустые и нулевые значения рассматривались как False. Эта возможность сохранилась и в новых версиях Python, однако для повышения читаемости кода рекомендуется использовать для логических переменных тип bool. В то же время, если необходимо поддерживать обратную совместимость со старыми реализациями Python, то в качестве логических переменных стоит использовать 1 (True) или 0 (False).

    Функциональность для работы с наборами данных

    В Python определены три типа коллекций для хранения наборов данных:

    • кортеж (tuple);
    • список (list);
    • словарь (dictionary).

    Кортеж представляет собой неизменяемую упорядоченную последовательность данных. В нем могут содержаться элементы различных типов, например другие кортежи. Кортеж определяется в круглых скобках, а его элементы разделяются запятыми. Специальная встроенная функция tuple() позволяет создавать кортежи из представленной последовательности данных.

    Список – это изменяемая упорядоченная последовательность элементов. Элементы списка также разделяются запятыми, но задаются уже в квадратных скобках. Для создания списков предлагается функция list().

    Словарь является хеш-таблицей, сохраняющей элемент вместе с его идентификатором-ключом. Последующий доступ к элементам выполняется тоже по ключу, поэтому единица хранения в словаре – это пара объект-ключ и связанный с ним объект-значение. Словарь – это изменяемая, но не упорядоченная коллекция, так что порядок элементов в словаре может меняться со временем. Задается словарь в фигурных скобках, ключ отделяется от значения двоеточием, а сами пары ключ/значение разделяются запятыми. Для создания словарей доступна функция dict().

    В листинге 1 приведены примеры различных коллекций, доступных в Python.

    Листинг 1. Виды коллекций, доступные в Python
    (‘w’,‘o’,‘r’,‘l’,‘d’) # кортеж из пяти элементов (2.62,) # кортеж из одного элемента [“test”,"me"] # список из двух элементов # пустой список { 5:‘a’, 6:‘b’, 7:‘c’ } # словарь из трех элементов с ключами типа int

    Определение функций в Python

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

    Синтаксис определения функций в Python крайне простой; с учетом изложенных выше требований:

    def ИМЯ_ФУНКЦИИ(параметры): выражение № 1 выражение № 2 ...

    Как видно, необходимо использовать служебное слово def, двоеточие и отступы. Вызвать функцию также очень просто:

    ИМЯ_ФУНКЦИИ(параметры)

    Есть только несколько моментов, специфичных для Python, которые стоит учитывать. Как и в Java, примитивные значения передаются по значению (в функцию попадает копия параметра, и она не может изменить значение, установленное до вызова функции), а сложные объектные типы передаются по ссылке (в функцию передается ссылка и она вполне может изменить объект).

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

    #функция, выполняющая деление нацело – с помощью оператора // def foo(delimoe, delitel): return delimoe // delitel print divide(50,5) # результат работы: 10 print divide(delitel=5, delimoe=50) # результат работы: 10

    Функция в Python обязательно возвращает значение – это делается либо явно с помощью оператора return, за которым следует возвращаемое значение, либо, в случае отсутствия оператора return, возвращается константа None, когда достигается конец функции. Как видно из примеров объявлений функций, в Python нет необходимости указывать, возвращается что-либо из функции или нет, однако если в функции имеется один оператор return, возвращающей значение, то и другие операторы return в этой функции должны возвращать значения, а если такого значения нет, то необходимо явно прописывать return None.

    Если функция очень простая и состоит из одной строки, то ее можно определить прямо на месте использования, в Python подобная конструкция называется лямбда-функцией (lambda). lambda-функция – это анонимная функция (без собственного имени), телом которой является оператор return, возвращающий значение некоторого выражения. Такой подход может оказаться удобным в некоторых ситуациях, однако стоит заметить, что повторное использование подобных функций невозможно («где родился, там и пригодился»).

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

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