Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.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 语法错误,我无法理解_Python_Python 2.7_Syntax Error - Fatal编程技术网

Python 语法错误,我无法理解

Python 语法错误,我无法理解,python,python-2.7,syntax-error,Python,Python 2.7,Syntax Error,是的,我意识到我在编辑原始问题时犯了一个错误,所以它又来了;请注意,我立即问了另一个问题,因为我以前在另一个项目中练习过这个领域,但我放弃了同样的问题,我不知道如何解决它 def overwrite(): print "Which save file would you like to overwrite?" print "Save file 1 contains:" x['name'] print "Save file 2 contains:" y['name']

是的,我意识到我在编辑原始问题时犯了一个错误,所以它又来了;请注意,我立即问了另一个问题,因为我以前在另一个项目中练习过这个领域,但我放弃了同样的问题,我不知道如何解决它

def overwrite():
    print "Which save file would you like to overwrite?"
    print "Save file 1 contains:" x['name']
    print "Save file 2 contains:" y['name']
    print "Save file 3 contains:" z['name']
    ovw=raw_input()
    if ovw.lower() == 1:
        write_data({'name':name, 'fname':'ply.json'}, 'ply.json')
    elif ovw.lower() == 2:
        write_data({'name':name, 'fname':'ply1.json}, 'ply1.json')
    elif ovw.lower() == 3:
        write_data({'name':name, 'fname':'ply2.json}, 'ply2.json')
    else:
        print "I don't understand that. Let's try again."
        overwrite()

x导致第三行出现语法错误,我不知道原因。

首先,函数体应该缩进;但我认为这是复制粘贴错误。要解决特定的问题,需要在print的参数之间使用逗号。应该是:

print "Save file 1 contains:", x['name']  # notice the comma before the x
其他打印语句也是如此

此外,还缺少一些撇号/引号。如果您有'fname:'ply1.json',它应该是'fname':'ply1.json',这在两个地方出现

编辑:

如果不断出现意外的缩进错误,则可能是文件中混合了制表符和空格。当我切换编辑器时,总是会遇到这种情况…

带有x['name']、y['name']和z['name']的print语句没有正确连接到字符串的第一部分。你应该告诉我们你收到的实际错误。如果x['name']是一个字符串,则该行可以正确地写为:

print "Save file 1 contains:" + x['name'] # plus sign

y和z的打印语句也是如此

def overwrite():
    print "Which save file would you like to overwrite?"
    print "Save file 1 contains:" x['name'] # x['name'] part is not concatenated properly to the first part of the string
    print "Save file 2 contains:" y['name']
    print "Save file 3 contains:" z['name']
    ovw=raw_input()
    if ovw.lower() == 1:
        write_data({'name':name, 'fname':'ply.json'}, 'ply.json')
    elif ovw.lower() == 2:
        write_data({'name':name, 'fname':'ply1.json'}, 'ply1.json')
    elif ovw.lower() == 3:
        write_data({'name':name, 'fname':'ply2.json'}, 'ply2.json')
    else:
        print "I don't understand that. Let's try again."
        overwrite()

x的定义在哪里?在尝试取消引用变量名称之前,必须为其指定含义。在第3行,字符串和x['name']之间需要一个逗号。@Karatepig,如果是新问题,请创建另一个问题,而不是编辑,原因是堆栈溢出的部分价值是为可能遇到相同问题的未来用户提供答案-如果您编辑掉原始问题,则会消除这种可能性。创建新问题后,您可能希望恢复编辑。@Karatepig:如果您在提出上一个问题后立即提出新问题,则表明您自己没有努力解决该问题。是的,这是复制粘贴错误。是的,我后来注意到了遗漏的引语,谢谢你大声说出来。这解决了你的问题吗?是的,那已经解决了,但现在还有另一个问题;每次我在引号后面加冒号时,都会出现语法错误,下面缩进的所有内容都被标记为意外缩进。我将在一个示例中进行编辑。
def overwrite():
    print "Which save file would you like to overwrite?"
    print "Save file 1 contains:" x['name'] # x['name'] part is not concatenated properly to the first part of the string
    print "Save file 2 contains:" y['name']
    print "Save file 3 contains:" z['name']
    ovw=raw_input()
    if ovw.lower() == 1:
        write_data({'name':name, 'fname':'ply.json'}, 'ply.json')
    elif ovw.lower() == 2:
        write_data({'name':name, 'fname':'ply1.json'}, 'ply1.json')
    elif ovw.lower() == 3:
        write_data({'name':name, 'fname':'ply2.json'}, 'ply2.json')
    else:
        print "I don't understand that. Let's try again."
        overwrite()