Exceptions bei einer Eingabe

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
Atakan2000
User
Beiträge: 5
Registriert: Freitag 22. Oktober 2021, 10:11

Hallo Leute,

ich muss in einer Aufgabenstellung von der Konsole eine Eingabe einlesen, diese Eingabe wird dann in eine Ganzzahl konvertiert. Beim Konvertieren soll man eventuelle Exceptions abfangen falls sie nicht in eine Ganzzahl konvertierbar ist. Ansonsten wird die Eingabe in einer Liste abgespeichert. Das muss sich dann solange wiederholen bis die Liste 10 Elemente hat. Bis jetzt habe ich das hier aufgeschrieben jedoch scheint dies nicht ganz zu stimmen.

import numpy as np

try:
liste = []
for i in range(10):
liste.append(int(input()))
except ValueError:
print("Keine Ganzzahl")

arr = np.array(liste)

x = arr[1:10:2]
erg = 2*np.cos(x)
summe = print(np.sum(erg))

wenn ich im Programm eine nicht Ganzzahl eingebe bricht er automatisch ab, jedoch sollte er glaube ich weiter nach der Eingabe fragen dies klappt bei mir jedoch nicht.
Kann mir in diesem Fall evtl. jemand helfen?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du solltest mit Funktionen arbeiten. Schreib dir eine Funktion, welche dir eine Zahl einliest. Und die benutzt du dann 10 mal, und baust deine Liste auf.

Die Funktion muss dann auch mit einer Endlosschleife arbeiten, denn eine Ausnahme abfangen alleine sagt ja nicht magisch "oh, dann mach das alles doch nochmal" - das musst du schon programmieren.
Atakan2000
User
Beiträge: 5
Registriert: Freitag 22. Oktober 2021, 10:11

__deets__ hat geschrieben: Montag 22. November 2021, 17:51 Du solltest mit Funktionen arbeiten. Schreib dir eine Funktion, welche dir eine Zahl einliest. Und die benutzt du dann 10 mal, und baust deine Liste auf.

Die Funktion muss dann auch mit einer Endlosschleife arbeiten, denn eine Ausnahme abfangen alleine sagt ja nicht magisch "oh, dann mach das alles doch nochmal" - das musst du schon programmieren.
wie meinst du mit einer Endlosschleife? Als Funktion habe ich nun das hier:
def eingabe_einlesen(zahl):
int(input())
return zahl
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Na wenn du so lange einlesen sollst, bist der Benutzer eine gueltige Zahl eingegeben hat - dann musst du nunnmal endlos of probieren, eine Eingabe zu bekommen. Denn der kann sich ja endlos oft (ok, nur bis zum Ende des Universums, aber das ist recht lang) verschreiben.
Sirius3
User
Beiträge: 18278
Registriert: Sonntag 21. Oktober 2012, 17:20

Du hast doch schon die Lösung beschrieben: "Das muss sich dann solange wiederholen bis die Liste 10 Elemente hat."
Und "solange" wird mit "while" ins Englische übersetzt.
Antworten