Python 定义函数时出现语法错误

Python 定义函数时出现语法错误,python,function,syntax,Python,Function,Syntax,定义此函数时出现语法错误 def questionfilehandler("filename.txt"): with open("filename.txt", "r") as file: print(file.read) return input() file.close() 我查了一下语法,看起来都是正确的。 感谢所有阅读并试图回答这个问题的人。非常感谢您的时间=。假设您的缩进得到固定,这是显而易见的。。。不能直接将字符串作为函数参数

定义此函数时出现语法错误

def questionfilehandler("filename.txt"):
    with open("filename.txt", "r") as file:
        print(file.read)
        return input()
        file.close()
我查了一下语法,看起来都是正确的。


感谢所有阅读并试图回答这个问题的人。非常感谢您的时间=。

假设您的缩进得到固定,这是显而易见的。。。不能直接将字符串作为函数参数调用。您需要一个变量:

def questionfilehandler(filename):
    with open(filename, "r") as file:
        print(file.read())
        return input()
        # file.close() - not needed
然后。。。可以使用字符串作为参数调用函数:

questionfilehandler("filename.txt")

不需要文件名。close as with operator会自动处理它。

您没有正确缩进。您显示的代码是实际代码的直接复制粘贴吗?如图所示的缩进?对不起,在网站上写这是一个错误。实际程序中的缩进是正确的。我现在已经修复了它们。您的函数参数不能作为字符串写入。另一件要知道的事情是,在使用openmy_文件的上下文处理程序时。。。您不需要在末尾调用my_file.close。它由with语句自动处理@ZaurNasibov-修复并注释掉文件。close@Bob14如果这对你有用的话,请考虑接受这个答案。
def questionfilehandler(filename = "data.txt"): # filename has default value so it will take your input if you provide with function call.
    with open(filename) as filedata:
        # print(file.read()) # no need for this method as all work done by "open()".
        for data in filedata:
            print data

questionfilehandler() # You can pass file name if you want to else keep the default.