import string
import os
def vigenereEncrypt(msg, key):
size = len(key)
result = []
cnt= 0
for i in msg:
if i.upper() in string . ascii_uppercase:
#offset相当于是ki
offset = string.ascii_uppercase.find(key[cnt%size])
t = string.ascil_uppercase[(string.ascii_uppercase.find(i.upper())+offset)%26] #这里相当于是c1 = (mi+ki)(mod 26) ,t = C
if i. isupper():
result . append(t)
else:
result . append(t. lowerO)
cnt+=1
else:
result.append(i)
return"".join(result)
def main():
msg="Comwon sense is not So comwon"
cipher = vigenereEncrypt(msg, "3420") #key = "PIZZA:
print(cipher)
if __name__== "__moin__":
main()
上述代码出现以下错误,请问如何修改
NameError: name 'result' is not defined
修改了代码里的拼写错误,可以正常运行
import string
def vigenereEncrypt(msg, key):
size = len(key)
result = []
cnt = 0
for i in msg:
if i.upper() in string.ascii_uppercase:
# offset相当于是ki
offset = string.ascii_uppercase.find(key[cnt % size])
t = string.ascii_uppercase[
(string.ascii_uppercase.find(i.upper()) + offset) % 26] # 这里相当于是c1 = (mi+ki)(mod 26) ,t = C
if i.isupper():
result.append(t)
else:
result.append(t.lower())
cnt += 1
else:
result.append(i)
return "".join(result)
def main():
msg = "Common sense is not So common"
cipher = vigenereEncrypt(msg, "3420") # key = "PIZZA:
print(cipher)
if __name__ == "__main__":
main()