Python: Imprimiendo una función simple

Soy un principiante absoluto de Python y de la progtwigción en general, y acabo de tener mi primera exposición a las funciones.

He definido dos funciones simples a continuación:

def output1(): print "Hello, world!" def output2(): print "Hello, there!" output1() output2() 

Después de guardar lo anterior en un script llamado function.py, luego uso Windows Power Shell para ejecutar el script, e imprime lo siguiente como cabría esperar:

 Hello, world! Hello, there! 

Sin embargo cuando modifico el script para:

 def output1(): print "Hello, world!" def output2(): print "Hello, there!" print output1() print output2() 

Se imprime:

 Hello, world! None Hello, there! None 

Por curiosidad, ¿por qué hace esto cuando prefijo output1 y output2 con print?

Funciona así, porque:

 print output1() 

significa que desea imprimir el RESULTADO de la función (es decir, el valor de retorno).

Y como no hay retorno en su función, por defecto es Ninguno.

 def output1(): print "Hello, world!" def output2(): print "Hello, there!" return "Something" print output1() print output2() 

Resultaría en:

 Hello, world! None Hello, there! Something 

Una función puede tener un valor de retorno: llama a la función y devuelve algo al lugar donde fue llamada.

Una función devuelve None por defecto en Python.

Ahora también está imprimiendo el valor de retorno de output1 y output2 .

Puedes leer más sobre esto en esta sección del tutorial de idioma de Python.