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

Строки. Функции и методы строк | Python 3
На чтение
21 мин.
Просмотров
72
Дата обновления
10.03.2025
#COURSE##INNER#

Для работы со строками в Python 3 доступно множество мощных функций и методов. Функция len(), например, возвращает длину строки, а метод upper() преобразует строку в верхний регистр. Знание этих инструментов существенно упрощает обработку и манипуляции с текстовыми данными.

Метод lower() позволяет преобразовать все символы строки в нижний регистр. Важно понимать, как использовать эти методы для эффективного решения задач. Пример: если вы хотите найти все вхождения подстроки в строке, используйте метод count().

Метод find() ищет заданную подстроку и возвращает индекс её первого вхождения. Если подстроки нет, возвращает -1. Также полезен метод replace() для замены подстрок в строке.

Например, чтобы получить подстроку, начиная с определённой позиции, используйте срезы. Срезы строк – очень мощный инструмент, с помощью которого можно извлекать части исходной строки. Используйте метод split() для разделения строки по разделителю (по умолчанию пробел). Запомните эти базовые функции и методы, чтобы эффективно манипулировать строками в Python 3.

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

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

Функции:

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

Пример: len("Привет") == 6

str() преобразует объект в строковый тип.

Пример: str(123) == "123"

max() и min() находят максимальный и минимальный символ в строке (в лексикографическом порядке).

Пример: max("abc") == "c", min("zyx") == "x"

Методы строк:

upper() и lower() преобразуют строку к верхнему и нижнему регистру соответственно.

Пример: "hello".upper() == "HELLO", "WORLD".lower() == "world"

replace() заменяет все вхождения одной подстроки на другую.

Пример: "apple apple".replace("apple", "banana") == "banana banana"

split() разбивает строку на список подстрок по указанному разделителю (по умолчанию пробел).

Пример: "apple,banana,orange".split(",") == ['apple', 'banana', 'orange']

strip() удаляет пробелы с начала и конца строки.

Пример: " hello ".strip() == "hello"

find() находит первое вхождение подстроки, возвращает индекс, или -1 если подстрока не найдена.

Пример: "hello world".find("world") == 6,"hello world".find("xyz") == -1

count() считает количество вхождений подстроки в строке.

Пример: "hello hello".count("hello") == 2

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

Для создания строковых литералов в Python используются одинарные ('...') или двойные ("...") кавычки.

Примеры:

  • 'Привет, мир!'
  • "Это строка"
  • 'Это строка с апострофом: "пример"'
  • "Строка с двойной кавычкой: 'пример'"
  • """Многострочная

    строка.

    Можно использовать для

    документации."""

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

  • (новая строка)
  • \t (табуляция)
  • \\ (обратная косая черта)
  • \' (одинарная кавычка внутри строки, если строка в одинарных кавычках)
  • \" (двойная кавычка внутри строки, если строка в двойных кавычках)

Примеры использования:

  1. Извлечение подстроки:

    строка = "Привет, мир!"
    подстрока = строка[7:] # Получаем "мир!"

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

    строка1 = "Привет"
    строка2 = "мир"
    объединенная_строка = строка1 + ", " + строка2 + "!"
    # Результат: "Привет, мир!"

  3. Длина строки:

    строка = "Python"
    длина = len(строка) # длина = 6

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

Индексация и срезы строк

Для доступа к отдельным символам в строке используется индексация. Первый символ имеет индекс 0, второй – 1, и так далее.

Пример:

строка = "Привет мир!"

print(строка[0]) # Выведет "П"

print(строка[7]) # Выведет "м"

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

Пример:

print(строка[-1]) # Выведет "!"

print(строка[-5]) # Выведет "р"

Срезы позволяют получить подстроку. Синтаксис: строка[начало:конец:шаг].

Пример:

print(строка[0:6]) # Выведет "Привет" (до, но не включая символ с индексом 6)

print(строка[7:]) # Выведет "мир!" (с индекса 7 до конца)

print(строка[::2]) # Выведет "Пвт мр" (каждый второй символ)

print(строка[::-1]) # Выведет "!рим евиртП" (строка в обратном порядке)

Рекомендация: Используйте срезы для удобного выделения фрагментов строк. Не забудьте о вариативности использования отрицательных индексов для эффективного доступа к подстрокам.

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

Для преобразования и работы со строками в Python 3 доступен богатый набор методов. Ниже представлены наиболее полезные из них.

Метод Описание Пример Результат
strip() Удаляет пробелы (с обеих сторон) " строка ".strip() "строка"
lstrip() Удаляет пробелы слева " строка".lstrip() "строка"
rstrip() Удаляет пробелы справа "строка ".rstrip() "строка"
lower() Преобразует строку в нижний регистр "СТРОКА".lower() "строка"
upper() Преобразует строку в верхний регистр "строка".upper() "СТРОКА"
replace(old, new) Заменяет вхождение old на new "строка строка".replace("строка", "текст") "текст текст"
split(sep) Разбивает строку по разделителю "слово1,слово2,слово3".split(",") ['слово1', 'слово2', 'слово3']
isdigit() Проверяет, состоит ли строка только из цифр "123".isdigit() True
isalpha() Проверяет, состоит ли строка только из букв "abc".isalpha() True
find(substring) Возвращает индекс первого вхождения подстроки "строка".find("ка") 2

Используйте эти методы для эффективной работы со строковыми данными в программах Python 3.

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

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

find() и rfind() находят первое вхождение подстроки слева (find()) или справа (rfind()). Важно: возвращает индекс подстроки, или -1, если не найдено.

Пример:

text = "Привет мир, мир!"
result = text.find("мир")  # 7
result2 = text.rfind("мир") # 11
print(result)  # Выведет 7
print(result2) # Выведет 11

index() и rindex() работают аналогично find() и rfind(), но генерируют исключение ValueError, если подстрока не найдена.

Пример альтернативы:

text = "Привет мир, мир!"
try:
result = text.index("нет такой")
except ValueError:
print("Подстроки не найдено")

count() считает количество вхождений подстроки.

Пример:

text = "Привет мир, мир!"
count = text.count("мир") # 2
print(count)  # Выведет 2

startswith() и endswith() проверяют, начинается ли строка или заканчивается ли она указанной подстрокой.

Пример:

text = "Привет мир"
is_starts_with_privet = text.startswith("Привет") # True
is_ends_with_mir = text.endswith("мир") # True
print(is_starts_with_privet) # True
print(is_ends_with_mir) # True

replace() заменяет все вхождения одной подстроки на другую.

Пример:

text = "Привет мир, мир!"
new_text = text.replace("мир", "вселенная")
print(new_text) # Привет вселенная, вселенная!

Использование регулярных выражений для работы со строками

Для поиска и обработки текста с определёнными шаблонами в Python используйте регулярные выражения (regex). Библиотека re предоставляет мощные инструменты для этой задачи.

Пример 1: Поиск email-адресов.

  • Шаблон: \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b

Найдёт адреса, состоящие из локальной части, символа "@" и доменной части с расширением.

import re
text = "Мой email: test@example.com и ещё user+test@sub.co.uk"
matches = re.findall(r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b", text)

Пример 2: Валидация телефонных номеров.

  • Шаблон: ^\+?[1-9][0-9]{9,12}$

Проверяет, соответствует ли строка шаблону телефонного номера (с или без +).

import re
phone_numbers = ["+79991234567", "1234567890", "123 "]
for number in phone_numbers:
if re.match(r"^\+?[1-9][0-9]{9,12}$", number):
print(f"Номер {number} корректный")
else:
print(f"Номер {number} некорректный")

Пример 3: Замена части строки.

  1. Используйте re.sub() для замены всех вхождений шаблона.
import re
text = "Купить 10 кг яблок и 5 кг груш"
new_text = re.sub(r"(\d+)\s+кг", r"\1 \(кг\)", text)

В этих примерах re.findall() находит все совпадения, re.match() проверяет начало строки, а re.sub() производит замену.

Регулярные выражения – мощный инструмент для обработки текста. Ознакомьтесь с документацией Python для получения дополнительной информации и расширенных возможностей.

Практические примеры использования строк

Для создания уникальных идентификаторов используйте hash-функции. Например, для строки "Мой текст":

import hashlib
строка = "Мой текст"
хэш = hashlib.sha256(строка.encode()).hexdigest()
print(хэш)

Этот код генерирует уникальный хэш. Применяйте такие методы для защиты паролей и идентификации файлов.

Работа с датой и временем. Преобразуйте строку в дату, например:

from datetime import datetime
строка_дата = "2024-10-27"
дата = datetime.strptime(строка_дата, "%Y-%m-%d")
print(дата)

Получите строку из объекта даты:

print(дата.strftime("%d.%m.%Y"))

Обработка текстовых данных. Найдите все вхождения определённого слова:

текст = "Это пример текстовой строки. Это пример."
слово = "пример"
находки = [i for i in range(len(текст)) if текст[i:i + len(слово)] == слово]
print(находки)

Это пример поиска всех позиций слова "пример". Используйте методы find(), rfind() в зависимости от нужной позиции.

Или для разделения строки по разделителю:

строка = "Один;Два;Три"
разделитель = ";"
фрагменты = строка.split(разделитель)
print(фрагменты)

Форматирование строк. Форматируйте строку эффективно:

имя = "Иван"
возраст = 30
форматированная_строка = f"Привет, {имя}! Вам {возраст} лет."
print(форматированная_строка)

Вопрос-ответ:

0 Комментариев
Комментариев на модерации: 0
Оставьте комментарий