Der Notizblock zu „Programmieren Lernen mit Python“

Hier kommen die unsortierten Ideen rein, aus denen dann später Lernmaterial werden soll…

Buttons

Hübsche Buttons, erstellt in PowerPoint. Später vielleicht ein Schere/Stein/Papier-Spiel? Führt Dateizugriff ein, ist aber irgendwie unelegant gelöst. Klare Trennung von Code und Bildern einführen oder lassen?

Vielleicht auch eine Web-App “Willst Du mit mir gehen?“ mit drei Countern für ja/nein/vielleicht. Danach erweitern mit Speicherung von Datum und Uhrzeit (evtl Browser? Cookies?), um vermeintlich anonymen Zugriff zu de-anonymisieren. Pyqt5 sieht auch schön aus.

from tkinter import *
window=Tk()
window.geometry('350x450+700+200')
img = PhotoImage(file='ende.png')
img2 = PhotoImage(file='push.png')
Button(
    window,
    image=img,
    command=None
).pack()

Button(
    window,
    image=img,
    command=None
).pack()
Button(
    window,
    image=img2,
    command=None
).pack()
window.mainloop()

Weiterarbeiten mit Texten

Wörterratespiel, das später mal Vokabeltrainer werden soll. Braucht noch Dateizugriff. Wie sollen die Daten gespeichert werden – Liste? CSV (würde schön zu Excel-Stunden passen)? Eigener Datentyp? XML(müsste auch noch eingeführt werden, wird umständlich)?

from tkinter import *

wort="tree"

zaehler=0

def guess():
    global zaehler
    zaehler=zaehler+1
    print(zaehler)
    ratewort=textbox.get()
    messagetext=zaehler
    message2=Label(window,text=messagetext)
    message2.place(x=10,y=40)


    print (ratewort)
    if ratewort==wort:
        print("richtig") 
        messagetext="RICHTIG"
        message=Label(window,text=messagetext)
        message.place(x=10,y=10)
      
        

window=Tk()
window.title("Mein Fenster")
messagetext="Hallo"
message=Label(window,text=messagetext)
message.place(x=10,y=10)
knopf=Button(window,text="Raten",command=guess)
knopf.place(x=300,y=10)
textbox=Entry(window)
textbox.place(x=110,y=10)

window.geometry("400x300+90+90")

window.mainloop()

App-Entwicklung für mobile Geräte

Kivy sieht nach einer einsteigerfreundlichen Programmierumgebung für iOS und Android aus, die auf Python aufbaut. Konzepte, die die Schüler vor dem Programmieren mit Kivy kennen sollten:

  • Klassen
  • Funktionen
  • Bibliotheken
import kivy
kivy.require('1.0.6') # hier muss die aktuelle kivy-Version hin

from kivy.app import App #import haben wir vorher schon mit tkinter gelernt
from kivy.uix.label import Label #oder doch einfach import *?



class MyApp(App):

    def build(self):
        return Label(text='Hallo Welt!') #Sollte aus dem Englischen klar sein


if __name__ == '__main__': #private/public vorher erklären
    MyApp().run() #oder doch einfach die Abfrage weglassen?

Das Beispiel von Kivy Basics — Kivy 2.0.0 documentation müsste noch weiter überarbeitet werden, um zu zeigen, wie man Buttons einfügt, und deren Status abfängt. Texteingabe wäre auch noch schön, aber für das erste Beispiel vielleicht zu viel.