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

Python предоставляет множество встроенных методов для работы со строками.
Рассмотрим некоторые из них: split(), join(), strip(), а также другие полезные методы.


Метод split()

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

Пример:
text = "Hello, world! This is Python." words = text.split() # Разделение по пробелам print(words) # ['Hello,', 'world!', 'This', 'is', 'Python.'] # Разделение по запятой parts = text.split(',') print(parts) # ['Hello', ' world! This is Python.']

Задача разделения строки невероятно часто встречается при разработке веб-приложений, одна из частых задач, разбиение URL адреса по символу /, для получения частей адреса.


Метод join()

Метод join() объединяет элементы списка (или другого итерируемого объекта) в одну строку, используя строку, к которой применяется метод, в качестве разделителя.

Пример:
words = ['Hello', 'world', 'Python'] sentence = ' '.join(words) # Объединение с пробелом print(sentence) # 'Hello world Python' # Объединение с другим разделителем hyphenated = '-'.join(words) print(hyphenated) # 'Hello-world-Python'

Метод strip()

Метод strip() удаляет пробельные символы (или другие указанные символы) с начала и конца строки.

Пример:
text = " Hello, world! " cleaned = text.strip() print(cleaned) # 'Hello, world!' # Удаление конкретных символов text = "!!!Hello, world!!!" cleaned = text.strip('!') print(cleaned) # 'Hello, world'

Метод replace()

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

Пример:
text = "Hello, world!" new_text = text.replace("world", "Python") print(new_text) # 'Hello, Python!''

Метод find()

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

Пример:
text = "Hello, world!" index = text.find("world") print(index) # 7 index = text.find("Python") print(index) # -1

Метод startswith() и endswith()

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

Пример:
text = "Hello, world!" print(text.startswith("Hello")) # True print(text.endswith("world!")) # True

Метод lower() и upper()

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

Пример:
text = "Hello, World!" print(text.lower()) # 'hello, world!' print(text.upper()) # 'HELLO, WORLD!'

Представьте, что вы запрашиваете E-mail в качестве логина пользователя для авторизации. Пользователь может написать Email как с большой так и маленькой буквы, а ваша задача проверить такого пользователя на наличие в базе данных.
Что-бы информация переданная пользвателем соответствовала данным в базе данных, мы должны принимать их в едином формате, поэтому, получив от пользователя что-то типо "Example@site.com", мы с помощью метода lower() мы превращаем его в "example@site.com" и далее уже проверяем его наличие в базе данных.


Метод count()

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

Пример:
text = "Hello, world! Hello, Python!" count = text.count("Hello") print(count) # 2'

Метод isalpha(), isdigit(), isalnum()

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

Пример:
print("Hello".isalpha()) # True print("123".isdigit()) # True print("Hello123".isalnum()) # True

Как вы уже наверное догадались, таким образом мы можем валидировать данные которые приходят нам в программу. Например, при регистрации пользователь введёт пароль состоящий только из чисел. Мы можем проверить этот факт и сказать пользователю, что такой пароль небезопасен!


Метод format()

Пример:
name = "Alice" age = 25 text = "My name is {} and I am {} years old.".format(name, age) print(text) # 'My name is Alice and I am 25 years old.'

Метод f-строки (начиная с Python 3.6)

F-строки предоставляют удобный способ встраивания выражений в строки.

Пример:
name = "Alice" age = 25 text = f"My name is {name} and I am {age} years old." print(text) # 'My name is Alice and I am 25 years old.'

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

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

У пользователя запрашивается Имя, Email, Пароль
1) Необходимо убедиться, что имя не содержит чисел и удалить пробелы в начале и конце строки.
2) Необходимо убедиться, что email содержит символ @, а так-же преобразовать его к нижнему регистру.
3) Необходимо убедиться, что пароль содержит не менее 8 символов и не состоит только из чисел

Решение:

Для решения задачи можно использовать методы работы со строками, такие как strip(), isalpha(), lower(), find(), len(), и isdigit().

# Запрашиваем данные у пользователя name = input("Введите ваше имя: ") email = input("Введите ваш email: ") password = input("Введите ваш пароль: ") # 1) Проверка имени name = name.strip() # Удаляем пробелы в начале и конце if not name.isalpha(): # Проверяем, что имя состоит только из букв print("Ошибка: Имя не должно содержать чисел или специальных символов.") else: print(f"Имя введено корректно: {name}") # 2) Проверка email email = email.lower() # Преобразуем email к нижнему регистру if email.find('@') == -1: # Проверяем, содержит ли email символ '@' print("Ошибка: Email должен содержать символ '@'.") else: print(f"Email введен корректно: {email}") # 3) Проверка пароля if len(password) < 8: # Проверяем, что пароль содержит не менее 8 символов print("Ошибка: Пароль должен содержать не менее 8 символов.") elif password.isdigit(): # Проверяем, что пароль не состоит только из цифр print("Ошибка: Пароль не должен состоять только из чисел.") else: print("Пароль введен корректно.")
Пояснение:
  1. Имя:
    • Используем метод strip() для удаления пробелов в начале и конце строки.
    • Используем метод isalpha() для проверки, что имя состоит только из букв.
  2. Email:
    • Используем метод lower() для преобразования email к нижнему регистру.
    • Используем метод find() для проверки наличия символа @.
  3. Пароль:
    • Используем функцию len() для проверки длины пароля (не менее 8 символов).
    • Используем метод isdigit() для проверки, что пароль не состоит только из цифр.
Пример работы программы:
Введите ваше имя:  John123
Введите ваш email:  EXAMPLE@GMAIL.COM
Введите ваш пароль:  12345678

Ошибка: Имя не должно содержать чисел или специальных символов.
Email введен корректно: example@gmail.com
Ошибка: Пароль не должен состоять только из чисел.

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


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

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


Комментарии

Добавить комментарий

Чтобы оставить комменатрий необходимо Авторизоваться