Главная страница
Навигация по странице:

  • ASCII

  • Python

  • строки в Питон. строки ПИТОН. Строки (String)


    Скачать 64.38 Kb.
    НазваниеСтроки (String)
    Анкорстроки в Питон
    Дата15.11.2022
    Размер64.38 Kb.
    Формат файлаodt
    Имя файластроки ПИТОН.odt
    ТипУчебник
    #788960

    Строки (String)


    До сих пор мы обсуждали числа как стандартные типы данных в Python. В этом разделе учебника мы рассмотрим самый популярный тип данных в Python - строку.

    Строка в Python - это набор символов, окруженных одинарными, двойными или тройными кавычками. Компьютер не понимает символы; внутри он хранит управляемый символ как комбинацию 0 и 1.

    Каждый символ кодируется в ASCII или Unicode. Поэтому можно сказать, что строки Python также называют коллекцией символов Unicode.

    В Python строки можно создавать, заключая символ или последовательность символов в кавычки. Python позволяет нам использовать одинарные, двойные или тройные кавычки для создания строки.

    Рассмотрим следующий пример на языке Python для создания строки.

    str = "Hi Python !"

    Если мы проверим тип переменной str с помощью сценария Python print(type(str)), то будет выведено:



    В Python строки рассматриваются как последовательность символов, что означает, что Python не поддерживает символьный тип данных; вместо этого один символ, записанный как p, рассматривается как строка длины 1.

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


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

    #Using single quotes str1 = 'Hello Python' print(str1) #Using double quotes str2 = "Hello Python" print(str2) #Using triple quotes str3 = '''''Triple quotes are generally used for represent the multiline or docstring''' print(str3)

    Вывод:

    Hello Python Hello Python Triple quotes are generally used for represent the multiline or docstring

    Индексация и разбиение строк в Python


    Как и в других языках, индексация строк в Python начинается с 0. Например, строка "HELLO" индексируется так, как показано на рисунке ниже.

    ð˜ð½ð´ðµðºñð°ñ†ð¸ñ ð¸ ñ€ð°ð·ð±ð¸ðµð½ð¸ðµ ññ‚ñ€ð¾ðº ð² python

    Рассмотрим следующий пример:

    str = "HELLO" print(str[0]) print(str[1]) print(str[2]) print(str[3]) print(str[4]) # It returns the IndexError because 6th index doesn't exist print(str[6])

    Вывод:

    H E L L O IndexError: string index out of range

    В Python мы можем использовать оператор : (двоеточие) для доступа к подстроке из заданной строки. Рассмотрим следующий пример.

    ð´ð¾ññ‚ñƒð¿ ðº ð¿ð¾ð´ññ‚ñ€ð¾ðºðµ ð¸ð· ð·ð°ð´ð°ð½ð½ð¾ð¹ ññ‚ñ€ð¾ðºð¸ ð² python

    Здесь мы должны заметить, что верхний диапазон, заданный в операторе slice, всегда является эксклюзивным, т.е. если задано str = 'HELLO', то str[1:3] всегда будет включать str[1] = 'E', str[2] = 'L' и ничего больше.

    Рассмотрим следующий пример:

    # Given String str = "JAVATPOINT" # Start Oth index to end print(str[0:]) # Starts 1th index to 4th index print(str[1:5]) # Starts 2nd index to 3rd index print(str[2:4]) # Starts 0th to 2nd index print(str[:3]) #Starts 4th to 6th index print(str[4:7])

    Вывод:

    JAVATPOINT AVAT VA JAV TPO

    Мы можем сделать отрицательную нарезку в строке; она начинается с самого правого символа, который обозначается как -1. Второй крайний правый индекс обозначает -2, и так далее. Рассмотрим следующее изображение.

    ð¾ñ‚ñ€ð¸ñ†ð°ñ‚ðµð»ñŒð½ñ‹ð¹ slice ð² ññ‚ñ€ð¾ðºðµ python

    Рассмотрим следующий пример

    str = 'JAVATPOINT' print(str[-1]) print(str[-3]) print(str[-2:]) print(str[-4:-1]) print(str[-7:-2]) # Reversing the given string print(str[::-1]) print(str[-12])

    Вывод:

    T I NT OIN ATPOI TNIOPTAVAJ IndexError: string index out of range

    Переназначение строк


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

    Рассмотрим следующий пример.

    Пример 1

    str = "HELLO" str[0] = "h" print(str)

    Вывод:

    Traceback (most recent call last): File "12.py", line 2, in str[0] = "h"; TypeError: 'str' object does not support item assignment

    Однако в примере 1 строка str может быть полностью присвоена новому содержимому, как указано в следующем примере.

    Пример 2

    str = "HELLO" print(str) str = "hello" print(str)

    Вывод:

    HELLO hello

    Удаление строки в Python


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

    Пробуем удалить часть строки:

    str = "JAVATPOINT" del str[1]

    Вывод:

    TypeError: 'str' object doesn't support item deletion

    Теперь мы пробуем удалить всю строку:

    str1 = "JAVATPOINT" del str1 print(str1)

    Вывод:

    NameError: name 'str1' is not defined

    Строковые операторы в Python


    Оператор

    Описание

    +

    Ооператор конкатенации, используемый для соединения строк, заданных по обе стороны от оператора.

    *

    Оператор повторения. Он объединяет несколько копий одной и той же строки.

    []

    Оператор среза. Он используется для доступа к подстрокам определенной строки.

    [:]

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

    in

    Оператор членства. Он возвращает, присутствует ли определенная подстрока в указанной строке.

    not in

    Оператором членства и выполняет прямо противоположное действие по отношению к in. Он возвращает true, если определенная подстрока отсутствует в указанной строке.

    r/R

    Используется для указания необработанной строки. Необработанные строки используются в тех случаях, когда необходимо вывести фактическое значение управляющих символов, таких как C://python. Чтобы определить любую строку как необработанную, за строкой следует символ r или R.

    %

    Он используется для форматирования строк. Он использует спецификаторы формата, применяемые в программировании на языке C, такие как %d или %f, для отображения их значений в python.

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

    str = "Hello" str1 = " world" print(str*3) # prints HelloHelloHello print(str+str1)# prints Hello world print(str[4]) # prints o print(str[2:4]); # prints ll print('w' in str) # prints false as w is not present in str print('wo' not in str1) # prints false as wo is present in str1. print(r'C://python37') # prints C://python37 as it is written print("The string str : %s"%(str)) # prints The string str : Hello

    Вывод:

    HelloHelloHello Hello world o ll False False C://python37 The string str : Hello

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

    Экранирование последовательности


    Допустим, нам нужно записать текст в виде - They said, "Hello what's going on?"- данное утверждение может быть записано в одинарных или двойных кавычках, но оно вызовет SyntaxError, так как содержит как одинарные, так и двойные кавычки.

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

    str = "They said, "Hello what's going on?"" print(str)

    Вывод:

    SyntaxError: invalid syntax

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

    Символ обратной косой черты (/) обозначает escape последовательность. За обратной косой чертой может следовать специальный символ, который интерпретируется по-разному. Одинарные кавычки внутри строки должны быть экранированы. Мы можем применить то же самое, что и в случае с двойными кавычками.

    # using triple quotes print('''''They said, "What's there?"''') # escaping single quotes print('They said, "What\'s going on?"') # escaping double quotes print("They said, \"What's going on?\"")

    Вывод:

    They said, "What's there?" They said, "What's going on?" They said, "What's going on?"

    Ниже приведен список управляющих последовательностей для экранирования:

    Escape последовательность

    Описание

    \newline

    Игнорирует новую строку.

    \\

    Обратный слэш

    \'

    Одинарные кавычки

    \\''

    Двойные кавычки

    \a

    ASCII гудок

    \b

    ASCII Backspace(BS)

    \f

    ASCII Formfeed (смещение к началу след. страницы)

    \n

    ASCII Linefeed (перевод на след. строку)

    \r

    ASCII Carriege Return(CR) (перемещение курсора к левому краю поля)

    \t

    ASCII горизонтальная табуляция

    \v

    ASCII вертикальная табуляция

    \ooo

    Символ с восьмеричным значением

    \xHH

    Символ с шестнадцатеричным значением.

    Вот простой пример использования escape-последовательности.

    print("C:\\Users\\DEVANSH SHARMA\\Python32\\Lib") print("This is the \n multiline quotes") print("This is \x48\x45\x58 representation")

    Вывод:

    C:\Users\DEVANSH SHARMA\Python32\Lib This is the multiline quotes This is HEX representation

    Мы можем игнорировать управляющую последовательность из заданной строки, используя необработанную строку. Для этого перед строкой нужно написать r или R. Рассмотрим следующий пример.

    print(r"C:\\Users\\DEVANSH SHARMA\\Python32")

    Вывод:

    C:\\Users\\DEVANSH SHARMA\\Python32

    Метод format() в python


    Метод format() является наиболее гибким и полезным методом форматирования строк. Фигурные скобки {} используются в качестве заполнителя строки и заменяются аргументом метода format(). Рассмотрим приведенный пример:

    # Using Curly braces print("{} and {} both are the best friend".format("Devansh","Abhishek")) #Positional Argument print("{1} and {0} best players ".format("Virat","Rohit")) #Keyword Argument print("{a},{b},{c}".format(a = "James", b = "Peter", c = "Ricky"))

    Вывод:

    Devansh and Abhishek both are the best friend Rohit and Virat best players James,Peter,Ricky

    Форматирование строк в Python с помощью оператора %


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

    Рассмотрим следующий пример.

    Integer = 10; Float = 1.290 String = "Devansh" print("Hi I am Integer ... My value is %d\nHi I am float ... My value is %f\nHi I am string ... My value is %s"%(Integer,Float,String))

    Вывод:

    Hi I am Integer ... My value is 10 Hi I am float ... My value is 1.290000 Hi I am string ... My value is Devansh

    Строковые функции в Python


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

    Метод

    Описание

    capitalize()

    Выводит первый символ строки заглавными буквами. Эта функция устарела в python3

    casefold()

    Возвращает версию строки, пригодную для сравнений без регистра.

    center(width ,fillchar)

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

    count(string,begin,end)

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

    decode(encoding = 'UTF8', errors = 'strict')

    Декодирует строку.

    encode()

    Кодирование строки. Кодировка по умолчанию - utf-8.

    endswith(suffix ,begin=0,end=len(string))

    Возвращает булево значение, если строка заканчивается заданным суффиксом между begin и end.

    expandtabs(tabsize = 8)

    Определяет табуляцию в строке до нескольких пробелов. По умолчанию количество пробела равно 8.

    find(substring ,beginIndex, endIndex)

    Возвращает значение индекса строки, в которой найдена подстрока между начальным и конечным индексами.

    format(value)

    Возвращает форматированную версию строки, используя переданное значение.

    index(subsring, beginIndex, endIndex)

    Выбрасывает исключение, если строка не найдена. Работает так же, как и метод find().

    isalnum()

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

    isalpha()

    Возвращает true, если все символы являются алфавитными и есть хотя бы один символ, иначе False.

    isdecimal()

    Возвращает true, если все символы строки являются десятичными.

    isdigit()

    Возвращает true, если все символы являются цифрами и есть хотя бы один символ, иначе False.

    isidentifier()

    Возвращает true, если строка является действительным идентификатором.

    islower()

    Возвращает true, если символы строки находятся в нижнем регистре, иначе false.

    isnumeric()

    Возвращает true, если строка содержит только числовые символы.

    isprintable()

    Возвращает true, если все символы строки являются печатными или строка пустая, в противном случае возвращает false.

    isupper()

    Возвращает true, если символы строки находятся в верхнем регистре, иначе False.

    isspace()

    Возвращает true, если символы строки являются пробелами, иначе false.

    istitle()

    Возвращает true, если строка имеет правильный заголовок, и false в противном случае. Заголовок строки - это строка, в которой первый символ в верхнем регистре, а остальные символы в нижнем регистре.

    join(seq)

    Он объединяет строковое представление заданной последовательности.

    len(string)

    Возвращает длину строки.

    ljust(width[,fillchar])

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

    lower()

    Он преобразует все символы строки в нижний регистр.

    lstrip()

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

    partition()

    Он ищет разделитель sep в строке и возвращает часть перед ним, сам разделитель и часть после него. Если разделитель не найден, возвращается кортеж в виде переданной строка и двух пустых строк.

    maketrans()

    Возвращает таблицу перевода для использования в функции translate.

    replace(old,new[,count])

    Заменяет старую последовательность символов на новую. Если задано значение max, то заменяются все вхождения.

    rfind(str,beg=0,end=len(str))

    Похож на find, но обходит строку в обратном направлении.

    rindex(str,beg=0,end=len(str))

    Это то же самое, что и index, но обходит строку в обратном направлении.

    rjust(width,[,fillchar])

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

    rstrip()

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

    rsplit(sep=None, maxsplit = -1)

    Он аналогичен функции split(), но обрабатывает строку в обратном направлении. Возвращает список слов в строке. Если разделитель не указан, то строка разделяется в соответствии с пробелами.

    split(str,num=string.count(str))

    Разделяет строку в соответствии с разделителем str. Строка разделяется по пробелу, если разделитель не указан. Возвращает список подстрок, скомпонованных с разделителем.

    splitlines(num=string.count('\n'))

    Он возвращает список строк в каждой строке с удаленной строкой.

    startswith(str,beg=0,end=len(str))

    Возвращает булево значение, если строка начинается с заданной строки между begin и end.

    strip([chars])

    Он используется для выполнения функций lstrip() и rstrip() над строкой.

    swapcase()

    Он инвертирует регистр всех символов в строке.

    title()

    Он используется для преобразования строки в заглавный регистр, т.е. строка meEruT будет преобразована в Meerut.

    translate(table,deletechars = '')

    Он переводит строку в соответствии с таблицей перевода, переданной в функцию .

    upper()

    Он преобразует все символы строки в верхний регистр.

    zfill(width)

    Возвращает исходную строку, дополненную нулями минимального количества символов (параметр width); предназначена для чисел, zfill() сохраняет любой заданный знак (за вычетом одного нуля).

    rpartition()

    Ищет последнее вхождение указанной строки и разбивает строку на кортеж, содержащий три элемента (часть перед указанной строкой, саму строку и часть после нее).


    написать администратору сайта