Wieso ist dieser Python-Code falsch?

4 Antworten

"Es handelt sich bei Ihrer Eingabe um den Datentyp: " + datentyp

Hier versuchst du, auf ein Objekt vom Typ String und ein Objekt vom Typ "type" den Operator "+" anzuwenden. Der ist aber nicht dafür definiert. Du kannst nur Strings miteinander verketten. Somit wird eine Exception geworfen.

Das alles passiert, bevor überhaupt print() aufgerufen wird. Hat also damit nichts zu tun.

print(datentyp)

Das funktioniert. print() wendet auf jedes übergebene Objekt die Funktion str() an, wandelt es also in seine Stringrepräsentation um.

Was somit auch funktionieren würde:

print("Es handelt sich bei Ihrer Eingabe um den Datentyp:", datentyp)

Das liegt daran, dass du versuchst einen string und einen type mit einem + Operator zu verbinden, was nicht funktioniert. Du kannst nur zwei Strings auf diese Weise verbinden. Du kannst die Variable datentyp jedoch implizit konvertieren, das sieht dann so aus:

print: ("Es handelt sich bei ihrer Eingabe um den Datentyp: " + str(datentyp))

Die untere Möglichkeit funktioniert aber, weil die print()-methode mit jedem Datentyp umgehen kann, und den dann einfach konvertiert. Der Fehler kommt also nicht von dem printen, sondern von dem +Operator, der versucht zwei Strings zu verketten aber auf einen string und einen type stößt...

Jedoch wirst du nie etwas anderes zurückbekommen als 'str', denn die input()-Methode gibt dir nur einen string zurück, auch wenn nur Zahlen eingegeben werden...

Woher ich das weiß:Hobby – Programmiere seit eineinhalb Jahren
Steinperfer  02.10.2021, 16:26

print("Es handelt sich bei Ihrer Eingabe um den Datentyp: "(datentyp))

0
Von einem Experten bestätigt

Du musst explizit nach string konvertieren

Die Fehlermeldung lautet:

TypeError: must be str, not type

Also funktioniert das hier.

x = "bla"
print(x + str(type(x))
 

Du musst es so ändern

Beispiel_Variable = input("Bitte geben Sie etwas ein: ")

print("Beispiel_ Variable")

print("Es handelt sich bei Ihrer Eingabe um den Datentyp: " + datentyp)

TheWeverAlt  02.12.2021, 16:38

Da ist jemandem ein kleiner Fehler unterlaufen würde ich sagen. Habe alles mit comments versehen damit du weißt was du Falsch gemacht hast :

Beispiel_Variable = input("Bitte geben Sie etwas ein: ")
print(Beispiel_ Variable) #Für den aufruf von variablen darf der variblen name nicht als string gegeben werden
print("Es handelt sich bei Ihrer Eingabe um den Datentyp: " + str(type(Beispiel_Variable))) #Um den typ des datentypen zu bekommen rufen wir type() auf und konvertieren den typ dann zu einer string mit str() damit wir keinen type-error bekommen wenn der text ausgegeben werden soll.
0