Python 为什么我会得到';无效语法';IF条件后的错误?

Python 为什么我会得到';无效语法';IF条件后的错误?,python,syntax,syntax-error,Python,Syntax,Syntax Error,我有一个带有if条件的Python程序,它检查一个项目是否不在字典中,如果不在字典中,则抛出一个错误。否则代码应该继续运行。但是,我收到一个与if条件后的下一行代码相关的“无效语法”错误,我不明白为什么。如果代码行单独运行,则可以正常工作,但如果与if语句一起运行,则不能正常工作。我在程序中有多个异常,所以我不希望它们和剩余的代码都包含在elif条件的层次结构中。据我所知,我看不出这段代码有任何错误,所以如果有人能指出原因,我将不胜感激 下面是一段示例代码,它也会产生相同的错误和相关的错误消息

我有一个带有if条件的Python程序,它检查一个项目是否不在字典中,如果不在字典中,则抛出一个错误。否则代码应该继续运行。但是,我收到一个与if条件后的下一行代码相关的“无效语法”错误,我不明白为什么。如果代码行单独运行,则可以正常工作,但如果与if语句一起运行,则不能正常工作。我在程序中有多个异常,所以我不希望它们和剩余的代码都包含在elif条件的层次结构中。据我所知,我看不出这段代码有任何错误,所以如果有人能指出原因,我将不胜感激

下面是一段示例代码,它也会产生相同的错误和相关的错误消息

代码示例:

item = 'a'
item_dict = {
    'a': ['A1','A2','A3'],
    }

if item not in item_dict:
    raise Exception("Error")

# Extract the relevant add on codes from the dictionary.
item_codes = item_dict.get(item)
错误消息:

File "<stdin>", line 5
item_codes = item_dict.get(item)
         ^
SyntaxError: invalid syntax
文件“”,第5行
物料代码=物料目录获取(物料)
^
SyntaxError:无效语法

编辑:我修复了示例代码中的拼写错误,但仍然收到相同的语法错误。请注意,只有当我将此代码块作为一个代码块运行时,才会发生错误。如果我全部运行它,不包括分配item_codes变量的底线,然后自己运行该行,这很好,并产生预期的结果,但是我正在编写的代码需要作为一个完整的程序运行。

在If块之后,您没有给它换行符。 我没有改变任何其他东西,它正在工作

item = 'a'
item_dict = {'a': ['A1','A2','A3']}

if item not in item_dict:
    raise Exception("Error")

item_codes = item_dict.get(item)
看看这个

>>> if item not in item_dict:
...   print("hi")
... print("hhi")
  File "<stdin>", line 3
    print("hhi")
        ^
SyntaxError: invalid syntax
>>如果项目不在项目目录中:
...   打印(“hi”)
... 打印(“hhi”)
文件“”,第3行
打印(“hhi”)
^
SyntaxError:无效语法
在cmd中,if后面的语句被视为if的一部分,因此它需要一个制表符


您需要添加一个新行,就是这样。

在if块之后您没有给它一个新行。 我没有改变任何其他东西,它正在工作

item = 'a'
item_dict = {'a': ['A1','A2','A3']}

if item not in item_dict:
    raise Exception("Error")

item_codes = item_dict.get(item)
看看这个

>>> if item not in item_dict:
...   print("hi")
... print("hhi")
  File "<stdin>", line 3
    print("hhi")
        ^
SyntaxError: invalid syntax
>>如果项目不在项目目录中:
...   打印(“hi”)
... 打印(“hhi”)
文件“”,第3行
打印(“hhi”)
^
SyntaxError:无效语法
在cmd中,if后面的语句被视为if的一部分,因此它需要一个制表符


您需要添加一个新行,就是这样。

我可以重现您的语法错误的唯一方法是,例如,如果我在前一行中省略了右括号

item = 'a'
items_dict = {
    'a': ['A1','A2','A3'],
    }
if item not in items_dict:
    raise Exception("Error"   #here i have left off the closing parenthesis

item_codes = items_dict.get(item)

#ERROR#
  File "<ipython-input-13-919d98974d80>", line 5
    item_codes = items_dict.get(item)
             ^
SyntaxError: invalid syntax
item='a'
项目目录={
'a':['A1','A2','A3'],
}
如果项目不在项目目录中:
引发异常(“错误”#这里我省略了右括号
项目代码=项目目录获取(项目)
#错误#
文件“”,第5行
项目代码=项目目录获取(项目)
^
SyntaxError:无效语法

在编写代码之前,请仔细检查这些行,看看是否遗漏了右大括号、qoute或其他什么

重现语法错误的唯一方法是,例如,在前一行中省略右大括号

item = 'a'
items_dict = {
    'a': ['A1','A2','A3'],
    }
if item not in items_dict:
    raise Exception("Error"   #here i have left off the closing parenthesis

item_codes = items_dict.get(item)

#ERROR#
  File "<ipython-input-13-919d98974d80>", line 5
    item_codes = items_dict.get(item)
             ^
SyntaxError: invalid syntax
item='a'
项目目录={
'a':['A1','A2','A3'],
}
如果项目不在项目目录中:
引发异常(“错误”#这里我省略了右括号
项目代码=项目目录获取(项目)
#错误#
文件“”,第5行
项目代码=项目目录获取(项目)
^
SyntaxError:无效语法

在编写代码之前,请仔细检查行,看看是否遗漏了右括号、qoute或其他内容

您已声明了
item\u dict
,然后尝试访问
items\u dict
?在解决了声明item\u dict的问题后,但尝试访问items\u dict此代码对我有效。抱歉,我正在更改变量名和simple如果对示例的代码进行了修改,那么这是一个错误。修改后,代码会产生相同的错误。这是唯一的问题,如果您将变量名修改为第2行中的items_dict,则工作正常如果您仍然遇到相同的问题,那么您运行的代码与upda时共享的代码不同没有拼写错误的ted很好您声明了
items\u dict
,然后尝试访问
items\u dict
?修复了声明item\u dict的问题后,但尝试访问items\u dict这段代码对我来说很有效。很抱歉,我更改了变量名并简化了示例的代码,这是一个错误。代码prod修复后出现相同的错误。这是唯一的问题,如果您将变量名修复到第2行的items_dict,它工作正常如果您仍然遇到相同的问题,那么您运行的代码与您在此处共享的代码不一样,因为当更新时此处的代码没有拼写错误是正常的谢谢-这解决了它。I已放置新行,但新行似乎缩进到我的代码中,而代码中没有复制到此处。删除行中的缩进后,代码运行良好。谢谢-这解决了问题。我已放置新行,但新行似乎缩进到我的代码中,而代码中没有复制到此处。删除行中的缩进后,代码运行好的