如何检查 Python 中的字符串是否为 ASCII?

pythonserver side programmingprogramming

ASCII 代表美国信息交换标准代码。ASCII 是一种字符编码系统,它为标准键盘上的每个字母、数字和符号分配一个唯一的数字。在 Python 中,每个字符都有一个基于 ASCII 代码的数值,可以使用 ord() 函数进行检查。在处理基于文本的数据以及编码或解码文本时,了解 ASCII 非常重要。

要检查 Python 中的字符串是否为 ASCII,可以使用 Python 中的内置字符串模块。

以下是一些检查字符串是否为 ASCII 的方法:

使用 isascii() 方法

示例

在此示例中,isascii() 方法检查字符串中的所有字符是否都是 ASCII 字符。如果字符串中的所有字符都是 ASCII,则该方法返回 True,并且该字符串被视为 ASCII。

my_string = "lorem ipsum"
if my_string.isascii():
    print("字符串为 ASCII")
else:
    print("字符串不是 ASCII")

输出

字符串为 ASCII

使用正则表达式

示例

在此示例中,正则表达式 ^[\x00-\x7F]+$ 匹配任何仅包含 ASCII 字符的字符串。如果正则表达式与字符串匹配,则该字符串为 ASCII。

import re
my_string = "lorem ipsum"

if re.match("^[\x00-\x7F]+$", my_string):
    print("该字符串为 ASCII")
else:
    print("该字符串不是 ASCII")

输出

该字符串为 ASCII

使用 ord() 函数

示例

在此示例中,ord() 函数用于获取字符串中每个字符的 ASCII 值。如果所有 ASCII 值都小于 128,则该字符串为 ASCII。

my_string = "lorem ipsum"
is_ascii = all(ord(c) < 128 for c in my_string)
if is_ascii:
    print("该字符串为 ASCII")
else:
    print("该字符串不是 ASCII")

输出

该字符串为 ASCII

您可以使用以下任何一种方法来检查字符串是否为 ASCII。

以下是另外两个用于检查 Python 中的字符串是否为 ASCII 的代码示例:

示例

此代码示例使用 all() 函数和列表推导来检查所有字符字符串中的 ASCII 值小于 128。如果所有字符都满足此条件,则认为该字符串为 ASCII。

string1 = "lorem ipsum"

if all(ord(c) < 128 for c in string1):
    print("字符串为 ASCII。")

else:
    print("字符串不是 ASCII。")

输出

字符串为 ASCII。

示例

此代码示例定义了一个函数 is_ascii(),用于检查字符串中的所有字符是否都是可打印的 ASCII 字符。该函数使用 string.printable 常量,其中包含所有可打印的 ASCII 字符。如果字符串中的所有字符都是可打印的 ASCII 字符,则该函数返回 True,并且认为该字符串是 ASCII 格式的。

import string
def is_ascii(s):
return all(c in string.printable for c in s)
string1 = "lorem ipsum"
if is_ascii(string1):
    print("该字符串是 ASCII 格式的。")
else:
    print("该字符串不是 ASCII 格式的。")

输出

该字符串是 ASCII 格式的。


相关文章