2016-08-04 19 views
0

Ich zitiere oft versuchen, Werte in int konvertieren und wenn sie nicht konvertiert werden können, legen Sie sie auf einen Standardwert fest. Zum Beispiel:Wie schreibe ich mehrere versuchen/Ausnahmen effizient

try: 
    a = int(a) 
except: 
    a = "Blank" 
try: 
    b = int(b) 
except: 
    b = "Blank" 
try: 
    c = int(c) 
except: 
    c = "Blank" 

Kann dies effizienter in Python geschrieben werden, anstatt jeden Versuch und außer zu schreiben?

+0

Warum der Downvote ?? – eleanora

+1

Warum haben Sie nicht eine Funktion, die Sie tun müssen, damit Sie sich nicht wiederholen müssen? Sie können diese Funktion sogar mehrere Werte annehmen lassen. – DeepSpace

+0

Ich würde die drei Konvertierungen in eine einzige "try-except" -Klausel setzen und etwas wie 'except ValueError:' verwenden. Es ist keine gute Angewohnheit, eine Ausnahme für jede Ausnahme zu verwenden. – Alex

Antwort

4

ich einfach eine Funktion verwenden würde:

def int_with_default(i): 
    try: 
     return int(i) 
    except ValueError: 
     return "Blank" 

a = int_with_default(a) 
b = int_with_default(b) 
c = int_with_default(c) 

Falls erforderlich, können Sie immer ein zweites Argument hinzufügen, was sollte der Standard erzählt Wert sein, wenn Sie wollen nicht jedes Mal verwenden „Blank“ .