Kann den Fehler nicht finden(Python Anfänger)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
dunksten
User
Beiträge: 2
Registriert: Dienstag 24. November 2015, 17:22

Liebe Community,
seit ich in der Schule Informatik GK belegt habe, beschäftige ich mich mit Python.
Wir sollten einen kleinen Promillerechner schreiben, nix besonderes.
Allerdings habe ich ein Problem, mein Programm hat Fehler, welche ich aber nicht finde.
Hier der Code:

Code: Alles auswählen

print('Bitte Namen eingeben')
name = str(input('Name: '))


def eingabe():
    volumengetraenk = float(input('Aufgenommene Fluessigkeitsmenge: '))
    anteilalkohol = float(input('Alkoholanteil: '))
    masseperson = float(input('Gewicht: '))
    rechnung(anteilalkohol, volumengetraenk, masseperson)


def rechnung(volumengetraenk, masseperson, anteilalkohol):
    masse = 10 * volumengetraenk * anteilalkohol * 0.8
    promille = masse / (masseperson * 0.7)
    ausgabe(promille)


def ausgabe(name, promille):
    zusammen = [name, promille]
    liste = [zusammen]
    print(liste)


eingabe()
Das Programm soll ganz Simpel die Promillewerte ausrechnen und in einer Liste mit Namen abspeichern.
Ich bekomme beim ausführen aber folgende Fehler:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:/Users/***/Documents/***.py", line 24, in <module>
    eingabe()
  File "C:/Users/***/Documents/***.py", line 9, in eingabe
    rechnung(anteilalkohol, volumengetraenk, masseperson)
  File "C:/Users/***/Documents/***.py", line 15, in rechnung
    ausgabe(promille)
TypeError: ausgabe() missing 1 required positional argument: 'promille'
Ich kann keinen dieser Fehler nachvollziehen und hatte bis jetzt auch noch nie Probleme dahingehen.
Ich bitte um Hilfe und um Nachsicht wegen meiner geringen Erfahrung :wink:
Dunksten
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@dunksten: die Fehlermeldung ist doch eindeutig: in Zeile 15 fehlt beim Aufruf von ausgabe ein Parameter. Wenn Du Dir die Definition in Zeile 18 anschaust, sollte klar werden, was da fehlt.

Bemerkungen:
Zeile 2: input liefert schon einen String, ein Konvertieren ist unnötig.
Zeile 19ff: was sollen denn die Verschachtelten Listen zur Ausgabe?
Allgemein: ein Programm sollte eher wie ein Baum aussehen und nicht wie eine Schlange. Bei Dir ruft eine Funktion die nächste auf, richtig wäre, dass es ein Hauptprogramm gibt, das die Funktionen nacheinander Aufruft. eingabe ist ja bei Dir nicht nur eingabe, sondern auch rechnung und ausgabe.
Zuletzt geändert von Sirius3 am Dienstag 24. November 2015, 17:58, insgesamt 1-mal geändert.
dunksten
User
Beiträge: 2
Registriert: Dienstag 24. November 2015, 17:22

@Sirius3,
Ich bin manchmal echt dumm, sorry..:D
Eigentlich hatte ich das auch schon, aber es hat irgendwie nicht geklappt...
Na ja jetzt funktioniert es, danke, dass du dir trotz dieser dummen Frage Zeit zum Beantworten genommen hast.
Antworten