2011-09-22 13 views
7

Sono un principiante che utilizza python 3.2 e ho un libro il cui codice è tutto in python 2.6. ho scritto una parte di un programma e continuo a ricevere: Errore di sintassi: sintassi non valida Poi IDLE di pitone evidenzia la virgola dopo KeyError nel mio codice:Errore di sintassi con KeyError in python 3.2

from tank import Tank 

tanks = { "a":Tank("Alice"), "b":Tank("Bob"), "c":Tank("Carol")} 
alive_tanks = len(tanks) 

while alive_tanks > 1: 
    print 
    for tank_name in sorted(tanks.keys()): 
     print (tank_name, tanks[tank_name]) 

    first = raw_input("Who fires? ").lower() 
    second = raw_input("Who at? ").lower() 

    try: 
     first_tank = tanks[first] 
     second_tank = tanks[second] 
    except KeyError, name: 
     print ("No such tank exists!", name) 
     continue 
+0

il codice non è completo ma ho ricevuto questo errore e interrotto la codifica – ahmedalishaikh

+0

dopo aver scritto la domanda, è necessario evidenziare il codice e fare clic sul pulsante codice. Questo si prenderà cura di rendere leggibile il tuo codice. L'ho fatto per te qui. –

+0

grazie mille amico ora funziona – ahmedalishaikh

risposta

13

Invece di

except KeyError, name: 

provare

except KeyError as name: 

È una differenza tra Python 2.xe Python 3.x. Il primo modulo non è più supportato.