NB_01_Zusammenfassung_Informatik_2

(c) 2020/2021 Hochschule Augsburg - Fakultät für Informatik - Prof.Dr.Nik Klever

In [1]:
class Adresse():

    def __init__(self, strasse, plz, ort):
        self.Strasse = strasse
        self.Plz = plz
        self.Ort = ort
    
class Person():
    _staatsbürgerschaft = "deutsch"
    
    def __init__(self, nachname, vornamen, geburtsdatum, geschlecht=None):
        self.Nachname = nachname
        if isinstance(vornamen, list):
            self.Vornamen = vornamen
        else:
            self.Vornamen = [vornamen]
        self.Geburtsdatum = geburtsdatum
        self.Geschlecht = geschlecht
        self.Ausbildung = []
        
    def adresse(self, adresse):
        self.Adresse = adresse

    def ausbildung(self, name, von, bis, abschluss):
        self.Ausbildung.append(dict(Name=name,Von=von,Bis=bis,Abschluss=abschluss))
    
In [2]:
Werner = Person("Hierling",["Werner","Erich"],"10.11.1982","M")
Werner.adresse(Adresse("Wemdinger Str. 14","86720","Nördlingen"))
Werner.ausbildung("Realschule Maria Stern","15.9.1992","31.7.1998","Mittlere Reife")
Werner.ausbildung("Sparkasse Nördlingen","1.9.1998","31.7.2001","Bankkaufmann")
print("{} {} ist {} und wohnt in {}".format(Werner.Vornamen[0],
                                            Werner.Nachname,
                                            Werner.Ausbildung[-1]['Abschluss'],
                                            Werner.Adresse.Ort))
Werner Hierling ist Bankkaufmann und wohnt in Nördlingen
In [3]:
import datetime
import locale
locale.setlocale(locale.LC_ALL, locale.getlocale())

class localDate(datetime.date):
    def __str__(self):
        return self.strftime("%x")

    def alter(self):
        return (datetime.date.today().year - self.year)
    
class Mitarbeiter(Person):
    def __init__(self, abteilung, funktion, gehalt, **args):
        super(Mitarbeiter, self).__init__(**args)
        self.Abteilung = abteilung
        self.Funktion = funktion
        self.Gehalt = gehalt
In [4]:
Jürgen = Mitarbeiter(abteilung="Entwicklung",funktion="Projektleiter",gehalt=2450,
                     nachname="Eisenmann",vornamen=["Jürgen"],
                     geburtsdatum=localDate(1979,9,13),geschlecht="M")
Jürgen.adresse(Adresse("Buxacher Str. 5","87700","Memmingen"))
Jürgen.ausbildung("Vöhlin Gymnasium",localDate(1989,9,15),localDate(1999,7,31),"Abitur")
Jürgen.ausbildung("Hochschule Augsburg",localDate(1999,10,1),localDate(2003,7,31),"Diplom-Ingenieur(FH)")
print("{} {} ist {} und wohnt in {}".format(Jürgen.Vornamen[0],
                                            Jürgen.Nachname,
                                            Jürgen.Ausbildung[-1]['Abschluss'],
                                            Jürgen.Adresse.Ort))

summeAusbildungsZeiten = datetime.timedelta(0)
for ausb in Jürgen.Ausbildung:
    summeAusbildungsZeiten += ausb['Bis'] - ausb['Von']
print("Er hat insgesamt {:0.2f} Jahre für seine Ausbildung benötigt".format(summeAusbildungsZeiten.days/365))
Jürgen Eisenmann ist Diplom-Ingenieur(FH) und wohnt in Memmingen
Er hat insgesamt 13.71 Jahre für seine Ausbildung benötigt

Module

  • import
  • __main__
  • Python Code als Datei ausführen
    • im Jupyter Notebook:
      • %%writefile dateiname.py
      • !python dateiname.py
  • Modulsuchpfad
    • sys.path

dir

  • __init.py__
  • package.subpackage.modul

Fehler und Ausnahmen

Fehler

  • SyntaxError -> Information über Zeile und Spalte beachten
  • IndendationError -> Einrückungsfehler

wichtigste Ausnahmen

  • ZeroDivisionError
  • NameError
  • TypeError
  • ValueError

Ausnahmehierarchie

  • try:-Block
  • except:-Blöcke
  • finally:-Block

Informationen über Ausnahmen

Werfen von Ausnahmen

Funktionale Programmierung

Builtin-Funktionen

  • iter
  • next
  • StopIteration

Generatoren sind Funktionen, die statt über den Ausdruck return die Ergebnisse sukzessive mit dem Ausdruck yield zurückgeben und damit einen Iterator erstellen

Betriebssystem Werkzeuge

String Werkzeuge

Datenstrukturen Werkzeuge

Internet

Kompression

Datum und Test

Textdaten

Binärdaten

Listen

Dezimalzahlen

Prozess Werkzeuge

Multithreading

Multiprocessing

Logging