My-library.info
Все категории

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

На электронном книжном портале my-library.info можно читать бесплатно книги онлайн без регистрации, в том числе Роман Сузи - Язык программирования Python. Жанр: Программирование издательство неизвестно, год 2004. В онлайн доступе вы получите полную версию книги с кратким содержанием для ознакомления, сможете читать аннотацию к книге (предисловие), увидеть рецензии тех, кто произведение уже прочитал и их экспертное мнение о прочитанном.
Кроме того, в библиотеке онлайн my-library.info вы найдете много новинок, которые заслуживают вашего внимания.

Название:
Язык программирования Python
Автор
Издательство:
неизвестно
ISBN:
нет данных
Год:
неизвестен
Дата добавления:
17 сентябрь 2019
Количество просмотров:
354
Текст:
Ознакомительная версия
Читать онлайн
Роман Сузи - Язык программирования Python

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

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

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

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

Ознакомительная версия.

>>> import string

>>> s = "one,two,three"

>>> print string.split(s, ",")

['one', 'two', 'three']

>>> print s.split(",")

['one', 'two', 'three']

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

В Python 2.4 появилась альтернатива использованию операции форматирования: класс Template. Пример:

>>> import string

>>> tpl = string.Template("$a + $b = ${c}")

>>> a = 2

>>> b = 3

>>> c = a + b

>>> print tpl.substitute(vars())

2 + 3 = 5

>>> del c # удаляется имя c

>>> print tpl.safe_substitute(vars())

2 + 3 = $c

>>> print tpl.substitute(vars(), c=a+b)

2 + 3 = 5

>>> print tpl.substitute(vars())

Traceback (most recent call last):

 File "/home/rnd/tmp/Python–2.4b2/Lib/string.py", line 172, in substitute

  return self.pattern.sub(convert, self.template)

 File "/home/rnd/tmp/Python–2.4b2/Lib/string.py", line 162, in convert

  val = mapping[named]

KeyError: 'c'

Объект–шаблон имеет два основных метода: substitute() и safe_substitute(). Значения для подстановки в шаблон берутся из словаря (vars() содержит словарь со значениями переменных) или из именованных фактических параметров. Если есть неоднозначность в задании ключа, можно использовать фигурные скобки при написании ключа в шаблоне.

Методы строк

В таблице ниже приведены некоторые наиболее употребительные методы объектов–строк и unicode–объектов.

Метод Описание center(w) Центрирует строку в поле длины w count(sub) Число вхождений строки sub в строке encode([enc[, errors]]) Возвращает строку в кодировке enc. Параметр errors может принимать значения «strict» (по умолчанию), «ignore», «replace» или «xmlcharrefreplace» endswith(suffix) Оканчивается ли строка на suffix expandtabs([tabsize]) Заменяет символы табуляции на пробелы. По умолчанию tabsize=8 find(sub [,start [,end]]) Возвращает наименьший индекс, с которого начинается вхождение подстроки sub в строку. Параметры start и end ограничивают поиск окном start:end, но возвращаемый индекс соответствует исходной строке. Если подстрока не найдена, возвращается –1 index(sub[, start[, end]]) Аналогично find(), но возбуждает исключение ValueError в случае неудачи alnum() Возвращает True, если строка содержит только буквы и цифры и имеет ненулевую длину. Иначе — False isalpha() Возвращает True, если строка содержит только буквы и длина ненулевая isdecimal() Возвращает True, если строка содержит только десятичные знаки (только для строк Unicode) и длина ненулевая isdigit() Возвращает True, если содержит только цифры и длина ненулевая islower() Возвращает True, если все буквы строчные (и их более одной), иначе — False isnumeric() Возвращает True, если в строке только числовые знаки (только для Unicode) isspace() Возвращает True, если строка состоит только из пробельных символов. Внимание! Для пустой строки возвращается False join(seq) Соединение строк из последовательности seq через разделитель, заданный строкой lower() Приводит строку к нижнему регистру букв lstrip() Удаляет пробельные символы слева replace(old, new[, n]) Возвращает копию строки, в которой подстроки old заменены new. Если задан параметр n, то заменяются только первые n вхождений rstrip() Удаляет пробельные символы справа split([sep[, n]]) Возвращает список подстрок, получающихся разбиением строки a разделителем sep. Параметр n определяет максимальное количество разбиений (слева) startswith(prefix) Начинается ли строка с подстроки prefix strip() Удаляет пробельные символы в начале и в конце строки translate(table) Производит преобразование с помощью таблицы перекодировки table, содержащей словарь для перевода кодов в коды (или в None, чтобы удалить символ). Для Unicode–строк translate(table[, dc]) То же, но для обычных строк. Вместо словаря — строка перекодировки на 256 символов, которую можно сформировать с помощью функции string.maketrans(). Необязательный параметр dc задает строку с символами, которые необходимо удалить upper() Переводит буквы строки в верхний регистр

В следующем примере применяются методы split() и join() для разбиения строки в список (по разделителям) и обратное объединение списка строк в строку

>>> s = "This is an example."

>>> lst = s.split(" ")

>>> print lst

['This', 'is', 'an', 'example.']

>>> s2 = "n".join(lst)

>>> print s2

This

is

an

example.

Для проверки того, оканчивается ли строка на определенное сочетание букв, можно применить метод endswith():

>>> filenames = ["file.txt", "image.jpg", "str.txt"

>>> for fn in filenames:

...  if fn.lower().endswith(".txt"):

...   print fn

...

file.txt

str.txt

Поиск в строке можно осуществить с помощью метода find(). Следующая программа выводит все функции, определенные в модуле оператором def:

import string

text = open(string.__file__[:-1]).read()

start = 0

while 1:

 found = text.find("def ", start)

if found == -1:

 break

print text[found:found + 60].split("(")[0]

start = found + 1

Важным для преобразования текстовой информации является метод replace(), который рассматривается ниже:

>>> a = "Это текст , в котором встречаются запятые , поставленные не так."

>>> b = a.replace(" ,", ",")

>>> print b

Это текст, в котором встречаются запятые, поставленные не так.

Рекомендации по эффективности

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

Например, не рекомендуется многократно использовать операцию конкатенации для склеивания большого количества строк в одну. Лучше накапливать строки в списке, а затем с помощью 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 дают меньшее значение, игнорируются.

Ознакомительная версия.


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

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


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

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

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.