2016-09-22 4 views
0

Ich habe erst begonnen, Python zu lernen. Wenn ich schrieb:Python-Funktion aufrufen

def questions(): 
    sentence= input(" please enter a sentence").split() 

Wie würde ich die Funktion zu beenden, wenn der Benutzer nicht eingegeben etwas getan und traf nur

+0

können Sie bitte Ihren Code teilen? –

+0

Die Funktion wird automatisch beendet, nachdem sie nach einer Benutzereingabe abgeschlossen wurde. 'if same == []: print ('Keine Benutzereingabe gefunden')' ist etwas, das Sie vielleicht suchen. – PyNoob

+1

Sie könnten eine 'return' Anweisung hinzufügen, wenn' len (sentence) == 0' –

Antwort

1
def questions(): 
    sentence= input(" please enter a sentence").split() 
    if sentence == []: 
     #This is what happens when nothing was entered 
    else: 
     #This happens when something was entered 
+0

Sie könnten es zu 'if sentence:' –

+0

Yeah, aber ich wollte klar machen, dass .split() eine Liste und keine Zeichenfolge zurückgibt. –

0

geben Sie Ausnahme in Ihrem Code hinzufügen können. Wenn Sie eine Ausnahme nur auf die leere Zeichenkette erhöhen wollen, werden Sie dies manuell tun müssen:

Beispiel

try: 
    input = raw_input('input: ') 
    if int(input): 
     ...... 
except ValueError: 
    if not input: 
     raise ValueError('empty string') 
    else: 
     raise ValueError('not int') 

dies versuchen, beide leere Zeichenkette und nicht-int erfasst werden.

+0

OP benutzt python3 :) –

+0

@JacobVlijm Woher weißt du das? Ich habe keine Antwort auf meine Frage erhalten. – roganjosh

1

Haben Sie das getestet? Die Funktion wird ordnungsgemäß funktionieren, wenn der Benutzer einfach eingeben eingeben. Die sentence Variable wäre eine leere Liste. Wenn in der Funktion nichts anderes enthalten wäre, würde None als Standard-Rückgabewert zurückgegeben. Wenn Sie eine weitere Verarbeitung durchführen möchten, die einen tatsächlichen Satz mit Inhalt erfordert, können Sie if not sentence: return nach dieser Zeile setzen.

+0

Das scheitert mit 'SyntaxError: Unerwartetes EOF beim Parsen' in Python 2, außer sie benutzen' raw_input' – roganjosh

+0

@roganjosh - Das ist in Ordnung; niemand benutzt in Python 2 sowieso "input", und sie sollten Python 2 überhaupt nicht verwenden. : P Ich antworte basierend auf dem aktuellen Standard, der Python 3 ist, sofern nicht anders angegeben. – TigerhawkT3

+0

Ähm, ich bin in Python 2 steckengeblieben, also ist mein Instinkt, auf diese Ader zu antworten: P Aber auch viele Tutorials werden mit Python 2 funktionieren, also für Anfängerfragen würde ich definitiv solche Dinge erwarten! – roganjosh