例如,如果我将4个班次应用于" breakzone"比预期的更像:
" B"将被移动2个字符 " R"将被移动3个字符 " E"将被移动4个字符 ""将被移动5个字符 然后我们以2的初始转移量开始回复: " K"将被移动2个字符 等...
这是我到目前为止所拥有的:
statement = input("Enter string: ")
multiple_shifts = input(int("Enter shift amounts: "))
def caesar(word,multiple_shifts):
for ch in statement:
if ch = statement[0]:
我知道它并不多,但我绝对迷失了,任何帮助都表示赞赏。不要求你写自己的代码"只是指出我正确的方向,所以我非常欣赏这个主题的任何知识。
答案 0 :(得分:2)
这是一个非常粗略的实施:
import sys
def caesar(word, shifts):
word_list = list(word.lower())
result = []
s = 0
for c in word_list:
next_ord = ord(c) + s + 2
if next_ord > 122:
next_ord = 97
result.append(chr(next_ord))
s = (s + 1) % shifts
return "".join(result)
if __name__ == "__main__":
print(caesar("breakzone", 4))
如果您想知道122
和97
的内容是什么,那么这些是小写z
和a
的Unicode值。您可以轻松更改上述内容以支持完整的Unicode(例如,能够编码H3ll0
)。 Here是一张可能对您有帮助的Unicode图表。