← Назад к вопросам

Как сделать строку с большой буквы в Python?

1.3 Junior🔥 191 комментариев
#Python Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Преобразование строк в Python: методы для работы с прописными буквами

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

upper() - преобразование в ВЕРХНИЙ РЕГИСТР

text = "hello world"
result = text.upper()
print(result)  # HELLO WORLD

# Применимо ко всем символам строки
text2 = "Hello World 123!"
print(text2.upper())  # HELLO WORLD 123!

lower() - преобразование в нижний регистр

text = "HELLO WORLD"
result = text.lower()
print(result)  # hello world

# Применимо ко всем символам
text2 = "Hello World 123!"
print(text2.lower())  # hello world 123!

capitalize() - первая буква большая, остальные маленькие

text = "hello world"
result = text.capitalize()
print(result)  # Hello world

# Остальные символы становятся LOWERCASE
text2 = "hELLO WORLD"
print(text2.capitalize())  # Hello world

title() - каждое слово с большой буквы

text = "hello world python"
result = text.title()
print(result)  # Hello World Python

# Разделитель - любой неалфавитный символ
text2 = "hello-world python_test"
print(text2.title())  # Hello-World Python_Test

swapcase() - меняет РЕГИСТР

text = "Hello World"
result = text.swapcase()
print(result)  # hELLO wORLD

# Каждый символ переворачивается
text2 = "aBcDeF"
print(text2.swapcase())  # AbCdEf

casefold() - агрессивное приведение к нижнему регистру

# Для специальных символов и других языков
text = "Straße"  # немецкое слово
print(text.lower())      # straße
print(text.casefold())   # strasse

# Полезно при сравнении
text1 = "ß"
text2 = "ss"
print(text1.lower() == text2.lower())      # False
print(text1.casefold() == text2.casefold())  # True

isupper() / islower() / istitle() - проверка регистра

text1 = "HELLO"
text2 = "hello"
text3 = "Hello"

print(text1.isupper())  # True
print(text2.islower())  # True
print(text3.istitle())  # True

# Для пустых строк и без букв
print("123".isupper())  # False
print("".isupper())     # False

Практические примеры

Нормализация пользовательского ввода:

def normalize_email(email):
    return email.lower().strip()

email = "  USER@EXAMPLE.COM  "
print(normalize_email(email))  # user@example.com

def normalize_name(name):
    return name.title()

name = "john doe"
print(normalize_name(name))  # John Doe

Форматирование логов и заголовков:

def format_log_level(level):
    return level.upper()

def format_section_title(title):
    return title.title()

print(format_log_level("debug"))        # DEBUG
print(format_section_title("user info")) # User Info

Сравнение без учета регистра:

def compare_case_insensitive(str1, str2):
    return str1.lower() == str2.lower()

print(compare_case_insensitive("Hello", "HELLO"))  # True
print(compare_case_insensitive("Hello", "hello"))  # True
print(compare_case_insensitive("Hello", "world"))  # False

Преобразование для URL-ов:

title = "My Amazing Blog Post"
slug = title.lower().replace(" ", "-")
print(slug)  # my-amazing-blog-post

# С удалением спец-символов
import re
slug = re.sub(r'[^a-z0-9-]+', '', title.lower().replace(" ", "-"))
print(slug)  # my-amazing-blog-post

Строки из разных языков

# Русский
text = "Привет мир"
print(text.upper())      # ПРИВЕТ МИР
print(text.lower())      # привет мир
print(text.capitalize()) # Привет мир

# Украинский
text = "Привіт світ"
print(text.upper())  # ПРИВІТ СВІТ

# Китайский (нет понятия регистра)
text = "你好世界"
print(text.upper())  # 你好世界 (не изменится)

Таблица методов

МетодВходные данныеРезультат
upper()"hello world""HELLO WORLD"
lower()"HELLO WORLD""hello world"
capitalize()"hello world""Hello world"
title()"hello world""Hello World"
swapcase()"Hello World""hELLO wORLD"
casefold()"Straße""strasse"

Лучшие практики

  • Используйте lower() для нормализации при сравнении
  • Используйте capitalize() или title() для отображения пользователю
  • Помните, что isupper()/islower() возвращают False для пустых строк
  • Для специальных символов используйте casefold()
  • Не переделывайте то, что уже есть в стандартной библиотеке
  • Помните про производительность - методы быстрые, но при работе с миллионами строк может быть узким местом
Как сделать строку с большой буквы в Python? | PrepBro