Kurs 23720
Thomas Irgang
Erste Schritte mit Python
Kurs 23720
Thomas Irgang
Erste Schritte mit Python
Inhalte
Erste Schritte mit Python
  • Tag 1: Grundlagen und erste Schritte
  • Tag 2: Daten
  • Tag 3: Bibliotheken und Funktionen
  • Tag 4: Klassen und Programme
Tag 3
Erste Schritte mit Python
  • Computer Grundlagen III: Algorithmen
  • Python Grundlagen III: Funktionen & Bibliotheken
  • Projekt 3: Web-APIs und Spreadsheets
  • Quellen zum Selbststudium
Computer Grundlagen
Erste Schritte mit Python
  • Was ist ein Algorithmus?
Wikipedia: Algorithmus
Algorithmen
Ein Algorithmus ist eine eindeutige Handlungsvorschrift zur Lösung eines Problems oder einer Klasse von Problemen.
  • Finitheit: endlich beschreibbar
  • Ausführbarkeit: jeder Schritt muss (eindeutig) ausführbar sein
  • Dynamische Finitheit: darf nur endlich viel Speicher verwenden
  • Terminierung: darf nur endlich viele Schritte benötigen
  • Determiniertheit: muss unter denselben Voraussetzungen
    das gleiche Ergebnis liefern
  • Determinismus: der nächste Schritt muss zu jedem Zeitpunkt eindeutig sein
Tag 3
Erste Schritte mit Python
  • Computer Grundlagen III: Algorithmen
  • Python Grundlagen III: Funktionen & Bibliotheken
  • Projekt 3: Web-APIs und Spreadsheets
  • Quellen zum Selbststudium
Funktion
Python Grundlagen
  • Code-Block mit Namen
  • Eingabe-Parameter
  • Rückgabewert

								>>> def maximum(a, b):
								...     if a > b:
								...         return a
								...     else:
								...         return b
								... 
								>>> maximum(5,6)
								6
							
Module
Python Grundlagen
  • Python Datei
  • Dokumentation
  • maximum.py
    
    										def maximum(a, b):
    											if a > b:
    												return a
    											else:
    												return b
    									
  • programm.py
    
    										from maximum import maximum
    										print(maximum(7,8))
    									

								$ python3 programm.py 
								8
							
Bibliotheken
Python Grundlagen
  • sind wiederverwendbare Programmteile
  • können in eigenen Programmen verwendet werden
  • werden mit "pip" installiert
  • werden mit "import" verwendet
  • sind wiederverwendbare Programmteile
  • können weiter Abhängigkeiten benötigen
Beispiel: matplotlib
Python Grundlagen
  • matplotlib kann Daten graphisch darstellen
  • matplotlib
  • Installation: "pip install matplotlib"

								>>> import matplotlib.pyplot as plt
								>>> x = range(1,10)
								>>> fig, ax = plt.subplots()
								>>> ax.plot(x, x)
								[]
								>>> plt.show()
							
Python Package Index (PyPI)
Python Grundlagen
Virtuelle Umgebung (venv)
Python Grundlagen
  • Abhängigkeiten von einem Programm
  • Hilft Versionskonflikte zu vermeiden
  • Erzeugen: python3 -m venv venv
  • Aktivieren:
    Linux/Mac: source venv/bin/activate
    Windows: venv\Scripts\activate.bat
    Dokumentation
Tag 3
Erste Schritte mit Python
  • Computer Grundlagen III: Algorithmen
  • Python Grundlagen III: Funktionen & Bibliotheken
  • Projekt 3: Web-APIs und Spreadsheets
  • Quellen zum Selbststudium
Aufgabe
Projekt 3: Web-APIs und Spreadsheets
  • Teil 1: Web-APIs
  • Teil 1.1: Was ist meine IP?
  • Teil 1.2: IP Info
  • Teil 2: Excel & OpenOffice
Teil 1: Web-APIs
Projekt 3: Web-APIs und Spreadsheets
  • Teil 1.1: Was ist meine IP?
    Schreibe ein Python Programm das die öffentliche IP des Rechners ermittelt.
    https://www.ipify.org/
  • Teil 1.2: IP Info
    Erweitere das Programm um die geographische Region der IP Adresse zu ermitteln
    https://ipinfo.io/
requests
Projekt 3: Web-APIs und Spreadsheets
  • requests ist eine Bibliotheken für Web-Anfragen
  • https://pypi.org/project/requests/
  • Installation:
    
    										$ python3 -m venv venv
    										$ source venv/bin/activate | venv\Scripts\activate.bat
    										$ pip install requests
    									

								>>> import requests
								>>> r = requests.get('https://api.chucknorris.io/jokes/random')
								>>> if r.status_code != 200:
								...     print('Fehler!')
								... else:
								...     json = r.json()
								...     print(json['value'])
								... 
								jesus did not make Chuck Norris, Chuck Norris made jesus
							
Gruppenarbeit
Projekt 3: Web-APIs und Spreadsheets
Lösung
Projekt 3: Web-APIs und Spreadsheets

								import requests

								r = requests.get('https://api.ipify.org?format=json')
								if r.status_code != 200:
									print('Fehler!')
								else:
									json = r.json()
									print(f"Die IP ist: {json['ip']}")
							

								$ python teil1_1.py
								Die IP ist: 84.39.77.83
							
Teil 1: Web-APIs
Projekt 3: Web-APIs und Spreadsheets
  • Teil 1.1: Was ist meine IP?
    Schreibe ein Python Programm das die öffentliche IP des Rechners ermittelt.
    https://www.ipify.org/
  • Teil 1.2: IP Info
    Erweitere das Programm um die geographische Region der IP Adresse zu ermitteln
    https://ipinfo.io/
    Hinweis: https://ipinfo.io/161.185.160.93/geo
Gruppenarbeit
Projekt 3: Web-APIs und Spreadsheets
Lösung
Projekt 3: Web-APIs und Spreadsheets

								...

								geo_url = f'https://ipinfo.io/{ip}/geo'
								r = requests.get(geo_url)
								if r.status_code != 200:
									print('Fehler, Geo-Daten konnten nicht ermittelt werden!')
									sys.exit(1)

								json = r.json()
								print(f"Land: {json['country']}\nStadt: {json['city']}\nISP: {json['org']}")
							

								$ python teil1_2.py                       
								Die IP ist: 84.39.77.83
								Land: DE
								Stadt: Neumarkt in der Oberpfalz
								ISP: AS39090 Brandl Services GmbH
							
Aufgabe
Projekt 3: Web-APIs und Spreadsheets
  • Teil 1: Web-APIs
  • Teil 1.1: Was ist meine IP?
  • Teil 1.2: IP Info
  • Teil 2: Excel & OpenOffice
openpyxl
Projekt 3: Web-APIs und Spreadsheets

								>>> from openpyxl import load_workbook
								>>> wb = load_workbook(filename = 'Employee Sample Data.xlsx')
								>>> ws = wb.active
								>>> spalten = [chr(x) for x in range(ord('A'), ord('N'))]
								>>> for s in spalten:
								...     print(ws[f'{s}1'].value)
								... 
								EEID
								Full Name
								Job Title
								...
							
pyexcel-ods
Projekt 3: Web-APIs und Spreadsheets

								>>> from collections import OrderedDict
								>>> from pyexcel_ods import save_data
								>>> data = OrderedDict()
								>>> data.update({"Meine Daten": [[1, 2, 3], [4, 5, 6]]})
								>>> save_data("meien_daten.ods", data)
							
Teil 2: Excel & OpenOffice
Projekt 3: Web-APIs und Spreadsheets
Gruppenarbeit
Projekt 3: Web-APIs und Spreadsheets
Lösung
Projekt 3: Web-APIs und Spreadsheets

								from openpyxl import load_workbook

								wb = load_workbook(filename = 'Employee Sample Data.xlsx')
								ws = wb.active
								i = 2
								sum = 0
								count = 0
								while ws[f'A{i}'].value:
									if ws[f'N{i}'].value == '':
										count = count + 1
										sum = sum + ws[f'J{i}'].value
									i = i + 1
								print("Durchschnittsverdienst: ${:0,.2f}".format(sum/count))
							

								$ python teil2.py
								Durchschnittsverdienst: $114,033.07
							
Teil 2: Excel & OpenOffice
Projekt 3: Web-APIs und Spreadsheets
Gruppenarbeit
Projekt 3: Web-APIs und Spreadsheets
Lösung
Projekt 3: Web-APIs und Spreadsheets

								...
								from collections import OrderedDict
								from pyexcel_ods import save_data

								zeilen = [['Name', 'Berufstitel']]
								i = 2
								while ws[f'A{i}'].value:
									if ws[f'N{i}'].value == '':
										zeilen.append([ws[f'B{i}'].value, ws[f'C{i}'].value])
									i = i + 1

								data = OrderedDict()
								data.update({"Angestellte": zeilen})
								save_data("angestellte.ods", data)
							
Tag 3
Erste Schritte mit Python
  • Computer Grundlagen III: Algorithmen
  • Python Grundlagen III: Funktionen & Bibliotheken
  • Projekt 3: Web-APIs und Spreadsheets
  • Quellen zum Selbststudium
Quellen zum Selbststudium (Deutsch)
Erste Schritte mit Python
Erste Schritte mit Python

Eigene Projekte

Bringt eure eigenen Projekte an Tag 4 mit!

Wunsch Projekte?

Was könnt ihr für euren Alltag brauchen?

Erste Schritte mit Python
Tag 4