2016-05-20 9 views
2

私はDebian LinuxでPython 2.7.11を使用しています。Python 2.7.11:関数呼び出しはある関数では機能するが、別の関数では機能しないのはなぜですか?

私は2つの関数を持っています.1つは通常の関数呼び出しで期待どおりに動作し、もう1つは正常な関数呼び出しがこの2つ目の関数では機能しないことを除いて十分に機能します。それを機能させるためには、関数の前にプリントを置く必要があります。

1)第一の機能、通常の関数コールで予想されるように実行される:

def print_me(string): 

    print string 

    print_me("I am a string") 

2)第二の機能、通常の関数コールで動作しない:

def fruit_color(fruit): 

    fruit = fruit.lower() 
    if fruit == 'apple': 
     return 'red' 
    elif fruit == 'banana': 
     return 'yellow' 
    elif fruit == 'pear': 
     return 'green' 
    else: 
     return 'Fruit not recognized' 

3 )通常の関数呼び出し、すなわちfruit_color( 'apple')は機能しません。私の代わりにそれが仕事を得るためには、関数の前にプリントを配置する必要があります。

print fruit_color('apple') 

4)今、私は(たぶん)簡潔に十分な自分自身を説明してきたことを、私は私の質問を言い換えるます:なぜです関数呼び出しはprint_me関数では機能しますが、fruit_color関数では機能しません。

+0

'print'はそれを印刷します、' return'はそれを印刷しないので、明示的に戻り値を出力する必要があります。 – poke

答えて

4

print_me実際に表示されている文字列が実際に印刷されます。 fruit_colorは文字列の値を返すだけで、それを変数に代入したり、操作したりすることができます。この場合は、printを呼び出して文字列を出力します。

2

fruit_color関数は文字列を返します。印刷されません。この関数から返された値を出力する場合は、printで呼び出す必要があります。

3

印刷機能と返信機能は全体的に異なります。

def print_me(string): 
    print string 

print_me('abc') 

出力:

ABC

def return_me(string): 
    return string 

return_me('abc') 

OUTPUT:パイソンプリントの印刷関数は、引数が渡され

出力しない

ので。一方、return関数は引数を返します。必要に応じてプログラム内の他の場所で使用できるようにします。

1

Aha!今私はそれを得る!すべての

def fruit_color(fruit): 
     fruit.lower() 
     if fruit == 'apple': 
      print 'green' 

    fruit_color('apple') 

感謝を:私はそれをやっていたもののために、私は単にそれを呼び出すことができるように、fruit_color関数内印刷を使用することをお勧めしてきただろう!

関連する問題