Check if all characters of a string are uppercase

前端 未结 5 941
遥遥无期
遥遥无期 2021-01-03 23:21

Say I have a string that can contain different characters:

e.g. word = "UPPER£CASe"

How would I test the string to see if all the charac

相关标签:
5条回答
  • 2021-01-03 23:39

    You could use regular expressions:

    all_uppercase = bool(re.match(r'[A-Z]+$', word))
    
    0 讨论(0)
  • 2021-01-03 23:56

    You should use str.isupper() and str.isalpha() function.

    Eg.

    is_all_uppercase = word.isupper() and word.isalpha()
    

    According to the docs:

    S.isupper() -> bool
    

    Return True if all cased characters in S are uppercase and there is at least one cased character in S, False otherwise.

    0 讨论(0)
  • 2021-01-03 23:56

    You can alternatively work at the level of characters.

    The following function may be useful not only for words but also for phrases:

    def up(string):
        upper=[ch for ch in string if ch.isupper() or ch.isspace()]
        if len(upper)==len(string):
            print('all upper')
        else:
            print("some character(s) not upper")
    
    strings=['UPPERCAS!', 'UPPERCASe', 'UPPERCASE', 'MORE UPPERCASES']
    for s in strings:
       up(s)
    Out: some character(s) not upper 
    Out: some character(s) not upper
    Out: all upper
    Out: all upper
    
    0 讨论(0)
  • 2021-01-03 23:57

    Yash Mehrotra has the best answer for that problem, but if you'd also like to know how to check that without the methods, for purely educational reasons:

    import string
    
    def is_all_uppercase(a_str):
        for c in a_str:
            if c not in string.ascii_uppercase:
                return False
        return True
    
    0 讨论(0)
  • 2021-01-04 00:04

    Here you can find a very useful way to check if there's at least one upper or lower letter in a string

    Here's a brief example of what I found in this link:

    print(any(l.isupper() for l in palabra))
    

    https://www.w3resource.com/python-exercises/python-basic-exercise-128.php

    0 讨论(0)
提交回复
热议问题