funktion für einen button in einem taschenrechner

Fragen zu Tkinter.
Antworten
denniss13
User
Beiträge: 3
Registriert: Samstag 9. Juni 2012, 22:02

Hallo,ich muss einen taschenrechner programmieren und ich würde gerne wissen wie die funktion für einen button wäre wenn man will das der button in ein oberes feld eine 1 reinschreibt und wie bringt man dieses feld dann in das fenster
deets

Das hat euer Lehrer euch doch bestimmt schon erklaert, oder? Was hast du denn so ausprobiert, zeig doch mal deinen Code.
denniss13
User
Beiträge: 3
Registriert: Samstag 9. Juni 2012, 22:02

also Funktionen kann ich gar nicht deswegen brauche ich Hilfe also bisher habe ich das hier:

Code: Alles auswählen

from Tkinter import *
main=Tk()

a=Button(main,text='   *   ',background='#B1B1B1',borderwidth='5')
a.place(x=5,y=90,height='30',width='40')

b=Button(main,text='   =   ',background='#B1B1B1',borderwidth='5')
b.place(x=5,y=120,height='30',width='40')

c=Button(main,text='   0   ',background='#B1B1B1',borderwidth='5')
c.place(x=5,y=150,height='30',width='40')

d=Button(main,text='   1   ',background='#B1B1B1',borderwidth='5')
d.place(x=45,y=150,height='30',width='40')

e=Button(main,text='   2   ',background='#B1B1B1',borderwidth='5')
e.place(x=85,y=150,height='30',width='40')

f=Button(main,text='   3   ',background='#B1B1B1',borderwidth='5')
f.place(x=125,y=150,height='30',width='40')

g=Button(main,text='   4   ',background='#B1B1B1',borderwidth='5')
g.place(x=45,y=120,height='30',width='40')

h=Button(main,text='   5   ',background='#B1B1B1',borderwidth='5')
h.place(x=85,y=120,height='30',width='40')

i=Button(main,text='   6   ',background='#B1B1B1',borderwidth='5')
i.place(x=125,y=120,height='30',width='40')

j=Button(main,text='   7   ',background='#B1B1B1',borderwidth='5')
j.place(x=45,y=90,height='30',width='40')

k=Button(main,text='   8   ',background='#B1B1B1',borderwidth='5')
k.place(x=85,y=90,height='30',width='40')

l=Button(main,text='   9   ',background='#B1B1B1',borderwidth='5')
l.place(x=125,y=90,height='30',width='40')

m=Button(main,text='   -   ',background='#B1B1B1',borderwidth='5')
m.place(x=165,y=150,height='30',width='40')

n=Button(main,text='   +   ',background='#B1B1B1',borderwidth='5')
n.place(x=165,y=120,height='30',width='40')

o=Button(main,text='   :   ',background='#B1B1B1',borderwidth='5')
o.place(x=165,y=90,height='30',width='40')

k=Button(main,text='delete',background='#B1B1B1',borderwidth='5')
k.place(x=5,y=180,height='30',width='200')

textfenster=Text(main)
textfenster.place(x='5',y='5',height='78',width='198')

main.geometry('500x500')
main.configure(background='navy')
main.mainloop()
Zuletzt geändert von Anonymous am Sonntag 10. Juni 2012, 11:12, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
BlackJack

@denniss13: Wenn Du Funktionen nicht kennst, dann kannst Du die Aufgabe nicht lösen. Also musst Du Funktionen lernen. Such Dir ein Tutorial oder Buch und lerne die Grundlagen. Ein Einstiegspunkt wäre das Tutorial in der Python-Dokumentation. Abraten würde ich vom OpenBook von Galileo.

Da lernst Du dann auch etwas über die Grunddatenstrukturen die Python bietet und Kontrollstrukturen wie Schleifen. Ein Stück Quelltext immer wieder kopieren und geringfügig anpassen und dabei wie in diesem Fall auch noch unmengen von einbuchstabigen Namen erzeugen ist keine gute Idee.

Von `place()` solltest Du auch Abstand nehmen, dass ist so nicht wirklich portabel, da es bei anderen Systemen, Bildschirmauflösungen, und so weiter anders als bei Dir aussehen kann, bis hin zur unbenutzbarkeit wenn sich absolut platzierte GUI-Elemente überlappen.

Den Sternchen-Import könntest Du Dir auch gleich wieder abgewöhnen.
denniss13
User
Beiträge: 3
Registriert: Samstag 9. Juni 2012, 22:02

Das Problem ist nur ich hab mir Funktionen schon so oft angeguckt und ich kann die einfach nicht und das mit dem Sternchen import haben wir so gelernt
Könnt ihr mir nicht einfach die funktion für meine frage aufschreiben das wäre sehr sehr nett :D
deets

@denniss13

Wir sind hier nicht die kostenlose Hausaufgabenhilfe. Wenn ihr Funktionen hattet, dann musst du lernen damit zu arbeiten. Punkt. Dabei koennen wir dir gerne helfen. Aber deine Arbeit hier fuer dich zu erledigen - das wird nicht passieren.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Selbst wenn ihr Sternchen-Importe gelernt habt, sind diese schlecht! Wenn euer Lehrer euch dazu zwingt, dann musst Du das wohl akzeptieren; aber behalte es im Hinterkopf.

Sinnvoller wäre es wohl, wenn Du ihn mal darauf hinweisen würdest, dass Du von erfahrenen Python-Nutzern darauf angesprochen wurdest. Er kann sich hier gerne melden ;-) Ich vermute mal, er weiß es eben selber nicht besser.

Zu den Funktionen: Was genau ist daran nicht zu verstehen? Also woran hakt es denn bei Dir? Hattet ihr in der Mathematik schon Funktionen? (Also z.B. Geradengleichungen, Parablen, usw. - Sinus, Cosinus?) Wenn ja sollte es Dir doch möglich sein, das eins zu eins auf Python zu übertragen...
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Üpsilon
User
Beiträge: 222
Registriert: Samstag 15. September 2012, 19:23

@Dennis13: Wie soll denn das gehen? Wie mache ich denn Python auf einen Taschenrechner?
Geht das auch mit einem graphikfähigen T.r.? Zum Bleistift TexasInstruments 84+ ?
@Hyperion: Ich finde *-Importe übrigends auch sch..., weil dann plötzlich alle Klassen- und Methodennamen belegt sind.
PS: Die angebotene Summe ist beachtlich.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Üpsilon hat geschrieben:@Dennis13: Wie soll denn das gehen? Wie mache ich denn Python auf einen Taschenrechner?
Geht das auch mit einem graphikfähigen T.r.? Zum Bleistift TexasInstruments 84+ ?
Abgesehen davon, dass der Thread schon recht alt ist, hat der OP wenig Intertesse gezeigt. Da wird er auf Deine Frage eher nicht mehr antworten... ;-)

Hinzu kommt noch, dass ich Deine Nachfragen gar nicht kapiere...
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hyperion hat geschrieben:Hinzu kommt noch, dass ich Deine Nachfragen gar nicht kapiere...
Ich versuche das mal zu übersetzen: Ich sehe es auch so, dass keine *-Importe verwendet werden sollen. Diese füllen den Namensraum mit einer Vielzahl von neuen Namen auf, so dass dies leicht zu versehentlichen und ungewollten Konflikten führen kann.
Das Leben ist wie ein Tennisball.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

@EyDu: Ich meinte den ersten Frageteil ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

@Hyperion: Ich habe so viel übersetzt wie ich konnte. Der erste Teil ist in einer mir unverständlichen Sprache. Ich hätte das besser kennzeichnen sollen!
Das Leben ist wie ein Tennisball.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

EyDu hat geschrieben:@Hyperion: Ich habe so viel übersetzt wie ich konnte. Der erste Teil ist in einer mir unverständlichen Sprache. Ich hätte das besser kennzeichnen sollen!
Ok, dann sind wir uns da ja quasi einig :-D
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten