Роман Сузи - Язык программирования Python

Тут можно читать онлайн Роман Сузи - Язык программирования Python - бесплатно ознакомительный отрывок. Жанр: comp-programming. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Язык программирования Python
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4.38/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Роман Сузи - Язык программирования Python краткое содержание

Язык программирования Python - описание и краткое содержание, автор Роман Сузи, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Курс посвящен одному из бурно развивающихся и популярных в настоящее время сценарных языков программирования — Python. Язык Python позволяет быстро создавать как прототипы программных систем, так и сами программные системы, помогает в интеграции программного обеспечения для решения производственных задач. Python имеет богатую стандартную библиотеку и большое количество модулей расширения практически для всех нужд отрасли информационных технологий. Благодаря ясному синтаксису изучение языка не составляет большой проблемы. Написанные на нем программы получаются структурированными по форме, и в них легко проследить логику работы. На примере языка Python рассматриваются такие важные понятия как: объектно–ориентированное программирование, функциональное программирование, событийно–управляемые программы (GUI–приложения), форматы представления данных (Unicode, XML и т.п.). Возможность диалогового режима работы интерпретатора Python позволяет существенно сократить время изучения самого языка и перейти к решению задач в соответствующих предметных областях. Python свободно доступен для многих платформ, а написанные на нем программы обычно переносимы между платформами без изменений. Это обстоятельство позволяет применять для изучения языка любую имеющуюся аппаратную платформу.

Язык программирования Python - читать онлайн бесплатно ознакомительный отрывок

Язык программирования Python - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Роман Сузи
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Например, не рекомендуется многократно использовать операцию конкатенации для склеивания большого количества строк в одну. Лучше накапливать строки в списке, а затем с помощью join() собирать в одну строку:

>>> a = ""

>>> for i in xrange(1000):

... a += str(i) # неэффективно!

...

>>> a = "".join([str(i) for i in xrange(1000)]) # более эффективно

Конечно, если строка затем обрабатывается, можно применять итераторы, которые позволят свести использование памяти к минимуму.

Модуль StringIO

В некоторых случаях желательно работать со строкой как с файлом. Модуль StringIOкак раз дает такую возможность.

Открытие «файла» производится вызовом StringIO(). При вызове без аргумента — создается новый «файл», при задании строки в качестве аргумента — «файл» открывается для чтения:

import StringIO

my_string = «1234567890»

f1 = StringIO.StringIO()

f2 = StringIO.StringIO(my_string)

Далее с файлами f1и f2можно работать как с обычными файловыми объектами.

Для получения содержимого такого файла в виде строки применяется метод getvalue():

f1.getvalue()

Противоположный вариант (представление файла на диске в виде строки) можно реализовать на платформах Unix и Windows с использованием модуля mmap. Здесь этот модуль рассматриваться не будет.

Модуль difflib

Для приблизительного сравнения двух строк в стандартной библиотеке предусмотрен модуль difflib.

Функция difflib.get_close_matches()позволяет выделить nблизких строк к заданной строке:

get_close_matches(word, possibilities, n=3, cutoff=0.6)

где

word

Строка, к которой ищутся близкие строки.

possibilities

Список возможных вариантов.

n

Требуемое количество ближайших строк.

cutoff

Коэффициент (из диапазона [0, 1]) необходимого уровня совпадения строк. Строки, которые при сравнении с wordдают меньшее значение, игнорируются.

Следующий пример показывает функцию difflib.get_close_matches()в действии:

>>> import unicodedata

>>> names = [unicodedata.name(unicode(chr(i))) for i in range(40, 127)]

>>> print difflib.get_close_matches("LEFT BRACKET", names)

['LEFT CURLY BRACKET', 'LEFT SQUARE BRACKET']

В списке names— названия Unicode–символов с ASCII–кодами от 40 до 127.

Регулярные выражения

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

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

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

>>> import re

>>> pattern = r"[0–9]+"

>>> number_re = re.compile(pattern)

>>> number_re.findall("122 234 65435")

['122', '234', '65435']

В этом примере шаблон pattern описывает множество строк, которые состоят из одного или более символов из набора « 0», « 1» , …, « 9» . Функция re.compile()компилирует шаблон в специальный Regex–объект, который имеет несколько методов, в том числе метод findall()для получения списка всех непересекающихся вхождений строк, удовлетворяющих шаблону, в заданную строку.

То же самое можно было сделать и так:

>>> import re

>>> re.findall(r"[0–9]+", "122 234 65435")

['122', '234', '65435']

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

Примечание:

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

Синтаксис регулярного выражения

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

Здесь стоит также отметить, что различные операции используют шаблон по–разному. Так, search()ищет первое вхождение строки, удовлетворяющей шаблону, в заданной строке, а match()требует, чтобы строка удовлетворяла шаблону с самого начала.

Символы, имеющие специальное значение в записи регулярных выражений:

Символ Что обозначает в регулярном выражении
"." Любой символ
"^" Начало строки
"$" Конец строки
"*" Повторение фрагмента нуль или более раз (жадное)
"+" Повторение фрагмента один или более раз (жадное)
"?" Предыдущий фрагмент либо присутствует, либо отсутствует
"{m,n}" Повторение предыдущего фрагмента от mдо nраз включительно (жадное)
"[...]" Любой символ из набора в скобках. Можно задавать диапазоны символов с идущими подряд кодами, например: a–z
"[^...]" Любой символ не из набора в скобках
"\" Обратная косая черта отменяет специальное значение следующего за ней символа
"|" Фрагмент справа или фрагмент слева
"*?" Повторение фрагмента нуль или более раз (не жадное)
"+?" Повторение фрагмента один или более раз (не жадное)
"{m,n}?" Повторение предыдущего фрагмента от mдо nраз включительно (не жадное)

Если A и B — регулярные выражения, то их конкатенация AB является новым регулярным выражением, причем конкатенация строк a и b будет удовлетворять AB, если a удовлетворяет A и b удовлетворяет B. Можно считать, что конкатенация — основной способ составления регулярных выражений.

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

Алгоритм, который сопоставляет строки с регулярным выражением, проверяет соответствие того или иного фрагмента строки регулярному выражению. Например, строка « a» соответствует регулярному выражению « [a–z]», строка « fruit» соответствует « fruit|vegetable», а вот строка « apple» не соответствует шаблону « pineapple».

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Роман Сузи читать все книги автора по порядку

Роман Сузи - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Язык программирования Python отзывы


Отзывы читателей о книге Язык программирования Python, автор: Роман Сузи. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x