Seite 1 von 1

Generator

Verfasst: Freitag 14. Juni 2019, 16:10
von Itech
Hallo zusammen,

ich scheine einfach zu dumm gerade zu sein, um zu checken was ich falsch mache. Will eigentlich nur von Brutto in Netto umrechen, innerhalb eines Generators.
Fehlermeldung : unsupported operand type for /: 'str' and 'float'
Wer ist klüger als ich und kann mir helfen?

Code: Alles auswählen

import random


first = ("Kathrin", "Martina", "Stephan", "Phillip", "Felix", "Nicole", "Dominik", "Frank", "Christian", "Martina", "Katja", "Sebastian", "Kerstin", "Ralf", "Horst", "Franziska", "Birgit", "Rene", "Bernd", "Silke", "Max")
second = ("Eberhardt", "Mueller", "Jaeger", "Urner", "Baumgarten", "Klug", "Fassbinder", "Becker", "Dietrich", "Himmel", "Keller", "Lang", "Bieber", "Scholz", "Pfeiffer", "Winkel", "Werfel", "Schweizer", "Schwab")
discount = ("5", "0", "10", "15", "20", "25", "30", "35", "40", "45")
brutto = ("380", "260", "120", "50", "100","150","200","250","300","350","400","500","220","320","380",)

bruttoo = random.choice(brutto)
netto = bruttoo / float(1.19)
disccount = random.choice(discount)
firrst = random.choice(first)
seccond = random.choice(second)
name = (firrst + " " + seccond + " " + disccount + " " + bruttoo + " " + netto)

print(name)


Re: Generator

Verfasst: Freitag 14. Juni 2019, 16:50
von ThomasL
nun, du hast keine Zahlen in discount und brutto, sondern strings

Re: Generator

Verfasst: Freitag 14. Juni 2019, 16:50
von __blackjack__
@Itech: Die Fehlermeldung ist doch eigentlich doch recht eindeutig: Man kann Zeichenketten nicht durch Zahlen teilen. Warum sind die Zahlen in den Tupeln überhaupt Zeichenketten und nicht wirklich Zahlen?

Das sollten auch keine Tupel sondern Listen sein.

`float()` mit einer Gleitkommazahl aufzurufen ist komplett sinnlos.

Und das was Du da mit den Namen machst, dafür sollte Dir der Computerführerschein entzogen werden. Einfach wahllos irgendeinen Buchstaben zu doppeln wegen Faulheit sich keine *richtigen* Namen ausdenken zu wollen, geht ja mal gar nicht.

Zeichenketten und Werte mit ``+`` (und `str()`) zusammenstoppeln ist eher BASIC als Python. In Python gibt es dafür Zeichenkettenformatierung mittels `format()`-Methode auf Zeichenketten, oder ab Python 3.6 auch f-Zeichenkettenliterale.

Edit: Der Betreff ist etwas irreführend, denn `generator` ist ein Datentyp in Python der mit Generatorfunktionen und -ausdrücken zusammenhängt — so etwas gibt es in dem Programm aber nicht.

Re: Generator

Verfasst: Mittwoch 19. Juni 2019, 08:10
von Itech
Danke für die Hilfe. So ist das halt, wenn man kein Programmierer ist.