介绍
在这个实验中,你将学习如何在 Python 中检查一个字符串是否只包含数字。本实验将探讨数字字符串,并介绍 isdigit() 方法,这是 Python 的一个内置函数,用于判断字符串中的所有字符是否都是数字(0 - 9)。
你将创建一个 Python 文件 digit_strings.py,并使用 isdigit() 方法来测试只包含数字的字符串和包含非数字字符的字符串。通过使用不同的字符串示例运行脚本,你将观察到 True 或 False 的输出,从而了解如何在 Python 中有效地识别数字字符串。
探索数字字符串
在这一步中,你将了解 Python 中的数字字符串以及如何识别它们。数字字符串是仅包含数字字符(0 - 9)的字符串。Python 提供了一个名为 isdigit() 的内置方法,可让你轻松检查字符串是否仅由数字组成。
首先,使用 VS Code 编辑器在你的 ~/project 目录中创建一个名为 digit_strings.py 的 Python 文件。
## Create a string containing only digits
digit_string = "12345"
## Use the isdigit() method to check if the string contains only digits
is_digit = digit_string.isdigit()
## Print the result
print(is_digit)
保存文件。现在,使用 python 命令运行脚本:
python ~/project/digit_strings.py
你应该会看到以下输出:
True
这表明字符串 digit_string 仅包含数字。
现在,让我们尝试一个包含非数字字符的字符串:
## Create a string containing digits and letters
non_digit_string = "123abc"
## Use the isdigit() method to check if the string contains only digits
is_digit = non_digit_string.isdigit()
## Print the result
print(is_digit)
将 digit_strings.py 的内容替换为上述代码并保存。再次运行脚本:
python ~/project/digit_strings.py
你应该会看到以下输出:
False
这表明字符串 non_digit_string 包含非数字字符。
使用 isdigit() 方法
在上一步中,你学习了数字字符串的基础知识以及如何使用 isdigit() 方法。在这一步,我们将更详细地探讨 isdigit() 方法,并了解它如何应用于不同类型的字符串。
isdigit() 方法是 Python 中的一个字符串方法,如果字符串中的所有字符都是数字,则返回 True,否则返回 False。它是验证用户输入或处理仅应包含数字的数据的简单而强大的工具。
让我们继续使用你 ~/project 目录中的 digit_strings.py 文件。我们将修改脚本,用各种字符串来测试 isdigit() 方法。
首先,让我们用一个空字符串进行测试:
## Create an empty string
empty_string = ""
## Use the isdigit() method to check if the string contains only digits
is_digit = empty_string.isdigit()
## Print the result
print(is_digit)
将 digit_strings.py 的内容替换为上述代码并保存。再次运行脚本:
python ~/project/digit_strings.py
你应该会看到以下输出:
False
空字符串不包含任何数字,因此 isdigit() 返回 False。
接下来,让我们用一个仅包含空格的字符串进行测试:
## Create a string containing only spaces
space_string = " "
## Use the isdigit() method to check if the string contains only digits
is_digit = space_string.isdigit()
## Print the result
print(is_digit)
将 digit_strings.py 的内容替换为上述代码并保存。再次运行脚本:
python ~/project/digit_strings.py
你应该会看到以下输出:
False
仅包含空格的字符串不被视为数字字符串,因此 isdigit() 返回 False。
最后,让我们用一个包含 Unicode 数字的字符串进行测试:
## Create a string containing Unicode digits
unicode_digit_string = "一二三" ## These are Chinese numerals
## Use the isdigit() method to check if the string contains only digits
is_digit = unicode_digit_string.isdigit()
## Print the result
print(is_digit)
将 digit_strings.py 的内容替换为上述代码并保存。再次运行脚本:
python ~/project/digit_strings.py
你应该会看到以下输出:
False
isdigit() 方法仅对 ASCII 数字(0 - 9)返回 True,而对其他表示数字的 Unicode 字符不返回 True。
检查非数字字符
在这一步中,你将学习如何识别字符串中是否包含任何非数字字符。虽然 isdigit() 方法可用于检查字符串中的 所有 字符是否都是数字,但有时你需要知道字符串中是否至少存在一个非数字字符。
我们可以通过遍历字符串并逐个检查每个字符来实现这一点。让我们修改你 ~/project 目录中的 digit_strings.py 文件来实现这一功能。
def has_non_digit(input_string):
"""
Checks if a string contains any non-digit characters.
"""
for char in input_string:
if not char.isdigit():
return True ## Found a non-digit character
return False ## No non-digit characters found
## Test cases
string1 = "12345"
string2 = "123abc"
string3 = " 123"
print(f"'{string1}' has non-digit characters: {has_non_digit(string1)}")
print(f"'{string2}' has non-digit characters: {has_non_digit(string2)}")
print(f"'{string3}' has non-digit characters: {has_non_digit(string3)}")
将 digit_strings.py 的内容替换为上述代码并保存。现在,让我们使用 python 命令运行脚本:
python ~/project/digit_strings.py
你应该会看到以下输出:
'12345' has non-digit characters: False
'123abc' has non-digit characters: True
' 123' has non-digit characters: True
在这个脚本中,我们定义了一个函数 has_non_digit(),它会遍历输入字符串的每个字符。如果使用 not char.isdigit() 发现某个字符不是数字,它会立即返回 True。如果循环结束后没有发现任何非数字字符,则返回 False。
这种方法可以让你快速确定字符串中是否包含任何非数字字符,这在数据验证和其他任务中非常有用。
总结
在这个实验中,你学习了如何在 Python 中检查字符串是否仅包含数字。你了解到数字字符串仅由数字字符(0 - 9)组成,并且 Python 提供了内置的 isdigit() 方法来方便地进行识别。
你练习了对仅包含数字的字符串使用 isdigit() 方法,该方法返回 True;对包含非数字字符的字符串使用该方法,返回 False。这展示了该方法验证字符串并确定其是否完全由数字组成的能力。



