gpt4 book ai didi

python - 使基本密码函数更具可读性

转载 作者:行者123 更新时间:2023-12-01 03:41:16 25 4
gpt4 key购买 nike

我有这个基本的密码函数:

def encrypt_decrypt(data, in_or_out):
pass_lst = list(data)
return_list = []

if in_or_out == "in":
for i in pass_lst:
num = ord(i) + 10
return_list.append(chr(num))
else:
for i in pass_lst:
num = ord(i) - 10
return_list.append(chr(num))

return ''.join(return_list)

我想让这个密码更具可读性和一点DRYer..有没有办法可以成功地缩短这个函数?

最佳答案

您可以通过从 in_or_out 参数计算 ±10 来使其更干燥。例如,

def encrypt_decrypt(data, in_or_out):
delta = {'in': 10, 'out': -10}[in_or_out]
return_list = []
for i in list(data):
num = ord(i) + delta
return_list.append(chr(num))
return ''.join(return_list)

并且可以通过使用列表理解来使其更加紧凑:

def encrypt_decrypt(data, in_or_out):
delta = {'in': 10, 'out': -10}[in_or_out]
return ''.join([chr(ord(i) + delta) for i in data])

请注意,我直接迭代数据。如果 data 是字符串、列表或元组,则该方法有效。

但是,您应该意识到您的代码并不安全:它不处理 ord(i) + delta 超出 0-255 范围的字符代码。

关于python - 使基本密码函数更具可读性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39596422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com