我的代码差不多完成了,我只是在努力解码/编码的某一部分。当我尝试用28来编码ABC时,它返回的是符号而不是字母。但是,它适用于小写字母。我不完全确定如何修复它,我正在寻求帮助。我并不是想彻底改变我的代码,而是保持原样,我认为我只是缺少正确的值或操作。你知道吗
这是我目前的代码:
def encode_or_decode(encode_or_decode_choice, str_to_change, key):
if encode_or_decode_choice == "encode":
new_str = ""
for i in range(len(str_to_change)):
shifter = ord(str_to_change[i])
shift1 = key
if shifter + shift1 > 122:
shift1 = shift1 - (122 - shifter)
shift1 = shift1 % 26
new_str = new_str + chr(shift1 + 96)
elif shifter + shift1 < 90:
shift1 = shift1 - (90 - shifter)
shift1 = shift1 % 26
new_str = new_str + chr(shift1 + 64)
else:
new_str = new_str + chr(shifter + key)
return new_str
elif encode_or_decode_choice == "decode":
new_str = ""
for i in range(len(str_to_change)):
shifter = ord(str_to_change[i])
shift1 = key
if shifter + shift1 > 122:
shift1 = shift1 - (122 - shifter)
shift1 = shift1 % 26
new_str = new_str + chr(shift1 + 96)
elif shifter + shift1 > 90:
shift1 = shift1 - (90 - shifter)
shift1 = shift1 % 26
new_str = new_str + chr(shift1 + 64)
else:
new_str = new_str + chr(shifter - key)
return new_str
else:
print("Bad Input")
encode_or_decode_test()
def encode_or_decode_test():
desc1 = True
while desc1 == True:
result = encode_or_decode(str(input("Would you like to encode or decode? ")), str(input("Enter a string: ")), int(input("Enter a key (integer): ")))
print("Encoding or decoding given word based off decision, by given key:", result)
decisions = str(input("Would you like to encode or decode again? (y or n) "))
if decisions == "y":
desc1 = True
else:
desc1 = False
def main():
encode_or_decode_test()
encode中的elif条件应为-
相关问题 更多 >
编程相关推荐