Einfacher Python-Eingabefehler

8

Ich versuche einen Code zu schreiben, um eine Liste zu bearbeiten und sie zu einem Palindrom zu machen.

Alles funktioniert, außer meine Eingabe gibt mir immer noch einen Fehler. Wenn ich ein non-int in get_number_2 eintrage, stürzt es ab.

%Vor%

Ich benutze die Eingabe von get_number_2 für den Rest des Codes, da get_number nicht funktioniert, wenn ich zwischen zwei Zahlen überprüfe.

Gibt es eine Möglichkeit, ob ich validieren kann, wenn die Eingabe ein int in get_number_2 ist, damit ich get_number loswerden kann?

    
S_Sull 22.10.2015, 16:32
quelle

4 Antworten

3

Sie sollten auch raw_input und int(num) :

verwenden %Vor%

Hinweise :

  • Ich nehme an, dass der Parameter n ein int ist, oder um dies zu überprüfen, könnten Sie das if in: if not num.isdigit() or not n.isdigit() or int(num) != int(n) .
  • ändern
  • Unter Verwendung von isdigit prüfen wir, ob es sich um eine Ganzzahl handelt, bevor Sie wirklich konvertieren es zu int .
agold 22.10.2015, 16:35
quelle
6

Programm schreiben, das die Ausnahme behandelt. Wenn der Benutzer eine ungültige Ganzzahl eingibt, wird ValueError exception:

ausgegeben %Vor%

Sie müssen Ihre Frage folgendermaßen aktualisieren:

%Vor%     
kakajan 22.10.2015 16:36
quelle
3

Sie können num != int(n) nicht ausführen, da versucht wird, int(n) aufzurufen, was ungültig ist, wenn n keine Ganzzahl ist.

Der richtige Weg ist, try und except

zu verwenden %Vor%

Bearbeiten: Auch in Python 2.x benutzen Sie bitte raw_input() anstelle von input() . input() liefert sehr merkwürdige Ergebnisse, wenn Sie nicht wissen, was es macht.

    
Dylan Lawrence 22.10.2015 16:35
quelle
-1
%Vor%     
Firas Saidi 19.02.2018 16:10
quelle

Tags und Links