因此,我正在尝试创建一个函数,要求用户输入文本,并且结果应打印该文本的加密版本。
它应该工作的方式是所有符号不匹配中的任何符号 此变量:
alphabet = "abcdefghijklmnopqrstuvwxyz ?"
应替换为问号'?'
。
例如:
'THIS is a t#est'
将导致
'???? is a t?est'.
这是我到目前为止所得到的。
alphabet = "abcdefghijklmnopqrstuvwxyz ?"
xalphabet = list(alphabet)
code = input('Please enter the text you want to code: ')
xcode = list(code)
def clean_text(xcode):
for xcode in xalphabet:
if xcode == xalphabet:
continue
else:
xcode.replace(xcode, '?')
return xcode
def main ():
print(clean_text(xcode))
if __name__ == "__main__":
main()
我只得到了'?'
答案 0 :(得分:3)
您可以使用列表理解来遍历字符串,然后使用''.join
:
alphabet = "abcdefghijklmnopqrstuvwxyz ?"
s = 'THIS is a t#est'
>>> ''.join([i if i in alphabet else '?' for i in s])
# '???? is a t?est'
或作为功能:
def clean_text(xcode):
return ''.join([i if i in alphabet else '?' for i in xcode])
作为另一种方法,您可以考虑使用正则表达式:
import re
s = 'THIS is a t#est'
>>> re.sub('[^abcdefghijklmnopqrstuvwxyz ?]', '?',s)
# '???? is a t?est'
答案 1 :(得分:1)
您可以使用以下方法将您的代码转换为有效代码:
alphabet = "abcdefghijklmnopqrstuvwxyz ?"
code = input('Please enter the text you want to code: ')
def clean_text(code):
for x in code:
if x not in alphabet:
code = code.replace(x, '?')
return code
print(clean_text(code))