【发布时间】:2015-01-08 01:07:18
【问题描述】:
我正在尝试在 python 中创建一个凯撒密码,但是我遇到了一个错误。 我的代码是:
print("Enter desired function.")
print("1 - Encode")
print("2 - Decode")
function = input("")
if function == "1":
print("How much do you want to offset it by?")
offset = int(input(""))
elif function == "2":
print("How much is it offset by?")
offset = int(input("")) * -1
print("Enter the message.")
message = input("")
upperMessage = message.upper
length = len(message)
for i in range(length):
letter = upperMessage[i-1]
number = ord(letter)
offsetNumber = number + offset
if offsetNumber > 90:
highOffset = offsetNumber - 90
offsetNumber = 65 + highOffset
if offsetNumber < 65:
lowOfsset = 65 - offsetNumber
offsetNumber = lowOffset + 90
newLetter[i-1] = chr(offsetNumber)
print(newLetter)
一开始运行良好,但是当我输入消息时,我收到错误:
TypeError: 'builtin_function_or_method' object is not subscriptable
我已尝试更换线路
letter = upperMessage[i-1]
与
letter = upperMessage(i-1)
但这会返回错误
TypeError: upper() takes no arguments (1 given)
你能帮帮我吗? 非常感谢, 狐狸
【问题讨论】:
-
你的意思是
upperMessage = message.upper()- 注意括号。
标签: python