Python字符串isprintable()

时间:2020-02-23 14:43:28  来源:igfitidea点击:

如果字符串中的所有字符都是可打印的或者字符串为空,则Python String isprintable()函数将返回True,否则返回False。

Python字符串isprintable()

不可打印字符是在Unicode字符数据库中定义为"其他"或者"分隔符"的那些字符,但认为可打印的ASCII空间(0x20)除外。

请注意,在此上下文中,可打印字符是在字符串上调用repr()时不应转义的那些字符。

我们来看一些Python String isprintable()函数的示例。

s = 'Hi Hello World'

print(s.isprintable())

输出:True,因为所有字符都是可打印的,并且空格被视为可打印的字符。

s = ''
print(s.isprintable())

输出:True,因为空字符串被认为是可打印的。

s = 'Hi\tHello'
print(s.isprintable())

输出:False,因为\ t不是可打印字符。

s = 'Hi\nHello'
print(s.isprintable())

输出:False,因为\ n不是可打印字符。

s = 'Hi\'Hello'
print(s.isprintable())
print(s)

输出:

True
Hi'Hello

让我们看另一个带有转义字符的示例。

s = 'Hi\bHello'
print(s.isprintable())
print(s)

输出:

False
HHello

\ b字符被认为是不可打印的。

s = 'Hi\aHello'
print(s.isprintable())
print(s)

输出:

False
HiHello

\ a字符被认为是不可打印的。

s = 'Hi\u0066Hello'
print(s.isprintable())
print(s)

s = 'Hi\u0009Hello'
print(s.isprintable())
print(s)

输出:

True
HifHello
False
Hi	Hello

\ u0066(f)是可打印的,而\ u0009(\ t)是不可打印的。

打印所有非打印字符列表

这是一个简单的代码段,用于打印不可打印字符的详细信息列表。

count = 0
for codepoint in range(2 ** 16):
  ch = chr(codepoint)
  if not ch.isprintable():
      print(u'{:04x}'.format(codepoint))
      count = count + 1
print(f'Total Number of Non-Printable Unicode Characters = {count}')

输出:

0000
0001
0002
...
fffb
fffe
ffff
Total Number of Non-Printable Unicode Characters = 10249