2017-02-02 5 views
-4

Dieser Code simuliert das Zusammenführen von 2 Kontaktbüchern.Warum ist mein Programm fehlerhaft (Python)?

Meine Code-Fehler in Zeile 18 ohne ersichtlichen Grund mit einem Satzfehler. Ich bin mir ziemlich sicher, dass die Phrasierung korrekt ist und dass das Programm laufen sollte, aber jedes Mal bekomme ich einen Satzfehler.

class ContactBook: 
     """ 
     This class represents a book of contacts. 
     It can store names and phone numbers. 
     """ 

     def __init__(self): 
     # Create an empty dictionary 
     self.contacts = {} 

    def __repr__(self): 
     # Just print a string version of the dictionary 
     return str(self.contacts) 
    def __add__(self, other): 
     con2 = ContactBook() 
     for name in self.contacts: 
      if name in other.contacts and self.contacts[name] != other.contacts[name]: 
       con2.contacts[name] = self.contacts[name] + " or " + other.contacts[name] 
      else: 
       con2.contacts[name] = self.contacts[name] 
     for name in other.contacts: 
      if name not in self.contacts: 
       con2.contacts[name] = other.contacts[names] 
     return con2 

    def add_contact(self, name, number): 
     # Adds a name --> phone number pair to 
     # the dictionary. 
     self.contacts[name] = number 

############################# 
# Program starts here 

cb1 = ContactBook() 
cb2 = ContactBook() 

cb1.add_contact("Jonathan", "444-555-6666") 
cb1.add_contact("Puneet", "333-555-7777") 
cb2.add_contact("Jonathan", "222-555-8888") 
cb2.add_contact("Lisa", "111-555-9999") 



# The result of this should be a book that 
# looks like this: 
# 
# { 
#  "Jonathan": "444-555-6666 or 222-555-8888", 
#  "Puneet": "333-555-7777", 
#  "Lisa": "111-555-9999" 
# } 
cb3 = cb1 + cb2 
print cb1 
print cb2 
print cb3 
+4

Bitte teilen Sie den Stapel-Trace mit der Fehlermeldung, die Sie bekommen. Ich habe noch nie von Phrase Error * in Python gehört. Wir können Ihnen nicht helfen, ohne den Fehler zu kennen –

+1

Ihr __init__ ist nicht korrekt eingerückt – Mark

+0

Funktioniert für mich, sobald die Tippfehler korrigiert sind .. – L3viathan

Antwort

3

Ich denke names ist ein Tippfehler hier:

con2.contacts[name] = other.contacts[names] 
Verwandte Themen