Advertisement
Guest User

Python

a guest
Oct 20th, 2014
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.29 KB | None | 0 0
  1. # -*- coding: UTF-8 -*-
  2. class TeleBok():
  3.   def __init__(self):
  4.     self.TeleBokDic = {}
  5.  
  6.   def add(self, name, number, n):             #Skickar med name, number och n till funktionen.
  7.     i = self.TeleBokDic
  8.     if len(n) > 3:                            #Om längden på min input är större än 3 ord så skriver den felmeddelande.
  9.       print "Too many inputs."
  10.       return
  11.     elif number in i.keys():                  #Om numret jag skriver in finns i dictionaryn så ger den error.
  12.       print "Number is allready taken"
  13.     else:                                     #Annars lägger den till nummer som nyckel och namnet som value i en lista i dictionaryn.
  14.       self.TeleBokDic[number] = [name]
  15.       print "Contact added!"
  16.  
  17.   def lookup(self, name, n):
  18.     i = self.TeleBokDic
  19.     k = 0                                
  20.     if len(n) > 2:                            #Om längden på min input är större än 2 ord så skriver den felmeddelande.
  21.       print "Too many inputs."
  22.       return                                        
  23.     for key, value in i.items():              #En forloop där den kollar nyckel, värde i dictionaryns items.
  24.       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.
  25.         k = k + 1  
  26.         print "Name:", name, "\n", "Number:", key
  27.     if k == 0:
  28.       print "Contact not found"
  29.  
  30.   def alias(self, name, newname, n):
  31.     i = self.TeleBokDic
  32.     k = 0
  33.     if len(n) > 4:
  34.       print "Too many inputs."
  35.       return
  36.     for key, value in i.iteritems():
  37.       if name in value:
  38.         k = k + 1
  39.     if k == 0:
  40.       print "Contact not found"
  41.       return
  42.    
  43.     elif k > 1 and len(n) != 4:
  44.       print "There is more then one person with that name. Please enter the phonenumber."
  45.       #return
  46.  
  47.     elif k > 1 and len(n) == 4:
  48.       number = n[3]
  49.       for key, value in i.items():
  50.         if key == number:
  51.           value.append(newname)
  52.           print "Alias added"
  53.           #return
  54.  
  55.     elif k == 1:
  56.       for key, value in i.items():
  57.         if name in value:
  58.           value.append(newname)
  59.           print "Alias added"
  60.           #return
  61.  
  62.   def change(self, name, number, n):
  63.     i = self.TeleBokDic
  64.     k = 0
  65.     if len(n) > 4:
  66.       print "Too many inputs."
  67.       return
  68.     for key, value in i.items():
  69.       if name in value:
  70.         k = k + 1
  71.     if k == 0:
  72.       print "Contact not found"
  73.       return
  74.     elif k > 1 and len(n) != 4:
  75.       print "There is more then one person with that name."
  76.       return
  77.     elif k > 1 and len(n) == 4:
  78.       oldnr = n[3]
  79.       for key, value in i.items():
  80.         if key == oldnr:
  81.           self.TeleBokDic[number] = value
  82.           del self.TeleBokDic[key]
  83.           print "Number changed."
  84.           return  
  85.     elif k == 1:
  86.       for key, value in i.items():
  87.         if number in key:
  88.           print "The number is allready taken"
  89.           return
  90.         if name in value:
  91.           self.TeleBokDic[number] = value
  92.           del self.TeleBokDic[key]
  93.           print "Number changed."
  94.           return  
  95.  
  96.   def save(self, filename):
  97.     file = open(filename, 'w')
  98.     for key, value in self.TeleBokDic.items():
  99.       line = key + ";" + ";".join(value) + "\n"
  100.       file.write(line)
  101.     file.close()
  102.     print "Saved as:", filename
  103.  
  104.   def load(self, filename):
  105.     TeleBokDic = {}
  106.     file = open(filename, 'r')
  107.     for line in file:
  108.       line = line.split(";")
  109.       line[-1] = line[-1].strip("\n")
  110.       number = line[0]
  111.       name = line[1:]
  112.       self.TeleBokDic[number] = name
  113.     file.close()
  114.     print filename, "loaded"
  115.     #print self.TeleBokDic
  116.  
  117.   def remove(self, name, n):
  118.     i = self.TeleBokDic
  119.     k = 0
  120.     if len(n) > 3:
  121.       print "Too many inputs."
  122.       return
  123.     for key, value in i.items():
  124.       if name in value:
  125.         k = k + 1
  126.     if k == 0:
  127.       print "Contact not found"
  128.       return
  129.     elif k > 1 and len(n) != 3:
  130.       print "There is more then one person with that name."
  131.       return
  132.     elif k > 1 and len(n) == 3:
  133.       number = n[2]
  134.       for key, value in i.items():
  135.         if key == number:
  136.           del self.TeleBokDic[key]
  137.           print "Contact deleted."
  138.     elif k == 1:
  139.       del self.TeleBokDic[key]
  140.       print "Contact deleted."
  141.  
  142.   def prnt(self):
  143.     print self.TeleBokDic
  144.  
  145. def main():
  146.   n = True
  147.   tb = TeleBok()
  148.   while n:                                                
  149.     prompt = raw_input("Telefonbok>")
  150.     n = prompt.split()
  151.  
  152.     try:
  153.       function = n[0]
  154.       if function == "add":
  155.         tb.add(n[1], n[2], n)
  156.    
  157.       elif function == "lookup":
  158.         tb.lookup(n[1], n)
  159.    
  160.       elif function == "alias":
  161.         tb.alias(n[1], n[2], n)
  162.  
  163.       elif function == "change":
  164.         tb.change(n[1], n[2], n)
  165.  
  166.       elif function == "save":
  167.         tb.save(n[1])
  168.  
  169.       elif function == "print":
  170.         tb.prnt()
  171.  
  172.       elif function =="load":
  173.         tb.load(n[1])
  174.  
  175.       elif function =="remove":
  176.         tb.remove(n[1], n)
  177.  
  178.       elif function == "quit":
  179.         print("\n Goodbye")
  180.         n = None
  181.  
  182.       else:
  183.         print "Not valid choise, try again."
  184.    
  185.     except IndexError:
  186.       print "Wrong input. Try again."
  187. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement