Übungen Thema 8

Aufgaben

Aufgaben zum Thema.

Aufgabe 8.1: Fehler abfangen

Sie erhalten ein einfache Liste und möchten das erste und das letzte Element ausgeben:

l = ['ZeroDivisionError', 'NameError', 'IndentationError', 'IOError', 'EOFError', 'IndexError']
print(l[0])
print(l[6])

Sie haben sicher verzählt und das Programm wirft einen Fehler. Fangen Sie den Fehler mit einen try-catch Bock ab

try:
	
except:
	print('Es gibt einen Fehler im Code!')

Fehler abfangenopen in new window

Aufgabe 8.2: Datentyp-Fehler behandeln

Wir nehmen an Sie haben diese Python-Funktion:

def pluszwei(zahl):
	return (zahl + 2)

Und verwenden sie in ihrem Programm.

print(pluszwei(2))
print(pluszwei('3'))

Bei der Ausführung erhalten Sie einen Fehler vom Typ TypeError. Fangen Sie diesen Fehlertyp in ihrem Programm mithilfe von try and except ab und geben Sie einen Hinweis zur Korrektur des Programms aus.

Datentyp-Fehler abfangenopen in new window

Aufgabe 8.3: Datei verarbeiten

Erstellen Sie eine Datei Limerick.txt mit diesen Inhalt:

Python was a language for you and for me
It was simple and clean, but slow we agree.
But that was ok,
We loved it anyway.
Until it went from version 2 to version 3.

Im selben Verzeichnis erstellen Sie ein Programm Limerick.py mit diesem Inhalt

with open('Limerick.txt') as f:
	for line in f:
		print(line, end='')

Ersetzten Sie das Wort Python mit C# in der Ausgabe von line.

Wenn das zu eifnach war, machen Sie das umkehrte:

  • Speichern Sie den Limerick in der Variable limerick
  • Schreiben Sie den Inhalt der Variable limerick in die Datei Limerick.txt

Datei verarbeitenopen in new window

Aufgabe 8.4: JSON zu CSV

Sie erhalten das folgende JSON-Dokument people.json:

[
    {
        "name": "Jason",
        "gender": "M",
        "age": 27
    },
    {
        "name": "Rosita",
        "gender": "F",
        "age": 23
    },
    {
        "name": "Leo",
        "gender": "M",
        "age": 19
    }
]

Damit Sie es verarbeiten können brauche Sie es im CSV-Format.

Entwickeln Sie ein Programm, dass dieses JSON-Dokuments zu einem CSV konvertiert.

Dazu diese Inputs:

import json
import csv
with open('people.json') as f:
    data = json.load(f)
print(data)
for person in data:
    print(f"name: {person['name']}")
with open('people.csv', 'w') as file:
    csv_writer = csv.writer(file, delimiter=',', quotechar='"')
    csv_writer.writerow(['Name', 'Gender', 'Age'])
    for person in data:
        csv_writer.writerow(person.values())

JSON zu CSVopen in new window

Aufgabe 8.5: Erste Website

Erstellen Sie eine persönliche Website mit einem HTML-Dokument. Nennen Sie das Dokument mypage.html.

Fügen Sie in der Website mithilfe des <pre> HTML-Tag Python-Code ein.

<!DOCTYPE html>
<html>
<head>
  <title>Python-Code in HTML</title>
</head>
<body>
  <h2>Python-Code in HTML</h2>
  <pre>
with open('index.html', 'w') as file:
	file.write(html)
  </pre>
</body>
</html>

Öffnen Sie das Dokument im Browser und testen Sie weitere HTML-Tags.

mypageopen in new window

Aufgabe 8.6: Dynamische Website

Sie erhalten ein Programm um eine Website zu erstellen:

from datetime import datetime 

html = f"""
<!DOCTYPE html>
<html>
<head>
  <title>HTML mit Erstelldatum</title>
</head>
<body>
  <p>Erstellt am {datetime.today()}.</p>
</body>
</html>
"""

with open('website.html', 'w') as file:
	file.write(html)

Führen Sie das Programm aus.

Öffnen Sie das Dokument website.html im Browser und führen Sie abwechslungsweise das Programm aus und aktualisieren die Seite mit F5

Dynamische Websiteopen in new window

Aufgabe 8.7: Webserver

Die Website von Aufgabe 8.5: Erste Website wollen wir nun publizieren. Dazu erstellen wir einen HTTP-Server. Dieser lädt unsere Website und stellt Sie für andere Computer bereit.

Führen Sie das folgende Programm Webserver.py aus.

import http.server
import socketserver

class HttpRequestHandler(http.server.SimpleHTTPRequestHandler):
    def do_GET(self):
        if self.path == '/':
            self.path = 'mypage.html'
        return http.server.SimpleHTTPRequestHandler.do_GET(self)

# Erstelle ein Objekt anhand der obigen Klasse
handler = HttpRequestHandler

server = socketserver.TCPServer(('', 1234), handler)

# Starte den Server
server.serve_forever()

Und öffnen Sie diesen Link http://localhost:1234/open in new window.

In der Python-Konsole sehen Sie nun die Website-Aufrufe.

Nun möchten wir das Programm anpassen. Ändern Sie den Port von 1234 auf den HTTP-Standardport 80 und zeigen Sie die Website unter dieser Adresse/Port an.

WARNING

Falls Sie beim Starten des Webservers aufgrund der Portänderung einen Fehler erhalten, belassen Sie den Port bei 1234.

Webserveropen in new window

Aufgabe 8.8: Intranet

Wenn ihr Computer und der ihrer Nachbaren im selben WLAN bzw. Netzwerk sind, sind die Voraussetzungen für ein Intranet gegeben.

Haben ihre Nachbaren die Website gestartet, können Sie anhand der IP-Adresse und der Port-Nummer anzeigen..

Zeigen Sie ihre lokale IPv4-Adresse über die Netzwerkeinstellungen des Computers an. Dazu ein Beispiel wie das auf einem Linux-Computer aussieht:

Tauschen Sie die IP-Adresse mit ihrem Nachbarn aus und rufen Sie die Website im Browser damit auf. Beispiel: http://192.168.1.104:1234open in new window.