尝试使用python编写凯撒密码的问题:

时间:2019-09-09 09:27:06

标签: python jupyter-notebook

我已经创建了这段代码,而且似乎不了解问题所在。它只会“加密”一个字母:

def c(word, offset):
    eword=""
    for letter in word:
        if letter in alphabet:
            index_letter= alphabet.index(letter)
            new_index= index_letter+offset
            if new_index>25:
                new_index= new_index-26
                eword+= aphabet[new_index]
            elif new_index<25:
                eword+= alphabet[new_index]
            else:
                eword.join(letter)
        return eword

运行程序时

c("test", 3)

我只得到'k'。有人可以帮我解决这个问题吗?谢谢。

1 个答案:

答案 0 :(得分:0)

您的returnfor循环内。这意味着您将始终在第一次迭代后返回eword。尝试取消缩进一次:

def c(word, offset):
    eword=""
    for letter in word:
        if letter in alphabet:
            index_letter= alphabet.index(letter)
            new_index= index_letter+offset
            if new_index>25:
                new_index= new_index-26
                eword+= aphabet[new_index]
            elif new_index<25:
                eword+= alphabet[new_index]
            else:
                eword.join(letter)
    return eword  # <-- This line went back 4 spaces