[PYTHON] Ich habe versucht, mit tkinter mit dem Taschenrechner zu spielen

Als allererstes

Nachdem ich das Programmieren mit Python gelernt hatte, war mein Favorit die ** Tastenverarbeitung mit tkinter **. Als ich mich fragte, was einen Großteil dieser Tastenverarbeitung bewirken könnte, kam zuerst der Taschenrechner heraus.


Verfahren

Fensteranzeige

final_python.py


from tkinter import *

#Fenstererstellung
root = Tk()
#Angabe der Fenstergröße
root.geometry("500x500")
#Erstellung von Fenstertiteln
root.title("Rechenmaschine mit vier Regeln")
#Klischee
root.mainloop()

C- und AC-Funktionen

final_python.py


#C-Funktion
def clear():
    textVal = expression.get()
    
    if len(textVal) > 1:
        expression.set(textVal[:-1])
    
    else:
        expression.set("")

#AC-Funktion
def all_clear():
    expression.set("")
C Zeichen für Zeichen löschen
AC Löschen Sie alle Zeichen

Tastenlayout

final_python.py



buttons = (
    (("C", clear   ), ("AC", all_clear), ("%", op("%") ), ("+", op("+"))),
    (("7", digit(7)), ("8",  digit(8) ), ("9", digit(9)), ("/", op("/"))),
    (("4", digit(4)), ("5",  digit(5) ), ("6", digit(6)), ("*", op("*"))),
    (("1", digit(1)), ("2",  digit(2) ), ("3", digit(3)), ("-", op("-"))),
    (("0", digit(1)), (None, None     ), ('.', op('.') ), ("=", calculate)),
)

Vollständiges Formular

ezgif.com-video-to-gif.gif


Entschuldigung

Ich wollte diesmal alle Funktionen erklären, indem ich die letzte Aufgabe ankündigte, aber da jede Person eine begrenzte Zeit von 2 Minuten hat, habe ich die Punkte eingegrenzt, damit sie innerhalb von 2 Minuten beibehalten werden können. Der Quellcode wird am Ende eingefügt, also schauen Sie ihn sich bitte an ...

Quellcode

final_python.py


# coding:utf-8
from tkinter import *

#Fensteranzeige
root = Tk()
#Angabe der Fenstergröße
root.geometry("500x500")
#Erstellung von Fenstertiteln
root.title("Rechenmaschine mit vier Regeln")

expression = StringVar()

#C-Funktion
def clear():
    textVal = expression.get()
    
    if len(textVal) > 1:
        expression.set(textVal[:-1])
    
    else:
        expression.set("")

#AC-Funktion
def all_clear():
    expression.set("")

#Zifferntaste
def digit(number):
    def func():
        expression.set(expression.get() + str(number))
    return func

#Schaltfläche Berechnen
def op(label):
    def func():
        expression.set(expression.get() + label)
    return func

#=Die Funktion von
def calculate():
    try:
        expression.set(eval(expression.get()))
    except SyntaxError:
        expression.set("SyntaxError")
    except ZeroDivisionError:
        expression.set("ZeroDivisionError")
    except NameError:
        expression.set("NameError")

buttons = (
    (("C", clear   ), ("AC", all_clear), ("%", op("%") ), ("+", op("+"))),
    (("7", digit(7)), ("8",  digit(8) ), ("9", digit(9)), ("/", op("/"))),
    (("4", digit(4)), ("5",  digit(5) ), ("6", digit(6)), ("*", op("*"))),
    (("1", digit(1)), ("2",  digit(2) ), ("3", digit(3)), ("-", op("-"))),
    (("0", digit(1)), (None, None     ), ('.', op('.') ), ("=", calculate)),
)

#Anzeigebildschirm
e = Label(root, textvariable=expression, fg="#ffffff", bg="#000000", anchor=E, height=2)
e.grid(row=0, column=0, columnspan=4, sticky="EW")

for row, btns in enumerate(buttons, 1):
    for col, (label, func) in enumerate(btns):
        if label:
            b = Button(root, text=label, command=func, width=10, height=5)
            b.grid(row=row, column=col)

#Klischee
root.mainloop()

Impressionen

Fast der Quellcode basierte auf Mit Tkinter erstellter Rechner, aber auf der Breite des Fensters, der Größe des Rechners selbst und der Funktion von C. Es gab einige Bereiche, die verbessert werden mussten, daher bin ich froh, dass ich es selbst tun konnte. Es war auch gut, die Bedeutung jedes Befehls verstehen zu können. Ich möchte mich während der Sommerferien auf das Programmieren konzentrieren.

Verweise

Recommended Posts

Ich habe versucht, mit tkinter mit dem Taschenrechner zu spielen
Ich habe eine Kreuzvalidierung basierend auf dem Rastersuchergebnis mit scikit-learn versucht
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
Ich habe versucht, die Daten mit Zwietracht zu speichern
Ich habe versucht, mit PartiQL und MongoDB verbunden zu spielen
Ich habe versucht, das Bild mit Python + OpenCV zu "binarisieren"
Ich habe es mit den Top 100 PyPI-Paketen versucht.> Ich habe versucht, die auf Python installierten Pakete grafisch darzustellen
[Einführung in AWS] Ich habe versucht, eine Konversations-App zu portieren und mit text2speech @ AWS playing zu spielen
Ich habe Python zum ersten Mal auf dem Mac ausprobiert.
Ich habe versucht, die App auf der IoT-Plattform "Rimotte" auszuführen.
Ich habe versucht, Mine Sweeper auf dem Terminal mit Python zu implementieren
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, Soma Cube mit Python zu lösen
Ich habe Python zum ersten Mal mit Heroku ausprobiert
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Ich habe versucht, den Linux-Kernel auf virtualbox + vagrant zu installieren
[Einführung in AWS] Ich habe versucht, mit der Sprach-Text-Konvertierung zu spielen ♪
Ich habe versucht, die API mit dem Python-Client von echonest zu erreichen
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
Ich habe versucht, mit Elasticsearch Ranking zu lernen!
Ich habe versucht, mit PyCaret zu clustern
Ich habe die Changefinder-Bibliothek ausprobiert!
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, mit Python zu kratzen
Ich habe MLflow auf Databricks ausprobiert
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich habe versucht, das Bild mit Python + OpenCV "gammakorrektur" zu machen
Ich habe versucht zu simulieren, wie sich die Infektion mit Python ausbreitet
Ich habe versucht, die Emotionen des gesamten Romans "Wetterkind" zu analysieren
Ich habe versucht, die Python-Bibliothek von Ruby mit PyCall zu verwenden
Ich habe versucht, mit TensorFlow den Durchschnitt mehrerer Spalten zu ermitteln
Ich habe versucht, die Zugverspätungsinformationen mit LINE Notify zu benachrichtigen
Ich habe vorerst versucht, PIFuHD unter Windows auszuführen
Ich habe versucht, die Windows 10-Festplatte durch eine kleinere SSD zu ersetzen
Ich habe versucht, den DRF-API-Anforderungsverlauf mit django-request zu speichern
Ich habe versucht, die Benutzeroberfläche neben Python und Tkinter dreiäugig zu gestalten
Ich habe versucht, den Ipython-Cluster unter AWS auf das Minimum zu starten
Ich habe den Chat von YouTube Live angezeigt und versucht zu spielen
[Shell-Start] Ich habe versucht, die Shell mit einem billigen Linux-Board-G-Cluster auf dem Fernseher anzuzeigen
Ich habe AdaNet gegen Tabellendaten ausprobiert
Ich habe das TensorFlow-Tutorial als erstes ausprobiert
Ich habe die Naro-Roman-API 2 ausprobiert
Ich habe versucht, Sätze mit summpy zusammenzufassen
Ich habe maschinelles Lernen mit liblinear versucht
Ich habe versucht, WebScraping mit Python.
Ich habe versucht, Essen mit SinGAN zu bewegen
Ich habe das 2. TensorFlow-Tutorial ausprobiert
Ich habe versucht, DeepPose mit PyTorch zu implementieren
Ich habe Cython unter Ubuntu auf VirtualBox ausprobiert
Ich mochte den Tweet mit Python. ..
Ich habe versucht, das Gesicht mit MTCNN zu erkennen
Ich habe die neuartige API von Naruro ausprobiert
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.