🎉 Добавлен материал по 9 заданию
Python
Строки

Строки в Python: полное руководство

Строки являются одним из базовых типов данных в Python. Это последовательности символов, которые можно использовать для хранения текстовой информации. В этом руководстве мы рассмотрим основные аспекты работы со строками, включая индексацию, срезы и методы строк.

💡Важно знать

В Python строки неизменяемы (immutable) — после создания строки вы не можете изменить её содержимое. Любые операции, которые "изменяют" строку, на самом деле создают новую строку.

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

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

# Все эти переменные содержат строки
single_quotes = 'Привет, мир!'
double_quotes = "Привет, мир!"
triple_quotes = '''Привет,
мир!'''
triple_double = """Документационная
строка"""
Совет

Тройные кавычки удобны для создания многострочных строк.

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

Каждый символ в строке имеет свой индекс, начиная с 0 для первого символа. Отрицательные индексы используются для доступа к символам с конца строки, где -1 обозначает последний символ.

Положительная индексация

text = "Python"
 
print(text[0])  # 'P'
print(text[1])  # 'y'
print(text[5])  # 'n'

Индексация начинается с 0, поэтому text[0] — это первый символ.

Отрицательная индексация

text = "Python"
 
print(text[-1])  # 'n'
print(text[-2])  # 'o'
print(text[-6])  # 'P'

Отрицательные индексы считаются с конца строки. text[-1] — это последний символ.

⚠️Предупреждение

Попытка доступа к индексу за пределами строки вызовет ошибку IndexError. Например, text[6] или text[-7] для строки "Python" приведут к ошибке.

Срезы строк

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

text = "Python Programming"
 
# Срезы с положительными индексами
print(text[0:6])      # "Python"
print(text[7:18])     # "Programming"
 
# Срезы с опущенными индексами
print(text[:6])       # "Python" (с начала до 6)
print(text[7:])       # "Programming" (от 7 до конца)
print(text[:])        # "Python Programming" (вся строка)
 
# Срезы с шагом
print(text[::2])      # "Pto rgamn" (каждый второй символ)
print(text[0:6:2])    # "Pto" (каждый второй символ от 0 до 6)
 
# Срезы с отрицательными индексами
print(text[-11:-1])   # "Programmin" (11 символов с конца до предпоследнего)
print(text[:-7])      # "Python Pro" (с начала до 7 символов с конца)
💡

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

Обратный порядок строки

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

text = "Python"
reversed_text = text[::-1]  # "nohtyP"

Методы строк

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

Методы изменения регистра

text = "Python Programming"
 
print(text.upper())      # "PYTHON PROGRAMMING"
print(text.lower())      # "python programming"
print(text.title())      # "Python Programming"
print(text.capitalize()) # "Python programming"
print(text.swapcase())   # "pYTHON pROGRAMMING"

Методы поиска и проверки

text = "Python Programming"
 
print(text.find("Pro"))     # 7 (возвращает индекс или -1 если нет этой подстроки)
print(text.index("Pro"))    # 7 (возвращает индекс или ошибку)
print(text.count("P"))      # 2 (количество вхождений)
print(text.startswith("Py")) # True если начинается с "Ру"
print(text.endswith("ing"))  # True если заканчивается на "ing"
print("123".isdigit())       # True
print("abc".isalpha())       # True
print("Python123".isalnum()) # True
print("   ".isspace())       # True

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

text = "  Python  "
 
print(text.strip())         # "Python" (удаляет пробелы с обоих концов)
print(text.lstrip())        # "Python  " (удаляет пробелы слева)
print(text.rstrip())        # "  Python" (удаляет пробелы справа)
 
sentence = "Python,Java,C++,JavaScript"
print(sentence.split(","))  # ["Python", "Java", "C++", "JavaScript"]
 
words = ["Python", "Programming", "Language"]
print(" ".join(words))      # "Python Programming Language"
 
bad_text = "Python\tProgramming\nLanguage"
print(bad_text.expandtabs(4))  # Заменяет табуляции на 4 пробела

Методы замены в строках

text = "Python is amazing, Python is fun"
 
print(text.replace("Python", "JavaScript"))
# "JavaScript is amazing, JavaScript is fun"
 
print(text.replace("Python", "JavaScript", 1))
# "JavaScript is amazing, Python is fun"
🛑Внимание

Помните, что строки в Python неизменяемы! Все методы, которые "изменяют" строку, на самом деле возвращают новую строку. Оригинальная строка остается неизменной.

Заключение

Строки в Python — мощный и гибкий инструмент для работы с текстовыми данными. Понимание индексации, срезов и встроенных методов строк необходимо для эффективного программирования на Python.

💡Дополнительные ресурсы

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