为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法将下面的代码写成一行

有没有办法将下面的代码写成一行

慕慕森 2023-06-27 14:40:57
我正在尝试一种密码技术(One Time Pad),我得到了解决方案,但想使其成为一行。下面分别是输入和输出示例。INPUT(TEXT) = 'HELLO', KEY = 'XMCKL', OUTPUT(CIPHERTEXT) = 'EQNVZ'。def ciphertextFor(text, key):    cpt = []    for i in range(len(text)):        cpt.append(chr((ord(text[i])+ord(key[i])) % 26+65))    return ''.join(cpt)    # return ''.join(chr((ord(text[j])+ord(key[j])) % 26+65)) for j in range(len(text)))
查看完整描述

2 回答

?
Helenr

TA贡献1780条经验 获得超3个赞

直接从上面的函数中尝试使用简单的列表理解 -


text, key = 'ajshwhsuhe','amchaksheo'


cipher = ''.join([chr((ord(text[i])+ord(key[i])) % 26+65) for i in range(len(text))])


print(cipher)

'MHGAIDWNXE'


查看完整回答
反对 回复 2023-06-27
?
HUH函数

TA贡献1836条经验 获得超4个赞

您可以使用zip同时迭代输入和键中的字符


>>> input, key = 'HELLO', 'XMCKL' 

>>> ''.join(chr((ord(x)+ord(y)) % 26+65) for x,y in zip(input, key))

'EQNVZ'


查看完整回答
反对 回复 2023-06-27
  • 2 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信