是否有一个字段或函数可以返回 python 标准库中的所有 ASCII 字符?
问问题
22955 次
4 回答
30
你可以做一个。
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
于 2013-07-29T04:16:50.937 回答
20
您可以使用该string
模块:
import string
print string.printable
这使:
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
于 2013-07-29T04:17:25.877 回答
2
我不知道任何包含的 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)])
于 2013-07-29T04:38:38.670 回答
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,ncurses 是一个托管在 Linux 上的开源 curses 库和 Unix 的 BSD 变体。
于 2013-07-29T13:22:10.687 回答