web-dev-qa-db-fra.com

comment puis-je vérifier si une lettre d'une chaîne est en majuscule avec Python?

J'ai une chaîne comme "asdfHRbySFss" et je veux la parcourir un caractère à la fois pour voir quelles lettres sont en majuscule. Comment puis-je faire cela en Python?

21
clayton33

Utilisez string.isupper ()

letters = "asdfHRbySFss"
uppers = [l for l in letters if l.isupper()]

si vous voulez ramener cela dans une chaîne, vous pouvez faire:

print "".join(uppers)
49
Sam Dolan

Une autre manière, plus compacte, de faire la solution de sdolan dans Python 2.7+

>>> test = "asdfGhjkl"
>>> print "upper" if any(map(str.isupper, test)) else "lower"
upper
>>> test = "asdfghjkl"
>>> print "upper" if any(map(str.isupper, test)) else "lower"
lower
7
David

Utilisez string.isupper () avec filter ()

>>> letters = "asdfHRbySFss"
>>> def isCap(x) : return x.isupper()
>>> filter(isCap, myStr)
'HRSF'
5
willie
m = []
def count_capitals(x):
  for i in x:
      if i.isupper():
        m.append(x)
  n = len(m)
  return(n)

C’est une autre façon de procéder avec les listes. Si vous souhaitez que les majuscules soient rétablies, supprimez simplement le len

1
Coolkid

Une autre façon de le faire en utilisant un jeu de caractères ascii - similaire à @sdolan

letters = "asdfHRbySFss"
uppers = [l for l in letters if ord(l) >= 65 and ord(l) <= 90] #['H', 'R', 'S', 'F']
lowers= [l for l in letters if ord(l) >= 97 and ord(l) <= 122] #['a', 's', 'd', 'f', 'b', 'y', 's', 's']
0
Julian Chukwu