Что делюат методы upper и lower python?
Метод str.lower возвращает копию строки, где все буквы строчные. А метод str.upper() возвращает копию строки, где все буквы заглавные.
string = 'Hello World!' string.lower() # 'hello world!' string.upper() # 'HELLO WORLD!'
str.lower
Python 3: Алгоритм приведения к нижнему регистру описан в параграфе 3.13 стандарта Unicode.
Python 2: Для строк с 8-битами на символ (юникод) работа метода зависит от текущей локали.
На заметку
Для приведения символов строки к верхнему регистру используйте метод upper(). Для проверки того, содержит ли строка только символы в нижнем регистре используйте islower().
str.lower().islower() может возвращать False , если строка содержит только символы не поддерживающие приведение к регистру: ’12’.lower().islower() # False
Как использовать метода lower?
преподаватель сказал, что задача решена правильно, но нужно сделать её через метод lower, покопался в сети, посмотрел про него( он записывает все символы в нижнем регистре, но не могу применить её в данной задаче.
Отслеживать
51.6k 201 201 золотой знак 63 63 серебряных знака 245 245 бронзовых знаков
задан 22 июн 2021 в 10:11
Александр Невский Александр Невский
19 5 5 бронзовых знаков
Вопросы с просьбами помочь с отладкой («почему этот код не работает?») должны включать желаемое поведение, конкретную проблему или ошибку и минимальный код для её воспроизведения прямо в вопросе. Вопросы без явного описания проблемы бесполезны для остальных посетителей
22 июн 2021 в 11:00
Код в вопросе должен быть в текстовом виде. Никаких скриншотов.
22 июн 2021 в 11:01
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Вот ещё один вариант решения 🙂
days = ['понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота', 'воскресенье'] day = input('Введите день недели: ').lower() if day in days: print(f"Номер дня недели: ") else: print("Введите день недели!")
То, что в квадратных скобках — это список (массив, другими словами): более подробно прочитать можно здесь.
if day in days — это проверка, находится ли пользовательский ввод в нашем списке (массиве) значений. В days лежат наши дни недели, а в переменной day то, что вводит пользователь. Например, если юзер напишет ЧеТвЕрГ , то с помощью функции lower() ввод сконвертируется в нижний регистр и получится четверг. И как видно, в списке days есть наш день недели четверг.
Функция index() это одна из большого количества функций, которые можно применять к спискам. index() возвращает номер элемента в списке. То есть мы ищем, каким по счёту находится введённый пользователем день в массиве days .
days = ['понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота', 'воскресенье'] day = 'четверг' print(days.index(day)) # 3
Вернет нам число 3, потому что элементы в списках всегда начинаются с нуля. 0 — первый элемент, 1 — второй, и так далее.
Более подробно можно прочитать здесь.
Lower python что это
Рассмотрим основные методы строк, которые мы можем применить в приложениях:
- isalpha() : возвращает True, если строка состоит только из алфавитных символов
- islower() : возвращает True, если строка состоит только из символов в нижнем регистре
- isupper() : возвращает True, если все символы строки в верхнем регистре
- isdigit() : возвращает True, если все символы строки — цифры
- isnumeric() : возвращает True, если строка представляет собой число
- startswith(str) : возвращает True, если строка начинается с подстроки str
- endswith(str) : возвращает True, если строка заканчивается на подстроку str
- lower() : переводит строку в нижний регистр
- upper() : переводит строку в вехний регистр
- title() : начальные символы всех слов в строке переводятся в верхний регистр
- capitalize() : переводит в верхний регистр первую букву только самого первого слова строки
- lstrip() : удаляет начальные пробелы из строки
- rstrip() : удаляет конечные пробелы из строки
- strip() : удаляет начальные и конечные пробелы из строки
- ljust(width) : если длина строки меньше параметра width, то справа от строки добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по левому краю
- rjust(width) : если длина строки меньше параметра width, то слева от строки добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по правому краю
- center(width) : если длина строки меньше параметра width, то слева и справа от строки равномерно добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по центру
- find(str[, start [, end]) : возвращает индекс подстроки в строке. Если подстрока не найдена, возвращается число -1
- replace(old, new[, num]) : заменяет в строке одну подстроку на другую
- split([delimeter[, num]]) : разбивает строку на подстроки в зависимости от разделителя
- partition(delimeter) : разбивает строку по разделителю на три подстроки и возвращает кортеж из трех элементов — подстрока до разделителя, разделитель и подстрока после разделителя
- join(strs) : объединяет строки в одну строку, вставляя между ними определенный разделитель
Например, если мы ожидаем ввод с клавиатуры числа, то перед преобразованием введенной строки в число можно проверить, с помощью метода isnumeric() введено ли в действительности число, и если так, то выполнить операцию преобразования:
string = input("Введите число: ") if string.isnumeric(): number = int(string) print(number)
Проверка, начинается или оканчивается строка на определенную подстроку:
file_name = "hello.py" starts_with_hello = file_name.startswith("hello") # True ends_with_exe = file_name.endswith("exe") # False
Удаление пробелов в начале и в конце строки:
string = " hello world! " string = string.strip() print(string) # hello world!
Дополнение строки пробелами и выравнивание:
print("iPhone 7:", "52000".rjust(10)) print("Huawei P10:", "36000".rjust(10))
iPhone 7: 52000 Huawei P10: 36000
Поиск в строке
Для поиска подстроки в строке в Python применяется метод find() , который возвращает индекс первого вхождения подстроки в строку и имеет три формы:
- find(str) : поиск подстроки str ведется с начала строки до ее конца
- find(str, start) : параметр start задает начальный индекс, с которого будет производиться поиск
- find(str, start, end) : параметр end задает конечный индекс, до которого будет идти поиск
Если подстрока не найдена, метод возвращает -1:
welcome = "Hello world! Goodbye world!" index = welcome.find("wor") print(index) # 6 # поиск с 10-го индекса index = welcome.find("wor",10) print(index) # 21 # поиск с 10 по 15 индекс index = welcome.find("wor",10,15) print(index) # -1
Замена в строке
Для замены в строке одной подстроки на другую применяется метод replace() :
- replace(old, new) : заменяет подстроку old на new
- replace(old, new, num) : параметр num указывает, сколько вхождений подстроки old надо заменить на new. По умолчанию num равно -1, что соответствует первой версии метода и приводит к замене всех вхождений.
phone = "+1-234-567-89-10" # замена дефисов на пробел edited_phone = phone.replace("-", " ") print(edited_phone) # +1 234 567 89 10 # удаление дефисов edited_phone = phone.replace("-", "") print(edited_phone) # +12345678910 # замена только первого дефиса edited_phone = phone.replace("-", "", 1) print(edited_phone) # +1234-567-89-10
Разделение на подстроки
Метод split() разбивает строку на список подстрок в зависимости от разделителя. В качестве разделителя может выступать любой символ или последовательность символов. Данный метод имеет следующие формы:
- split() : в качестве разделителя используется пробел
- split(delimeter) : в качестве разделителя используется delimeter
- split(delimeter, num) : параметр num указывает, сколько вхождений delimeter используется для разделения. Оставшаяся часть строки добавляется в список без разделения на подстроки
text = "Это был огромный, в два обхвата дуб, с обломанными ветвями и с обломанной корой" # разделение по пробелам splitted_text = text.split() print(splitted_text) print(splitted_text[6]) # дуб, # разбиение по запятым splitted_text = text.split(",") print(splitted_text) print(splitted_text[1]) # в два обхвата дуб # разбиение по первым пяти пробелам splitted_text = text.split(" ", 5) print(splitted_text) print(splitted_text[5]) # обхвата дуб, с обломанными ветвями и с обломанной корой
Еще один метод — partition() разбивает строку по разделителю на три подстроки и возвращает кортеж из трех элементов — подстрока до разделителя, разделитель и подстрока после разделителя:
text = "Это был огромный, в два обхвата дуб, с обломанными ветвями и с обломанной корой" text_parts = text.partition("дуб") print(text_parts) # ('Это был огромный, в два обхвата ', 'дуб', ', с обломанными ветвями и с обломанной корой')
Если разделитель с строке не найден, то возвращается кортеж с одной строкой.
Соединение строк
При рассмотрении простейших операций со строками было показано, как объединять строки с помощью операции сложения. Другую возможность для соединения строк представляет метод join() : он объединяет список строк. Причем текущая строка, у которой вызывается данный метод, используется в качестве разделителя:
words = ["Let", "me", "speak", "from", "my", "heart", "in", "English"] # разделитель - пробел sentence = " ".join(words) print(sentence) # Let me speak from my heart in English # разделитель - вертикальная черта sentence = " | ".join(words) print(sentence) # Let | me | speak | from | my | heart | in | English
Вместо списка в метод join можно передать простую строку, тогда разделитель будет вставляться между символами этой строки:
word = "hello" joined_word = "|".join(word) print(joined_word) # h|e|l|l|o