编写一个名为 get_numerals 的函数,该函数 returns 来自字符串的数字列表

Write a function called get_numerals that returns a list of numbers from a string

编写一个名为 get_numerals 的函数。 get_numerals应该 接受一个参数,一个字符串。它应该 return 一个字符串 仅包含原始字符串中的数字: 没有字母、标点符号或空格。

记住,数字的序数在 48(“0”)之间 和 57(“9”)。您可以使用 ord() 函数来获取 一个字母的序号。

你的函数应该能够处理没有 数字(return 一个空字符串)和所有的字符串 数字(return 原始字符串)。你可能会假设 我们将只使用常规字符(没有表情符号,格式 字符等)。

在这里写你的函数!

def get_numerals(a_string):
    for char in a_string:
        if ord(char) >= 48 or ord(char) <= 57:
            a_string = a_string.replace(char, "")
    return a_string

下面是一些将测试您的函数的代码行。 您可以更改变量的值来测试您的 具有不同输入的函数。

如果您的功能正常工作,这将最初 打印: 1301

8675309

print(get_numerals("CS1301"))
print(get_numerals("Georgia Institute of Technology"))
print(get_numerals("8675309"))

我尝试了多种方法,结果是我的函数只有 return 个空字符串。我知道我错过了一些简单的东西。感谢任何帮助。

每个数字都是>= 48 or <= 57。您想使用 ord < 48 or > 57:

删除字符
def get_numerals(a_string):
    for char in a_string:
        if ord(char) < 48 or ord(char) > 57:
            a_string = a_string.replace(char, "")
    return a_string