2016-04-28 16 views
-1

Ich bin neu in der Programmierung. Ich nehme gerade Python in der Schule und bin in einen Fehler geraten und ich finde es heraus. Ich bekomme immer einen Syntaxfehler und bin mir nicht sicher, ob es sich um einen Tippfehler beim Lehrer oder mir handelt.Datensätze und Feld Syntax Fehler

def main(): 
    num_emps=int(input("How many employee records? ")) 
    empfile=open("employee.txt","w") 
    for count in range(1,num_emps+1): 
     print("Enter data for employee#",count,sep='') 
     name=input("Name: ") 
     id_num=input("ID Number: ") 
     dept=input("Department: ") 
     empfile=write.(name+"\n") 
     empfile=write.(id_num+"\n") 
     empfile=write.(dept+"\n") 
     print() 
    empfile.close 
    print("Employee records written to disk") 

main() 

Ich erhalte den Fehler bei

empfile=write.(name+"\n") 

oder wird angenommen

empfile.write(name+"\n") 

Danke für die Hilfe empfile.write()

+1

Probieren Sie es aus! Außerdem, um Ihre Datei zu schließen, rufen Sie 'empfile.close()' nicht 'empfille.close' – mvelay

+0

Ich versuchte immer noch, den gleichen Fehler zu bekommen. Danke auch für den kleinen Tippfehler! – skatepoiser

+0

Setzen Sie den detaillierten Fehler, den Sie in Ihrer Frage erhalten – mvelay

Antwort

0

Verwenden sein statt empfile=write.()

0

Korrigierte und optimierte Version:

def main(): 

    # indentation was missing in your question: 

    num_emps = int(input("How many employee records? ")) 
    empfile = open("employee.txt","w") 

    for count in range(num_emps): # range from 0 to num_emps-1 
     print("Enter data for employee #{}:".format(count)) # use str.format(...) 

     name = input("Name: ") 
     id_num = input("ID Number: ") 
     dept = input("Department: ") 

     empfile.write(name + "\n") 
     empfile.write(id_num + "\n") 
     empfile.write(dept + "\n") 
     # alternative using Python 3's print function: 
     # print(name, file=empfile) # line-break already included 

     print() 
    empfile.close() # to call the function, you need brackets() ! 
    print("Employee records written to disk") 

main() 

Auch ist es nicht wirklich eine Notwendigkeit, eine main() Funktion in Ihrem Beispiel zu schreiben. Sie hätten den Code direkt in die Datei einfügen können.
Und wenn Sie eine richtige main() Funktion möchten, verwenden Sie dieses Konstrukt zu nennen:

if __name__ == "__main__": 
    main() 
else: 
    print("You tried to import this module, but it should have been run directly!") 

Es wird verwendet, um zu bestimmen, ob ein Skript direkt von einem anderen Skript aufgerufen wurde oder importiert werden.