Роман Сузи - Язык программирования Python
- Название:Язык программирования Python
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Роман Сузи - Язык программирования Python краткое содержание
Курс посвящен одному из бурно развивающихся и популярных в настоящее время сценарных языков программирования — Python. Язык Python позволяет быстро создавать как прототипы программных систем, так и сами программные системы, помогает в интеграции программного обеспечения для решения производственных задач. Python имеет богатую стандартную библиотеку и большое количество модулей расширения практически для всех нужд отрасли информационных технологий. Благодаря ясному синтаксису изучение языка не составляет большой проблемы. Написанные на нем программы получаются структурированными по форме, и в них легко проследить логику работы. На примере языка Python рассматриваются такие важные понятия как: объектно–ориентированное программирование, функциональное программирование, событийно–управляемые программы (GUI–приложения), форматы представления данных (Unicode, XML и т.п.). Возможность диалогового режима работы интерпретатора Python позволяет существенно сократить время изучения самого языка и перейти к решению задач в соответствующих предметных областях. Python свободно доступен для многих платформ, а написанные на нем программы обычно переносимы между платформами без изменений. Это обстоятельство позволяет применять для изучения языка любую имеющуюся аппаратную платформу.
Язык программирования Python - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
>>> s = "транспорт"
>>> print s[0], s[-1]
т т
>>> print s[-4:]
порт
>>> print s[:5]
транс
>>> print s[4:8]
спор
При выделении среза нумеруются не символы строки, а промежутки между ними.
Модуль string
До того как у строк появились методы, для операций над строками применялся модуль string
. Приведенный пример демонстрирует, как вместо функции из string
использовать метод (кстати, последнее более эффективно):
>>> 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
Это текст, в котором встречаются запятые, поставленные не так.
Рекомендации по эффективности
При работе с очень длинными строками или большим количеством строк, применяемые операции могут по–разному влиять на быстродействие программы.
Читать дальшеИнтервал:
Закладка: