首页 > 开发 > Python > 正文

Python isprintable()函数检测字符串中的每个字符是否都为可打印字符

2023-04-26 12:04:38
字体:
来源:转载
供稿:网友

Python字符串处理函数isprintable()的作用是检测字符串中的所有字符是否都为可打印字符,如果字符串中的每个字符都为可打印字符或字符串为空的话,就会返回 True ,否则返回 False 。

一、isprintable()语法格式

string_object.isprintable()

该函数没有参数,string_object 是要进行检测的字符串或字符串变量。

该函数的返回值为逻辑值:TrueFalse .

二、什么是可打印字符

要知道这个问题,我们只需要弄清楚哪些字符属于非可打印字符即可。

根据官方文档描述(str.isprintable()),非可打印字符是指在Unicode字符库中被定义为"Other""Separator"的字符,但空格(0x20)除外。

同时官方文档也说了,在Python中,可打印字符意味着在对字符串调用repr()函数时,不会被转义的字符。

三、isprintable使用举例

1、基本使用的例子

>>> s1 = "Hello Python."
>>> print(s1.isprintable())
True
>>> s2 = "武林网VEVB"
>>> print(s2.isprintable())
True
>>>

结果都为True.

空格和正常语言中的字符都是可打印的字符。

2、空字符串

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

空字符串被认为是可打印的

3、转义字符

>>> s1 = 'Python/tJava'
>>> print(s1.isprintable())
False
>>> s2 = 'Python/rJava'
>>> print(s2.isprintable())
False
>>>

字符串中的  /t/r 等转义字符被认为是不可打印字符。更多常见的的转义字符的例子见下图:

Python isprintble函数:转义字符

4、并非所有的转义字符都是不可打印字符

>>> s1 = 'I/'m a student'
>>> print(s1.isprintable())
True
>>> s2 = "She said:/"Go away!/""
>>> print(s2.isprintable())
True
>>> s3 = "Python /u0061 Java"
>>> print(s3)
Python a Java
>>> print(s3.isprintable())
True
>>> s4 = "D://"
>>> print(s4.isprintable())
True
>>> 

上面的例子说明,像单引号,双引号,反斜杠这种有实质性字符的是可打印字符,而/u0061是字母 'a' 的Unicode码,当然也是可打印字符。

5、输出所有非可打印字符的Unicode码

要想知道 Unicode 字符数据库中哪些编码属于不可打印字符,可以使用下面的程序来输出查看。

icnt = 0
for ucode in range(2 ** 16):
    ch = chr(ucode)
    if not ch.isprintable():
        print(u'{:04x}'.format(ucode))
        icnt += 1
print(f'非可打印字符的数量为:{icnt}')
 

输出情况:

0000
0001
0002
...
fffb
fffe
ffff
非可打印字符的数量为:10215

Python isprintable函数

本文(完)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表