Есть ли какой-нибудь «нативный» метод, который может дать информацию о символе в строке? - PullRequest
1 голос
/ 22 сентября 2019

Я хочу проверить символ в строке, если это число, пробел, верхний / нижний символ или специальный символ ". '* ^? ..."

Я пришел к решению, чтоне очень приятный, плюс он не может проверять наличие специальных символов без добавления дополнительных строк в операторе else.

def checker(str1):
if str1.isspace() is True:
    print('it\'s a space')
if str1.isupper() is True:
    print('it\'s a letter and it\'s upper')
if str1.islower() is True:
    print('it\'s a letter and it\'s lower')
if str1.isdigit() is True:
    print('it\'s a digit')
if str1.isascii() is True:
    print('it\'s a special chracter')

string_letter = 'A'

checker(string_letter)

этот код работает ... если я создаю дополнительное предложение для специальных символов, потому что сейчас просто говорится, что пробел - это специальный символ ... это происходит потому, что .isascii() слишком широк для специальногоперсонажи.

Есть ли какой-нибудь метод, который мне не хватает, который может сделать эту функцию более элегантно?ака дать информацию о персонаже в строке?

Я очень плохо знаком с Python, поэтому извините, может быть, я не смог найти нативное решение, потому что еще не очень хорошо разбираюсь в терминологии.

1 Ответ

1 голос
/ 22 сентября 2019

Используйте elif и поместите проверку специальных символов на последнюю.

def checker(str1):
    if str1.isspace():
        print('it\'s a space')
    elif str1.isupper():
        print('it\'s a letter and it\'s upper')
    elif str1.islower():
        print('it\'s a letter and it\'s lower')
    elif str1.isdigit():
        print('it\'s a digit')
    elif str1.isascii():
        print('it\'s a special chracter')

string_letter = '&'

checker(string_letter)

Затем

it's a special chracter
...