Python数字在一个字符串中转换为一个符号



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

numbers = "1234567890"
string_input = str(input("Input a String? "))
print(string_input.replace(numbers, "_"))

你的意思是这样的吗?

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)

您正在替换字符串"1234567890"。我想你要做的是替换字符串中的每个数字。因此,您必须制作一个for循环,并循环该字符串中的每个数字,然后在输入字符串中替换它。

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

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))

Btw。input(...)已经返回了一个字符串,所以您不需要转换它。

相关内容

  • 没有找到相关文章

最新更新