Python 类型错误';str';对象不可调用 用于范围内的i(len(msg)): 如果ord(msg[i])==32: encryptedMessage+=chr(ord(msg[i])) elif ord(信息[i])+键>122: 温度=(命令(信息[i])+键)-122 encryptedMessage+=chr(96+温度) elif(作战需求文件(信息[i])+密钥>90)和(作战需求文件(信息[i])122: 温度=(ord(ch)+键)-122 encryptedMessage+=chr(96+温度) elif(作战需求文件(ch)+密钥>90)和(作战需求文件(ch)122: 温度=(ord(ch)+键)-122 encryptedMessage+=chr(96+温度) elif(作战需求文件(ch)+密钥>90)和(作战需求文件(ch)122: 温度=(ord(ch)+键)-122 encryptedMessage+=chr(96+温度) elif(作战需求文件(ch)+密钥>90)和(作战需求文件(ch)
更新代码:Python 类型错误';str';对象不可调用 用于范围内的i(len(msg)): 如果ord(msg[i])==32: encryptedMessage+=chr(ord(msg[i])) elif ord(信息[i])+键>122: 温度=(命令(信息[i])+键)-122 encryptedMessage+=chr(96+温度) elif(作战需求文件(信息[i])+密钥>90)和(作战需求文件(信息[i])122: 温度=(ord(ch)+键)-122 encryptedMessage+=chr(96+温度) elif(作战需求文件(ch)+密钥>90)和(作战需求文件(ch)122: 温度=(ord(ch)+键)-122 encryptedMessage+=chr(96+温度) elif(作战需求文件(ch)+密钥>90)和(作战需求文件(ch)122: 温度=(ord(ch)+键)-122 encryptedMessage+=chr(96+温度) elif(作战需求文件(ch)+密钥>90)和(作战需求文件(ch),python,Python,更新代码: for i in range(len(msg)): if ord(msg[i]) == 32: encryptedMessage += chr(ord(msg[i])) elif ord(msg[i]) + key > 122: temp = (ord(msg[i]) + key) - 122 encryptedMessage += chr(96
for i in range(len(msg)):
if ord(msg[i]) == 32:
encryptedMessage += chr(ord(msg[i]))
elif ord(msg[i]) + key > 122:
temp = (ord(msg[i]) + key) - 122
encryptedMessage += chr(96+temp)
elif (ord(msg[i]) + key > 90) and (ord(msg([i]) < 96)):
temp = (ord(msg[i]) + key) - 90
encryptedMessage += chr(64+temp)
else:
encryptedMessage += chr(ord(msg([i]) + key))
def encrypt():
打印(“这是我们的Caeser密码加密程序。\n”)
msg=input(“输入要加密的消息:”).strip()
打印()
key=int(输入(“输入要加密的密钥,数字0-25:”)#基于字母表中的26个字母
encryptedMessage=“”
对于ch in msg:
如果ord(ch)==32:
encryptedMessage+=chr(ord(ch))
elif ord(ch)+键>122:
温度=(ord(ch)+键)-122
encryptedMessage+=chr(96+温度)
elif(作战需求文件(ch)+密钥>90)和(作战需求文件(ch)<96):
温度=(ord(ch)+键)-90
encryptedMessage+=chr(64+temp)
其他:
encryptedMessage+=chr(ord(ch)+密钥)
打印(“\n加密邮件…\n”)
睡眠(2)#表现出做复杂事情的样子
打印(“准备,即将完成…\n”)
睡眠(2)#同样多
打印(“您的加密邮件是:\n”)
打印(加密消息)
我不再收到任何错误,但编码无法按我所希望的方式工作,我制作了一个加密程序,它应该根据用户输入的文本和移位键打印代码。但是,程序只打印一个字母。在第二个elif条件和else行中,字符串msg中的方括号索引周围有圆括号,这可能是问题所在。试着这样做:
def encrypt():
print("Heres our Caeser Cipher Encryption program.\n")
msg = input("Enter the message you would like to encrypt: ").strip()
print()
key = int(input("Enter key to encrypt, a number 0-25: ")) #based on 26 letters in the alphabet
encryptedMessage = ""
for ch in msg:
if ord(ch) == 32:
encryptedMessage += chr(ord(ch))
elif ord(ch) + key > 122:
temp = (ord(ch) + key) - 122
encryptedMessage += chr(96+temp)
elif (ord(ch) + key > 90) and (ord(ch) < 96):
temp = (ord(ch) + key) - 90
encryptedMessage += chr(64+temp)
else:
encryptedMessage += chr(ord(ch) + key)
print("\nEncrypting your message...\n")
sleep(2) # give an appearance of doing something complicated
print("Stand by, almost finished...\n")
sleep(2) # more of the same
print("Your encrypted message is:\n")
print(encryptedMessage)
for i in range(len(msg)):
if ord(msg[i]) == 32:
encryptedMessage += chr(ord(msg[i]))
elif ord(msg[i]) + key > 122:
temp = (ord(msg[i]) + key) - 122
encryptedMessage += chr(96+temp)
elif (ord(msg[i]) + key > 90) and (ord(msg[i]) < 96):
temp = (ord(msg[i]) + key) - 90
encryptedMessage += chr(64+temp)
else:
encryptedMessage += chr(ord(msg[i]) + key)
然后,无论你在哪里有msg[i],你都可以引用无ch的nesty括号,也许可读性更强一些
for ch in msg:
对于ch in msg:
如果ord(ch)==32:
encryptedMessage+=chr(ord(ch))
elif ord(ch)+键>122:
温度=(ord(ch)+键)-122
encryptedMessage+=chr(96+温度)
elif(作战需求文件(ch)+密钥>90)和(作战需求文件(ch)<96):
温度=(ord(ch)+键)-90
encryptedMessage+=chr(64+temp)
其他:
encryptedMessage+=chr(ord(ch)+密钥)
下面是一个工作示例,您应该能够复制、粘贴和运行:
for ch in msg:
if ord(ch) == 32:
encryptedMessage += chr(ord(ch))
elif ord(ch) + key > 122:
temp = (ord(ch) + key) - 122
encryptedMessage += chr(96+temp)
elif (ord(ch) + key > 90) and (ord(ch) < 96):
temp = (ord(ch) + key) - 90
encryptedMessage += chr(64+temp)
else:
encryptedMessage += chr(ord(ch) + key)
msg=input(“消息:”)
键=13
encryptedMessage=“”
对于ch in msg:
如果ord(ch)==32:
encryptedMessage+=ch
elif ord(ch)+键>122:
温度=(ord(ch)+键)-122
encryptedMessage+=chr(96+温度)
elif(作战需求文件(ch)+密钥>90)和(作战需求文件(ch)<96):
温度=(ord(ch)+键)-90
encryptedMessage+=chr(64+temp)
其他:
encryptedMessage+=chr(ord(ch)+密钥)
打印(加密消息)
在最后一行的msg([i])
中,您试图像调用函数一样调用msg。出现了什么错误?你能在你的问题中也发布这个吗非常感谢你,我再也不会出错了,但是现在我的代码并没有达到我想要的效果。。哎呀,这意味着用特定的文本加密消息,并像Caeser密码程序一样改变用户输入,但它只在结尾打印一个字母,而不是加密的消息嗯。。。这似乎对我有用。我在最后添加了输入、一个键和一个打印-我将编辑答案,添加一个“工作示例”,您可以尝试。它现在起作用了。哦,天哪,我不确定那里发生了什么再次感谢您
msg = input("Message: ")
key = 13
encryptedMessage = ""
for ch in msg:
if ord(ch) == 32:
encryptedMessage += ch
elif ord(ch) + key > 122:
temp = (ord(ch) + key) - 122
encryptedMessage += chr(96+temp)
elif (ord(ch) + key > 90) and (ord(ch) < 96):
temp = (ord(ch) + key) - 90
encryptedMessage += chr(64+temp)
else:
encryptedMessage += chr(ord(ch) + key)
print(encryptedMessage)