2016-08-29 10 views
0

私はシンプルこんにちは、世界をしようとしていますが、これは私のコード -パイソン:入力、生の入力エラー

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) 

私はraw_inputを使用する場合、このコードは正常に動作しますが、私は入力を使用する場合、それはエラーになりますです。 新しいpythonはraw_inputをサポートしていません。 はまた、私は私が使用する必要があります「」名前

私は本当に混乱していた後、助けてくださいましたなぜfollowing-

def hello(name='') 

としての私の関数のパラメータを定義した理由を知りたいです。あなたが私のプログラムを改善するためのアドバイスをお持ちの場合は、inputで文字列を渡している場合、それは

+1

は 'raw_input'が存在しません「新しいPython "(Python 3)を使用しているので、"古い "Python(Python 2.x)を使用しています。 – roganjosh

+0

あなたはまた、どこかからの例を挙げました。おそらく説明するためのチュートリアルでしょう。 'なぜ' '名前の後に' '関数の引数の既定値を定義するのが必要なのですか? '' ''は単に空の文字列であるため、' hello() 'を呼び出して関数に引数を渡さなかった場合、' 'len(name)== 0''が' True'ならば、 "こんにちは世界!"。 – roganjosh

答えて

0

を高く評価しています、あなたはまた、例えば、二重引用符"を、言及する必要があり"My Name"

raw_inputに、すべての入力された値であるのに対しデフォルトでは文字列として扱わ

説明:

# 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

私のコードで正しい使い方を説明できますか? – p427h4ck3d0sh1

+0

私はPython 3を使用しています。 – p427h4ck3d0sh1

+0

@ p427h4ck3d0sh1:答えを更新しました。希望する場合は –