Для входной строки С выведите ВЕРХНИЙ, если строка С содержит только символы верхнего регистра (может содержать пробелы), НИЖЕ, если строка С содержит только символы нижнего регистра (может содержать пробелы), в противном случае выведите НИКТО.
так вот мой код
test_str = input()
res = "LOWER"
for ele in test_str:
# checking for uppercase character and flagging
if ele.isupper():
res = "UPPER"
break
print(str(res))
Но если слово не является ни строчным, ни прописным, оно не имеет None. Как я могу это решить?
Здесь не нужны петли. Просто используйте функции isupper()
и islower()
в блоке if
-elif
и добавьте блок else
, чтобы позаботиться о смешанном регистре (т. е. распечатать None
или NONE
), например так:
test_str = input()
if test_str.isupper():
print('UPPER')
elif test_str.islower():
print('LOWER')
else:
print(None) # or print('NONE')
Пример ввода/вывода:
HELLO USER
UPPER
HELLO UsER
None
hello user
LOWER
hello User
None
Активное чтение: GeeksForGeeks
Ответ @Justin содержит ключевую информацию, необходимую для понимания того, как делать то, что вы хотите.
Для разнообразия вот альтернативная стратегия для получения результата, указанного в вашем вопросе (я предположил, что вам нужна строка «NONE» для смешанного регистра, как указано в вашем вопросе, а не значение Python None
).
a = "ABC DEF"
b = "abc def"
c = "abc deF"
def foo(s):
return ('NONE', 'UPPER', 'LOWER')[1 * s.isupper() + 2 * s.islower()]
print(foo(a),':',a)
print(foo(b),':',b)
print(foo(c),':',c)
Выход:
UPPER : ABC DEF
LOWER : abc def
NONE : abc deF