[Python]Taschenrechner Prozent einbauen

06/12/2014 23:18 Commander70#1
Hi.
Wie kann ich Prozent in meinen Taschenrechner einfügen?
% in Python heißt ja nicht Prozent.
Ich habe echt keine Ahnung,wie ich Prozent einfügen soll.
Momentan sieht es so aus:
Code:
import tkinter as tk
import math


def taschenrechner(key):
    if key == "=":
        global speicher
        sin=math.sin
        cos=math.cos
        tan=math.tan
        Wurzel=math.sqrt
        #wird später gebraucht

        str1 = "-+/*0123456789.%Wurzel(sin(cos(tan("
        if display.get()[0] not in str1:
            display.insert(tk.END, "Erlaubte Zeichen: " + str1)
        #Schutz gegen Leute,die eval() misbrauchen
        #um z.B. alle Dateien auf dem PC zu löschen
        
        ergebnis = eval(display.get()) #Eval rechnet alles zusammen
        display.delete(0,tk.END)# so kann man mit dem Ergebnis weiter rechnen
        if ergebnis % 1 == 0: #es wird überprüft,ob ergebnis durch 1 teilbar ist
        #,also ob der Rest 0 ergibt
            display.insert(tk.END,int(ergebnis))
        else:
            display.insert(tk.END,ergebnis) 
    elif key == "C":
        display.delete(0,tk.END)

    elif key == "←":
        display.delete(len(display.get())-1)

    elif key == "%":
        display.insert(tk.END,"/100")


    elif key == "√":
        display.insert(tk.END,"Wurzel(")

    elif key == "Sinus":
        display.insert(tk.END,"sin(")

    elif key == "Kosinus":
        display.insert(tk.END,"cos(")

    elif key == "Tangens":
        display.insert(tk.END,"tan(")

    elif key == "M":# Memory
        speicher = display.get()
        root.title('M=' + speicher)#so weiß der User,welche Zahl er gespeichert hat

    elif key == "MR":# Memory Recall
        display.insert(tk.END,speicher)

    elif key == "MC":# Memory Clear(löscht die gespeicherte Zahl)
        speicher = ""
        root.title("Taschenrechner")
        
    else:
        display.insert(tk.END, key)
        


            
root = tk.Tk()

root.title("Taschenrechner")

tasten = [   "7","8","9","/","C",
             "4","5","6","*","←",
             "1","2","3","-","√",
             "0",".","=","+","%"
             ,"(",")","Sinus","Kosinus","Tangens"
             ,"M","MR","MC"]


r=1
c=0

for i in tasten:
    rel="ridge" # Style für die Buttons
    cmd=lambda x=i: taschenrechner(x)
    tk.Button(root,text=i, width=6,height=2,font="bold",relief=rel, bg="white",command=cmd).grid(row=r, column=c)
    c +=1
    if c>4:
        r +=1
        c=0

display = tk.Entry(root, width=29 ,bg="white",font="bold",bd=10)
display.grid(row=0, column=0, columnspan=10)
root.mainloop()
Gut wäre es,wenn auf dem Display "%" erscheint.
Als Notlösung wird /100 statt % eingefügt,ist ja im Prinzip beides das Gleiche.
Prozent ist ja nicht mehr als durch 100 teilen.
Ich weiß aber nicht,wie ich definieren soll,dass "%" Zahl x durch 100 teilt.
06/12/2014 23:54 Schlüsselbein#2
Du solltest dir wirklich ein Buch zur Hand nehmen und Python von Grund auf auf lernen. Das tut wirklich weh und passt wirklich nirgendwo.
06/13/2014 16:01 Commander70#3
Blöderweise müssen wir eine Hausarbeit machen und ich habe nur noch 3 Tage Zeit.
Alles,was wir im Unterricht gelernt haben,bringt nichts(irgendwas mit Buttons und Labels)
06/13/2014 16:29 alpines#4
Kannst du nicht einfach % mit /100 replacen?
06/13/2014 16:30 Commander70#5
Nein,weil % in Python nicht Prozent heißt und schon belegt ist.
06/13/2014 16:37 snow#6
%% dürfte helfen, soweit ich mich noch erinnere.
06/13/2014 17:22 Commander70#7
Geht leider auch nicht.
Ich glaube,ich belasse es bei /100.