• Что программируют на питоне. Где применяется Python? Какое программное обеспечение написано на Python? История языка Python

    Python является широко используемым, высокоуровневым языком программирования, который был назван в честь знаменитого британского комедийного телешоу «Летающий цирк Монти Пайтона ». Язык Python простой по своей структуре, и в то же время невероятно гибкий и мощный. Учитывая, что код Python легко читаемый и без излишней строгости в синтаксисе, многие считают, что он является лучшим вводным языком программирования.

    Python — описание языка, которое дали в Foundation описывает Python :

    Python – это интерпретируемый, интерактивный, объектно-ориентированный язык программирования. Он включает в себя модули, исключения, динамическую типизацию, высокоуровневые динамические типы данных и классы. Python сочетает в себе отличную производительность с понятным синтаксисом. В нем реализованы интерфейсы ко многим системным вызовам и библиотекам, а также различным оконным системам и он расширяем с помощью C и C++. Python используется как язык расширения для приложений, которым нужен программный интерфейс. И наконец, Python — это кроссплатформенный язык: он работает на многих версиях Unix, на Mac и на компьютерах под управлением MS-DOS, Windows, Windows NT и OS/2.

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

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

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

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

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

    Язык Python для начинающих универсален. Вы можете автоматизировать рабочие процессы, создавать сайты, а также настольные приложения и игры с помощью Python . К слову, спрос на разработчиков Python (PostgreSQL, OOP, Flask, Django ) резко вырос за последние несколько лет в таких компаниях, как Instagram , Reddit , Tumblr , YouTube и Pinterest .

    Высокоуровневый язык общего назначения

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

    Интерпретируемый язык

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

    Читаемость кода является ключевым моментом

    Простой, легкий в изучении синтаксис Python делает упор на читаемость и задает хороший стиль программирования. С Python вы можете выразить свою концепцию меньшим количеством строк кода. Этот язык также заставляет вас обдумывать логику программы и алгоритмы. В связи с этим он часто используется как скриптовый или интегрирующий язык (glue language ), чтобы связать существующие компоненты вместе и писать большие объемы легко читаемого и работоспособного кода в короткие промежутки времени.

    Это просто весело

    Нельзя назвать язык программирования в честь Монти Пайтона , не имея чувства юмора. Более того, было проведено тестирование для сравнения времени, необходимого для написания простого скрипта на различных языках (Python, Java, C, J, BASIC ):

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

    Данная публикация представляет собой перевод статьи «Why Learn Python? » , подготовленной дружной командой проекта

    (Перевод)

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

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

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

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

    Синтаксис

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

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

    >>> myvar = 3

    >>> myvar += 2

    >>> myvar -= 1

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

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

    >>> mystring = "Hello"

    >>> mystring += " world."

    >>> print mystring

    Hello world.

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

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

    >>> myvar, mystring = mystring, myvar

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

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

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

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

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

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

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

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

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

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

    >>> print myfunction(mylist)

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

    >>> mylist = ["List item 1", 2, 3.14]

    >>> print mylist[:] #Считываются все элементы массива

    ["List item 1", 2, 3.1400000000000001]

    >>> print mylist #Считываются нулевой и первый элемент массива.

    ["List item 1", 2]

    >>> print mylist[-3:-1] #Считываются элементы от нулевого (-3) до второго (-1) (не включительно)

    ["List item 1", 2]

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

    Строки

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

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

    Name: Poromenos

    Number: 3

    String: ---

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

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

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

    This is a test.

    Операторы

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

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

    >>> print rangelist

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

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

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

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

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

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

    Break

    Else:

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

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

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

    Continue

    else:

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

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

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

    if rangelist == 2:

    Print "The second item (lists are 0-based) is 2"

    elif rangelist == 3:

    Print "The second item (lists are 0-based) is 3"

    else:

    Print "Dunno"

    while rangelist == 1:

    Pass

    Функции

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

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

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

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

    Return arg3, arg2, arg1

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

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

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

    >>> print ret1, ret2, ret3

    Named argument 100 Argument 1

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

    functionvar = lambda x: x + 1

    >>> print functionvar(1)

    Классы

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

    class Myclass:

    Common = 10

    Def __init__(self):

    Self.myvariable = 3

    Def myfunction(self, arg1, arg2):

    Return self.myvariable

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

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

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

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

    >>> classinstance2 = Myclass()

    >>> classinstance.common

    >>> classinstance2.common

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

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

    >>> Myclass.common = 30

    >>> classinstance.common

    >>> classinstance2.common

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

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

    >>> classinstance.common = 10

    >>> classinstance.common

    >>> classinstance2.common

    >>> Myclass.common = 50

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

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

    >>> classinstance.common

    >>> classinstance2.common

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

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

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

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

    class Otherclass(Myclass):

    Def __init__(self, arg1):

    Self.myvariable = 3

    Print arg1

    >>> classinstance = Otherclass("hello")

    hello

    >>> classinstance.myfunction(1, 2)

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

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

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

    >>> classinstance.test = 10

    >>> classinstance.test

    Исключения

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

    def somefunction():

    Try:

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

    10 / 0

    Except ZeroDivisionError:

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

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

    Print "Oops, invalid."

    >>> fnexcept()

    Oops, invalid.

    Импорт

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

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

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

    randomint = random.randint(1, 100)

    >>> print randomint

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

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

    import pickle

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

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

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

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

    pickle.dump(mylist, myfile)

    myfile.close()

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

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

    myfile.close()

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

    >>> print myfile.read()

    "This is a sample string"

    myfile.close()

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

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

    loadedlist = pickle.load(myfile)

    myfile.close()

    >>> print loadedlist

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

    Особенности

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

    >>> lst1 =

    >>> lst2 =

    >>> print

    >>> print

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

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

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

    True

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

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

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

    >>> del lst1

    >>> print lst1

    >>> del lst1

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

    number = 5

    def myfunc():

    # Выводит 5

    Print number

    def anotherfunc():

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

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

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

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

    Print number

    Number = 3

    def yetanotherfunc():

    Global number

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

    Number = 3

    Эпилог

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

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

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

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

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

    Что такое Python?

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

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

    Работа в интерпретаторе

    Запустить интерпретатор Python очень просто в любой операционной системе. Например, в Linux достаточно набрать команду python в терминале:

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

    Именно третья версия будет рассматриваться в этой статье. А теперь рассмотрим основные возможности этого языка.

    Операции со строками

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

    1. Объединение строк

    str = "welcome " + "to python"
    print (str)

    2. Умножение строк

    str = "Losst" * 2
    print (str)

    3. Объединение с преобразованием

    Вы можете объединить строку с числом или логическим значением. Но для этого нужно использовать преобразование. Для этого существует функция str():

    str = "Это тестовое число " + str(15)
    print (str)

    4. Поиск подстроки

    Вы можете найти символ или подстроку с помощью метода find:

    str = "Добро пожаловать на сайт"
    print(str.find("сайт"))

    Этот метод выводит позицию первого вхождения подстроки сайт если она будет найдена, если ничего не найдено, то возвращается значение -1. Функция начинает поиск с первого символа, но вы можете начать с энного, например, 26:

    str = "Добро пожаловать на сайт сайт"
    print(str.find("losst",26))

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

    5. Получение подстроки

    Мы получили позицию подстроки, которую ищем, а теперь как получить саму подстроку и то, что после нее? Для этого используйте такой синтаксис [начало:конец] ,просто укажите два числа или только первое:

    str = "Один два три"
    print(str[:2])
    print(str)
    print(str)
    print(str[-1])

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

    6. Замена подстроки

    Вы можете заменить часть строки с помощью метода replace:

    str = "Этот сайт про Linux"
    str2 = str.replace("Linux", "Windows")
    print(str2)

    Если вхождений много, то можно заменить только первое:

    str = "Это сайт про Linux и я подписан на этот сайт"
    str2 = str.replace("сайт", "страница",1)
    print(str2)

    7. Очистка строк

    Вы можете удалить лишние пробелы с помощью функции strip:

    str = " Это веб-сайт про Linux "
    print(str.strip())

    Также можно удалить лишние пробелы только справа rstrip или только слева - lstrip.

    8. Изменение регистра

    Для изменения регистра символов существуют специальные функции:

    str="Добро пожаловать на Losst"
    print(str.upper())
    print(str.lower())

    9. Конвертирование строк

    Есть несколько функций для конвертирования строки в различные числовые типы, это int(), float() , long() и другие. Функция int() преобразует в целое, а float() в число с плавающей точкой:

    str="10"
    str2="20"
    print(str+str2)
    print(int(str)+int(str2))

    10. Длина строк

    Вы можете использовать функции min(), max(), len() для расчета количества символов в строке:

    str="Добро пожаловать на сайт Losst"
    print(min(str))
    print(max(str))
    print(len(str))

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

    11. Перебор строки

    Вы можете получить доступ к каждому символу строки отдельно с помощью цикла for:

    str="Добро пожаловать на сайт"
    for i in range(len(str)):
    print(str[i])

    Для ограничения цикла мы использовали функцию len(). Обратите внимание на отступ. Программирование на python основывается на этом, здесь нет скобок для организации блоков, только отступы.

    Операции с числами

    Числа в Python достаточно просто объявить или применять в методах. Можно создавать целые числа или числа с плавающей точкой:

    num1 = 15
    num2 = 3,14

    1. Округление чисел

    Вы можете округлить число с помощью функции round, просто укажите сколько знаков нужно оставить:

    a=15.5652645
    print(round(a,2))

    2. Генерация случайных чисел

    Получить случайные числа можно с помощью модуля random:

    import random
    print(random.random())

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

    import random
    numbers=
    print(random.choice(numbers))

    Операции с датой и временем

    Язык программирования Python имеет модуль DateTime, который позволяет выполнять различные операции с датой и временем:

    import datetime
    cur_date = datetime.datetime.now()
    print(cur_date)
    print(cur_date.year)
    print(cur_date.day)
    print(cur_date.weekday())
    print(cur_date.month)
    print(cur_date.time())

    В примере показано как извлечь нужное значение из объекта. Вы можете получить разницу между двумя объектами:

    import datetime
    time1 = datetime.datetime.now()
    time2 = datetime.datetime.now()
    timediff = time2 - time1
    print(timediff.microseconds)

    Вы можете сами создавать объекты даты с произвольным значением:

    time1 = datetime.datetime.now()
    time2 = datetime.timedelta(days=3)
    time3=time1+time2
    print(time3.date())

    1. Форматирование даты и времени

    Метод strftime позволяет изменить формат даты и времени зависимо от выбранного стандарта или указанного формата. Вот основные символы форматирования:

    • %a - день недели, сокращенное название;
    • %A - день недели, полное название;
    • %w - номер дня недели, от 0 до 6;
    • %d - день месяца;
    • %b - сокращенное название месяца;
    • %B - полное название месяца;
    • %m - номер месяца;
    • %Y - номер года;
    • %H - час дня в 24 часовом формате;
    • %l - час дня в 12 часовом формате;
    • %p - AM или PM;
    • %M - минута;
    • %S - секунда.

    import datetime
    date1 = datetime.datetime.now()
    print(date1.strftime("%d. %B %Y %I:%M%p"))

    2. Создать дату из строки

    Вы можете использовать функцию strptime() для создания объекта даты из строки:

    import datetime
    date1=datetime.datetime.strptime("2016-11-21", "%Y-%m-%d")
    date2=datetime.datetime(year=2015, month=11, day=21)
    print(date1);
    print(date2);

    Операции с файловой системой

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

    1. Копирование файлов

    Для копирования файлов нужно использовать функции из модуля subutil:

    import shutil
    new_path = shutil.copy("file1.txt", "file2.txt")

    new_path = shutil.copy("file1.txt", "file2.txt", follow_symlinks=False)

    2. Перемещение файлов

    Перемещение файлов выполняется с помощью функции move:

    shutil.move("file1.txt", "file3.txt")

    Функция rename из модуля os позволяет переименовывать файлы:

    import os
    os.rename("file1.txt", "file3.txt")

    3. Чтение и запись текстовых файлов

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

    fd = open("file1.txt")
    content = fd.read()
    print(content)

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

    fd = open("file1.txt")
    content = fd.read(20)
    print(content)

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

    content = fd.readlines()
    print(content)

    Чтобы записать данные в файл, его сначала нужно открыть для записи. Есть два режима работы - перезапись и добавление в конец файла. Режим записи:

    fd = open("file1.txt","w")

    И добавление в конец файла:

    fd = open("file1.txt","a")
    content = fd.write("Новое содержимое")

    4. Создание директорий

    Чтобы создать директорию используйте функцию mkdir из модуля os:

    import os
    os.mkdir("./новая папка")

    5. Получение времени создания

    Вы можете использовать функции getmtime(), getatime() и getctime() для получения времени последнего изменения, последнего доступа и создания. Результат будет выведен в формате Unix, поэтому его нужно конвертировать в читаемый вид:

    import os
    import datetime
    tim=os.path.getctime("./file1.txt")
    print(datetime.datetime.fromtimestamp(tim))

    6. Список файлов

    С помощью функции listdir() вы можете получить список файлов в папке:

    import os
    files= os.listdir(".")
    print(files)

    Для решения той же задачи можно использовать модуль glob:

    import glob
    files=glob.glob("*")
    print(files)

    7. Сериализация объектов Python

    import pickle
    fd = open("myfile.pk ", "wb")
    pickle.dump(mydata,fd)

    Затем для восстановления объекта используйте:

    import pickle
    fd = open("myfile.pk ", "rb")
    mydata = pickle.load(fd)

    8. Сжатие файлов

    Стандартная библиотека Python позволяет работать с различными форматами архивов, например, zip, tar, gzip, bzip2. Чтобы посмотреть содержимое файла используйте:

    import zipfile
    my_zip = zipfile.ZipFile("my_file.zip", mode="r")
    print(file.namelist())

    А для создания zip архива:

    import zipfile
    file=zipfile.ZipFile("files.zip","w")
    file.write("file1.txt")
    file.close()

    Также вы можете распаковать архив:

    import zipfile
    file=zipfile.ZipFile("files.zip","r")
    file.extractall()
    file.close()

    Вы можете добавить файлы в архив так:

    import zipfile
    file=zipfile.ZipFile("files.zip","a")
    file.write("file2.txt")
    file.close()

    9. Разбор CSV и Exel файлов

    С помощью модуля pandas можно смотреть и разбирать содержимое CSV и Exel таблиц. Сначала нужно установить модуль с помощью pip:

    sudo pip install pandas

    Затем для разбора наберите:

    import pandas
    data=pandas.read_csv("file.csv)

    По умолчанию pandas использует первую колонку для заголовков каждой из строк. Вы можете задать колонку для индекса с помощью параметра index_col или указать False, если он не нужен. Чтобы записать изменения в файл используйте функцию to_csv:

    data.to_csv("file.csv)

    Таким же образом можно разобрать файл Exel:

    data = pd.read_excel("file.xls", sheetname="Sheet1")

    Если нужно открыть все таблицы, используйте:

    data = pd.ExcelFile("file.xls")

    Затем можно записать все данные обратно:

    data.to_excel("file.xls", sheet="Sheet1")

    Работа с сетью в Python

    Программирование на Python 3 часто включает работу с сетью. Стандартная библиотека Python включает в себя возможности работы с сокетами для доступа к сети на низком уровне. Это нужно для поддержки множества сетевых протоколов.

    import socket
    host = "192.168.1.5"
    port = 4040
    my_sock = socket.create_connection ((host, port))

    Этот код подключается к порту 4040 на машине 192.168.1.5. Когда сокет открыт, вы можете отправлять и получать данные:

    my_sock.sendall(b"Hello World")

    Нам необходимо писать символ b, перед строкой, потому что надо передавать данные в двоичном режиме. Если сообщение слишком большое, вы можете выполнить итерацию:

    msg = b"Longer Message Goes Here"
    mesglen = len(msg)
    total = 0
    while total < msglen:
    sent = my_sock.send(msg)
    total = total + sent

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

    data_in = my_sock.recv(2000)

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

    buffer = bytearray(b" " * 2000)
    my_sock.recv_into(buffer)

    Если буфер пуст, туда будет записано полученное сообщение.

    Работа с почтой

    Стандартная библиотека Python позволяет получать и отправлять электронные сообщения.

    1. Получение почты от POP3 сервера

    Для получения сообщений мы используем POP сервер:

    import getpass,poplib
    pop_serv = poplib.POP3("192.168.1.5")
    pop_serv.user("myuser")
    pop_serv.pass_(getpass.getpass())

    Модуль getpass позволяет получить пароль пользователя безопасным образом, так что он не будет отображаться на экране. Если POP сервер использует защищенное соединение, вам нужно использовать класс POP3_SSL. Если подключение прошло успешно, вы можете взаимодействовать с сервером:

    msg_list = pop_serv.list() # to list the messages
    msg_count = pop_serv.msg_count()

    Для завершения работы используйте:

    2. Получение почты от IMAP сервера

    Для подключения и работы с сервером IMAP используется модуль imaplib:

    import imaplib, getpass
    my_imap = imaplib.IMAP4("imap.server.com")
    my_imap.login("myuser", getpass.getpass())

    Если ваш IMAP сервер использует защищенное соединение, нужно использовать класс IMAP4_SSL. Для получения списка сообщений используйте:

    data = my_imap.search(None, "ALL")

    Затем вы можете выполнить цикл по выбранному списку и прочитать каждое сообщение:

    msg = my_imap.fetch(email_id, "(RFC822)")

    Но, не забудьте закрыть соединение:

    my_imap.close()
    my_imap.logout()

    3. Отправка почты

    Для отправки почты используется протокол SMTP и модуль smtplib:

    import smtplib, getpass
    my_smtp = smtplib.SMTP(smtp.server.com")
    my_smtp.login("myuser", getpass.getpass())

    Как и раньше, для защищенного соединения используйте SMTP_SSL. Когда соединение будет установлено, можно отправить сообщение:

    from_addr = "[email protected]"
    to_addr = "[email protected]"
    msg = "From: [email protected]\r\nTo: [email protected]\r\n\r\nHello, this is a test message"
    my_smtp.sendmail(from_addr, to_addr, msg)

    Работа с веб-страницами

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

    1. Веб краулинг

    Модуль urllib позволяет выполнять запросы к веб-страницам различными способами. Для отправки обычного запроса используется класс request. Например, выполним обычный запрос страницы:

    import urllib.request
    my_web = urllib.request.urlopen("https://www.google.com")
    print(my_web.read())

    2. Использование метода POST

    Если вам нужно отправить веб-форму, необходимо использовать не GET запрос, а POST:

    import urllib.request
    mydata = b"Your Data Goes Here"
    my_req = urllib.request.Request("http://localhost", data=mydata,method="POST")
    my_form = urllib.request.urlopen(my_req)
    print(my_form.status)

    3. Создание веб-сервера

    С помощью класса Socket вы можете принимать входящие подключения, а значит можете создать веб-сервер с минимальными возможностями:

    import socket
    host = ""
    port = 4242
    my_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    my_server.bind((host, port))
    my_server.listen(1)

    Когда сервер создан. вы можете начать принимать соединения:

    addr = my_server.accept()
    print("Connected from host ", addr)
    data = conn.recv(1024)

    И не забудьте закрыть соединение:

    Многопоточность

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

    import threading
    def print_message():
    print("The message got printed from a different thread")
    my_thread = threading.Thread(target=print_message)
    my_thread.start()

    Если функция работает слишком долго, вы можете проверить все ли в порядке, с помощью функции is_alive(). Иногда вашим потокам нужно получать доступ к глобальным ресурсам. Для этого используются блокировки:

    import threading
    num = 1
    my_lock = threading.Lock()
    def my_func():
    global num, my_lock
    my_lock.acquire()
    sum = num + 1
    print(sum)
    my_lock.release()
    my_thread = threading.Thread(target=my_func)
    my_thread.start()

    Выводы

    В этой статье мы рассмотрели основы программирования python. Теперь вы знаете большинство часто используемых функций и можете применять их в своих небольших программах. Вам понравиться программирование на Python 3, это очень легко! Если у вас остались вопросы, спрашивайте в комментариях!

    На завершение статьи отличная лекция о Python:

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

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

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

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

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

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

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

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

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

    While rangelist == 1: pass

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Строки в Python

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

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

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

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

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

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

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

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

    Функции в Python

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

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

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

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

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

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

    Классы Python

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

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

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

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

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

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

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

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

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

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

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

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

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

    Разное

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

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

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

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

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

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

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

    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, но у них есть также некие