Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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)