Домой / Программы / Где применяется Python? Какое программное обеспечение написано на Python? Основы Python в кратком изложении

Где применяется Python? Какое программное обеспечение написано на Python? Основы Python в кратком изложении

Какие программы написаны на Python?

Прикладное ПО для нормальных людей

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

BitTorrent

Все версии до 6 этого торрент-клиента были написаны на Python. Версия 6 была переписана на C++.

Ubuntu Software Center

Цитата из Википедии :
Центр приложений Ubuntu (англ. Ubuntu Software Center ) - свободное программное обеспечение для поиска, установки и удаления пакетов в системе Ubuntu Linux . в последних версиях возможна покупка журналов о Linux и Ubuntu , также можно приобретать платные игры и софт . Приложение разработано на языке Python + Vala с использованием библиотек GTK+ и является графической оболочкой для Advanced Packaging Tool .

Blender

Цитата из Википедии :
Blender - свободный, профессиональный пакет для создания трёхмерной компьютерной графики, включающий в себя средства моделирования, анимации, рендеринга, постобработки видео, а также создания интерактивных игр. В настоящее время пользуется наибольшей популярностью среди бесплатных 3D редакторов в связи с его быстрым и стабильным развитием, которому способствует профессиональная команда разработчиков.

Python используется как средство создания инструментов и прототипов, системы логики в играх, как средство импорта/экспорта файлов (например COLLADA), автоматизации задач.

Вот несколько страниц с документацией:

GIMP

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

Игры

Civilization IV

Большая часть игры написана на Python ().

Battlefield 2

В сети Интернет есть много учебников и просто рецептов по изменению различных объектов и их поведения.

World of Tanks

Цитата из статьи " GUI в игре World of Tanks ":
В качестве скриптового языка в проекте используется Python. Всю красоту, которую мы сделали во Flash, нужно подключить в игре, наполнить данными, обработать и транслировать пользовательский ввод в реальные действия в игре. Все это как раз и делается в Python.
Более полный список игр, которые используют Python, можно найти в Википедии и документации к Python .

Какие компании используют Python?

Список компаний, которые используют Python, длинный. Среди них Google , Facebook , Yahoo , NASA , Red Hat , IBM , Instagram , Dropbox , Pinterest , Quora , Яндекс , Mail.Ru .

Яндекс

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

А ещё в блоге компании Яндекс есть запись " На каких языках программирования пишут в Яндексе " от 19 марта 2014 года. Так вот, 13% сотрудников Яндекс большую часть рабочего времени пишут на языке Python.

Mail.ru

Сотрудники Mail.ru тоже используют Python. В официальном блоге Mail.ru на Хабре есть несколько статей о Python:

Google

В Google с самого основания активно использовали Python. Есть слухи, что большая часть YouTube и Google Drive написана на Python. Google разработал целую облачную платформу Google App Engine, чтобы разработчики могли запускать код на Python в облаке Google. Многие разработчики языка работали и работают в Google.

DropBox

Сервис разработан на языке Python. Не случайно сам автор языка Python, Гвидо ван Россум , работает в DropBox.

Другие компании

The organizations that use Python

В каких областях применяется Python?

Web-разработка

В этой области Python, пожалуй, используется больше всего. Веб-фреймворк Django продолжает набирать обороты, пополняя армию своих фанатов. Многие начинающие программисты даже думают, что Python больше нигде не используется. Но на Python написаны многие другие веб-фреймворки: Pylons , TurboGears , CherryPy , Flask , Pyramid и другие. С более полным списком можно ознакомится .
Есть и CMS на базе Django, она так и называется DjangoCMS .
Очень часто на Python пишут и парсеры сайтов. Обычно для этого используют Requests , aiohttp , BeautifulSoup , html5lib . Есть и более высокоуровневые инструменты для парсинга сайтов: Scrapy , Grab .

Системное администрирование

Python - это отличный язык для автоматизации работы системного администратора. Он установлен по умолчанию на все Linux-сервера. Он простой, понятный. Код на Python легко читается. Некоторые любят Perl, я тоже его люблю за удобную работу с регулярными выражениями, но я ненавижу Perl за его синтаксис. Bash удобен для относительно небольших и средних скриптов, но Python мощнее и в некоторых случаях позволяет писать намного меньше кода.
Единственный пакет, который я знаю, это, решения обыкновенных дифференциальных уравнений и других задач, обычно решаемых в науке и при инженерной разработке.
  • Matplotlib - библиотека на языке программирования Python для визуализации данных двумерной (2D) графикой (3D графика также поддерживается). Получаемые изображения могут быть использованы в качестве иллюстраций в публикациях.
  • NumPy - это расширение языка Python, добавляющее поддержку больших многомерных массивов и матриц, вместе с большой библиотекой высокоуровневых математических функций для операций с этими массивами.
  • Более полный список библиотек для научных вычислений на языке Python можно найти в Википедии .

    Обучение

    Очень часто в качестве первого языка программирования советуют именно Python.
    У некоторых российских школ есть успешный опыт обучения школьников программированию на языке Python.
    Кстати, Гвидо ван Россум находился под впечатлением от языка ABC , когда писал Python. А язык ABC предназначался для обучения и прототипирования.

    Критика языка Python

    Python один из самых медленных языков программирования

    В сети Интеренет можно найти много различных тестов скорости программ, написанных на разных языках программирования. Python обычно находится в конце списков.
    Обычно под Python имеют в виду CPython, эталонную реализацию языка. Существуют другие реализации языка Python, например PyPy. PyPy обгоняет по скорости CPython и многие другие скриптовые языки программирования, очень близок по скорости к Java. Но есть одна проблема - в PyPy не полностью реализован язык Python, из-за этого многие Python-программы на нем не работают.
    Многие программисты пишут вставки на C/C++, чтобы ускорить работу в узких местах. Python не предназначен для вычислительных задач, для задач, которые требуют много памяти (memory bound) и подобного. Нужно уметь выбирать подходящие инструменты для стоящих перед вами задач. Гвидо ван Россум говорит об этом в интервью .

    GIL мешает одновременному выполнению нескольких потоков

    Global Interpreter Lock не позволяет нескольким потокам Python выполняться одновременно. Это особенности CPython. Но недостаток ли это? Нужно понимать, что всё зависит от задачи. Если ваша задача зависит от скорости ввода-вывода (IO bound task), то эффективнее использовать несколько процессов, которые будут работать в асинхронном режиме с внешними ресурсами. А потоки с общей памятью хороши для вычислительных задач (CPU-bound). Но даже если вам нужна работа с потоками, то можно отключить GIL на время, так как это сделано в математическом пакет NumPy.

    Нет хороших инструментов для дистрибуции

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

    Дополнительная информация

    Python Success Stories
    You Used Python to Write WHAT?
    What is Python Used For?
    More proof that it"s Python"s world and we"re just living in it
    AVERAGE SALARY FOR JOBS REQUIRING PYTHON
    List of Python software

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

    Learning Python , Mark Lutz (5th Edition)

    Наиболее частый ответ на вопрос: «что почитать про Python?». Отличная книга, практически полное руководство по языку (и частично стандартной библиотеке). Из минусов — много воды, и последнее издание вышло 2 года назад (уже почти 3) и поэтому не включает последние изменения. Но для начинающих книга все еще актуальна.

    Programming Python (4th Edition) , Mark Lutz

    Переход от изучения к практике. Учимся применять полученные знания для написания будущих программ.

    Think Python: How to Think Like a Computer Scientist , Allen B. Downey

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

    Dive Into Python / , Mark Pilgrim

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

    Можно приступить к написанию собственной программы, однако не следует ожидать от нее чего-то грандиозного и сверхъестественного, давайте будем реалистами. Нам с Вами еще есть над чем поработать и есть много информации, которую следует изучить.

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

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

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

    Пишем Python скрипт

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

    Алгоритм будет вычисляться по простой финансовой формуле:
    M2(сумма масcы денег)/ЗВР(золотовалютные резервы страны в $)=? (реальный курс валюты к $)

    Наш скрипт:

    Python

    # инструкция в которой храним формулу подсчета def get_data(m2, zvr, rate): return (m2 / rate / zvr) * rate # принимаем данные от пользователя m2 = float(input("Введите текущий показатель M2 в стране: ")) zvr = float(input("Введите текущий показатель ЗВР в стране $ еквиваленте: ")) rate = float(input("Введите сколько стоит 1$ в валюте страны: ")) # вызываем формулу подсчета с подставляя введенные данные print(get_data(m2, zvr, rate))

    # инструкция в которой храним формулу подсчета

    def get_data (m2 , zvr , rate ) :

    return (m2 / rate / zvr ) * rate

    # принимаем данные от пользователя

    m2 = float (input ("Введите текущий показатель M2 в стране: " ) )

    zvr = float (input ("Введите текущий показатель ЗВР в стране $ еквиваленте: " ) )

    rate = float (input ("Введите сколько стоит 1$ в валюте страны: " ) )

    # вызываем формулу подсчета с подставляя введенные данные

    print (get_data (m2 , zvr , rate ) )

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

    Делаем из скрипта программу

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

    Для примера создаем файл formula.py и пишем:

    Python

    # инструкция в которой храним формулу подсчета def get_data(data): return (data["m2"] / data["rate"] / data["zvr"]) * data["rate"]

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

    Python

    # -*- coding: utf-8 -*- # подключение модуля import formula # функция с инструкциями приема данных def input_data(data): data["currency"] = input("Введите название валюты в стране: ") data["m2"] = float(input("Введите текущий показатель M2 в стране: ")) data["zvr"] = float(input("Введите текущий показатель ЗВР в стране $ еквиваленте: ")) data["rate"] = float(input("Введите сколько стоит 1$ в валюте страны: ")) return data # функция с инструкциями получения результата используя модуль formula def out_data(data): print("М2=", data["m2"], "ЗВР=", data["zvr"], "1$=", data["rate"]) print("По введеным показателям, курс в стране должен быть 1$= ", formula.get_data(data), data["currency"]) # функция алгоритма последствий выполнения кода def main(): # данные по умолчанию data = {"m2": 0, "zvr": 0, "rate": 0} # запрос данных от пользователя data = input_data(data) # передаем принятые данные на подсчет и сразу делаем вывод out_data(data) # Начало программы - передаем управление функции main if __name__ == "__main__": main()

    # -*- coding: utf-8 -*-

    # подключение модуля

    import formula

    # функция с инструкциями приема данных

    def input_data (data ) :

    Основы языка программирования Python за 10 минут

    (Перевод)

    На сайте 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

    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)

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

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

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

    >>> classinstance.test = 10

    >>> classinstance.test

    10

    Исключения

    Исключения в 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

    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)

    >>> 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 для начинающих. Глава первая. «О чем это мы»

    На всякий случай, немного скучного «evangelism». Кому он надоел, можно пропустить несколько абзацев.
    Python (читается как «Пайтон» а не «питон») - скриптовый язык, разработанный Гвидо ван Россумом в качестве простого языка, легкого в изучении новичку.
    В наше время Пайтон – широко распространенный язык, который используется во многих областях:
    - Разработка прикладного ПО (например linux-утилиты yum, pirut, system-config-*, IM-клиент Gajim и многие другие)
    - Разработка web-приложений (мощнейший Application-сервер Zope и разработанная на его основе CMS Plone, на основе которой работает например сайт ЦРУ, и масса фреймворков для быстрой разработки приложений Plones, Django, TurboGears и многие другие)
    - Использование в качестве встраиваемого скриптового языка во многих играх, и не только (в офисном пакете OpenOffice.org, 3d редакторе Blender, СУБД Postgre)
    - Использование в научных рассчетах (с пакетами SciPy и numPy для расчетов и PyPlot для рисования графиков Пайтон становится практически сравним с пакетами типа MatLab)

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

    1. Сам интерпретатор, его можно взять тут (http://python.org/download/).
    2. Среда разработки. Она для начала необязательна, да и идущий в дистрибутиве IDLE подойдет новичку, но для серъезных проектов нужно что-то посерьезней.
    Для Windows я использую замечательный легковесный PyScripter (http://tinyurl.com/5jc63t), для Linux – Komodo IDE.

    Хотя для первого урока достаточно будет просто интерактивной оболочки самого Пайтона.

    Просто запустите python.exe. Приглашение ввода не заставит себя долго ждать, оно выглядит так:

    Также можно записывать программы в файлы с расширением py, в вашем любимом текстовом редакторе, который не добавляет к тексту своих символов разметки (нет Word не подойдет). Также желательно чтобы этот редактор умел делать «умные табуляторы» и не заменял пробелы знаком табуляции.
    Для запуска файлов на исполнение по ним можно щелкать 2 раза. Если консольное окно закрывается слишком быстро, вставьте в конце программы следующую строку:

    Тогда интерпретатор будет в конце программы ждать нажатия enter.

    Или ассоциируйте py-файлы в Far с Пайтоном и открывайте нажимая enter.

    Наконец можно воспользоваться одной из многих удобных IDE для Пайтона, которые предоставляют и возможности отладки и подсветку синтаксиса и многие другие «удобства».

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

    Для начала, Пайтон – язык со строгой динамической типизацией. Что это означает?

    Есть языки со строгой типизацией (pascal, java, c и т.п.), у которых тип переменной определяется заранее и не может быть изменен, и есть языки с динамической типизацией (python, ruby, vb), в которых тип переменной трактуется в зависимости от присвоенного значения.
    Языки с динамической типизацией можно разделить еще на 2 вида. Строгие, которые не допускают неявного преобразования типа (Пайтон) и нестрогие, которые выполняют неявные преобразования типа (например VB, в котором можно легко сложить строку "123" и число 456).
    Разобравшись с классификацией Пайтона, попробуем немного «поиграть» с интерпретатором.

    >>> a = b = 1 >>> a, b (1, 1) >>> b = 2 >>> a, b (1, 2) >>> a, b = b, a >>> a, b (2, 1)

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

    Следующее, что необходимо знать – как строятся базовые алгоритмические единицы – ветвления и циклы. Для начала, необходима небольшая справка. В Пайтоне нет специального ограничителя блоков кода, их роль выполняют отступы. То есть то что написано с одинаковым отступом – является одним командным блоком. Поначалу это может показаться странным, но после легкого привыкание, понимаешь что эта «вынужденная» мера позволяет получать очень читабельный код.
    Итак условия.

    Условие задается с помощью оператора if, который заканчивается «:». Альтернативные условия которые будут выполняться если первая проверка «не прошла» задаются оператором elif. Наконец else задает ветку, которая будет выполнена если ни одно из условий не подошло.
    Обратите внимание, что после ввода if интерпретатор с помощью приглашения «...» показывает что он ожидает продолжения ввода. Чтобы сообщить ему что мы закончили, необходимо ввести пустую строку.

    (Пример с ветвлениями почему-то рвет разметку на хабре, не смотря на танцы с тегами pre и code. Простите за неудобство, я его кинул сюда pastebin.com/f66af97ba , если кто-то подскажет что не так - буду очень признателен)

    Циклы.

    Простейшим случаем цикла является цикл while. В качестве параметра он принимает условие и выполняется до тех пор, пока оно истино.
    Вот маленький пример.

    >>> x = 0 >>> while x<=10: ... print x ... x += 1 ... 0 1 2 ........... 10

    Обратите внимание что поскольку и print x и x+=1 написаны с одинаковым отступом, они считаются телом цикла (помните что я говорил про блоки? ;-)).

    Второй вид циклов в Пайтон – цикл for. Он аналогичен циклу foreach других языков. Его синтаксис условно таков.

    For переменная in список:
    команды

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

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

    >>> x = "Hello, Python!" >>> for char in x: ... print char ... H e l ........... !

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

    На входе она принимает от одного до трех параметров, на выходе возвращает список чисел, по которому мы можем «пройтись» оператором for.

    Вот несколько примеров использования функции range, которые объясняют роль ее параметров.

    >>> range(10) >>> range(2, 12) >>> range(2, 12, 3) >>> range(12, 2, -2)

    И маленький пример с циклом.

    >>> for x in range(10): ... print x ... 0 1 2 ..... 9

    Ввод-вывод

    Последнее, что следует знать перед тем как начать использовать Пайтон полноценно – это как осуществляется в нем ввод-вывод.

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

    Для ввода с консоли используется функция raw_input(приглашение), которая выводит на экран приглашение и ожидает ввода пользователя, возвращая то что ввел пользователь в виде своего значения.

    X = int(raw_input ("Введи число:")) print "Квадрат этого числа составляет ", x * x

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

    Вот и все для первого урока.

    Домашнее задание.

    1. Составить программу расчета гипотенузы прямоугольного треугольника. Длина катетов запрашивается у пользователя.
    2. Составить программу нахождения корней квадратного уравнения в общем виде. Коэффициенты запрашиваются у пользователя.
    3. Составить программу вывода таблицы умножения на число M. Таблица составляется от M * a, до M * b, где M, a, b запрашиваются у пользователя. Вывод должен осуществляется в столбик, по одному примеру на строку в следующем виде (например):
    5 х 4 = 20
    5 х 5 = 25
    И так далее.

    Метки: Добавить метки