Как проверить, есть ли буквы и ЦИФРЫ ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁰ в переменной?

a = str(input('> > > '))
if True:
    for x in a:
        
        if x.isdigit() == True:
            #хабр не распознает некоторые из эти цифр
            if x == '¹' or x == '²' or x == '³' or x == '⁴' or x == '⁵' or x == '⁶' or x == '⁷' or x == '⁸' or x == '⁹' or x == '⁰':
                
                print(False)

            else:
                
                age = int(age)
                if age <= 18 or age >= 100:
                    print(False)
                else:
                    age = str(age)
                    print(True)
                    # КОД ...
        else:
            
            print(False)


В переменной age должны быть только цифры. Это делается isdigit(), но она также принимает это: ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁰ цифрами, поэтому выводит True, если они есть в переменной. С помощью кода, я могу проверить каждый символ и отсортировать его через if else. Но мне нужно, чтобы код проверил каждый символ, и только после этого, в зависимости есть ли в ней буквы или ¹²³⁴⁵⁶⁷⁸⁹⁰ ,выполнял определённый код. Нельзя использовать глобальные переменные. И видимо нужно это всё сделать в одной функции.
  • Вопрос задан
  • 176 просмотров
Решения вопроса 2
@12rbah
link там много примеров

try:
    val = int(userInput)
except ValueError:
    print("That's not an int!")
Ответ написан
@pcdesign
Вот эти символы ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁰ называются superscript. Вы можете их перевести в нормальный вид и потом спокойно работать, как обычно. Можно конвертить с помощью вот такой функции:

def get_normal_from_super(x):
    normal = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-=()"
    super_s = "ᴬᴮᶜᴰᴱᶠᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾQᴿˢᵀᵁⱽᵂˣʸᶻᵃᵇᶜᵈᵉᶠᵍʰᶦʲᵏˡᵐⁿᵒᵖ۹ʳˢᵗᵘᵛʷˣʸᶻ⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾"
    res = x.maketrans(''.join(super_s), ''.join(normal))
    return x.translate(res)

>>> get_normal_from_super('¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸')
'1 2 3 4 5 6 7 8'
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы