我正在撰寫一個關于移位單詞的程式。我想要的輸出應該是a:f b:g c:h ... y:d z:e A:F B:G C:H ... Y:D Z:E
import string
letters = string.ascii_letters #contains 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
#create the Caesar cypher
offset = 5 #choose your shift
totalLetters = 26
keys = {} #use dictionary for letter mapping
invkeys = {} #use dictionary for inverse letter mapping, you could use inverse search from original dict
for index, letter in enumerate(letters):
# cypher setup
if index < totalLetters: #lowercase
letter = letters[index]
keys[letter] = letters[(index offset) % 26]
print(letters[index] ":" keys[letter])
else: #uppercase
letter = letters.isupper()
keys[letter] = letters[(index offset) % 26]
print(letters[index] ":" keys[letter])
但是在運行這段代碼之后,我的輸出是a:f b:g c:h ... y:d z:e A:f B:g C:h ... Y:d Z:e
似乎isupper()函式在這里不起作用。您能否根據我的代碼結構提供幫助。提前致謝!
uj5u.com熱心網友回復:
在uppercase條件下,
keys[letter] = letters[(index offset) % 26 26]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/441358.html
下一篇:從字典中的每個串列中提取第一個值
