在python中替换字符串字符

时间:2018-10-03 16:27:45

标签: python

我正在编写一个程序,其中用户输入了一些文本,并且我不想将该文本中不在变量“ alfabet”中的所有字符都更改为“?”。我怎样才能做到这一点?我也想在两个函数main和clean_text中做到这一点。我的代码现在看起来像这样:

def clean_text():
for char in text:
if char in alfabeth:
continue
elif char not in alfabeth:
#don't know what to do here
#text[] = "?"

def main():
userInput = input("type in text: ")
text = list(userInput)

if__name__ == "__main__":
main()
clean_text(text)

2 个答案:

答案 0 :(得分:0)

这将是您需要的基本代码:

alfabeth = 'abcdefghijklmnopqrstuvwxyz'

text_in = list(input('What ever'))

for x in range(len(text_in)):
    if text_in[x] in alfabeth:
        continue
    else:
        text_in[x] = '?'

text_in = "".join(text_in)        
print(text_in)

如果需要,您可以将所有内容定义为一个或两个函数或您喜欢的任何函数。 希望对您有帮助

这就是函数的外观。它对我有用。

alfabeth = 'abcdefghijklmnopqrstuvwxyz'

def clean_text(text_in, alfabeth):
    for x in range(len(text_in)):
        if text_in[x] in alfabeth:
            continue
        else:
            text_in[x] = '?'

def main():
    global UsrInput
    UsrInput = list(input('type in text: '))
    return UsrInput

if __name__ == "__main__":
    main()
    clean_text(UsrInput, alfabeth)
print("".join(UsrInput))

答案 1 :(得分:0)

您必须返回一些内容,才能将user_input分配给变量以传递到clean_text()中。这是您的项目的工作版本。这样也可以处理多个以空格分隔的单词。

def clean_text(word):
    alphabeth = 'vshthstmpd'
    for idx, item in enumerate(word):
        if item == ' ':
            pass
        elif item not in alphabeth:
            word[idx] = '?'
    return ''.join(word)

def main():
    user_input = input('Type in text: ')
    text = list(user_input)
    return text

if __name__ == '__main__':
    text = main()
    print(clean_text(text))
Type in text: vash the stampede
v?sh th? st?mp?d?