将字符串中的 Python 数字转换为符号

时间:2021-04-19 10:55:07

标签: python python-3.x

我正在尝试编写一个函数,将字符串中的所有数字转换为下划线。请问我哪里出错了?

numbers = "1234567890"

string_input = str(input("Input a String? "))

print(string_input.replace(numbers, "_"))

3 个答案:

答案 0 :(得分:1)

你的意思是这样吗?

string = "There are 5, 7, 2, and 15 foobars"

numbers = ("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")

for num in numbers:
    string = string.replace(num, "_")

# "There are _, _, _, and __ foobars"
print(string)

编辑:替代方式

string = "There are 5, 7, 2, and 15 foobars"

for num in range(10):
    string = string.replace(str(num), "_")

# "There are _, _, _, and __ foobars"
print(string)

答案 1 :(得分:0)

您正在替换字符串 "1234567890"。我认为您想要做的是替换该字符串中的每个数字。因此,您必须进行 for 循环并遍历该字符串中的每个数字并将其替换为输入字符串。

答案 2 :(得分:0)

您可以使用生成器表达式:

string_input = input("Input a String? ")
print(''.join('_' if x in '0123456789' else x for x in string_input))

或者正则表达式库:

import re
string_input = input("Input a String? ")
print(re.sub('\d', '_', string_input))

顺便说一句。 input(...) 已经返回一个字符串,因此您无需对其进行转换。