Programm für Arbeit

Fragen zu Tkinter.
python12
User
Beiträge: 9
Registriert: Freitag 6. Februar 2009, 15:30

Mein Lehrer sagt immer Unterprogramme. so hab ich das nunmal gelernt. kann mir jetzt mal bitte jemand helfen?
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

@lunar: Meine Aussage hat sich keinesfalls auf alle Informatiklehrer bezogen, aber ich habe schon oft genug solche Dinger wie hier gerade erlebt und auch oft genug von Freunden berichtet bekommen. Zudem sehe ich es jede Woche in der Schule was unser Infolehrer fabriziert. Desweiteren ist es nunmal bekannt (jedenfalls hier in Thüringen), dass Infolehrer nie Informatik studiert haben und nur auf 2-3 Weiterbildungskurse geschickt und so "umgeschult" wurden.

@numerix: Es wäre aber immerhin ein Anfang :D
mfg

Thomas :-)
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

python12 hat geschrieben:Mein Lehrer sagt immer Unterprogramme. so hab ich das nunmal gelernt. kann mir jetzt mal bitte jemand helfen?
Als erstes gibts du uns mal die Adresse von dem Lehrer, damit du nächste Woche einen neuen hast. :twisted:

Die Funktionen (so und nicht anders heißen die) werden ausgeführt, wenn sie aufgerufen werden. In deinem Fall durch das Klicken auf einen der Button. Das folgende Code ruft z.B. die Funktion start() auf:

Code: Alles auswählen

startknopf = Tkinter.Button(kopfzeile2, text="Start", command = start) 
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

python12 hat geschrieben:Mein Lehrer sagt immer Unterprogramme. so hab ich das nunmal gelernt.
Sag ich doch: Er kommt von Basic ... :lol:
Python 47 hat geschrieben:Desweiteren ist es nunmal bekannt (jedenfalls hier in Thüringen), dass Infolehrer nie Informatik studiert haben und nur auf 2-3 Weiterbildungskurse geschickt und so "umgeschult" wurden.
Was aber nicht zwangsläufig heißen muss, dass sie nicht in der Lage sind, Python in angemessener Form zu unterrichten. Wer Informatik studiert, kommt auch nicht unbedingt mit Python in Berührung, sondern quält sich mit anderen Sprachen herum. Man muss sich halt auf eine Sprache einlassen, sich damit beschäftigen. Das kostet Zeit und Mühe. Die kann man sich nehmen bzw. machen oder eben auch nicht. Wäre natürlich gut, wenn Informatiklehrer, die Python unterrichten, sie sich nähmen.

Man muss aber auch realistisch sehen: Wer bei - sagen wir mal - 25 Wochenstunden 3-6 Stunden Informatik unterrichtet und den Rest die Fächer, die er "richtig" studiert hat, außerdem vielleicht noch Klassenlehrer ist und diese oder jene Funktion innerhalb der Schule innehat, dem fehlt vielleicht schlicht die Zeit dafür.
python12
User
Beiträge: 9
Registriert: Freitag 6. Februar 2009, 15:30

Ja das ist klar aber das, was di Funktionen machen ist mir schleierhaft. Also sozusagen was die einzelnen zeilen oder programmblöcke auslösen.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

python12 hat geschrieben:Ja das ist klar aber das, was di Funktionen machen ist mir schleierhaft. Also sozusagen was die einzelnen zeilen oder programmblöcke auslösen.
Ich wiederhole es einfach nochmal: Irgendetwas vom Code wirst du doch verstehen. Irgendeine Art von Informatikunterricht hast du doch "genossen". Beschreib du doch mal, was du verstehst. Du machst es dir zu leicht. Andere sollen sich die Arbeit machen, du wartest einfach ab ...
python12
User
Beiträge: 9
Registriert: Freitag 6. Februar 2009, 15:30

Nunja mein Lehrer kann das eig. selber nicht. Immer bei einem neuem Thema sagt er "Das ist auch nueland für mich". er hat halt vorher nicht mit python gearbetiet sondern mit anderen Sachen.

und sein untreicht besteht darin uns eine aufgabe zu geben zu warten bis der erste fertig ist und dann uns allen die lösung zu geben.

nächstes Thema
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Ich bin mal so freundlich und poste die start-Funktion in einer Form, wie es sich für ein Python-Programm gehört. Dadurch sollte das Geschehen hoffentlich klarer werden. Selbiges solltest du mit dem Rest des Codes machen!

Code: Alles auswählen

def start():

    global erststart, anfangszeit, fehlerzahl, belegzahl

    if erststart == 1:
        fehlerzahl = 0
        erststart = 0
        belegzahl = len(knopf)
    
    for i in range(belegzahl):
        knopf[i]["background"] = "white"
        knopf[i]["command"] = fehler
        belegung[i] = 0
    
    anfangszeit = time.time()
    
    aktivierung() 
Wenn du wissen möchtest, was eine dir unbekannte Funktion macht, lohnt es sich meist auch in der offiziellen Python Dokumentation nachzuschauen. Auf der Seite gibts auch ein Python Tutorial, das sehr zu empfehlen ist.


Gerrit


Edit: Ich nehme mal an und hoffe der Code ist nur so bescheuert zusammen gequetscht, damit er auf eine DINA4-Seite passt. :roll:
Benutzeravatar
jonas
User
Beiträge: 156
Registriert: Dienstag 9. September 2008, 21:03

Hi,
Ich habe mir mal die 5 Minuten Arbeit gemacht,
dass zumindest ein bisschen zu entwurschteln.

*Klick Mich*

Ich denke nicht, dass die Einrückung schon richtig
ist aber besser und ich bin schonmal die Semikolons
losgeworden :D

Hoffe das dir das was hilft :wink:

MfG Jonas :wink:

EDIT: PasteBin geändert
Hatte es garnicht getestet und deswegen auch
was übersehen, aber jetzt ist es zumindest in Grenzen
lauffähig.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

gkuhl hat geschrieben:Die Funktionen (so und nicht anders heißen die) werden ausgeführt, wenn sie aufgerufen werden.
Um den Begriff "Unterprogramme" noch zu kennen bist du wahrscheinlich einfach zu jung ^^
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Da ich auch mit Fortran programmiere, sind mir Unterprogramme durchaus bekannt. Du hast schon recht, der Begriff ist nicht so falsch, wie ich es geschrieben habe. In Python heißen sie aber Funktionen und dann sollte man den Begriff, gerade als Lehrer, möglichst auch verwenden.
python12
User
Beiträge: 9
Registriert: Freitag 6. Februar 2009, 15:30

Also hab heut mal die Zeit gefunden einiges klar zu stellen:
1.) Ja mein Informatik Lehrer ist gewöhnungsbedürftig daher wahrscheinlich auch der Programmstil
2.) Das ist keine Hausaufgabe! Das muss ich wahrscheinlich in der Kursarbeit am 10.02.09 erklären.
3.) Die Einrückfehler sind beim kopieren von linux nach windows entstanden die könnt ihr außenvorlassen

Hab hier mal probiert mir das Programm selber zu erklären das ist dabei rausgekommen:

(Mit folgendes ist immer gemeint was eingerückt unter der schleife steht)

Zeile1: Importiert die Module TKinter, Random und time
2:definiert die Funktion start
3: bewirkt soweit ich weiß das die Variabeln erststart, anfangszeit, fehlerzahl, belegzahl überall bekannt sind
4:stellt die bedingung auf das das folgendes passiert wenn erststart gleich 1 ist
5:hier werden die Variabeln fehlerzahl erststart gleich 0 gesetzt und die variable belegzahl hat irgendwas mit dem definierten Knopf zu tun aber ich weiß nicht was len macht
6:hier bin ich mal wieder nicht sicher glaube das er folgendes so oft ausführt wie belgezahl groß ist oder so
7: hier werden so weit ich weiß alle knöpfe die eine zahl von belegzahl haben weiß gemacht und so eingestellt das wenn man auf sie drückt ein Fehler addiert wird
8:genau weiß ich es nicht glaub aber das hier dem Programm gesagt wird ob ein Knopf noch weiß ist oder schon aktiviert ist
9: erstellt die variable anfangszeit die dann die zeit in einer fließkommazahl hochzählt
10: hier wird die Funktion aktivierung aufgerufen
11: Hier wird die funktion aktivierung definiert
12:siehe zeile 3 nur mit erststart und belegzahl
13:wenn erststart gleich 0 ist führt er folgendes aus
14wenn belegzahl = 0 ist führt er folgendes aus
15:hier wird index den wert der größer als 0 und kleiner als belegzahl-1 ist
16: hier wird j=o gesetzt
(in dem teil hab ich sehr große probleme wäre nett wenn das nochmal geneuer erklärt werden könnte)
17:hier glaube ich das folgendes so oft ausgeführt wird solang die liste knopf ist
18:hier weiß ich irgendwie garnichts da ich mit dem i in der [] nicht zurechtkomme
19: hier wird geprüft ob j gleich dem index ist wenn das der fall ist beendet er die funktion allerdings weiß ich nicht was das im ganzen Programm zu bedeuten hat also ich versteh den sinn nicht von der zeile
20:hier wird j hochgezählt aber warum???
21: hier kommt die variable k hinzu die sowas ist wie i glaub ich sie dient dazu dass die fehlerzahl steigt wenn man auf einen falschen knopf drückt aber wieso genau versteh ich nicht
22: Hier wird einen neuer knopf farbig gemacht abewr wie das geht grade mit der letzten eckigen klammer weiß ich auch nicht genau
23:hier wird irgend ein knopf aktiviert oder so
24: hier wird die belegung bei den aktivierten knopfen gleich 1 gesetzt sodass sie nicht mehr aktiviert werden
(der rest klappt schon wieder besser)
25:hier wird die funktion fehler definiert
26:siehe 3
27:bedingung ob erststart =0 ist wenn dann wird fehler hochgezählt und in der ausgabe angezeigt
28: die funktion ausgabe wird definiert
29-33: erzeugt das textfeld rechts oben mit einem fromatierten printbefehl
34: die funktion fertig wird definiert
35: global….
36:bedingun ob erststart 0 ist
37: bewirkt das man nicht vorher auf fertig klicken kann bevor man fertig ist
38:wenn erststart gleich eins ist ist man fertig
39:dadurch werden die erzeugten zahlen als zufällig angesehen (aber warum??)
Der Rest ist das Hauptprogramm das versteh ich:











Sonstiges: Die Variable Erststart und die dazugehörigen Befehle, bewirken, dass während des Spiels nicht ausversehen auf Start gedrückt werden kann und somit alle Knöpfe wieder weiß werden.

Wäre nett wenn man mir nochmal die eine stelle die ich auch markiert hab erklären könnte denn da hab ich echte schwierigkeiten außerdem wärs nett wenn ihr die sachen die ich evt falsch verstanden habe berichtigt
Danke schonmal
:lol:
Benutzeravatar
jonas
User
Beiträge: 156
Registriert: Dienstag 9. September 2008, 21:03

python12 hat geschrieben: Also hab heut mal die Zeit gefunden einiges klar zu stellen:
Soso, na dann erzähl mal..
python12 hat geschrieben: 1.) Ja mein Informatik Lehrer ist gewöhnungsbedürftig daher wahrscheinlich auch der Programmstil
Gewöhnungsbedürftig ist ja ok, aber wenn er Python unterrichtet
sollte er IMHO den Styleguide und ein paar Tutorials doch wenigstens mal
überflogen haben, wobei ihm einiges aufgefallen sein sollte, was er
aber anscheinend nicht gedenkt anzuwenden oder an seine Schüler
weiterzugeben.
python12 hat geschrieben: 2.) Das ist keine Hausaufgabe! Das muss ich wahrscheinlich in der Kursarbeit am 10.02.09 erklären.
Also doch Hausaufgabe, denn wenn du es nicht zu Hause
vorbereitest wirds nix, oder besser von uns vorbereiten lässt...

BTW: Wozu hab ich das komische Programm eigentlich für
dich lauffähig gemacht, es scheint dich ja garnicht zu
interessieren :evil:

Hoffe du kannst meinen Standpunkt verstehen.
MfG Jonas :wink:

Troll?
python12
User
Beiträge: 9
Registriert: Freitag 6. Februar 2009, 15:30

Jo danke jonas das du das programm zum laufen bekommen hast hab das ja in unserer schule auch lauffähig deswegen bin ich nicht auf dein post eingegangen hat mir aber trotzdem geholfen da ich das jetzt zuhause ausprobieren kann thx
Antworten