Generator

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Itech
User
Beiträge: 10
Registriert: Freitag 6. Juli 2018, 15:44

Freitag 14. Juni 2019, 16:10

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)

Benutzeravatar
ThomasL
User
Beiträge: 774
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Freitag 14. Juni 2019, 16:50

nun, du hast keine Zahlen in discount und brutto, sondern strings
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Benutzeravatar
__blackjack__
User
Beiträge: 4229
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Freitag 14. Juni 2019, 16:50

@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.
“Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life.”
— Terry Pratchett, Jingo
Itech
User
Beiträge: 10
Registriert: Freitag 6. Juli 2018, 15:44

Mittwoch 19. Juni 2019, 08:10

Danke für die Hilfe. So ist das halt, wenn man kein Programmierer ist.
Antworten