2013-12-23 31 views
-1

是的我意識到我編輯原始問題出了一個錯誤,所以這裏再次;請注意,我立即問了另一個問題,因爲我之前在另一個項目中有過這方面的工作,因此我放棄了同樣的問題,但我無法弄清楚如何解決這個問題。語法錯誤,我找不出

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」在第三行造成語法錯誤,我不知道爲什麼。

+0

定義了哪個'x'?在嘗試對其進行解引用之前,您必須爲變量名賦予含義。 –

+0

它是以前定義的。 – Karatepig

+1

在第3行,你需要在字符串和'x ['name']'之間逗號「。 –

回答

2

嗯,首先,函數overwrite()的主體應該縮進;但我認爲這是一個複製粘貼錯誤。要解決您的特定問題,請在print之間的參數之間使用逗號「」。它應該是:

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

對於其他打印語句也是如此。

此外,你有一些遺漏的撇號/報價。你有'fname:'ply1.json',它應該是'fname':'ply1.json'(這發生在兩個地方)。

編輯:

如果你不斷收到「意外縮進」的錯誤,那麼很可能你是混合製表符和空格的文件中。 (當我切換編輯器時,我總是得到這個...)

+0

是的,這是一個複製粘貼錯誤。是的,我注意到之後缺少的引號,謝謝你的提醒。 – Karatepig

+0

這是否解決了您的問題? – tjklemz

+0

是的固定的東西,但現在有另一個問題;每次在引號後面有冒號時,都會出現語法錯誤,並且下面縮進的所有內容都會標記爲意外縮進。我將在一個示例中進行編輯。 – Karatepig

0

帶有x['name'],y['name']z['name']的打印語句沒有正確連接到字符串的第一部分。您應該向我們展示您收到的實際錯誤。如果x [ '名']是一個字符串,該行可以正確地寫爲:

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