web-dev-qa-db-fra.com

Existe-t-il une Python qui contient une liste de tous les caractères ascii?

Quelque chose comme ci-dessous:

import ascii

print ascii.charlist()

Ce qui retournerait quelque chose comme [A, B, C, D ...]

80
rectangletangle

Les constantes string peuvent être ce que vous voulez. ( docs )

 >>> import string 
 >>> string.ascii_uppercase 
 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 

Si vous voulez tous les caractères imprimables:

 >>> string.printable [.____. '' 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ! "# $% '' () * +, - /;;;;;;;; t\n\r\x0b\x0c '
137
Acorn

C'est ici:

[chr(i) for i in xrange(127)]
26
Simon

ASCII définit 128 caractères dont les valeurs d'octet vont de 0 à 127 inclus. Donc, pour obtenir une chaîne de tous les caractères ASCII, vous pouvez simplement faire

''.join([chr(i) for i in range(128)])

Cependant, seuls certains d’entre eux sont imprimables. Les caractères imprimables ASCII sont accessibles via Python via

import string
string.printable
12
gsteff
for i in range(0,128):
    print chr(i)

Essaye ça!

3
lucemia

Depuis ASCII sont une liste assez petite (octets avec des valeurs comprises entre 32 et 127)), il est assez facile à générer lorsque vous avez besoin de:

>>> for c in (chr(i) for i in range(32,127)):
...     print c
... 

!
"
#
$
%
... # a few lines removed :)
y
z
{
|
}
~
3
sarnold

Vous pouvez le faire sans module:

    characters = list(map(chr, range(97,123)))

Tapez characters et il devrait imprimer ["a","b","c", ... ,"x","y","z"]. Pour une utilisation en majuscule:

    characters=list(map(chr,range(65,91)))

Toute plage (y compris l'utilisation d'étapes de plage) peut être utilisée à cet effet, car elle utilise Unicode. Par conséquent, augmentez la range() pour ajouter plus de caractères à la liste.
map() appelle chr() à chaque itération de range().

0
Benj