Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: UTF-8 -*-
- class TeleBok():
- def __init__(self):
- self.TeleBokDic = {}
- def add(self, name, number, n): #Skickar med name, number och n till funktionen.
- i = self.TeleBokDic
- if len(n) > 3: #Om längden på min input är större än 3 ord så skriver den felmeddelande.
- print "Too many inputs."
- return
- elif number in i.keys(): #Om numret jag skriver in finns i dictionaryn så ger den error.
- print "Number is allready taken"
- else: #Annars lägger den till nummer som nyckel och namnet som value i en lista i dictionaryn.
- self.TeleBokDic[number] = [name]
- print "Contact added!"
- def lookup(self, name, n):
- i = self.TeleBokDic
- k = 0
- if len(n) > 2: #Om längden på min input är större än 2 ord så skriver den felmeddelande.
- print "Too many inputs."
- return
- for key, value in i.items(): #En forloop där den kollar nyckel, värde i dictionaryns items.
- if name in value: #Om namnet jag skriver inn finns i något värde så sätter den ett nytt värde på k och sen printar namn och nummer.
- k = k + 1
- print "Name:", name, "\n", "Number:", key
- if k == 0:
- print "Contact not found"
- def alias(self, name, newname, n):
- i = self.TeleBokDic
- k = 0
- if len(n) > 4:
- print "Too many inputs."
- return
- for key, value in i.iteritems():
- if name in value:
- k = k + 1
- if k == 0:
- print "Contact not found"
- return
- elif k > 1 and len(n) != 4:
- print "There is more then one person with that name. Please enter the phonenumber."
- #return
- elif k > 1 and len(n) == 4:
- number = n[3]
- for key, value in i.items():
- if key == number:
- value.append(newname)
- print "Alias added"
- #return
- elif k == 1:
- for key, value in i.items():
- if name in value:
- value.append(newname)
- print "Alias added"
- #return
- def change(self, name, number, n):
- i = self.TeleBokDic
- k = 0
- if len(n) > 4:
- print "Too many inputs."
- return
- for key, value in i.items():
- if name in value:
- k = k + 1
- if k == 0:
- print "Contact not found"
- return
- elif k > 1 and len(n) != 4:
- print "There is more then one person with that name."
- return
- elif k > 1 and len(n) == 4:
- oldnr = n[3]
- for key, value in i.items():
- if key == oldnr:
- self.TeleBokDic[number] = value
- del self.TeleBokDic[key]
- print "Number changed."
- return
- elif k == 1:
- for key, value in i.items():
- if number in key:
- print "The number is allready taken"
- return
- if name in value:
- self.TeleBokDic[number] = value
- del self.TeleBokDic[key]
- print "Number changed."
- return
- def save(self, filename):
- file = open(filename, 'w')
- for key, value in self.TeleBokDic.items():
- line = key + ";" + ";".join(value) + "\n"
- file.write(line)
- file.close()
- print "Saved as:", filename
- def load(self, filename):
- TeleBokDic = {}
- file = open(filename, 'r')
- for line in file:
- line = line.split(";")
- line[-1] = line[-1].strip("\n")
- number = line[0]
- name = line[1:]
- self.TeleBokDic[number] = name
- file.close()
- print filename, "loaded"
- #print self.TeleBokDic
- def remove(self, name, n):
- i = self.TeleBokDic
- k = 0
- if len(n) > 3:
- print "Too many inputs."
- return
- for key, value in i.items():
- if name in value:
- k = k + 1
- if k == 0:
- print "Contact not found"
- return
- elif k > 1 and len(n) != 3:
- print "There is more then one person with that name."
- return
- elif k > 1 and len(n) == 3:
- number = n[2]
- for key, value in i.items():
- if key == number:
- del self.TeleBokDic[key]
- print "Contact deleted."
- elif k == 1:
- del self.TeleBokDic[key]
- print "Contact deleted."
- def prnt(self):
- print self.TeleBokDic
- def main():
- n = True
- tb = TeleBok()
- while n:
- prompt = raw_input("Telefonbok>")
- n = prompt.split()
- try:
- function = n[0]
- if function == "add":
- tb.add(n[1], n[2], n)
- elif function == "lookup":
- tb.lookup(n[1], n)
- elif function == "alias":
- tb.alias(n[1], n[2], n)
- elif function == "change":
- tb.change(n[1], n[2], n)
- elif function == "save":
- tb.save(n[1])
- elif function == "print":
- tb.prnt()
- elif function =="load":
- tb.load(n[1])
- elif function =="remove":
- tb.remove(n[1], n)
- elif function == "quit":
- print("\n Goodbye")
- n = None
- else:
- print "Not valid choise, try again."
- except IndexError:
- print "Wrong input. Try again."
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement