是否有字段或函数会返回python标准库中的所有ASCII字符?
答案 0 :(得分:26)
你可以制作一个。
ASCII = ''.join(chr(x) for x in range(128))
如果您需要检查会员资格,还有其他方法可以做到:
if c in ASCII:
# c is an ASCII character
if c <= '\x7f':
# c is an ASCII character
如果要检查整个字符串是否为ASCII:
def is_ascii(s):
"""Returns True if a string is ASCII, False otherwise."""
try:
s.encode('ASCII')
return True
except UnicodeEncodeError:
return False
答案 1 :(得分:10)
您可以使用string
模块:
import string
print string.printable
给出:
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
答案 2 :(得分:2)
您可以使用Python标准库模块curses.ascii
。一些包含的功能包括:
curses.ascii.isascii() # Checks for a character value in the 7-bit ASCII set.
curses.ascii.iscntrl() # Checks for an ASCII control character (in the range 0x00 to 0x1f).
curses.ascii.isalpha() # Check for an ASCII alphabetic character.
来自文档:
curses.ascii
模块提供ASCII字符和函数的名称常量,以测试各种ASCII字符类的成员资格。
请注意,curses
模块可能在Windows系统上不可用:
curses
模块提供了curses库的接口,这是便携式高级终端处理的事实标准。虽然curses在Unix环境中使用最为广泛,但版本可用于DOS,OS / 2以及其他可能的系统。此扩展模块旨在匹配ncurses的API,这是一个托管在Linux上的开源curses库和Unix的BSD变体。
答案 3 :(得分:0)
我不知道任何包含这种属性的python模块。然而,最简单和最简单的方法可能只是自己创建
standard_ascii = [chr(i) for i in xrange(128)]
或
extended_ascii = [chr(i) for i in xrange(256)]
用于扩展的ascii字符列表。
请注意
import string
string.printable
不包括所有127个标准ascii字符,您可以通过
查看len(string.printable)
> 100
如果您希望将它们作为字符串而不是列表,只需添加"".join()
,如下所示:
extended_ascii = "".join([chr(i) for i in xrange(256)])