En el último capítulo escribimos un programa para ayudar a Karel escalar una repisa simple:
A pesar de PrimeroKarel
programa anterior demuestra que es posible realizar la girar_derecha()
operación usando sólo los Karel incorporados de Karel , el programa resultante no es particularmente claro conceptualmente. En su diseño mental del programa, Karel gira a la derecha cuando llega a la parte superior de la repisa. El hecho de que tengas que usar tres girar_izquierda()
comandos para hacerlo es molesto. Sería mucho más simple si pudiera simplemente decir girar_derecha()
y hacer que Karel comprenda este comando. El programa resultante no solo sería más corto y más fácil de escribir, sino también significativamente más fácil de leer.
Afortunadamente, el Karel programación Karel hace posible definir nuevos comandos simplemente al incluir nuevas definiciones de funciones. Siempre que tenga una secuencia de Karel comandos que realice alguna tarea útil, como girar a la derecha, puede definir una nueva función que ejecute esa secuencia de comandos. El formato para definir una nueva función Karel es muy similar a la definición de main()
en los ejemplos anteriores, que es una definición de función por derecho propio. Una definición de función típica se ve así:
def
nombre ():
comandos que componen el cuerpo de la función
En este patrón, el nombre representa el nombre que ha elegido para la nueva función. Para completar la definición, todo lo que tiene que hacer es proporcionar la secuencia de comandos en las líneas después de los dos puntos, todos con sangría en una pestaña. Por ejemplo, puede definir girar_derecha()
como sigue:
def girar_derecha():
girar_izquierda()
girar_izquierda()
girar_izquierda()
Del mismo modo, podría definir un nuevo media_vuelta()
funciona así:
def media_vuelta():
girar_izquierda()
girar_izquierda()
Puede utilizar el nombre de una nueva función como cualquiera de los Karel de Karel . Por ejemplo, una vez que haya definido girar_derecha()
, podrías reemplazar los tres girar_izquierda()
comandos en el programa con una sola llamada al girar_derecha()
función. Aquí hay una implementación revisada del programa que usa girar_derecha()
:
Un grupo de comandos sigue los dos puntos. :
que están sangrados, se llama bloque de código . El cuerpo de su función es un bloque de código. Observe cómo el contenido de un bloque de código tiene sangría en una pestaña. Esto es importante desde el punto de vista funcional, ya que permite a Python saber qué líneas de código hay en un bloque determinado.
Puede definir tantas funciones como desee. Todos deberían escribirse uno tras otro. No puede definir una función dentro de otra función.