Seite 1 von 1

Kann den Fehler nicht finden(Python Anfänger)

Verfasst: Dienstag 24. November 2015, 17:36
von dunksten
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

Re: Kann den Fehler nicht finden(Python Anfänger)

Verfasst: Dienstag 24. November 2015, 17:54
von Sirius3
@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.

Re: Kann den Fehler nicht finden(Python Anfänger)

Verfasst: Dienstag 24. November 2015, 17:57
von dunksten
@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.