我正在编写一个程序,其中用户输入了一些文本,并且我不想将该文本中不在变量“ 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)
答案 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?