Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.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 尝试制作加密程序,对文件进行读写,并用两个关键字进行加密。len()函数不工作_Python_Encryption - Fatal编程技术网

Python 尝试制作加密程序,对文件进行读写,并用两个关键字进行加密。len()函数不工作

Python 尝试制作加密程序,对文件进行读写,并用两个关键字进行加密。len()函数不工作,python,encryption,Python,Encryption,试图用python创建一个加密/解密程序,从文件中读取消息,用两个关键字加密,然后输出到另一个文件。而且,它可以反过来做。 我对len()函数有问题: 我得到一个错误:内置函数或方法类型的对象在这段代码中没有len() if (len(line)) == 0: fileRead = True 在上下文中,这是整个程序: print("Welcome to Python Encrypt 2015") print("Only enter alphabet charcters

试图用python创建一个加密/解密程序,从文件中读取消息,用两个关键字加密,然后输出到另一个文件。而且,它可以反过来做。 我对len()函数有问题: 我得到一个错误:内置函数或方法类型的对象在这段代码中没有len()

    if (len(line)) == 0:
        fileRead = True
在上下文中,这是整个程序:

print("Welcome to Python Encrypt 2015")
print("Only enter alphabet charcters into the file - no punctuation!")

#repeat loop for using program again and so on...
finished = False
while not finished:

#input and validation of encrypt/decrypt input
option = input("Do you want to encrypt or decrypt? (E/D): ")
while "E" != option != "D":
        option = input("Only input 'E' or 'D'! Do you want to encrypt or decrypt? (E/D): ")

#file to be encrypted/decrypted is opened to read
message = ""
fileRead = False
if option == "E":
    file = open("Task3Decrypted.txt","r")
else:
    file = open("Task3Encrypted.txt","r")

#message from 'to encrypt' file is read and outputted to variable
while not fileRead:
    line = (file.readline()).strip()
    if line.isalpha()==True:
        line = line.lower
    else:
        input("Message contains numbers or symbols. Please correct! Press any key to continue: ")
        sys.exit
    if (len(line)) == 0:
        fileRead = True
    else:
        message = message + line
#file closed - saving it
file.close()

#validating keyword and stretching and cutting to length of message
key1True = False
while key1True == False:
    keyword1 = input("Enter your first keyword: ")
    if keyword1.isalpha()==True:
        keyword1 = keyword1.lower()
        key1True = True
key1length = len(keyword1)
while len(keyword1)<len(message):
    keyword1=keyword1+keyword1
keyword1=keyword1[:len(message)]

key2True = False
while key2True == False:
    keyword2 = input("Enter your second keyword: ")
    if keyword2.isalpha()==True:
        keyword2 = keyword2.lower()
        key2True = True
key2length = len(keyword2)
while len(keyword2)<len(message):
    keyword2=keyword2+keyword2
keyword2=keyword2[:len(message)]

newMessage = ""
for i in range(len(message)):
    char = ord(message[i])-96
    key1 = ord(keyword1[i])-96
    key2 = ord(keyword2[i])-96
    if char==-64:
        newMessage = newMessage+" " 
    else:
        if option == "E":
            #clearing original file for security
            clearFileE = open("Task3Decrypted.txt","w")
            clearFileE.close
            #encryption
            if char+key1+key2>26:
                newMessage = newMessage+chr(char+key1+key2-26+96)
            else:
                newMessage = newMessage+chr(char+key1+key2+96)
            newFile = open("Task3Encrypted.txt","w")
            newFile.write(newMessage)
            newFile.close()

        else:
            clearFileD = open("Task3Encrypted.txt","w")
            clearFileD.close
            #decryption
            if char-key1-key2<1:
                newMessage = newMessage+chr(char-key1-key2+26+96)
            else:
                newMessage = newMessage+chr(char-key1-key2+96)
            newFile = open("Task3Decrypted.txt","w")
            newFile.write(newMessage)
            newFile.close()

carryOn = input("Do you want to encrypt/decrypt another message? (Y/N): ") 
while "Y" != carryOn != "N":
    carryOn = input("Only input 'Y' or 'N'! Do you want to encrypt/decrypt another message? (Y/N): ") 
if carryOn == "N":
    finished = True    
print(“欢迎来到Python加密2015”)
打印(“仅在文件中输入字母字符-无标点符号!”)
#重复循环以再次使用程序,等等。。。
完成=错误
未完成时:
#加密/解密输入的输入和验证
选项=输入(“您想加密还是解密?(E/D):”)
而“E”!=选项!=“D”:
option=input(“仅输入'E'或'D'!是否要加密或解密?(E/D):”)
#要加密/解密的文件已打开以读取
message=“”
fileRead=False
如果选项==“E”:
文件=打开(“Task3Decrypted.txt”、“r”)
其他:
文件=打开(“Task3Encrypted.txt”、“r”)
#读取来自“to encrypt”文件的消息并将其输出到变量
虽然不是文件读取:
line=(file.readline()).strip()
如果line.isalpha()==True:
line=line.lower
其他:
输入(“消息包含数字或符号。请更正!按任意键继续:”)
系统出口
如果(len(line))==0:
fileRead=True
其他:
消息=消息+行
#文件关闭-保存它
file.close()文件
#验证关键字并拉伸和剪切到消息长度
key1True=False
当key1True==False时:
关键字1=输入(“输入您的第一个关键字:”)
如果关键字1.isalpha()==True:
关键字1=关键字1.lower()
key1True=True
关键字1长度=长度(关键字1)

而len(关键字1)在

line = line.lower()
如果没有(),则将行设置为lower()函数本身的对象,因此会显示错误消息