我想用两个键写一个凯撒密码,一个是元音,另一个是辅音。
我的单词只有大写字母。我写了一些代码,但我知道这是错误的。我想走那条路。有人能帮我吗:
def ceasar(word, key1, key2):
c = ""
for i in range(len(word)):
zn = word[i]
for x in zn:
if x=="A" or x=="E" or x=="I" or x=="O" or x=="U":
c += chr((ord(zn) + key1-65) % 26 + 65)
else:
c += chr((ord(zn) + key2-65) % 26 + 65)
return c发布于 2020-04-17 13:21:10
只要满足大写字母和其他字符的需要,您就可以将其简化为:
def caesar(word, key1, key2):
c = ""
for x in word:
if x in "AEIOU":
c += chr((ord(x) + key1 - 65) % 26 + 65)
else:
c += chr((ord(x) + key2 - 65) % 26 + 65)
return c您有两个循环,但这是不必要的,因为在您的代码中,zn只是一个字符,所以不需要第二个循环。
我简化了元音检查,因为您可以检查一个字符是否出现在字符串中,比使用多个or条件简单得多。
在Python中,更常见的方法是按值循环迭代器,而不是循环索引,然后使用索引值访问迭代器。
https://stackoverflow.com/questions/61272489
复制相似问题