#!/usr/bin/env python3 # Exercise 5, 2017-11-06 # Die Verwendung von datetime ist nicht in der Aufgabe, empfehle ich jedoch # für Daten gleich mitzuverwenden. Zum Einlesen von Strings als Datetime-Objekt # kann man strptime verwenden, https://docs.python.org/3.6/library/datetime.html#datetime.datetime.strptime, # z.B. datetime.strptime("01.05.1980", "%d.%m.%Y") wird datetime(1980, 5, 1) from datetime import datetime # Contact-Klasse zum Speichern von einzelnen Kontakten class Contact: def __init__(self, fname, lname, dob, phone, email): self.fname = fname # Vorname self.lname = lname # Nachname self.dob = dob self.phone = phone self.email = email def __str__(self): # Wird aufgerufen bei str() bzw. print() return "Contact {}, geboren {}, Tel {}, E-Mail {}".\ format(self.fullname(), self.pretty_dob(), self.phone, self.email) def fullname(self): # Hilfsmethode, um Vor- und Nachname zusammenzufügen return self.fname + " " + self.lname def pretty_dob(self): # Ausgabe des datetime-Objekts als Datum-String return self.dob.strftime("%d.%m.%Y") def set_phone(self, new_phone): # Änderung der Telefonnummer self.phone = new_phone def set_email(self, new_email): # Änderung der E-Mail self.email = new_email #### Step 1 # Nun eine Liste, in welcher wir unsere Contacts speichern my_contacts = [] karl = Contact("Karl", "Zeiss", datetime(1890, 5, 1), 1243561, "karl@zeiss.com") gustav = Contact("Gustav", "Gans", datetime(1980, 12, 24), 23264221, "gustav.gans@posteo.de") my_contacts.append(karl) my_contacts.append(gustav) #### Step 2 for contact in my_contacts: print(contact) # gibt den Wert aus __str__ zurück #### Step 3+4 print("Änderung der Telefonnummer") search_name = input("Name des Kontakts: ") new_phone = input("Neue Telefonnummer: ") for contact in my_contacts: found = False if contact.fullname() == search_name: found = True print("Kontakt gefunden, alte Telefonnummer: {}".format(contact.phone)) contact.set_phone(int(new_phone)) if not found: print("Kontakt nicht gefunden!") print(contact)