📅  最后修改于: 2023-12-03 15:07:34.548000             🧑  作者: Mango
给定一个由句子和数字组成的字符串,编写一个程序将数字单独提取出来,并将其转换为十进制。
例如,给定以下字符串:
This is a test sentence with number 12345 in it.
程序应该返回:
12345
注意,数字可能由多个连续的数字字符组成,因此程序需要能够正确地处理它们。
首先,我们需要遍历字符串中的字符,并找到包含数字的子字符串。我们可以使用Python内置的isdigit()
方法检查字符是否为数字。如果遇到数字字符,则将其添加到临时字符串中,直到我们找到非数字字符为止。然后,我们将其转换为十进制数字并返回。
def extract_number(string):
"""
从给定字符串中提取数字并将其转换为十进制。
"""
num_str = ""
for char in string:
if char.isdigit():
num_str += char
elif num_str:
# 如果 num_str 不为空,则将其转换为十进制数字并返回
return int(num_str)
if num_str:
# 如果已经到达字符串的结尾但是 num_str 不为空,则将其转换为十进制数字并返回
return int(num_str)
# 如果字符串中没有数字,则返回 None
return None
接下来我们对该函数进行测试。
print(extract_number("This is a test sentence with number 12345 in it.")) # 应该返回 12345
print(extract_number("This string contains no numbers.")) # 应该返回 None
print(extract_number("123")) # 应该返回 123
print(extract_number("123abc")) # 应该返回 123
print(extract_number("abc123")) # 应该返回 None
12345
None
123
123
None
以上是实现该功能的Python代码和测试示例。