我无法弄清楚的语法错误

时间:2013-12-23 01:44:54

标签: 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']
    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”导致第三行出现语法错误,我不知道原因。

2 个答案:

答案 0 :(得分:2)

首先,函数overwrite()的主体应该缩进;但我认为这是一个复制粘贴错误。要解决您的具体问题,您需要在print 的参数之间使用逗号。它应该是:

print "Save file 1 contains:", x['name']  # notice the comma before the x

其他印刷语句也是如此。

另外,你有一些缺失的撇号/引号。你有'fname:'ply1.json'的地方应该是'fname':'ply1.json'(这发生在两个地方)。

修改

如果您不断收到“意外缩进”错误,那么您可能正在混合文件中的制表符和空格。 (当我切换编辑器时,我总是得到这个......)

答案 1 :(得分:0)

包含x['name']y['name']z['name']的打印语句未正确连接到字符串的第一部分。您应该向我们显示您收到的实际错误。如果x ['name']是一个字符串,则该行可以正确写为:

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

print "Save file 1 contains:", x['name'] # comma

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()