-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path11_phone_book_v2.py
117 lines (94 loc) · 3.01 KB
/
11_phone_book_v2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
class Person:
def __init__(self, name: str):
self._name = name
self._numbers = []
self._address = ''
def add_number(self, number: str):
self._numbers.append(number)
def add_address(self, address: str):
self._address = address
def name(self):
return self._name
def numbers(self):
return self._numbers
def address(self):
if self._address:
return self._address
return None
class PhoneBook:
def __init__(self):
self.__persons = []
def add_number(self, name: str, number: str):
for person in self.__persons:
if person.name() == name:
person.add_number(number)
return
new_person = Person(name)
new_person.add_number(number)
self.__persons.append(new_person)
def add_address(self, name: str, address: str):
for person in self.__persons:
if person.name() == name:
person.add_address(address)
new_person = Person(name)
new_person.add_address(address)
self.__persons.append(new_person)
# if not name in self.__persons:
# self.__persons.update(Person(name))
# name.add_number(number)
# name.add_number(number)
def get_entry(self, name: str):
for person in self.__persons:
if person.name() == name:
return person.numbers(), person.address()
else:
return [], None
def all_entries(self):
return self.__persons
class PhoneBookApplication:
def __init__(self):
self.__phonebook = PhoneBook()
def help(self):
print("commands: ")
print("0 exit")
print("1 add number")
print("2 search")
print("3 add address")
def add_number(self):
name = input("name: ")
number = input("number: ")
self.__phonebook.add_number(name, number)
def search(self):
name = input("name: ")
numbers, address = self.__phonebook.get_entry(name)
if numbers == []:
print("number unknown")
else:
for number in numbers:
print(number)
if address == None:
print('address unknown')
else:
print('address:', address)
def add_address(self):
name = input("name: ")
address = input("address: ")
self.__phonebook.add_address(name, address)
def execute(self):
self.help()
while True:
print("")
command = input("command: ")
if command == "0":
break
elif command == "1":
self.add_number()
elif command == "2":
self.search()
elif command == "3":
self.add_address()
else:
self.help()
# when testing, no code should be outside application except the following:
application = PhoneBookApplication()
application.execute()