Isupper: примеры (PYTHON)
isupper: boolОписание метода isupper
Метод str.isupper() является встроенным методом строк (string) в Python. Он применяется для проверки, содержатся ли в строке хотя бы один символ, способный быть в верхнем регистре (например, буквы), и все ли такие символы в строке приведены к верхнему регистру.
Основное назначение - определение, состоит ли текст только из заглавных букв.
Аргументы: Метод не принимает никаких аргументов.
Возвращаемое значение: Булево значение (True или False).
- Возвращает
True, если все символы в строке, которые могут быть приведены к верхнему регистру (т.е. буквы), являются заглавными, и при этом в строке есть хотя бы один такой символ. - Возвращает
Falseв остальных случаях: если строка пуста, если все символы не являются буквами (например, цифры, пробелы, знаки препинания), или если хотя бы одна буква в строке строчная.
Простые примеры использования
Базовые случаи применения метода isupper().
print("PYTHON".isupper())True
print("Python".isupper())False
print("123ABC!".isupper())True
print("hello".isupper())False
print("123!".isupper())False
print("".isupper())False
Похожие строковые методы в Python
str.islower()- проверяет, все ли буквенные символы в строке строчные.str.istitle()- проверяет, начинаются ли все слова в строке с заглавной буквы.str.isalpha()- проверяет, состоит ли строка только из букв.str.isdigit()/str.isnumeric()/str.isdecimal()- проверяют, состоит ли строка только из цифр.str.isalnum()- проверяет, состоит ли строка только из букв и цифр.str.isspace()- проверяет, состоит ли строка только из пробельных символов.
Метод isupper() предпочтительнее использовать, когда требуется именно проверка регистра буквенных символов, а не наличия букв или других символов. Например, для валидации пароля, который должен содержать заглавные буквы.
Частые ошибки и недоразумения
1. Проверка пустой строки или строк без букв. Метод возвращает False, что иногда может быть неочевидным.
print("123!".isupper()) # Нет букв вообще
print("".isupper()) # Пустая строкаFalse False
2. Смешение с методом upper(). isupper() - это проверка, а upper() - преобразование строки.
s = "text"
print(s.upper()) # Преобразует в "TEXT"
print(s.isupper()) # Проверяет, является ли исходная строка заглавной (False)TEXT False
3. Ожидание True для строк, содержащих не-буквенные символы. Метод корректно работает с такими строками, если все буквы в них заглавные.
print("HELLO 123!".isupper()) # Буквы заглавные, есть другие символыTrue
Изменения в последних версиях Python
Метод str.isupper() не претерпел значительных изменений в последних основных версиях Python (3.x). Его поведение остается стабильным и соответствует первоначальному замыслу.
Расширенные примеры применения
1. Валидация ввода пользователя: Проверка, что введенный текст содержит хотя бы одну заглавную букву.
user_input = "MyPassword123"
has_upper = any(char.isupper() for char in user_input)
print(f"Строка содержит заглавные буквы: {has_upper}")Строка содержит заглавные буквы: True
2. Фильтрация списка строк: Отбор строк, полностью написанных заглавными буквами (и содержащих хотя бы одну букву).
words = ["HELLO", "World", "123", "U.S.A.", "", "lower"]
upper_words = [word for word in words if word.isupper()]
print(upper_words)['HELLO', 'U.S.A.']
3. Анализ текста: Подсчет количества слов в тексте, написанных заглавными буквами.
text = "Это ПРИМЕР текста. SOME WORDS здесь WRITTEN in CAPITALS."
words = text.split()
count_upper = sum(1 for word in words if word.isupper())
print(f"Слов в верхнем регистре: {count_upper}")Слов в верхнем регистре: 3
4. Обработка с учетом локали: Важно помнить, что метод работает с символами Unicode. Для некоторых алфавитов понятие регистра может отсутствовать.
print("ΓΕΙΑ ΣΟΥ".isupper()) # Греческие заглавные буквы
print("Привет".isupper()) # Кириллица, строчныеTrue False
5. Комбинирование с другими строковыми методами:
s = " HELLO "
# Проверка после удаления пробелов
print(s.strip().isupper())True
Аналоги метода isupper в других языках
JavaScript: Прямого аналога нет, обычно используют регулярные выражения или сравнивают строку с её версией в верхнем регистре.
function isUpper(str) {
return /^[^a-z]*$/.test(str) && /[A-Z]/.test(str);
}
console.log(isUpper("ABC")); // true
console.log(isUpper("AbC")); // falsetrue false
Java: Метод String.matches() с регулярным выражением.
String str1 = "JAVA";
System.out.println(str1.matches("[A-Z]+")); // true, но требует только буквы
// Более точный аналог:
boolean isUpper = str1.chars().anyMatch(Character::isLetter) && str1.equals(str1.toUpperCase());true
PHP: Функция ctype_upper() проверяет символы в строке, но вернет false, если строка содержит не-буквы.
echo ctype_upper('ABC') ? 'true' : 'false'; // true
echo ctype_upper('123') ? 'true' : 'false'; // falsetrue false
C#: Аналогично Java, через сравнение с ToUpper() и проверку наличия букв.
string str = "CSharp";
bool isUpper = str.Any(char.IsLetter) && str.All(c => !char.IsLetter(c) || char.IsUpper(c));
Console.WriteLine(isUpper); // falseFalse
Go: Нет встроенной функции, требуется реализация через обход строки.
SQL (например, PostgreSQL): Можно использовать оператор ~ для регулярных выражений.
SELECT 'HELLO' ~ '^[^a-z]*$' AND 'HELLO' ~ '[A-Z]' AS is_upper;true
Отличия от Python: во многих языках нет готового метода, и логика проверки может отличаться в части обработки не-буквенных символов.