python.casapython.casa
Home
  • Thema 1 - Einführung Programmiersprache
  • Thema 2 - Variablen und Datentypen
  • Thema 3 - Boolsche Algebra und Zeichenketten
  • Thema 4 - Datum und Zeit
  • Thema 5 - Kontrollstrukturen und Listen
  • Thema 6 - Funktionen und Flowcharts
  • Thema 7 - Objektorientierte Programmierung
  • Thema 8 - Ein- und Ausgabe
  • Thema 9 - Module und Import
  • Thema 10 - Datenbanken
  • Thema 11 - Grafische Benutzeroberfläche
  • Thema 12 - Webapplikation mit Python Flask
  • Thema 13 - Versionskontrolle mit Git
  • Thema 14 - Dokumentation mit Markdown
  • Thema 15 - Jupiter-Notebooks, SciPy und Matplotlib
GitHub
Home
  • Thema 1 - Einführung Programmiersprache
  • Thema 2 - Variablen und Datentypen
  • Thema 3 - Boolsche Algebra und Zeichenketten
  • Thema 4 - Datum und Zeit
  • Thema 5 - Kontrollstrukturen und Listen
  • Thema 6 - Funktionen und Flowcharts
  • Thema 7 - Objektorientierte Programmierung
  • Thema 8 - Ein- und Ausgabe
  • Thema 9 - Module und Import
  • Thema 10 - Datenbanken
  • Thema 11 - Grafische Benutzeroberfläche
  • Thema 12 - Webapplikation mit Python Flask
  • Thema 13 - Versionskontrolle mit Git
  • Thema 14 - Dokumentation mit Markdown
  • Thema 15 - Jupiter-Notebooks, SciPy und Matplotlib
GitHub
  • Stundenplan
  • Teil 1

    • Thema 1 - Einführung Programmiersprache
      • Slides Thema 1
      • Übungen Thema 1
    • Thema 2 - Variablen und Datentypen
      • Slides Thema 2
      • Übungen Thema 2
    • Thema 3 - Boolsche Algebra und Zeichenketten
      • Slides Thema 3
      • Übungen Thema 3
    • Thema 4 - Datum und Zeit
      • Slides Thema 4
      • Übungen Thema 4
    • Thema 5 - Kontrollstrukturen und Listen
      • Slides Thema 5
      • Übungen Thema 5
    • Thema 6 - Funktionen und Flowcharts
      • Slides Thema 6
      • Übungen Thema 6
    • Thema 7 - Objektorientierte Programmierung
      • Slides Thema 7
      • Übungen Thema 7
    • Thema 8 - Ein- und Ausgabe
      • Slides Thema 8
      • Übungen Thema 8
  • Teil 2

    • Thema 9 - Module und Import
      • Slides Thema 9
      • Übungen Thema 9
    • Thema 10 - Datenbanken
      • Slides Thema 10
      • Übungen Thema 10
    • Thema 11 - Grafische Benutzeroberfläche
      • Slides Thema 11
      • Übungen Thema 11
    • Thema 12 - Webapplikation mit Python Flask
      • Slides Thema 12
      • Übungen Thema 12
    • Thema 13 - Versionskontrolle mit Git
      • Slides Thema 13
      • Übungen Thema 13
    • Thema 14 - Dokumentation mit Markdown
      • Slides Thema 14
    • Thema 15 - Jupiter-Notebooks, SciPy und Matplotlib
      • Slides Thema 15
      • Übungen Thema 15
  • Prüfung

    • Wissensprüfung 1
    • Wissensprüfung 2
    • Leistungsnachweis

Fragen und Antworten

Hier werden Fragen und Antworten zum Kurs publiziert.

Ein Programm mehrmals ausführen

Frage: Wie kann ich ein Programm mehrmals ausführen?

Antwort:

# Programm mehrmals auführen

ausführen = 'Ja'

while(ausführen == 'Ja'):
    print("Programmcode ...")
    
    ausführen = input("Soll das Programm erneut ausgeführt werden? Ja, Nein: ")

Vorlage Dokumetation mit Obsidian

Frage: Wie kann ich eine Dokumentation mit Obsidian erstellen?

Antwort:

# Dokumentation

## Problemstellung

Beschreibung des Problems.

## Vorgehen

Vorgehen um das Problem zu lösen. Visualisierung mittels Flowchart.

![[Flowchart.png]]

## Umsetzung

Wie wurde die Lösung effektiv implementiert? Beschreibung der wichtigsten Programm-Teile.

## Rückblick

Gab es Problem bei der Umsetzung? Was lief gut und was nicht?

## Technische Anleitung

Wie kann man das Program ausführen? Welche Vorbereitungen müssen getroffen werden?

HTML-Dokument erweitern

Frage: Wie kann ich das HTML-Dokument erweitern?

Antwort:

from yattag import Doc

doc, tag, text = Doc().tagtext() # HTML-Funktionen abrufen

liste = ['Banane', 'Apfel', 'Orange']

with tag('html'): # HTML-Dokumente mit den Elementen zusammenstellen
    with tag('body'): # Mit with werden Funktionsaufrufe aneinander gereiht
        with tag('p', id = 'main'):
            text('Beispiel')
        with tag('a', href='https://example.com'):
            text('Linktext')
        with tag('ul'):
            for fruit in liste:
                with tag('li'):
                        text(fruit)
        doc.stag('img', src='https://raw.githubusercontent.com/janikvonrotz/python.casa/main/buch.png')

html = doc.getvalue() # HTML-Code generieren

with open('example.html', 'wt') as file:
    file.write(html)

JSON-HTTP-Response verarbeiten

Frage: Wie kann eine HTTP-Response mit JSON-Inhalt verarbeiten?

Antwort:

url = 'https://raw.githubusercontent.com/janikvonrotz/python.casa/main/topic-6/B%C3%BCcher.json'

import json
import urllib.request

response = urllib.request.urlopen(url)
data = json.loads(response.read().decode('utf-8'))

for book in data:
    print("Title: ", book['title'])

PyQt5 mit Visual Studio Code

Frage: Wie kann PyQt5 für Visual Studio Code installiert werden?

Antwort:

Animation Installation PyQt5 auf Visual Studio Code

CSV nach SQLite importieren

Frage: Ich konnte für mein Projekt "Ersatzteilverwaltung" eine Datenbank erstellen (wie im Unterricht) und über die Webapplikation mit Python Flask (wie im Unterricht) aufrufen. Jetzt möchte ich noch unsere bestehende Ersatzteilliste in diese Datenbank importieren, damit nicht alle Positionen (ca. 1800) von Hand eingetragen werden müssen. Nach einigen Stunden suchen und ausprobieren (SQL, CSV, ..., habe ich das Gefühl nicht wirklich zum Ziel zu gelangen. Wie würdest du so etwas lösen?

Antwort: Ich nehme an, dass die Spalten im CSV und im der SQLite Tabelle die gleichen Namen haben. Der einfachste Weg um das CSV zu importieren ist wohl mit dem SQLiteStudio https://sqlitestudio.pl/. Dazu ein Link mit einem Beispiel (weiter unten): https://www.sqlitetutorial.net/sqlite-import-csv/. Mit dem SQLiteStudio kannst du die Datenbankdatei direkt bearbeiten. Natürlich geht das auch über die Kommandozeile, dazu musst du die SQLite Tools installieren: https://www.sqlite.org/index.html. Dieser Vorgang ist aber etwas schwieriger und ist ebenfall in meinem Beispiel-Link vorhanden.

Spielfeld auf Kommandozeile

Frage: Wie kann ich ein Spielfeld, beispielsweise für Tic Tac Toe auf der Kommandozeile ausgeben?

Antwort: Dazu braucht es die folgenden Elemente: eine Schleife, eine Ausgabe einer Spielfeldzeile und eine Aktion die den Bildschirm zurücksetzt. Den Vorgang nennt man "Rendern".

import os

# 3x3 Matrix erstellen
matrix = [[' ' for i in range(0,3)] for i in range(0, 3)]

# Matrix-Feld anpassen
matrix[1][1] = 'x'

# Funktion zur Ausgabe der Matrix
def ausgabe():
    for row in matrix:
        print('|{0}|{1}|{2}|'.format(row[0], row[1], row[2]))

# Bildschirm löschen und Matrix ausgeben
os.system('clear')
ausgabe()
Edit this page
Last Updated:
Contributors: Janik von Rotz