繁体   English   中英

如何在python中调用函数?

[英]How do I call a function in python?

我正在尝试调用一个名为def importFile():的新函数def importFile():但是我收到错误消息,指出importFile() 我在做什么错,我知道这可能很简单,但是我是编码新手。

这是我要调用该函数的部分:

 def main():
        myMode = input("Encrypt 'e' or Decrypt 'd': ")
        textFile = input("Would you like to import a text file 'Y' or 'N': ")
        if textFile == 'y' or textFile == 'Y':
            importFile()   
        myMessage = input('Enter your text: ')
        myKey = input('Enter your key: ')
        myKey2 = input('Enter your second key: ')
        if myMode == 'encrypt' or myMode == 'e':
            translated = encryptMessage(myKey, myMessage)
        elif myMode == 'decrypt' or myMode == 'd':
            translated = decryptMessage(myKey, myMessage)
        print('%sYour Message: ' % (myMode.title()))
        print(translated)
        print()

这是功能:

def importFile():
    importText = []
    fileLocation = input('What is the name of the text file: ')
    open('fileLocation''r')

正如您可能会告诉我的那样,我正在尝试将文本文件导入python,但尚未通过第一个障碍:)

这是所有代码:

LETTERS = 'ZABCDEFGHIJKLMNOPQRSTUVWXY'
def main():
    myMode = input("Encrypt 'e' or Decrypt 'd': ")
    textFile = input("Would you like to import a text file 'Y' or 'N': ")
    if textFile.lower() == 'y' :
        importFile()   
    myMessage = input('Enter your text: ')
    myKey = input('Enter your key: ')
    myKey2 = input('Enter your second key: ')
    if myMode == 'encrypt' or myMode == 'e':
        translated = encryptMessage(myKey, myMessage)
    elif myMode == 'decrypt' or myMode == 'd':
        translated = decryptMessage(myKey, myMessage)
    print('%sYour Message: ' % (myMode.title()))
    print(translated)
    print()

def encryptMessage(key, message):
    return translateMessage(key, message, 'encrypt')

def decryptMessage(key, message):
    return translateMessage(key, message, 'decrypt')

def translateMessage(key, message, mode):
    translated = []

    keyIndex = 0
    keys = key.upper()

    for symbol in message: 
        num =LETTERS .find(symbol.upper())
        if num != -1: 
            if mode == 'encrypt':
                num += LETTERS .find(key[keyIndex]) 
            elif mode == 'decrypt':
                num -= LETTERS .find(key[keyIndex])

            num %= len(LETTERS)

            if symbol.isupper():
                translated.append(LETTERS[num])
            elif symbol.islower():
                translated.append(LETTERS[num].lower())

            keyIndex += 1 
            if keyIndex == len(key):
                keyIndex = 0
        else:
            translated.append(symbol)
    return ''.join(translated)
if __name__ == '__main__':
    main()

def importFile():
    importText = []
    fileLocation = input('What is the name of the text file: ')
    open('fileLocation','r')

main()

确定在定义importFile代码后确定要调用main吗? 输入此代码时:

def main():
    myMode = input("Encrypt 'e' or Decrypt 'd': ")
    textFile = input("Would you like to import a text file 'Y' or 'N': ")
    if textFile == 'y' or textFile == 'Y':
        importFile()   
    myMessage = input('Enter your text: ')
    myKey = input('Enter your key: ')
    myKey2 = input('Enter your second key: ')
    if myMode == 'encrypt' or myMode == 'e':
        translated = encryptMessage(myKey, myMessage)
    elif myMode == 'decrypt' or myMode == 'd':
        translated = decryptMessage(myKey, myMessage)
    print('%sYour Message: ' % (myMode.title()))
    print(translated)
    print()

def importFile():
    importText = []
    fileLocation = input('What is the name of the text file: ')
    open('fileLocation','r')

main()

它应该并且确实可以在我的机器上正常工作。

也许您的importFile函数位于另一个文件中,在这种情况下,您应该from ****file**** import importFile

我注意到的另一件事是您的最后一行open('fileLocation','r')需要逗号。

查看您的修改后:

if __name__ == '__main__':
    main()

需要在importFile定义之后。

它是

if __name__ == '__main__':
    main()

def importFile():
    importText = []
    fileLocation = input('What is the name of the text file: ')
    open('fileLocation','r')

main()

部分。

if __name__ == '__main__':
    main()

main()函数被调用,但是importFile()尚未定义。 将其移至上述行上方。

不需要末尾的附加main()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM