是否有包含所有ascii字符列表的Python库?

问题描述 投票:74回答:7

如下所示:

import ascii

print ascii.charlist()

哪个会返回类似[A,B,C,D ......]的东西

python ascii
7个回答
134
投票

string常数可能是你想要的。 (docs

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

如果你想要所有可打印的字符:

>>> string.printable
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;?@[\\]^_`{|}~ \t\n\r\x0b\x0c'

26
投票

这里是:

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

12
投票

ASCII定义128个字符,其字节值范围为0到127(含)。因此,要获得所有ASCII字符的字符串,您可以这样做

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

其中只有一些是可打印的,但是可以通过Python访问可打印的ASCII字符

import string
string.printable

3
投票
for i in range(0,128):
    print chr(i)

试试这个!


3
投票

由于ASCII可打印字符是一个非常小的列表(值在32到127之间的字节),因此在您需要时很容易生成:

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

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

0
投票

你可以在没有模块的情况下完成:

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

键入characters,它应该打印["a","b","c", ... ,"x","y","z"]。用于大写:

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

可以使用任何范围(包括使用范围步骤),因为它使用Unicode。因此,增加range()以向列表中添加更多字符。 map()chr()的每次迭代中都称range()


-5
投票

不,没有,但你可以轻松制作一个:

    #Your ascii.py program:
    def charlist(begin, end):
        charlist = []
        for i in range(begin, end):
            charlist.append(chr(i))
        return ''.join(charlist)

    #Python shell:
    #import ascii
    #print(ascii.charlist(50, 100))
    #Comes out as:

    #23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc
© www.soinside.com 2019 - 2024. All rights reserved.