首页 > 解决方案 > 尝试使用 python 编写凯撒密码,问题:

问题描述

我已经创建了这段代码,但似乎不明白问题出在哪里;它只“加密”一个字母:

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'只得到。有人可以帮我解决这个问题吗?谢谢你。

标签: pythonjupyter-notebook

解决方案


returnfor-loop 里面。这意味着您将始终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

推荐阅读