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


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("The string is in ASCII")
else:
    print("The string is not in ASCII")

输出

The string is in ASCII

使用正则表达式

示例

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

import re
my_string = "lorem ipsum"

if re.match("^[\x00-\x7F]+$", my_string):
    print("The string is in ASCII")
else:
    print("The string is not in ASCII")

输出

The string is in 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("The string is in ASCII")
else:
    print("The string is not in ASCII")

输出

The string is in ASCII

可以使用任何这些方法来检查字符串是否为 ASCII 字符串。

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

示例

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

string1 = "lorem ipsum"

if all(ord(c) < 128 for c in string1):
    print("The string is in ASCII.")

else:
    print("The string is not in ASCII.")

输出

The string is in 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("The string is in ASCII.")
else:
    print("The string is not in ASCII.")

输出

The string is in ASCII.

更新于: 2023年8月10日

1K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告