Как пользоваться программой строкой

Строки в языке программирования Python — это объекты, которые состоят из последовательности символов.

Наравне с bool, int и другими типами данных, работа со строковым типом является неотъемлемой частью программирования, так как очень редко встречаются приложения, в которых не используется текст.

Вводная информация о строках

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

Что представляют собой строки в Python

С точки зрения Питона, строка — это упорядоченная последовательность символов, которая предназначена для хранения информации в виде простого текста.

Поэтому тип данных string используется в случае, когда что-то нужно представить в текстовой форме.

Литералы строк

Литерал — способ создания объектов, в случае строк Питон предлагает несколько основных вариантов:

>>> ‘string’ # одинарные кавычки ‘string’ >>> «string» # двойные кавычки ‘string’ >>> «»»string»»» ‘string’ >>> »’string»’ ‘string’

Бесплатный видео урок по Ledshow — настройка бегущей строки

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

>>> ‘book «war and peace»‘ # разный тип кавычек ‘book «war and peace»‘ >>> «book ‘war and peace'» # разный тип кавычек «book ‘war and peace'» >>> «book «war and peace»» # экранирование кавычек одного типа ‘book «war and peace»‘ >>> ‘book ‘war and peace» # экранирование кавычек одного типа «book ‘war and peace'»

Разницы между строками с одинарными и двойными кавычками нет — это одно и то же

Какие кавычки использовать — решать вам, соглашение PEP 8 не дает рекомендаций по использованию кавычек. Просто выберите один тип кавычек и придерживайтесь его. Однако если в стоке используются те же кавычки, что и в литерале строки, используйте разные типы кавычек — обратная косая черта в строке ухудшает читаемость кода.

Кодировка строк

В третьей версии языка программирования Python все строки представляют собой последовательность Unicode-символов.

В Python 3 кодировка по умолчанию исходного кода — UTF-8. Во второй версии по умолчанию использовалась ASCII. Если необходимо использовать другую кодировку, можно разместить специальное объявление на первой строке файла, к примеру:

Максимальная длина строки в Python

Максимальная длина строки зависит от платформы. Обычно это:

  • 2**31 — 1 — для 32-битной платформы;
  • 2**63 — 1 — для 64-битной платформы;

Константа maxsize , определенная в модуле sys :

>>> import sys >>> sys.maxsize 2147483647

Перенос строк

Перенос строки осуществляется с помощью символа n :

>>> text = «onentwonthree» >>> print(text) one two three

LedshowTW как изменить данные USB

Конкатенация строк

Одна из самых распространенных операций со строками — их объединение (конкатенация). Для этого используется знак + , в результате к концу первой строки будет дописана вторая:

>>> s1 = «Hello» + » world» >>> s2 = » world» >>> s1+s2 ‘Hello world world’

При необходимости объединения строки с числом его предварительно нужно привести тоже к строке, используя функцию str() :

>>> name = «John» >>> age = 30 >>> «Name: » + name + «, age: » + str(age) ‘Name: John, age: 30’

Сравнение строк

При сравнении нескольких строк рассматриваются отдельные символы и их регистр:

  • цифра условно меньше, чем любая буква из алфавита;
  • алфавитная буква в верхнем регистре меньше, чем буква в нижнем регистре;
  • чем раньше буква в алфавите, тем она меньше;

При этом сравниваются по очереди первые символы, затем — 2-е и так далее.

>>> s1 = «1a» >>> s2 = «aa» >>> s3 = «Aa» >>> s4 = «ba» >>> «1a» > «aa» # сравнение цифры с буквой False >>> «aa» > «Aa» # сравнение регистров True >>> «aa» > «ba» # сравнение букв по алфавитному порядку False >>> «aa» < «az» # первые буквы одинаковые, сравниваются следующие две True

Далеко не всегда желательной является зависимость от регистра, в таком случае можно привести обе строки к одному и тому же регистру. Для этого используются функции lower() — для приведения к нижнему и upper() — к верхнему:

Читайте также:
Программы для аптек список

>>> s1 = «Intel» >>> s2 = «intel» >>> s1 == s2 False >>> s1.lower() == s2.lower() True

Пустая строка Python

Объявить пустую строку можно следующими способами:

Как удалить строку в Python

Строки, как и некоторые другие типы данных в языке Python, являются неизменяемыми объектами. При задании нового значения строке просто создается новая, с заданным значением. Для удаления строки можно воспользоваться методом replace() , заменив ее на пустую строку:

Или перезаписать переменную пустой строкой:

Обращение по индексу

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

>>> s = «abcdef» >>> s[0] ‘a’ >>> s[2] ‘c’

Индекс начинается с 0

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

Форматирование строк

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

Оператор %

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

>>> name = «Alex» >>> ‘Hello, %s’ % name ‘Hello, Alex’

Если же для подстановки используется несколько аргументов, то значением будет кортеж со строками:

>>> ‘%d %s, %d %s’ % (6, ‘bananas’, 10, ‘lemons’) ‘6 bananas, 10 lemons’

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

  1. ‘ %d ‘, ‘ %i ‘, ‘ %u — десятичное число;
  2. ‘ %c ‘ — символ, точнее строка из одного символа или число – код символа;
  3. ‘ %r ‘ — строка (литерал Python);
  4. ‘ %s ‘ — строка.

Такой способ форматирования строк называет «старым» стилем, который в Python 3 был заменен на более удобные способы.

str.format()

В Python 3 появился более новый метод форматирования строк, который вскоре перенесли и в Python 2.7. Такой способ избавляет программиста от специального синтаксиса %-оператора. Делается все путем вызова .format() для строковой переменной. С помощью специального символа — фигурных скобок — указывается место для подстановки значения, каждая пара скобок указывает отдельное место для подстановки, значения могут быть разного типа:

>>> print(‘<>’.format(100)) 100 >>> ‘, , ‘.format(‘one’, ‘two’, ‘three’) ‘one, two, three’ >>> ‘, , ‘.format(‘one’, ‘two’, ‘three’) ‘three, two, one’

В Python 3 форматирование строк с использованием «нового стиля» является более предпочтительным по сравнению с использованием %-стиля, так как предоставляет более широкие возможности, не усложняя простые варианты использования.

f-строки (Python 3.6+)

В Python версии 3.6 появился новый метод форматирования строк — «f-строки», с его помощью можно использовать встроенные выражения внутри строк:

>>> name = ‘Alex’ >>> f’Hello, !’ ‘Hello, Alex!’

Такой способ форматирования очень мощный, так как дает возможность встраивать выражения:

>>> a = 5 >>> b = 10 >>> f’Five plus ten is and not .’ ‘Five plus ten is 15 and not 30.’

Таким образом, форматирование с помощью f-строк напоминает использование метода format(), но более гибкое, быстрое и читабельное.

Стандартная библиотека Template Strings

Еще один способ форматирования строк, который появился еще с выходом Python версии 2.4, но так и не стал популярным — использование библиотеки Template Strings. Есть поддержка передачи значения по имени, используется $-синтаксис как в языке PHP:

>>> from string import Template >>> name = «Alex» >>> age = 30 >>> s = Template(‘My name is $name. I’m $age.’) >>> print(s.substitute(name=name, age=age)) My name is Alex. I’m 30

Функции для работы со строками

Для работы со строками в Питоне предусмотрены специальные функции. Рассмотрим их:

Преобразование числового или другого типа к строке:

  • str(n) — преобразование числового или другого типа к строке;
  • len(s) — длина строки;
  • chr(s) — получение символа по его коду ASCII;
  • ord(s) — получение кода ASCII по символу.

Методы для работы со строками

Кроме функций, для работы со строками есть немало методов:

  • find(s, start, end) — возвращает индекс первого вхождения подстроки в s или -1 при отсутствии. Поиск идет в границах от start до end ;
  • rfind(s, start, end) — аналогично, но возвращает индекс последнего вхождения;
  • replace(s, new) — меняет последовательность символов s на новую подстроку new ;
  • split(x) — разбивает строку на подстроки при помощи выбранного разделителя x;
  • join(x) — соединяет строки в одну при помощи выбранного разделителя x;
  • strip(s) — убирает пробелы с обеих сторон;
  • lstrip(s), rstrip(s) — убирает пробелы только слева или справа;
  • lower() — перевод всех символов в нижний регистр;
  • upper() — перевод всех символов в верхний регистр;
  • capitalize() — перевод первой буквы в верхний регистр, остальных — в нижний.
Читайте также:
Как перекинуть все данные с андроида на Андроид программа

>>> text = «Wikipedia is a Python library that makes it easy to access and parse data from Wikipedia» >>> text.find(«Wikipedia») 0 >>> text.rfind(«Wikipedia») 79 >>> text.replace(«from Wikipedia», «from https://www.wikipedia.org/») ‘Wikipedia is a Python library that makes it easy to access and parse data from https://www.wikipedia.org/’ >>> text.split(» «) [‘Wikipedia’, ‘is’, ‘a’, ‘Python’, ‘library’, ‘that’, ‘makes’, ‘it’, ‘easy’, ‘to’, ‘access’, ‘and’, ‘parse’, ‘data’, ‘from’, ‘Wikipedia’] split_text = text.split(» «) >>> «_».join(split_text) ‘Wikipedia_is_a_Python_library_that_makes_it_easy_to_access_and_parse_data_from_Wikipedia’ >>> text = » test » >>> text.strip() ‘test’ >>> text.lstrip() ‘test ‘ >>> text.rstrip() ‘ test’ >>> text = «Python is a product of the Python Software Foundation» >>> text.lower() ‘python is a product of the python software foundation’ >>> text.upper() ‘PYTHON IS A PRODUCT OF THE PYTHON SOFTWARE FOUNDATION’ >>> text = «python is a product of the python software foundation» >>> text.capitalize() ‘Python is a product of the python software foundation’

Преобразование из строки в другой тип

В Питоне строки можно преобразовывать в другие типы данных:

string → int

Функция int() преобразовывает целое число в десятичной системе, заданное как строка, в тип int:

При необходимости можно указывать систему счисления:

>>> int(«0x12F», base=16) 303

string → list

Самый простой способ преобразования строки в список строк — метод split() :

>>> ‘one two three four’.split() [‘one’, ‘two’, ‘three’, ‘four’]

При необходимости можно указывать разделитель:

>>> ‘one, two, three, four’.split(‘,’) [‘one’, ‘ two’, ‘ three’, ‘ four’]

string → bytes

Преобразование строкового типа в байтовый выполняется функцией encode() с указанием кодировки:

string → datetime

Строка в дату преобразовывается функцией strptime() из стандартного модуля datetime :

>>> from datetime import datetime >>> print(datetime.strptime(‘Jan 1 2020 1:33PM’, ‘%b %d %Y %I:%M%p’)) 2020-01-01 13:33:00

string → float

Для преобразования строки в число с плавающей точкой используется стандартная функция float :

string → dict

Создание словаря из строки возможно, если внутри нее данные в формате json. Для этого можно воспользоваться модулем json :

string → json

Конвертация объектов Python в объект json выполняется функцией dumps() :

>>> import json >>> json.dumps(«hello») ‘»hello»‘

Best practices

Как разбить строку на символы

Разбиение строки на отдельные символы выполняется несколькими способами:

>>> text = «django» # вариант 1 >>> list(text) [‘d’, ‘j’, ‘a’, ‘n’, ‘g’, ‘o’] # вариант 2 >>> [c for c in «text»] [‘t’, ‘e’, ‘x’, ‘t’] # вариант 3 >>> for c in text: print(c) d j a n g o

Как из строки выделить числа

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

>>> str = «h3110 23 cat 444.4 rabbit 11 2 dog» >>> [int(s) for s in str.split() if s.isdigit()] [23, 11, 2]

Работа со строками

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

В языке C# строковые значения представляет тип string , а вся функциональность работы с данным типом сосредоточена в классе System.String . Собственно string является псевдонимом для класса String. Объекты этого класса представляют текст как последовательность символов Unicode. Максимальный размер объекта String может составлять в памяти 2 ГБ, или около 1 миллиарда символов.

Создание строк

Создавать строки можно, как используя переменную типа string и присваивая ей значение, так и применяя один из конструкторов класса String:

string s1 = «hello»; string s2 = new String(‘a’, 6); // результатом будет строка «aaaaaa» string s3 = new String(new char[] < ‘w’, ‘o’, ‘r’, ‘l’, ‘d’ >); string s4 = new String(new char[] < ‘w’, ‘o’, ‘r’, ‘l’, ‘d’ >, 1, 3); // orl Console.WriteLine(s1); // hello Console.WriteLine(s2); // aaaaaaa Console.WriteLine(s3); // world Console.WriteLine(s4); // orl

Конструктор String имеет различное число версий. Так, вызов конструктора

new String(‘a’, 6)

6 раз повторит объект из первого параметра, то есть фактически создаст строку «aaaaaa».

Еще один конструктор принимает массив символов, из которых создается строка

string s3 = new String(new char[] < ‘w’, ‘o’, ‘r’, ‘l’, ‘d’ >);

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

string s4 = new String(new char[] < ‘w’, ‘o’, ‘r’, ‘l’, ‘d’ >, 1, 3); // orl

Строка как набор символов

Так как строка хранит коллекцию символов, в ней определен индексатор для доступа к этим символам:

public char this[int index]

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

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

string message = «hello»; // получаем символ char firstChar = message[1]; // символ ‘e’ Console.WriteLine(firstChar); //e Console.WriteLine(message.Length); // длина строки

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

Перебор строк

Класс String реализует интерфейс IEnumerable, благодаря чему строку можно перебрать в цикле foreach как набор объектов char. Также можно с помощью других типов циклов перебрать строку, применяя обращение к символам по индексу:

string message = «hello»; for(var i =0; i < message.Length; i++) < Console.WriteLine(message[i]); >foreach(var ch in message)

Сравнение строк

В отличие от других классов строки сравниваются по значению их символов, а не по ссылкам:

string message1 = «hello»; string message2 = «hello»; Console.WriteLine(message1 == message2); // true

Многострочные строки

Начиная с C# 11 с помощью трех пар двойных кавычек можно оформить многострочный текст, в том числе с применением интерполяции:

Print(); PrintValue(«hello»); void Print() «»»; Console.WriteLine(text); > void PrintValue(string val) < string text = $»»» «»»; //// или так //string text = $$»»» // // // > //

Источник: metanit.com

Строки. Функции и методы строк

Python 3 логотип

Итак, о работе со строками мы немного поговорили, теперь поговорим о функциях и методах строк.

Я постарался собрать здесь все строковые методы и функции, но если я что-то забыл — поправляйте.

Базовые операции

  • Конкатенация (сложение)

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

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

Таблица «Функции и методы строк»

Функция или методНазначение
S = ‘str’; S = «str»; S = »’str»’; S = «»»str»»» Литералы строк
S = «snptanbbb» Экранированные последовательности
S = r»C:tempnew» Неформатированные строки (подавляют экранирование)
S = b»byte» Строка байтов
S1 + S2 Конкатенация (сложение строк)
S1 * 3 Повторение строки
S[i] Обращение по индексу
S[i:j:step] Извлечение среза
len(S) Длина строки
S.find(str, [start],[end]) Поиск подстроки в строке. Возвращает номер первого вхождения или -1
S.rfind(str, [start],[end]) Поиск подстроки в строке. Возвращает номер последнего вхождения или -1
S.index(str, [start],[end]) Поиск подстроки в строке. Возвращает номер первого вхождения или вызывает ValueError
S.rindex(str, [start],[end]) Поиск подстроки в строке. Возвращает номер последнего вхождения или вызывает ValueError
S.replace(шаблон, замена[, maxcount]) Замена шаблона на замену. maxcount ограничивает количество замен
S.split(символ) Разбиение строки по разделителю
S.isdigit() Состоит ли строка из цифр
S.isalpha() Состоит ли строка из букв
S.isalnum() Состоит ли строка из цифр или букв
S.islower() Состоит ли строка из символов в нижнем регистре
S.isupper() Состоит ли строка из символов в верхнем регистре
S.isspace() Состоит ли строка из неотображаемых символов (пробел, символ перевода страницы (‘f’), «новая строка» (‘n’), «перевод каретки» (‘r’), «горизонтальная табуляция» (‘t’) и «вертикальная табуляция» (‘v’))
S.istitle() Начинаются ли слова в строке с заглавной буквы
S.upper() Преобразование строки к верхнему регистру
S.lower() Преобразование строки к нижнему регистру
S.startswith(str) Начинается ли строка S с шаблона str
S.endswith(str) Заканчивается ли строка S шаблоном str
S.join(список) Сборка строки из списка с разделителем S
ord(символ) Символ в его код ASCII
chr(число) Код ASCII в символ
S.capitalize() Переводит первый символ строки в верхний регистр, а все остальные в нижний
S.center(width, [fill]) Возвращает отцентрованную строку, по краям которой стоит символ fill (пробел по умолчанию)
S.count(str, [start],[end]) Возвращает количество непересекающихся вхождений подстроки в диапазоне [начало, конец] (0 и длина строки по умолчанию)
S.expandtabs([tabsize]) Возвращает копию строки, в которой все символы табуляции заменяются одним или несколькими пробелами, в зависимости от текущего столбца. Если TabSize не указан, размер табуляции полагается равным 8 пробелам
S.lstrip([chars]) Удаление пробельных символов в начале строки
S.rstrip([chars]) Удаление пробельных символов в конце строки
S.strip([chars]) Удаление пробельных символов в начале и в конце строки
S.partition(шаблон) Возвращает кортеж, содержащий часть перед первым шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий саму строку, а затем две пустых строки
S.rpartition(sep) Возвращает кортеж, содержащий часть перед последним шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий две пустых строки, а затем саму строку
S.swapcase() Переводит символы нижнего регистра в верхний, а верхнего – в нижний
S.title() Первую букву каждого слова переводит в верхний регистр, а все остальные в нижний
S.zfill(width) Делает длину строки не меньшей width, по необходимости заполняя первые символы нулями
S.ljust(width, fillchar=» «) Делает длину строки не меньшей width, по необходимости заполняя последние символы символом fillchar
S.rjust(width, fillchar=» «) Делает длину строки не меньшей width, по необходимости заполняя первые символы символом fillchar
S.format(*args, **kwargs) Форматирование строки

Для вставки кода на Python в комментарий заключайте его в теги

Источник: pythonworld.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru