我正在尝试编写一个函数,将字符串中的所有数字转换为下划线。请问我哪里出错了?
numbers = "1234567890"
string_input = str(input("Input a String? "))
print(string_input.replace(numbers, "_"))
答案 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(...)
已经返回一个字符串,因此您无需对其进行转换。