Как использовать метод lower() в Python

Метод lower() — один из многих встроенных в Python методов для работы со строками. Он крайне удобен и прост в использовании.

В этой статье мы на примерах рассмотрим, как с помощью данного метода переводить строки в нижний регистр. Однако давайте начнем с определения строки в Python.

Хотите скачать книги по Python в 2 клика? Тогда вам в наш телеграм канал PythonBooks 

Что такое строка?

Строка — это тип данных в Python. Строка записывается как последовательность символов, заключенная в одинарные или двойные кавычки.

К примеру, строка может выглядеть так:

>>> example_string = 'I am a String!'
>>> example_string
'I am a String!'

Подробнее про строки можно почитать в статье «Строки в Python 3. Введение в работу со строками».

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

Что такое метод?

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

Иногда вы можете задаться вопросом, существует ли какой-то метод. В Python можно посмотреть весь список строковых методов, используя функцию dir() со строкой в ​​качестве аргумента:

>>> dir(example_string)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

Точно так же, при помощи функции dir(), можно узнать методы и других типов данных.

В этой статье мы рассмотрим лишь один строковый метод — lower(). Познакомиться с другими методами строк можно, заглянув в статью «Методы строк в Python».

[python_ad_block]

Как работает метод lower()?

Метод lower() — это строковый метод, который возвращает новую строку полностью в нижнем регистре. Если исходная строка содержит прописные буквы, в новой строке они будут строчными. При этом любая строчная буква или любой символ, не являющийся буквой, не изменяется.

Например, можно использовать метод lower() вот так:

>>> example_string.lower()
'i am a string!'

>>> 'PYTHONIST'.lower()
'pythonist'

Что следует учитывать при использовании метода lower()

Метод lower() делает довольно простую вещь. Он создает новую строку, в которой все прописные буквы меняются на строчные. Но есть несколько моментов, о которых следует помнить при его использовании.

Строки неизменяемы

Строки являются неизменяемым типом данных. Это означает, что их нельзя поменять после создания, только перезаписать заново. Поэтому исходная строка после использования метода lower() остается неизменной.

В приведенных выше примерах метод lower() применяется к строке example_string, но он ее не изменяет. Проверьте значение example_string и вы увидите, что оно осталось прежним:

>>> example_string
'I am a String!'

>>> example_string.lower()
'i am a string!'

>>> example_string
'I am a String!'

Метод lower() возвращает новую строку

lower() возвращает новую строку. Этот момент логически вытекает из предыдущего. Следовательно, если вы хотите использовать результат работы метода в дальнейшем, вам нужно сохранить его в новую переменную. Сделать это можно таким образом:

>>> new_string = example_string.lower()

>>> new_string
'i am a string!'

Строки чувствительны к регистру

Строки чувствительны к регистру, поэтому строка нижнего регистра отличается от строки верхнего регистра. Это явно видно из примера ниже:

>>> 'pythonist' == 'PYTHONIST'
False

Именно эта особенность строк делает метод lower() полезным при написании скриптов или программ для работы со строками.

Пример работы метода lower(): проверяем пользовательский ввод

Давайте напишем небольшой скрипт, который задает пользователю вопрос, ждет пользовательский input, а затем дает обратную связь об ответе пользователя.

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

answer = input("What color is the sun? ")
if answer == "yellow":
    print("Correct!")
else:
    print("That is not the correct color!")

Скрипт задает пользователю вопрос "What color is the sun?" («Какого цвета солнце?») и ждет от него ответа. Затем программа проверяет, совпадает ли ответ с "yellow" (желтый), и если да, то печатает "Correct!" («Правильно!»). Если пользователь введет другой ответ, программа напечатает "That is not the correct color!" («Это неправильный цвет!»).

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

$ python sun_color.py
What color is the sun? 

Но если вы ответите "Yellow" («Желтый»), то программа ответит, что цвет неправильный:

$ python sun_color.py
What color is the sun? Yellow
That is not the correct color!

Почему так происходит?

Помните, что строки чувствительны к регистру. Программа проверяет, совпадает ли пользовательский ответ со строкой yellow. Однако  — Yellow с заглавной буквой Y — это совершенно другая строка.

Вы можете легко исправить это, используя метод lower() и внеся небольшое изменение в программу. Давайте перепишем ее следующим образом:

answer = input("What color is the sun? ")
if answer.lower() == "yellow":
  print("Correct!")
else:
  print("That is not the correct color!")

И вот теперь, запустив программу заново, вы получите ожидаемое поведение:

>>> python sun_color.py
What color is the sun? Yellow
Correct!

Что изменилось? Указав answer.lower(), вы переводите пользовательский input в нижний регистр, а уж затем сравниваете результат с правильной строкой ответа yellow. Таким образом, не имеет значения, напишет пользователь YELLOW, yELLOW, yellow или как-то ещё — все это преобразуется в нижний регистр.

Заключение

Итак, мы повторили, что такое строки, узнали, как посмотреть все доступные строковые методы, и рассмотрели один из них — метод lower().

Надеемся, данная статья была для вас полезна! Успехов в написании кода!

Перевод статьи «Python Lowercase – How to Use the String lower() Function».