Я должен проверить, содержит ли строка: буквенно-цифровые, алфавитные, цифры, строчные и прописные символы

Вы также можете использовать программное обеспечение diff / merge для выполнения задания. Вы можете попробовать SQLite Compare , он поддерживает сравнение и объединение больших таблиц SQLite между прочим.

Удача

Liron

1
задан jpp 13 July 2018 в 09:03
поделиться

2 ответа

Вы применяете строковые методы для целых слов, а не для отдельных символов. Вы не применяете условие any или all, чтобы проверить, соответствуют ли любые или все символов в каждом слове.

Например, с условием any для каждого слова:

def fun(s):
    for i in s:
        print('\n', i)
        if any(letter.isalnum() for letter in i):
            print('Alnum', True)
        if any(letter.isalpha() for letter in i):
            print('Alpha', True)
        if any(letter.isdigit() for letter in i):
            print('Digit', True)
        if any(letter.isupper() for letter in i):
            print('Upper', True) 
        if any(letter.islower() for letter in i):
            print('Lower', True)

s = input().split()
fun(s)

Результат:

One test 123

 One
Alnum True
Alpha True
Upper True
Lower True

 test
Alnum True
Alpha True
Lower True

 123
Alnum True
Digit True
0
ответ дан jpp 17 August 2018 в 13:21
поделиться
  • 1
    но если я применим к каждому отдельному персонажу, то alnum никогда не будет правдой, поскольку он должен иметь числовой, а также алфавит. Если я проверю каждый символ, большинство из них вернет false. Я думал, что могу проверить отдельные слова (например, один или тест) для каждого условия, а не для каждого символа, такого как ['o', 'n', 'e']. предложения приветствуются. также скажите мне, что я не могу понять здесь – palak 13 July 2018 в 09:27
  • 2
    @palak, вы должны определить в своем вопросе, а не как комментарий именно то, что вы хотите достичь. Прямо сейчас, это не ясно. Я поставил одну интерпретацию, которая является any для каждого слова. – jpp 13 July 2018 в 10:06

Если вы хотите проверить, содержит ли целая строка эти разные типы символов, вам фактически не нужно перебирать строку. Вы можете использовать любое ключевое слово.

def fun(s):
    if any(letter.isalnum() for letter in s):
        print("Is alphanumeric")
    if any(letter.isalpha() for letter in s):
        print("Is alpha")
    if any(letter.isdigit() for letter in s):
        print("Is digit")
    if any(letter.isupper() for letter in s):
        print("Is upper")
    if any(letter.islower() for letter in s):
        print("Is lower")

s=str(input())
fun(s)
0
ответ дан Tom Dee 17 August 2018 в 13:21
поделиться
  • 1
    Спасибо друг !! но у меня проблема, когда я передаю значение s = integer, поскольку оно дает ошибку времени выполнения. что я должен делать так, чтобы он воспринимал как int, так и строку и нормально работал для них – palak 13 July 2018 в 17:14
  • 2
    Я отредактировал его сейчас. Все было необходимо, чтобы ввести значение ввода в виде строки. – Tom Dee 13 July 2018 в 17:44
  • 3
    @palak Если мой или другой ответ был полезен, не забудьте принять его - нажмите на галочку рядом с ответом, чтобы переключить его с серого на заполненный. Спасибо. – Tom Dee 16 July 2018 в 07:49
  • 4
Другие вопросы по тегам:

Похожие вопросы: