Você está na página 1de 13

Funciones

• Subprogramas definidos por el usuario


• Subprogrmas.
– Un subprograma es un fragmento de código que se comporta de
manera independiente dentro de un programa.
– Los subprogramas pueden ser invocados varias veces desde otras
partes del programa.
– Se comunican mediante el pasaje de parámetros.
– Cada subprograma tiene su propio espacio de nombres
(identificadores locales)
– Algunos identificadores pueden ser compartidos entre subprogramas
y el programa principal (identificadores globales).
– Los subprogramas son una herramienta de modularización.
Ejemplo de Función
Sintaxis de la definición de
funciones
• Una definición de función tiene esta forma
general:
– def nombre ( argumentos ):bloque de
instrucciones
• nombre es un identificador
• argumentos es una lista de identificadores
• bloque debería contener una instrucción
return
La instrucción return
• Tiene esta forma:
– return expresión
• sólo puede utilizarse en funciones
• termina la ejecución de una función
• retorna el valor de la expresión
• si una función no tiene return el valor que
retorna es None
Ejemplos
Procedimientos de salida
Procedimiento de Entrada
Argumentos Nominales y Efectivos
• Los argumentos nominales son los que
aparecen en la definición de la función
(cabezal def). Siempre son identificadores.
• Los argumentos efectivos son los que se
asocian cuando se invoca la función. Siempre
son expresiones
Argumentos por omisión
Argumentos por clave
Programa en Python
def fSuma():
#funcion que imprime el menu submenu("SUMA")
#la funcion no recive ningun parametro num1 = float(input("\tIngrese un numero: "))
def menu(): num2 = float(input("\tIngrese un numero: "))
print("\n" * 50) #varios cambios de lineas con el fin de limpiar la pantalla
print("\t\t*** MENU ***\n") respuesta = num1 + num2
print("\t1. Suma")
print("\t2. Resta") #str(num) : es una funcion que convierte el numero num en texto
print("\t3. Multiplicacion") print("\n\t-> El resultado de " + str(num1) + " + " + str(num2) + "= ", respuesta)
print("\t4. Division") print("\t Presione cualquier tecla para continuar ...")
print("\t5. Resultado") input()
print("\t0. Salir") return respuesta

def opcion(min, max, salida): def fResta():


opcion= -1 submenu("RESTA")
num1 = float(input("\tIngrese un numero: "))
menu() #dibuja el menu num2 = float(input("\tIngrese un numero: "))
opcion= int(input("\n\t-> Opcion?: ")) #recibe una opcion del usuario
while (opcion < min) or (opcion > max): respuesta = num1 - num2
print("\n\t>>> Error. Opcion invalida.")
print("\t Presione una tecla para continuar ...") #str(num) : es una funcion que convierte el numero num en texto
input() print("\n\t-> El resultado de " + str(num1) + " - " + str(num2) + "= ", respuesta)
menu() #dibuja el menu print("\t Presione cualquier tecla para continuar ...")
opcion= int(input("\n\t-> Opcion?: ")) input()
return opción return respuesta

def submenu(titulo): def fMultiplicacion():


print("\n" * 50) #varios cambios de lineas con el fin de limpiar la pantalla submenu("MULTIPLICACION")
#texto.upper() : combierte todo el texto en MAYUSCULAS num1 = float(input("\tIngrese un numero: "))
print("\t\t*** " + titulo.upper() + " ***\n") num2 = float(input("\tIngrese un numero: "))
respuesta = num1 * num2
print("\n\t-> El resultado de " + str(num1) + " * " + str(num2) + "= ", respuesta)
print("\t Presione cualquier tecla para continuar ...")
input()
return respuesta

11
Programa en Python
#*************************
def fDivision(): #*** PROGRAMA PRINCIAL ***
submenu("division") #no importa enviarlo en minuscula submenu la convierte #*************************
num1 = float(input("\tIngrese un dividendo: "))
num2 = float(input("\tIngrese un divisor: ")) resultado = 0
op= -1
if num2 != 0:
respuesta = num1 / num2 while op != 0:
print("\n\t-> El resultado de " + str(num1) + " / " + op = opcion(0, 5, 0) #llama a la funcion opcion
str(num2) + "= ", respuesta)
else: if op == 1:
#Division entre cero ## funcion Suma
print("\n\t>>> Error. Division entre cero.") resultado = fSuma()
respuesta= "Error. Division entre cero."
elif op == 2:
print("\t Presione cualquier tecla para continuar ...") ## funcion Resta
input() resultado = fResta()
return respuesta
elif op == 3:
def fResultado(r): ## funcion Multiplicacion
submenu("resultado resultado = fMultiplicacion()
print("\n\t-> El ultimo resultado calculado fue: " , r)
print("\t Presione cualquier tecla para continuar ...") elif op == 4:
input() ## funcion Division
resultado = fDivision()
def fSalida(): elif op == 5:
submenu("Salida") #no importa enviarlo en minuscula submenu la convierte ## funcion Resultado
fResultado(resultado)
print("\n\t-> Gracias por usarnos. Adios. ") else:
print("\t Presione cualquier tecla para terminar ...") ## funcion Salida
input() resultado = fSalida()
print("\n" * 50) #varios cambios de lineas con el fin de limpiar la pantalla

12