PDF de programación - Fundamentos de la programación - Tema 2

Imágen de pdf Fundamentos de la programación - Tema 2

Fundamentos de la programación - Tema 2gráfica de visualizaciones

Publicado el 22 de Febrero del 2019
602 visualizaciones desde el 22 de Febrero del 2019
403,0 KB
21 paginas
Creado hace 8a (20/10/2015)
UNIVERSIDAD DE ALCALÁ



DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN



LABORATORIO

FUNDAMENTOS DE LA PROGRAMACIÓN

Tema 2



Mª Ángeles Fdez de Sevilla Vellón

Página 1

TEMA 2: FUNCIONES Y PROCEDIMIENTOS



1. FUNCIONES

En el tema anterior hemos aprendido a utilizar algunas de las funciones predefinidas por
el lenguaje, como por ejemplo la función round(), que es una función predeterminada
que no necesita invocar a ningun módulo para su correcto funcionamiento. En cambio,
existen funciones que para poder invocarlas necesitamos previamente llamar a la
librería que las contiene, por ejemplo para poder llamar a ciertas funciones matemáticas,
como la raíz cuadrada sqrt(), tienen que ser importadas desde el módulo math (este
módulo contiene muchísimas funciones de este tipo). La sintaxis que se utiliza para
importar funciones es la siguiente:

from nombre_modulo import nombre_funcion

Para tener accesibles cualquiera de las funciones que contiene el módulo, basta con
sustituir por un asterisco (*) el nombre_función. Por ejemplo, para acceder a todas las
funciones del módulo math habría que escribir la siguiente instrucción: from math
import *

Una función es un bloque de código el cual puede ser ejecutado cuando y cuantas veces
deseemos. Ya hemos utilizado funciones predefinidas, ahora aprenderemos a crear
nuestras propias funciones.

1.1.

DEFINICIÓN Y USO DE SUBPROGRAMAS.

Las subrutinas en Python tienen el nombre de funciones, se tratan de un bloque de
código que realiza una tarea específica y puede ser llamado las veces que sean
necesarias.

Los subprogramas, son de gran ayuda cuando necesitamos que un programa ejecute una
operación varias veces. Deben ser definidas en el bloque declarativo, es decir, antes de
las instrucciones que componen el cuerpo principal del programa.

Sintaxis para definir funciónes en Python:

def nombre_función (lista_de_parámetros):

sentencias

2



En una definición de función la palabra reservada del encabezado es def seguida
del nombre del subprograma (identificador) y entre paréntesis la lista de
parámetros. La lista de parámetros puede estar vacía o contener varios
parámetros. En cualquier caso los paréntesis son necesarios, para finalizae
añadiremos dos puntos.

La estructura es la siguiente:

• Encabezado Empieza con la palabra reservada def y acaba con dos

puntos (:).

• Cuerpo del subprograma Sentencias de Python con una misma
sangría (4 espacios es el estándar) respecto al margen izquierdo, donde
comienza el encabezado.

Los nombres de la subrutinas deben resumir la tarea que realizan, estos
nombres son identificadores por tanto deben seguir una serie de reglas y no
deben coincidir con ninguna palabra reservada del lenguaje. Es muy importante
la indentación, (ya que en Python no existen llaves para separar el código que
pertenece a una función) utilizaremos el sangrado de 4 espacios respecto al
margen izquierdo. El final de la función se notará con la palabra return
seguida del valor que devuelve, aunque no es obligatorio ya que depende
del tipo de subrutina.

Tipos de subrutinas:

1. Funciones Devuelven un solo valor. Al final de la función nos
encontraremos con la palabra reservada return seguida del valor que
devuelve.

2. Procedimientos Pueden devolver ninguno ó más de un valor

mediante return.

Para utilizar cualquier función que hayamos definido previamente tenemos que
llamar, invocar, o activar la función. Las llamadas a función, se realizan en las
instrucciones que forman parte del cuerpo principal del programa. Contienen el
nombre de la función seguido de la lista de parámetros entre paréntesis, en caso
de no tener lista de parámetros los paréntesis siguien siendo necesarios, si la
función devuelve algún ó algunos valores mediante return, esos valores habrá
que asignárselos a variables del mismo tipo.



1.2.

FLUJO DE EJECUCIÓN.

Para poder entender un programa correctamente hay que saber el orden en el
que las sentencias se ejecutan, este orden de ejecución se denomina flujo de
ejecución.

3


Tema 2: Funciones



La ejecución comienza con la primera sentencia del cuerpo principal del
programa. Las sentencias se ejecutan una a una.

Las definiciones de las funciones no alteran el flujo de ejecución del programa,
pero las llamadas a función sí. En este caso, cuando llamamos a una función
estamos haciendo un desvío en el flujo de ejecución. En vez de continuar con la
siguiente sentencia, el flujo salta a la primera línea de la función llamada, la
ejecuta de arriba a abajo, y cuando acaba vuelve a la línea donde se encontraba
previamente.

Se puede definir una función dentro de otra. En este caso la definición interna
no se ejecuta hasta que la función externa no sea llamada. También podemos
llamar a una función dentro de otra. En este caso tendremos que distinguir entre
los diferentes tipos de variables que existen dependiendo de dónde se le asigne
el valor y dónde se utilicen.



VARIABLES.

1.3.

La principal ventaja de las funciones es que podemos reutilizar el código. Pero
tenemos que tener cuidado con el nombre de las variables que utilizamos, ya que si
utilizamos una función que contiene una variable auxiliar con el mismo nombre que
una variable que ya utilicemos en el programa principal, los cambios que se
produzcan en la variable dentro de la función podrían afectar de manera imprevista
al programa principal. Por tanto, hay que saber diferenciar los tipos de variables
según el lugar que ocupan en el programa para no cometer errores.

Se dispone de 3 tipos de variables:


• Variables locales Son las variables sólo existen dentro de la función.
• Variables globales Son las variables que forman parte del programa

principal.

• Variables no locales Son las variables que pertenecen a un ámbito

superior al de la subrutina pero que no son globales.


En los programas que solamente contienen funciones que no contienen a su vez
funciones, todas las variables libres son variables globales. En cambio, si el
programa contiene una función que a su vez contiene otra función, las variables de
las subrutinas pueden ser globales (si pertenecen al programa principal) o no
locales (si pertenecen a la función).

Para identificar las variables libres existen las palabras reservadas global y
nonlocal. Las variables locales no necesitan identificación.

A continuación unos ejemplos de cada tipo de variable:



4

• Variables locales:


# Archivo: ejemplo1.py
# Autor: XXXXX XXXXXXX (nombre y apellidos)
# Fecha: DD/MM/AAAA
# Descripción: Variables locales.

# Definición de función
def subrutina():
a = 2
print(a)


# Programa principal
a = 5
subrutina()
print(a)



Este programa contiene una función y dos valores distintos para la variable “a” dentro
de la función vale 2 y fuera vale 5. El flujo de ejecución es el siguiente:

1) a = 5. En el programa principal.
2) Llamo a la función subrutina.
3) a = 2. Dentro de la función.
4) Imprimo el valor de 2 (a = 2). Variable local.
5) Vuelvo al programa principal y ejecuto la ultima instrucción que imprime el
valor de 5 (a = 5). Valor de la variable global diferente a la local definida en la
función

6) Fin del programa.



# Archivo: ejemplo2.py
# Autor: XXXXX XXXXXXX (nombre y apellidos)
# Fecha: DD/MM/AAAA
# Descripción: Variable local no declarada ni fuera ni
dentro de la función, error.

# Definición de función
def subrutina():
a = 2
print(a)


# Programa principal
subrutina()
print(a)



Este programa contiene una función en la que se asigna un valor a la variable “a. El
problema es que no se la ha asignado ningún valor en el programa principal, por tanto

5


Tema 2: Funciones


no funciona, ya que la variable a es local y su valor se destruye al acabar la función.
Además el interprete busca en primer lugar el valor de la variable global a y como no
esta definida y no puede imprimir ningún valor y devuelve un error.


# Archivo: ejemplo3.py
# Autor: XXXXX XXXXXXX (nombre y apellidos)
# Fecha: DD/MM/AAAA
# Descripción: Variable local que se le asignan dos valores
fuera y dentro de la función por tanto da error.

# Definición de función
def subrutina():
print(a)
a = 2
print(a)
return

# Programa principal
subrutina()
a = 5

print(a)



Este programa contiene una función y dos valores distintos para la variable “a” fuera de
la función vale 5 (variable global) y dentro de la función se ha definido otra variable que
aunque tiene el mismo nombre es diferente, su valor es 2. Este programa devuelve un
error porque la asignación a = 2 es posterior a la impresión del valor


• Variables libres (globales y no locales):


Si dentro de una función no se le asigna un valor a una variable, Python la considera
libre, y busca un valor en niveles superiores. Si le encuentra algún valor en un nivel
intermedio la variable es no local, y si se le encuentra un valor en el programa principal
la variable es global.

A continuación unos ejemplos de variables libres:


# Archivo: ejemplo4.py
# Autor: XXXXX XXXXXXX (nombre y apellidos)
# Fecha: DD/MM/AAAA
# Descripción: Variable global sin declarar.

# Definición de función
def subrutina():
  • Links de descarga
http://lwp-l.com/pdf15317

Comentarios de: Fundamentos de la programación - Tema 2 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad