我正在尝试使用以下函数在Python中创建一个加密函数。你知道吗
def code_char(c, key):
adj = ord('a') if c.islower() else ord('A')
return chr(adj + (ord(c)-adj+int(key))%26)
^编码字符
def isletter(c):
if 65 <= ord(c) <= 90:
return True
elif 97 <= ord(c) <= 122:
return True
else:
return False
^检查字符是否为字母
加密函数必须包括code_block
和isletter(c)
函数
我期待能够输入任何长度的字符串,它加密它根据一个8位的关键。你知道吗
我也希望它忽略任何空格,标点符号和任何不是字母的东西。你知道吗
任何帮助都将不胜感激
您的问题是
code_char
,因为当您添加int(key)
时,您需要修改%26
以确保字母保持为ascii字符:结果:
当然,您可以改进代码,例如您的
code_block
可以重写:您还可以重写
isletter()
:您可以利用
string
模块,该模块已经定义了:最后,您的
encrypt()
不必要地创建了一个列表和''.join()
,只是:注意:
if 65 <= ord(c) <= 90:
是完全合法的,并且在Python中做您期望它做的事情。你知道吗用
isletter
做了一些更改在旧代码中:
65<=ord(c)
将给出一些布尔值,然后与90
进行比较。[AC:在python中不是这样]code_char
功能改变:相关问题 更多 >
编程相关推荐