Python 3 – die besten Beiträge

Wie findet Ihr denn Code?

noten = []

def noten_schuelern(name, mathe, deutsch, englisch, bericht):
    noten.append({"Name": name, "Mathe": mathe, "Deutsch": deutsch, "Englisch": englisch, "Bericht": bericht})
    print(f"Der Schüler {name} wurde hinzugefügt mit seiner Information.")


def durchschnit(name, mathe, deutsch, englisch):
    info = []
    schnitt = (mathe + deutsch + englisch) / 3
    runden = round(schnitt, 4)
    info.append({name, runden})
    print(f"Der Schüler {name} mit dem Notenschnitt von {runden}")


def schueler_anzeigen(name):
    heraus = [schueler for schueler in noten if name.lower() in schueler["Name"].lower()]
    if heraus:
        print(f"Die Information: {noten}")
    else:
        print("Schüler wurde nicht gefunden!")


def menue():
    while True:
        print("__Menü__")
        print("1. Die Noten der Schüler hinzufügen")
        print("2. Der Durschnitt berechnen")
        print("3. Schüler anzeigen")
        print("4. programm beenden")

        wahl = int(input("Bitte wählen sie einer der Optionen aus:"))

        if wahl == 1:
            name = input("Bitte geben sie denn Name der Schüler ein:")
            mathe = int(input("Mathe Note:"))
            deutsch = int(input("Deutsch Note:"))
            englisch = int(input("Englisch Note:"))
            bericht = input("Schreiben sie informationen üben denn Schüler:")
            noten_schuelern(name, mathe, deutsch, englisch, bericht)

        elif wahl == 2:
            Name = input("Schüler Name:")
            Mathe = int(input("Mathe Note:"))
            Deutsch = int(input("Deutsch Note:"))
            Englisch = int(input("Englisch Note:"))
            durchschnit(Name, Mathe, Deutsch, Englisch)

        elif wahl == 3:
            nname = input("Geben sie denn schüler Namen ein:")
            schueler_anzeigen(nname)

        elif wahl == 4:
            print("Programm wird beendet")
            break
        else:
            print("Bitte geben sie was gültiges ein")


menue()


HABE ALLES ALLEINE PROGRAMMIERT AUßER DIE ZEILE DEF ANZEIGEN
Computer, programmieren, Code, Programmiersprache, Python, Python 3

Customtkinter "master" Parameter beim erstellen von einem Textfeld?

Hey,

ich habe eine Klasse erstellt die ein Hauptfenster erstellt und möchte aus einer anderen klasse einen Textfeld erstellen der sich auf das Hauptfenster bezieht.
So wie ich es verstanden habe braucht man dafür den Parameter "master" um vorzugeben in welchem Fenster nun der Textfeld angezeigt werden soll.
Leider funktioniert das bei mir nicht so richtig. Hat jemand davon Ahnung und kann mir meinen Fehler zeigen?
lieben Dank! :)

main.py

import view
import controller
import customtkinter as ctk

class Main(view.MainWindow):
   def __init__(self):
       super().__init__()
       self.main_window = view.MainWindow()
       self.main_window.set_size("1680", "900")
       self.main_window.set_title("YourTerminal")
       controller.InputBoxMain()# Nach meinem Verständnis muss hier der Master-Parameter angegeben werden. Wie übergebe ich diesen?

   def run(self):
       self.main_window.get_window().mainloop()

if __name__ == "__main__":
    app = Main()
    app.run()

view.py

import customtkinter as ctk


class MainWindow:
   def __init__(self):
       self.window = ctk.CTk()

   def set_size(self, width, height):
       self.window.geometry(f"{width}x{height}")

   def set_title(self, title):
       self.window.title(title)

   def get_window(self):
       return self.window

class WindowTemplate:
   def __init__(self):
       self.window = ctk.CTkToplevel()

   def set_size(self, width, height):
       self.window.geometry(f"{width}x{height}")

   def set_title(self, title):
       self.window.title(title)

   def get_window(self):
       return self.window

# der master Parameter gibt an wo diese Box angezeigt werden soll
class InputBoxTemplate:
    def __init__(self, master):  # Wie übergebe ich den master Parameter?
        self.master = master
        self.box = ctk.CTkEntry(self.master)

    def set_size(self, width, height, y, x):
        self.box.place(width=width, height=height, pady=y, padyx=x)

    def set_placeholder(self, placeholder):
        self.box._placeholder_text(f"{placeholder}")

controller.py

import view
import customtkinter as ctk
import main
class InputBoxMain(view.InputBoxTemplate, main.Main):
    def __init__(self):
        super().__init__()
        self.master = ctk.CTk()
        self.window = view.InputBoxTemplate(self.master)# Oder der Master-Parameter wird hier übergeben? Hier versuche ich master auf ctk.CTk zu beziehen. Das ist das Haupfenster.
        self.window.set_size(200, 200, 10, 10)
        self.window.set_placeholder("Hier steht der Placeholder")

Hier die Fehlermeldung falls relevant:

Traceback (most recent call last):

 File , line 1, in <module>

  import view

 File , line 2, in <module>

  import main

 File , line 2, in <module>

  import controller

 File " line 4, in <module>

  class InputBoxMain(view.InputBoxTemplate, main.Main):

            ^^^^^^^^^^^^^^^^^^^^^

AttributeError: partially initialized module 'view' has no attribute 'InputBoxTemplate' (most likely due to a circular import)

Code, Programmiersprache, Python, Python 3, Objektorientierte Programmierung, Tkinter, Pycharm

TypeError: can only concatenate str (not "function") to str?

ich möchte eine ui für mailtm erstellen aber bekomme kein output raus also wenn email ankommen werden sie nicht angezeigt und wenn ich listener eingebe bekomme ich jedes mal den gleichen fehler code

Fehler code:

TypeError: can only concatenate str (not "function") to str

from mailtm import *


def listener(message):
    print("\nSubject: " + message['subject'] + str(listener))
    print("Content: " + message['text'] if message['text'] else message['html'] + str(listener))


test = Email()
print("\nDomain: " + test.domain)

test.register()
print("\nEmail Adress: " + str(test.address))


test.start(listener, interval=3)
print("\nHab Sabr.....")


main = ctk.CTk()
main.geometry("500x320")
main.title("Temp mail By Amjn")


emaila = ctk.CTkEntry(main, placeholder_text="         " + test.address, width=900, font=("Helvetica", 20))
emaila.configure(state="readonly")
emaila._corner_radius = 10
emaila.pack()


Copyt = ctk.CTkLabel(main, text="Copy Email", font=("Helvetica", 20))
Copyt.pack()


def neuw(self=None):
    neu = ctk.CTkToplevel(main)
    neu.title("Emails              (MADE BY AMJN)")
    neu.geometry("500x320")
    neu.corner_radius = 30
    neu.resizable(width=True, height=True)

    Ausg = ctk.CTkEntry(neuw, placeholder_text=("         ") + listener, width=900, font=("Helvetica", 20))
    Ausg.pack()


knopf = ctk.CTkButton(main, text="Emails", font=("Helvetica", 20), command=neuw)
knopf.pack(pady=20)

main.mainloop()
Code, Programmiersprache, Python, UI, Python 3, Tkinter, Pycharm

Meistgelesene Beiträge zum Thema Python 3