python - 尝试使用 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'
只得到。有人可以帮我解决这个问题吗?谢谢你。
解决方案
你return
在for
-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
推荐阅读
- javascript - 如何通过我在 https 上托管的 reactjs-app 向我在 http 上托管的 rest-api 提出上诉来解决错误
- java - 如何以最小顺序从反馈列表中找到每个用户给出的最新反馈?
- cassandra - 在 cassandra 中禁用读取修复
- ruby-on-rails - Rails/React/Yarn:如何从应用程序的根目录运行“yarn start”
- r - 避免嵌套循环但使用 (l)apply 迭代 2 个值?
- c# - 从单独的类中查看 ThreadStatic 变量
- scala - Spark Structured Streaming:在单独的工作线程上运行 Kafka 消费者
- excel - VBA IE 自动化 - 无法单击带有事件侦听器 mouseenter 和 mouseleave 的按钮
- java - 为什么 FetchType.Eager 阻止双向映射中的 org.hibernate.TransientObjectException 而 CascadeType.ALL 没有效果?
- c# - 连接字符串在 Windows 10 上工作正常,但在 Windows 7 上不行