2016-08-04 8 views
0

Im auf einer Fingerübung von Guttag Intro arbeitet Informatik und Programmierung mit Python und Im arbeiten an folgenden Fingerübung:Python-Programm Anhebung Ausnahmen

Finger Übung: Implementieren Sie eine Funktion, die die Spezifikation def erfüllt findAnEven (l): „“ „annimmt l ist eine Liste von ganzen Zahlen die ersten Kosten gerade Zahl in l Löst Valueerror wenn du nicht eine gerade Zahl enthält“ „“

Dies ist, was ich schrieb, so ist es weit, Die Arbeit erledigt, ist aber definitiv nicht das, was Guttag als Antwort beabsichtigt hat.

def isEven(l): 
     """Assumes l is a list of integars 
      returns the first even number in list 
      raises an exception if no even number in list""" 
     for i in l: 
      if i % 2 == 0: 
       print i, " is the first even number in the list"    
       exit() 
     raise ValueError("No even numbers in list!") 

Ich würde sehr schätzen jede Eingabe darüber, wie Professor Guttag beabsichtigte, den Code zu suchen. Ich nehme an, ich hätte die try-Anweisung irgendwo verwenden sollen, und die Verwendung der Exit-Anweisung ist in diesem Zusammenhang sehr grob. Danke im Voraus.

+0

Warum fragst du ihn nicht direkt? – Julien

+0

Woher weißt du, dass es nicht so aussieht, wie er es möchte? Es ** tut ** was er will, oder? –

+0

Nicht in MIT, nur mit dem Buch. Es tut, was er will, aber ich denke, ich hätte irgendwie eine Versuchsanweisung und eine While-Schleife verwenden sollen. –

Antwort

1

Das Problem mit Ihrem Code ist die Verwendung von exit(). Im Allgemeinen wird return für Sie beendet. Um den Code zu beheben, entfernen Sie ihn einfach:

+0

danke, ich schätze, es sieht einfach schlampig aus. Ich denke, ich hätte irgendwie eine try-Anweisung und eine while-Schleife verwenden sollen. Danke jedenfalls –

+0

nein, es sieht nicht schlampig aus; es ist nur so, wie Python aussieht :) –