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
Wie behebe ich einen undefinierten Variablenfehler im Python-Skript?

In meinem Python-Skript ist eine Variable im globalen Bereich definiert und ich versuche, diese Variable innerhalb einer Funktion zu verwenden. Wenn ich jedoch das Skript für diese Website Wasa ausführe, gibt Python den Fehler „Undefinierte Variable“ aus. Ich habe die Schreibweise überprüft und sichergestellt, dass die Variable definiert ist, bevor die Funktion aufgerufen wird, aber das Problem besteht weiterhin. Ich vermute, dass es ein Scoping-Problem gibt, bin mir aber nicht sicher, wie ich es richtig angehen soll.

Python, Python 3
Software Planung/Gedanken?

Servus,

ich möchte aktuell eine Webanwendung programmieren.

Thema: Kochprogramm

Technik: Python, Flask, React, MySQL

Anforderungen der Webanwendung:

  • Anlegen und Editieren von Rezepten und Lebensmitteln
  • Dem User sollen Rezepte vorgeschlagen werden, die er mit seinen aktuellen Lebensmittelbestand zubereiten könnte (Rezepte erstellt der User alle selbst)
  • Fehlende Lebensmittel für ein Rezept sollen angezeigt werden können

Ich wollte nun fragen, ob meine Ideen so aufgehen könnten, oder ob ich etwas übersehe.

Ich würde folgenderweise vorgehen:

  • Ein Lebensmittel(Klasse)soll unter anderem die Attribute Maßeinheit, ID und Menge haben.
  • Ein Lebensmittel kann dann einem Rezept(Klasse) oder dem Lagerbestand(Klasse) zugewiesen werden (in einer ausgewählten Menge und Maßeinheit)
  • Eine weitere Klasse soll für das Umrechnen der Maßeinheiten und dem Vergleich des Lebensmittelbestands mit den jeweiligen gespeicherten Rezepten zuständig sein.
  • Rezept und Lager wären wie erwähnt jeweils eine eigene Klasse, welchen Lebensmittel als Instanz der Klasse "Lebensmittel" zugeordnet werden können.

Der Plan soll am Ende sein, dass von einer Datenbank abgerufen wird, welche Lebensmittel aktuell beim jeweiligen User in welcher Menge vorhanden sind, und welche Lebensmittel für ein Rezept in welcher Menge benötigt werden. Falls sich die Maßeinheiten unterscheiden (Prise, Gramm, Kilogramm) soll dies im Hintergrund umgerechnet werden.

Meint Ihr, dass könnte man so umsetzen? Übersehe ich vielleicht etwas?

Danke im Voraus!

 

programmieren, Informatik, Python, Softwareentwicklung
Hilfe bei diesem einfachen Bash-Skript?

Ich will dass das Programm wenn ich auf "gruppen anzeigen" klicke mir alle Gruppen im System im Dialig angezeigt werden und das Programm beendet wird wenn ich auf "beenden" klicke. Aber irgendwie kommt entweder ein Fehler dass bei mir das "fi" fehlt was nicht stimmt. Oder es werden die Gruppen auch angezeigt wenn ich auf beenden klicke. Ich habe versucht die If-Anweisungen zu löschen und dann nach  wahl=$(cat $inhalt) ein echo zu machen. Und bei mir wird immer "1" ausgegeben egal auf was ich drücke. Wobei ich eig. Wenn ich auf "beenden" klicke dann sollte "Ende" rauskommen" oder ?

#!/bin/bash
#
inhalt=$(mktemp)
auswahl(){
 dialog --backtitle "Elemente anzeigen"  --title "Elemente zeigen" \
        --cancel-label "Abbruch" \
        --checklist "Bitte treffen Sie Ihre Auswahl!" 10 50 3 \
        "1." "Gruppen anzeigen im Dialig" on \
        "Ende." "Programm beenden" off \
        2>$inhalt
 fehler=$?
 clear
 if [ $fehler != 0 ] ;
  then
   echo "Da ist ein Fehler aufgetreten"
   echo "Fehler-Nr.: $fehler"
   rm $inhalt
   exit 1
 fi
 wahl=$(cat $inhalt)


 if [ "$wahl" == "1." ]; then
     dialog --backtitle "Ausgabe von Gruppen" \
            --msgbox "$(groups)" 20 60 \
 fi


 rm $inhalt
}


while :
 do
  auswahl
 done


Betriebssystem, Technik, Linux, HTML, Webseite, Java, JavaScript, VBA, Bash, Batch, cmd, Informatik, Informationstechnik, PHP, Programmiersprache, Python, Shell, Webentwicklung
Python .txt Datenbearbeitung?

Hallo an alle,

Es geht um folgendes.
Ich habe zwei .txt Dateien mit folgenden Inhalten:

Datei1:
Schlüssel: Y&XXXXXXXXXX,

Werte: Y:10_XXXXXXXX, Y:XXXXXXX, Y:XXXXXXXX, Y:XXXXX, Y:XX_XXXXX, Y:XX_XXXXXXXX, YH:XX_XXXXXXXXX, YH:XX_XXXXXXXXX, Y:10_XXXXXXXX, Y:XXXXXXX, Y:XXXXXXXX, Y:XXXXX, Y:XX_XXXXX, Y:XX_XXXXXXXX, YH:XX_XXXXXXXXX, YH:XX_XXXXXXXXX, Y:10_XXXXXXXX, Y:XXXXXXX, Y:XXXXXXXX, Y:XXXXX, Y:XX_XXXXX, Y:XX_XXXXXXXX, YH:XX_XXXXXXXXX, YH:XX_XXXXXXXXX, Y:10_XXXXXXXX, Y:XXXXXXX, Y:XXXXXXXX, Y:XXXXX, Y:XX_XXXXX, Y:XX_XXXXXXXX, YH:XX_XXXXXXXXX, YH:XX_XXXXXXXXX, Y:10_XXXXXXXX, Y:XXXXXXX, Y:XXXXXXXX, Y:XXXXX, Y:XX_XXXXX, Y:XX_XXXXXXXX, YH:XX_XXXXXXXXX, YH:XX_XXXXXXXXX

Datei2:

Schlüssel: User 1

Werte: Y&XXXXXXXX, Y&10_XXXXXXXX, Y:XXXXXXX, Y:XXXXXXXX, Y:XXXXX, Y:XX_XXXXX, Y:XX_XXXXXXXX, YH:XX_XXXXXXXXX, YH:XX_XXXXXXXXX

In beiden Dateien ist natürlich mehr Inhalt drin. Also bei beiden mehr als 1000 Zeilen.

In Datei2 stehen ganz viele User und deren Namen ist der Schlüssel. Diese User haben bestimmte Berechtigungen als Rollen. Jede Rolle wird als Wert (durch Komma getrennt) dargestellt in dieser Ansicht wie gezeigt.

Zwischen allen Schlüsseln/Werten ist jeweils eine Zeile frei.

Wichtig ist nur das die Werte hinter dem Komme zu dem Schlüssel darüber gehören.

Die Rollen sind immer so aufgebaut das sie mit einem X oder einem Y oder ganz selten auch mit einem YH: anfangen, was nach dem Doppelpunkt kommt, gibt nur an um was für Berechtigungen es sich handelt, das habe ich durch die vielen X dargestellt.

Die Rollen die ein & und kein : haben sind Sammelrollen die viele Einzelrollen (das sind die mit :) zusammenfassen. Hat ein User also eine Rolle mit einem & dann hat er alle Berechtigungen, die in dieser Sammelrolle enthalten sind.

Allerdings haben viel User Einzelrollen, die sie aber eigentlich schon durch eine Sammelrolle erhalten haben.

Um das zu bereinigen wollte ich ein Python Programm schreiben welches die Datei2 für jeden User (Schlüssel) durchgeht, sie dich rollen mit dem :, also die Einzelrollen nimmt, in Datei1 schaut, ob diese Einzelrolle in einer Sammelrolle enthalten ist, die ebenfalls dem User zugewiesen ist, was bedeuten würde er hätte zweimal diese Rolle.
Wenn das der Fall ist dann soll in einer neuen Datei (Erstmal egal ob csv oder txt, lieber aber direkt eine CSV Datei) eine neue User liste sein in der eben alle Einzelrollen entfernt wurden die der User halt schon durch eine Sammelrolle erhält.

Ich habe mich mehrere Stunden damit beschäftigt und auch versucht mit KI mir helfen zu lassen aber es funktioniert nicht. Entweder werden falsche Sachen geändert, erkannt oder gesucht oder es funktioniert gar nicht.

Aber eigentlich stell ich mir das gar nicht so unfassbar komplex vor.

Im Screenshot ist ein Beispiel zu sehen wie die txt Dateien aussehen.
Beide sind genauso aufgebaut nur das bei der einen halt der Schlüssel ein Name ist und bei der anderen ist der Schlüssel der Name der Sammelrolle, bei der einen ist der Wert alle Berechtigungen (Sammel und Einzelrollen) eines Users und bei der anderen sind der alle Einzelrollen aufgelistet, die die Sammelrolle enthält.

Und beide enthalten natürlich weitaus mehr Inhalte als nur das eine wie in dem Beispiel auf dem Bild zu sehen ist.

Vielleicht ist hier ja jemand der mir hier eine Lösung vorschlagen kann.
Danke VG

Bild zum Beitrag
Python
SSL-Paket kann nicht installiert werden. Kann mir jemand das Problem erklären?

Servus alle zusammen.

Ich habe mal wieder eins der unnötigsten Probleme die man so gar nicht gebrauchen kann.
Vorab: Ich verwende PyCharm CommunityEdit2023

Folgende Problematik stellt sich mir:Ich versuche über den PyCharm Interpreter das Paket ssl zu laden und erhalte:

Collecting ssl

 Using cached ssl-1.16.tar.gz (33 kB)

 Using cached ssl-1.15.tar.gz (32 kB)




  ERROR: Command errored out with exit status 1:

   command: 'D:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Paddy\\AppData\\Local\\Temp\\pip-install-6xunn48y\\ssl_93be5a3dfd464eefb55e12eacc1c7aae\\setup.py'"'"'; __file__='"'"'C:\\Users\\Paddy\\AppData\\Local\\Temp\\pip-install-6xunn48y\\ssl_93be5a3dfd464eefb55e12eacc1c7aae\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Paddy\AppData\Local\Temp\pip-pip-egg-info-xz6xi0b2'

     cwd: C:\Users\Paddy\AppData\Local\Temp\pip-install-6xunn48y\ssl_93be5a3dfd464eefb55e12eacc1c7aae\

  Complete output (6 lines):

  Traceback (most recent call last):

   File "<string>", line 1, in <module>

   File "C:\Users\Paddy\AppData\Local\Temp\pip-install-6xunn48y\ssl_93be5a3dfd464eefb55e12eacc1c7aae\setup.py", line 33

    print 'looking for', f

       ^

  SyntaxError: Missing parentheses in call to 'print'. Did you mean print('looking for', f)?

  ----------------------------------------

WARNING: Discarding https://files.pythonhosted.org/packages/83/21/f469c9923235f8c36d5fd5334ed11e2681abad7e0032c5aba964dcaf9bbb/ssl-1.16.tar.gz#sha256=ac21156fee6aee9eb8d765bbb16f5f49492d81ff4b22f7b8fc001d2251120930 (from https://pypi.org/simple/ssl/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

  ERROR: Command errored out with exit status 1:

   command: 'D:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Paddy\\AppData\\Local\\Temp\\pip-install-6xunn48y\\ssl_0d4afefa00504f218b834c3475a8235c\\setup.py'"'"'; __file__='"'"'C:\\Users\\Paddy\\AppData\\Local\\Temp\\pip-install-6xunn48y\\ssl_0d4afefa00504f218b834c3475a8235c\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Paddy\AppData\Local\Temp\pip-pip-egg-info-2f8p2rk1'

     cwd: C:\Users\Paddy\AppData\Local\Temp\pip-install-6xunn48y\ssl_0d4afefa00504f218b834c3475a8235c\

  Complete output (6 lines):

  Traceback (most recent call last):

   File "<string>", line 1, in <module>

   File "C:\Users\Paddy\AppData\Local\Temp\pip-install-6xunn48y\ssl_0d4afefa00504f218b834c3475a8235c\setup.py", line 74

    print 'looking for', f

       ^

  SyntaxError: Missing parentheses in call to 'print'. Did you mean print('looking for', f)?

  ----------------------------------------

WARNING: Discarding https://files.pythonhosted.org/packages/3a/c2/846a19d1572ec6cb8ac438d58a898de8926d32e13f0355cdf4ab00864b5f/ssl-1.15.tar.gz#sha256=1266302ce62c4b60c7ca0e1d3d104ba11d2749e5881d8ac4f006cf9a0446d589 (from https://pypi.org/simple/ssl/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

ERROR: Could not find a version that satisfies the requirement ssl (from versions: 1.15, 1.16)

ERROR: No matching distribution found for ssl

WARNING: You are using pip version 21.1.3; however, version 24.0 is available.

You should consider upgrading via the 'D:\Python\python.exe -m pip install --upgrade pip' command.

Via cmd erhalte ich die gleiche Meldung.
Ich habe alle Python-Versionen schon deinstalliert, System neu gestartet und wieder installiert. Das gleiche habe ich auch mit pip probiert.

Kann mir hier vielleicht jemand weiterhelfen?

Vielen Dank und liebe Grüße im Voraus! :)

cmd, Code, Error, Python, SSL, pip, Python 3, Windows 10, Pycharm
Turtle-Grafik in Python - letzter Aufruf wird nicht angezeigt?

Hallo Community, eine Frage:

Ich habe versucht, die grafische Simulation einer Ampel zu coden. Die Darstellung soll der Einfachkeit halber mit Turtle funktionieren. Im Grunde klappt alles wunderbar, nur die Grün-Phase wird in der Anzeige "übersprungen". Spannend: Wenn ich manuell über die passenden Methode die Grünphase einstelle, wird sie einwandfrei angezeigt. Nur in der Endlosschleife sehe ich gar nichts bzw. ein kurzes "Flackern".

Hat jemand eine Idee, woran das liegen könnten?

import turtle
import time


class Lampe():
    def __init__(self, farbe, x, y):
        self.__zustand = False
        self.farbe = farbe
        self.turtle = turtle.Turtle()
        self.turtle.hideturtle()
        self.turtle.penup()
        self.turtle.speed(0)
        self.turtle.shape("circle")
        self.turtle.color(farbe)
        self.turtle.goto(x, y)


    def einschalten(self):
        self.__zustand = True
        self.turtle.color(self.farbe)
        self.turtle.stamp()


    def ausschalten(self):
        self.__zustand = False
        self.turtle.clear()


    def zustand(self):
        return self.__zustand


class Ampel():
    def __init__(self):
        self.__rot = Lampe("red", 0, 50)
        self.__gelb = Lampe("yellow", 0, 0)
        self.__green = Lampe("green", 0, -50)
        self.__phase = "rot"
        self.__rot.einschalten()
        
    def phase_rot(self):
        self.__rot.einschalten()
        self.__gelb.ausschalten()
        self.__green.ausschalten()
        self.__phase = "rot"
        
    def phase_gelb(self):
        self.__rot.ausschalten()
        self.__gelb.einschalten()
        self.__green.ausschalten()
        self.__phase = "gelb"
        
    def phase_green(self):
        self.__rot.ausschalten()
        self.__gelb.ausschalten()
        self.__green.einschalten()
        self.__phase = "green"
        
    def phase_rotgelb(self):
        self.__rot.einschalten()
        self.__gelb.einschalten()
        self.__green.ausschalten()
        self.__phase = "rotgelb"


    def umschalten(self):
        if self.__phase == "rot":
            self.phase_rotgelb()
        elif self.__phase == "rotgelb":
            self.phase_green()
        elif self.__phase == "green":
            self.phase_gelb()
        elif self.__phase == "gelb":
            self.phase_rot()
        else:
            print("Something went horribly utterly wrong. Doomsday!")
        time.sleep(2)
        self.umschalten()


if __name__ == "__main__":
    turtle.Screen().bgcolor("black")
    ampel = Ampel()
    ampel.umschalten()


Python, Python 3
Pyhton Daten updaten?

Hallo

ich bin neu in der Python Welt und habe eine kleine Frage bezüglich arbeiten mit Daten (.txt)

Ich will ein Geldaufnahme Programm schreiben wo ich Daten speichern muss und regelmäßig updaten will.

Zum Programm: Nachdem mein Lohn kam will ich alle meine Kontostände aktualisieren und diese sollen dann gespeichert werden und auf Wunsch aufrufbar sein.

(Erfundenen Zahlen)

Hier ist das Dictunary in der TXT datei:

Bestände = {

"Sparbuch" : 1000,

"Girokonto" : 2000,

"Depot : 3000,

"Bar" : 4000

}

Mein Lohn (3.000€ ) kommt und ich verteile das Geld auf die Konten.

Hier fange ich in der Geldaufnahme.py Datei an:

Sparbuch1 = input("Was ist der Aktuelle stand? ") #verändert um +1.000

Girokonto2 = input("Was ist der Aktuelle stand? ") #verändert um +1.000

Depot3 = input("Was ist der Aktuelle stand? ")

Bar4 = input("Was ist der Aktuelle stand? ") #verändert um +1.000

Jetzt zu meinem ersten Problem:

Wie kann ich die Daten aus der txt datei in meiner .py Datei als Dictunary rüber holen und dann selbständig bearbeiten?

bzw

Die Bestände: Sparbuch/ Girokonto und Bar verändern sich um jeweils 1.000€

wie kann ich das in der Txt datei aktualisieren?

Zu meinem zweiten Problem:

Ich will nur den Bestand des Depotes wissen wie lese ich das gezielt aus der txt datei aus?

zu meinem Dritten Problem:

Ist txt datei das richtige hierfür?

Ich hoffe es war verständlich

danke schonmal im voraus 

HTML, Webseite, Java, JavaScript, Batch, cmd, PHP, Programmiersprache, Python, Webentwicklung, Python 3
Warum nutzen wir alle nicht wieder alte Software?

Jetzt mal Hand aufs Herz. Wir wollen doch alle Geschwindigkeit oder nicht. Warum das also wegwerfen? Man könnte ja zumindest nutzen was schon erreicht wurde.

Ich weiß gleich kommen die folgenden Argumente:

- Es lohne sich nicht, da Hardware günstiger sei:

-> Das stimmt nicht. Milliarden Nutzer * 1500€ sind mehr als die Entwicklungskosten einee optimierung. Außerdem wäre das Wirtschaft und es heißt ja ComputerSCIENCE

- Es sei nicht nötig sich die Mühe zu machen da Computer das heute alles packen:

-> Das sah bei GTA6 jetzt nicht so aus! Und was ist mif skalierungsmöglichkeiten, Multitasking und Massendatenverarbeiting, Ernergiekosten, Überlastungen von Rechensystemen... Umweltschutz und Die Herstellung neuer Computerbauteile?

- Es liegt alles an OOP und Web:

-> Das gibts es schon ewig. Es erklärt nicht so wirklich viel davon.

- Geplante Alterung sei Notwendig da die Firmen sonst Pleite gehen:

-> Den Firmen die das tun platzt das Geld aus den Hosentaschen. Und außerdem geht das auch anders. Man kann auch alle paar Jahre eine Lizens erneuern oder es teuerer machen, aber ich denke nicht das Geld das Problem ist? Selbst wenn - Es wird immer zwischen den Themen herumgeschaukelt. Ich sehe das schon, Ich bin nicht auf den Kopf gefallen.

- Zeit zur Veröffentlichung und Marketing sei wichtiger:

-> Ich sprach nicht von dem Azubi nem Becker seine Webseite erstellt.

- Es war früher nicht schneller:

-> Doch war es erinnere dich bitte

- Die Hardware kann nicht mehr:

-> Doch kann Sie, alte Software beweißt es.

- Linux sei die Lösung

-> Schön wärs. Leider nur leichter aber nicht schneller.

- Treiber kann man nicht schreiben:

-> Wenn man sich nicht drüber unrerhällt kann man auch nichts gewinnen. Nicht versucht ist schon verloren.

Ds wird immer ständig zwischen diesen Punkten herumgereicht.

Hab ich was vergessen? Nun Realtalk mal bitte, es muss sich doch was ändern! Ihr könnt mir nicht erzählen das ihr das so wollt...

Computer, Computerspiele, Software, Windows, Microsoft, Studium, Technik, Linux, CPU, Grafikkarte, Hardware, Elektronik, HTML, programmieren, Business, RAM, Wissenschaft, Gaming, Anwendungsentwicklung, Assembler, developer, Industrie, Informatik, Python, Softwareentwicklung, Treiber, Software Update, Technologie und Wirtschaft

Meistgelesene Fragen zum Thema Python