Existe-t-il un moyen de passer d'un caractère à l'autre ?
for c in xrange( 'a', 'z' ):
print c
J'espère que vous pourrez m'aider.
Existe-t-il un moyen de passer d'un caractère à l'autre ?
for c in xrange( 'a', 'z' ):
print c
J'espère que vous pourrez m'aider.
Il s'agit là d'une excellente utilisation d'un générateur personnalisé :
Python 2 :
def char_range(c1, c2):
"""Generates the characters from `c1` to `c2`, inclusive."""
for c in xrange(ord(c1), ord(c2)+1):
yield chr(c)
ensuite :
for c in char_range('a', 'z'):
print c
Python 3 :
def char_range(c1, c2):
"""Generates the characters from `c1` to `c2`, inclusive."""
for c in range(ord(c1), ord(c2)+1):
yield chr(c)
ensuite :
for c in char_range('a', 'z'):
print(c)
Magnifique ! Pour ceux qui vont copier ceci, gardez à l'esprit que range(1,3) itère les valeurs 1 et 2 (et pas trois), mais char_range('a','c') itère 'a', 'b' et 'c' !
Vous pouvez également ajouter l'étape facultative arg : def char_range(c1, c2, step=1)
... ord(c1), ord(c2)+1, step
@wjandrea, ne fonctionne pas tout à fait pour les étapes négatives, par exemple char_range('g','a',-1)
donne ['g', 'f', 'e', 'd', 'c']
import string
for char in string.ascii_lowercase:
print char
Véase constantes de chaîne de caractères pour les autres possibilités, y compris les majuscules, les chiffres, les caractères dépendant de la langue locale, que vous pouvez regrouper comme suit string.ascii_uppercase + string.ascii_lowercase
si vous voulez tous les personnages dans plusieurs jeux.
Vous devez convertir les caractères en chiffres et inversement.
for c in xrange(ord('a'), ord('z')+1):
print chr(c) # resp. print unicode(c)
Pour des raisons d'esthétique et de lisibilité, vous pouvez l'intégrer dans un générateur :
def character_range(a, b, inclusive=False):
back = chr
if isinstance(a,unicode) or isinstance(b,unicode):
back = unicode
for c in xrange(ord(a), ord(b) + int(bool(inclusive)))
yield back(c)
for c in character_range('a', 'z', inclusive=True):
print(chr(c))
Ce générateur peut être appelé avec inclusive=False
(par défaut) pour imiter le comportement habituel de Python (bhehaviour) et exclure l'élément final, ou avec inclusive=True
(par défaut) pour l'inclure. Ainsi, avec la valeur par défaut inclusive=False
, 'a', 'z'
couvrirait simplement l'intervalle allant de a
a y
à l'exclusion de z
.
Si l'un des a
, b
sont unicode, il renvoie le résultat en unicode, sinon il utilise chr
.
Il ne fonctionne actuellement (probablement) que dans Py2.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
17 votes
Si vous ne voulez que l'alphabet anglais, il y a
import string
,string.ascii_lowercase
.