2017-02-02 70 views
-4

這段代碼模擬合併2本聯繫簿。爲什麼我的程序錯誤(python)?

我的第18行代碼錯誤沒有明顯的原因與短語錯誤。我很確定這個措辭是正確的,程序應該運行,但每次我得到一個短語錯誤。

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

請分享堆棧跟蹤與你所得到的錯誤消息。我從來沒有聽說過Python中的* Phrase Error *。如果不知道錯誤,我們將無法爲您提供幫助 –

+1

您的__init__縮進不正確 – Mark

+0

糾正拼寫錯誤後適用於我。 – L3viathan

回答

3

我覺得names這裏是一個錯字:

con2.contacts[name] = other.contacts[names] 
相關問題