2016-08-29 12 views
0

Ich versuche, eine einfache Hallo Welt, das ist mein Code-Python: Input, Raw Eingabefehler

def hello(name=''): 
    if len(name) == 0 : 
     return "Hello, World!" 
    else : 
     return "Hello, %s!" %(name) 
my_name = raw_input() 
x = hello(my_name) 
print (x) 

Dieser Code funktioniert gut, wenn ich raw_input verwenden, aber wenn ich Eingabe verwenden, gibt es einen Fehler. Unterstützt das neue Python nicht raw_input. Ich möchte auch wissen, warum ich den Parameter in meiner Funktion als folgenden- definiert

def hello(name='') 

Warum habe ich das ‚‘ nach dem Namen

Ich bin wirklich verwirrt, bitte helfen Sie verwenden müssen. Wenn Sie einen Rat haben mein Programm zu verbessern, wird es geschätzt

+1

'raw_input' existiert nicht in der„ neues Python "(Python 3), also verwenden Sie das" alte "Python (Python 2.x). – roganjosh

+0

Sie haben auch ein Beispiel von irgendwo aufgehoben, wahrscheinlich ein Tutorial, das weiter erklären wird. 'Warum musste ich '' nach Name 'verwenden, definiert einen Standardwert für das Funktionsargument. '' '' ist einfach eine leere Zeichenkette. Wenn Sie also 'hallo()' aufrufen und kein Argument an die Funktion übergeben, dann ist 'if len (name) == 0'' 'True' ', also erhalten Sie "Hallo Welt!". – roganjosh

Antwort

0

Wenn Sie Zeichenfolge mit input sind vorbei, müssen Sie auch die doppelten Anführungszeichen erwähnen ", zum Beispiel "My Name"

Während in raw_input alle eingegebenen Werte als String standardmäßig behandelt

Erläuterung:

# Example of "input()" 
>>> my_name = input("Enter Name: ") 
Enter Name: "My Name" 
# Passing `"` with the input, else it will raise NameError Exception 
>>> my_name 
'My Name' <--- value is string 

# Example of "raw_input()" 
>>> my_name = raw_input("Enter Name: ") 
Enter Name: My Name 
# Not passing any `"` 
>>> my_name 
'My name' <--- still value is string 
+0

Können Sie die ordnungsgemäße Verwendung in meinem Code erklären? – p427h4ck3d0sh1

+0

Ich benutze Python 3, warum funktioniert nicht Eingabe für mich? – p427h4ck3d0sh1

+0

@ p427h4ck3d0sh1: Die Antwort wurde aktualisiert. Hoffe, es kann helfen –