【问题标题】:Syntax Error invalid syntax for def Data(path)语法错误 def Data(path) 的语法无效
【发布时间】:2019-08-24 23:22:24
【问题描述】:

这是我遇到错误的代码行

def Data('C:/Users/username/Desktop/d.txt'):
    fp = open('C:/Users/username/Desktop/d.txt')

我收到以下错误:

File "read.py", line 17
    def DataExtract('C:/Users/username/Desktop/d.txt'):
                                                    ^
SyntaxError: invalid syntax

不确定是什么问题以及导致无效语法的原因

谢谢!

这是我正在处理的代码:

def DataExtract('C:/Users/username/Desktop/d.txt'):
fp = open('C:/Users/username/Desktop/d.txt')
data = {}
line = fp.read().split("\n")[2:7:5]:
while line:
    name, _, cont = line.partition(":")
    keys, _, values = cont.partition("=")
    keys = keys.split(",")
    values = values.split(",")
    temp_d = {}
    for i in range(len(keys)):
        key = key[i].strip()
        val = values[i].strip()
        temp_d[key] = float(val)
    data[name] = temp_d
    line = fp.readline()
fp.close()

返回数据

x = DataExtract('C:/Users/username/Desktop/d.txt')
mul_p = x['d1']['p'] * x['d2']['p']
print(mul_p)

【问题讨论】:

  • 你的函数定义和调用不匹配?
  • 您介意再解释一下您的意思吗?
  • 几个问题,你在 def 下的缩进不正确。所有行都应该向右移动大约 3 个空格,第二个你的 def 行不应该有“路径”。它应该没有任何内容或传入参数设置的变量。
  • 这很奇怪。你问了一个问题,我在这里给你这个函数作为答案。 stackoverflow.com/questions/57640068/…你告诉我它不起作用,我告诉你为什么。现在您将其作为一个新问题本身来问-_-
  • 是的,我试过你的代码;但它没有用,我认为这是因为我不理解它的某些部分并且没有正确使用代码。我是 python 新手,还不确定事情是如何工作的。我只是想了解一些我出错的细节。但我仍在处理你给我的代码...谢谢

标签: python function


【解决方案1】:

正如@LhasaDad 之前在 cmets 中提到的那样。

我发现您附加的代码中有两个错误。

第一个错误:

首先是“def”语句。该函数需要一个变量占位符而不是变量的值。例如:

>>> def fun('hello'):
  File "<stdin>", line 1
    def fun('hello'):
                  ^
SyntaxError: invalid syntax
>>> def fun(5):
  File "<stdin>", line 1
    def fun(5):
            ^
SyntaxError: invalid syntax

正确的做法是


>>> def fun(var):
...     print(var)
...
>>> #Then call the function using below method
...
>>> fun('hello')
hello
>>> fun(5)
5

第二个错误:

应该总是有 和 缩进(在 def 语句后有制表符或 4 个空格)

所以在你的情况下希望这会奏效

def DataExtract(file_path):
    fp = open(file_path)
    data = {}
    line = fp.read().split("\n")[2:7:5]
    while line:
        name, _, cont = line.partition(":")
        keys, _, values = cont.partition("=")
        keys = keys.split(",")
        values = values.split(",")
        temp_d = {}
        for i in range(len(keys)):
            key = keys[i].strip()
            val = values[i].strip()
            temp_d[key] = float(val)
        data[name] = temp_d
        line = fp.readline()
    fp.close()


# Now call the function as
DataExtract('C:/Users/username/Desktop/d.txt')

您还可以从 def 阅读如何使用 python 函数 https://www.w3schools.com/python/python_functions.asp

【讨论】:

    猜你喜欢
    • 2021-08-30
    • 2020-02-13
    • 2021-08-21
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多