我正试图编写一个函数,将字符串中的所有数字转换为下划线。请问我哪里错了?
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(...)
已经返回了一个字符串,所以您不需要转换它。