Добро пожаловать на третий урок нашего курса по программированию на Python! В этом уроке мы подробно изучим строки, которые являются одним из основных типов данных в Python. Мы рассмотрим, что такое строки, как их создавать, объединять (конкатенация), форматировать, а также познакомимся с основными методами для работы со строками.\
В данную статью добавлены ссылки на github в каждом примере. Так же общая ссылка на github для данного урока:
Что такое строки?
Строка в Python — это последовательность символов, заключённых в одинарные ('...'), двойные ("...") или тройные кавычки ('''...''' или """..."""). Строки используются для хранения и обработки текстовой информации.
Примеры строк:
"Hello, World!"
'Python — это здорово!'
"""Это многострочная
строка"""
'''Ещё один
пример многострочной
строки'''
Создание строк.
Строки можно создавать, присваивая текст переменным или напрямую используя их в выражениях.
Присваивание строк переменным:
# Присваивание строк переменным
message = "Привет, мир!"
name = 'Михаил'
Многострочные строки:
Многострочные строки создаются с помощью тройных кавычек.
# Многострочные строки
text = """Это пример
многострочной строки.
Она может занимать несколько
строк."""
Экранирование символов:
Если нужно использовать кавычки внутри строки, можно воспользоваться экранированием с помощью обратного слэша \.
# Экранирование символов
quote = 'Она сказала: "Привет!"'
escaped_quote = "Он ответил: \"Как дела?\""
Конкатенация строк.
Пример конкатенации:
Конкатенация — это операция объединения строк. В Python это делается с помощью оператора +.
first_name = "Иван"
last_name = "Петров"
full_name = first_name + " " + last_name
print("Полное имя:", full_name)
Конкатенация с повторением:
Оператор * позволяет повторять строку заданное количество раз.
line = "=" * 10
print(line)
Форматирование строк.
Форматирование строк позволяет вставлять значения переменных в строку. В Python существует несколько способов форматирования строк.
Старый способ с оператором %:
name = "Михаил"
age = 30
print("Меня зовут %s, мне %d лет." % (name, age))
Метод str.format():
name = "Михаил"
age = 30
print("Меня зовут {}, мне {} лет.".format(name, age))
Можно также использовать позиции или имена аргументов:
print("Меня зовут {0}, мне {1} лет.".format(name, age))
print("Меня зовут {имя}, мне {возраст} лет.".format(имя=name, возраст=age))
F-строки (f-strings):
Начиная с Python 3.6, можно использовать f-строки для форматирования.
name = "Михаил"
age = 30
print(f"Меня зовут {name}, мне {age} лет.")
F-строки позволяют вставлять выражения непосредственно в строку:
print(f"Через год мне будет {age + 1} лет.")
Форматирование чисел:
Можно задавать формат отображения чисел, например, количество знаков после запятой.
pi = 3.1415926535
print(f"Число Pi: {pi:.2f}")
Методы строк.
Строки в Python являются объектами, которые имеют множество методов для работы с текстом. *Данная тема будет освещена детальнее на более поздних уроках (ООП).
Изменение регистра:
- str.lower() — преобразует строку в нижний регистр.
- str.upper() — преобразует строку в верхний регистр.
- str.capitalize() — делает первую букву заглавной.
- str.title() — делает заглавными первые буквы каждого слова.
Пример:
text = "программирование на python"
print(text.lower()) # программирование на python
print(text.upper()) # ПРОГРАММИРОВАНИЕ НА PYTHON
print(text.capitalize()) # Программирование на python
print(text.title()) # Программирование На Python
Поиск и замена:
- str.find(substring) — возвращает индекс первого вхождения подстроки или -1, если не найдено.
- str.replace(old, new) — заменяет вхождения подстроки old на new.
Пример:
text = "Я люблю Python"
index = text.find("Python")
print("Индекс слова 'Python':", index)
new_text = text.replace("люблю", "изучаю")
print(new_text)
Разделение и объединение строк:
- str.split(separator) — разделяет строку на список подстрок по заданному разделителю.
- separator.join(list) — объединяет элементы списка в строку, вставляя между ними разделитель.
Пример:
fruits = "яблоко,банан,вишня"
fruit_list = fruits.split(",")
print(fruit_list)
new_fruits = "; ".join(fruit_list)
print(new_fruits)
Проверка содержимого строки:
- str.startswith(prefix) — проверяет, начинается ли строка с заданного префикса.
- str.endswith(suffix) — проверяет, заканчивается ли строка заданным суффиксом.
- str.isdigit() — проверяет, состоит ли строка из цифр.
- str.isalpha() — проверяет, состоит ли строка из букв.
- str.isalnum() — проверяет, состоит ли строка из букв и цифр.
Пример:
text = "Python3"
print(text.startswith("Py")) # True
print(text.endswith("3")) # True
print(text.isdigit()) # False
print("12345".isdigit()) # True
print("Hello".isalpha()) # True
print("Hello123".isalnum()) # True
Индексация и срезы строк.
Строки поддерживают индексацию и получение срезов.
Индексация:
Индексы символов в строке начинаются с 0 (*не только в строках. В Python все индексы начинаются с 0. Это важно запомнить).
text = "Python"
print(text[0]) # 'P'
print(text[1]) # 'y'
print(text[-1]) # 'n' (последний символ)
Срезы:
Срезы позволяют получить подстроку из строки.
text = "Программирование"
print(text[0:6]) # 'Програ' (символы с индексом от 0 до 5)
print(text[6:]) # 'ммирование' (символы с индексом от 6 до конца)
print(text[:6]) # 'Програ' (символы от начала до 5)
print(text[::2]) # 'Пормирваие' (каждый второй символ)
print(text[::-1]) # 'еинавориммаргорП' (разворот строки)
Практические примеры.
Пример 1. Обработка пользовательского ввода:
name = input("Введите ваше имя: ")
print(f"Привет, {name.capitalize()}!")
Пример 2. Подсчёт количества слов в предложении:
sentence = input("Введите предложение: ")
word_list = sentence.split()
word_count = len(word_list)
print(f"Количество слов: {word_count}")
Пример 3. Проверка палиндрома:
text = input("Введите слово или фразу: ")
cleaned_text = text.replace(" ", "").lower()
if cleaned_text == cleaned_text[::-1]:
print("Это палиндром.")
else:
print("Это не палиндром.")
Заключение третьего урока.
Сегодня мы изучили:
- Строки в Python и способы их создания.
- Конкатенацию строк и операции над ними.
- Форматирование строк с помощью различных методов, включая f-строки.
- Методы строк, позволяющие выполнять преобразования и проверки.
- Индексацию и срезы, используемые для получения подстрок.
- Практические примеры применения строк в задачах.
Строки являются фундаментальным типом данных, широко используемым в программировании для обработки текстовой информации. Умение работать со строками — необходимый навык для любого программиста.
Домашнее задание:
Задание 1: Извлечение доменного имени из email.
Напишите программу, которая создаёт переменную с email и выводит доменное имя.
Задание 2: Замена символов в строке.
Создайте строку и замените в ней все пробелы на подчёркивания.
Задание 3*: Шифр Цезаря.
Это задание является дополнительным и более сложным. Для его выполнения вам потребуется поискать информацию самостоятельно.
Реализуйте простейший шифр Цезаря. Запросите у пользователя строку и число сдвига, затем выведите зашифрованную строку.
Подсказка: для запроса строки у пользователя используйте input()
Свои домашние работы отправляйте на почтовый ящик homework@kuzinobit.com.
Вопросы для самопроверки:
- Какими способами можно создавать строки в Python?
- Что такое конкатенация строк и как её выполнить в Python?
- Какие способы форматирования строк вы знаете?
- Как получить подстроку из строки в Python?
- Назовите несколько методов строк и их назначение.
Поздравляю с успешным освоением третьего урока! В следующем уроке мы начнём изучать арифметические операции в Python, которые позволят вам выполнять различные вычисления, от сложения и вычитания до более сложных операций. Вы узнаете, как работать с числами, решать математические задачи и использовать эти знания для создания более функциональных программ.
Друзья, ставьте свои лайки и подписывайтесь на канал. Дальше будет только интереснее! До новых встреч!