Hilfe beim Umrechner

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
Sülo
User
Beiträge: 29
Registriert: Dienstag 4. Mai 2021, 09:58

Hallo ihr Lieben, ich schreibe demnächst eine Klausur in Informatik und bin am lernen leider hänge ich jetzt an einer Aufgabe die Wahrscheinlich nicht in der Klausur vorkommt, ich die jetzt jedoch trotzdem lösen möchte:
Die Frage:

Eine Meile entspricht ca. 1.6 km. Schreiben Sie eine Funktion, die einen Meilenwert als Argument erwartet und diesen in Kilometer umrechnet und als Rückgabewert zurück gibt. Verwenden Sie den angegebenen Faktor und nennen Sie diese Funktion m2k.
Wichtig: Schreiben Sie nur die Funktion und rufen Sie diese nicht selber auf, das erledigt CodeRunner beim Überprüfen im Hintergrund!
Zum Beispiel: Test - m2k(4) Ergebnis - 6.4

Jetzt habe ich folgendes

Code: Alles auswählen

def m2k(Meilen):
	km = Meilen * 1.6
	return km
Meilen = int(input('Geben Sie die Meilen an: '))
km = m2k(Meilen)
print("Der Umgerechnete Wert sind: " + str(km),"KM")
Als Antwort wenn ich 4 eingebe bekomme ich die 6.4 soweit so gut
Lasse ich das jetzt aber über Moodle im Aufgabenfeld laufen kommt als eine Fehlermeldung das es Falsch ist und die Fehlermeldung kommt:

***Laufzeitfehler***
Traceback (most recent call last):
File "__tester__.python3", line 4, in <module>
Meilen = int(input())
EOFError: EOF when reading a line

Liegt das jetzt an dem was ich gemacht habe oder an Moodle??
Wäre nett wenn mir da jemand Bescheid sagen könnte:)

Vielen Dank und liebe Grüße
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Was verstehst Du an
Wichtig: Schreiben Sie nur die Funktion und rufen Sie diese nicht selber auf, das erledigt CodeRunner beim Überprüfen im Hintergrund!
nicht?

Eingerückt wird immer mit 4 Leerzeichen pro Ebene, keine Tabs.
Variablennamen schreibt man generell komplett klein.
`m2k` ist ein besonders schlechter Variablenname, weil er nur aus cryptischen Buchstaben besteht, beim Lesen einer Funktion sollte gleich klar sein, was die macht,
gute Namen wären convert_miles_to_kilometers.
Zahlenwerte sollten nicht einfach so im Code vorkommen, sondern am Anfang der Datei als Konstanten definiert werden.
`km` ist eine überflüssige Variable, weil man den Wert gleich per `return` zurückgeben kann.
Strings stückelt man nicht mit + zusammen sondern benutzt Formatstrings.
Die Einheit ist "km" nicht "KM"

Code: Alles auswählen

MILE_IN_KM = 1.6

def convert_miles_to_kilometers(miles):
    return miles * MILE_IN_KM 
	return km
m2k = convert_miles_to_kilometers # for the test framework

def main():
    miles = int(input('Geben Sie die Meilen an: '))
    km = convert_miles_to_kilometers(miles)
    print(f"Der Umgerechnete Wert ist: {km} km")

if __name__ == "__main__":
    main()
Sülo
User
Beiträge: 29
Registriert: Dienstag 4. Mai 2021, 09:58

Sirius3 hat geschrieben: Dienstag 4. April 2023, 13:31 Was verstehst Du an
Wichtig: Schreiben Sie nur die Funktion und rufen Sie diese nicht selber auf, das erledigt CodeRunner beim Überprüfen im Hintergrund!
nicht?

Das steht bei jeder Aufgabe jedoch können wir Studenten trotzdem durch Prüfen feststellen ob der Code richtig ist oder falsch. Also bei den anderen 10 Aufgaben davor ging es und haben dann auch ein Feedback bekommen das es richtig ist
def convert_miles_to_kilometers(miles):
return miles * MILE_IN_KM
return km
m2k = convert_miles_to_kilometers # for the test framework

def main():
miles = int(input('Geben Sie die Meilen an: '))
km = convert_miles_to_kilometers(miles)
print(f"Der Umgerechnete Wert ist: {km} km")

if __name__ == "__main__":
main()[/code]
Das habe ich mal genau so rauskopiert und eingefügt bei Moodle, kommt der gleiche Fehler.
Ich denke mal das liegt dann an Moodle.
Benutzeravatar
kbr
User
Beiträge: 1508
Registriert: Mittwoch 15. Oktober 2008, 09:27

Nein, das liegt nicht an Moodle.
Sülo
User
Beiträge: 29
Registriert: Dienstag 4. Mai 2021, 09:58

Okay Hab es jetzt :D:D Einfacher als gedacht:

Code: Alles auswählen

def m2k(x):
	m=float(x)*1.6
	m=formate(m, ‘.1f‘)
	print(m)
Benutzeravatar
grubenfox
User
Beiträge: 612
Registriert: Freitag 2. Dezember 2022, 15:49

also wenn das der kompletter Code, der immer noch zur ursprünglichen Aufgabenstellung gehört, und der jetzt von CodeRunner als OK bewertet wird, dann liegt das nun an CodeRunner bzw Moodle.
Da fehlt nämlich die Rückgabe vom Rückgabewert.
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Da sind wir jetzt aber Meilenweit von der eigentlichen Aufgabenbeschreibung weg und auch von gutem Pythonprogrammieren.
Benutzeravatar
__blackjack__
User
Beiträge: 14057
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Das läuft so ziemlich sicher nicht, beziehungsweise in einen `NameError` weil `formate()` nicht bekannt ist.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten