See discussions, stats, and author profiles for this publication at: https://www.researchgate.
net/publication/344333481
Python para principiantes, Edición 2020
Book · September 2020
CITATIONS
1 author:
Eugenia Bahit
Hackers & Developers Press
21 PUBLICATIONS 0 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
Python for beginners View project
Publicación libro Onna Bugeisha View project
All content following this page was uploaded by Eugenia Bahit on 21 September 2020.
The user has requested enhancement of the downloaded file.
PYTHON PARA
PRINCIPIANTES
Edición 2020
EUGENIA BAHIT
Informática Teórica
The Oxford Research Centre
London, United Kingdom
2020
PYTHON PARA PRINCIPIANTES EDICIÓN 2020
© 2020 EUGENIA BAHIT & OXFORD RESEARCH CENTRE LTD
Excepto donde se indique lo contrario, el contenido de este libro está
distribuido bajo una licencia Creative Commons Atribución No
Comercial Sin Derivadas 4.0 Internacional (CC BY-NC-ND 4.0). La
copia y distribución sin fines de lucro se encuentran permitidas. Texto
completo de la licencia: https://creativecommons.org/licenses/by-nc-
nd/4.0/deed.es
ISBN: 978-1-8381901-0-1
e-ISBN: 978-1-8381901-1-8
Publicado por Oxford RC Publisher
71-75 Shelton Street, Covent Garden, London. United Kingdom, WC2H 9JQ
www.oxfordresearchcentre.co.uk
Editora: Eugenia Bahit
Diseño interior: Amanda Kraf
Diseño de portada: Julia Davies
Impreso en Reino Unido y Estados Unidos por Lulu Press, Inc.
A quienes construyen sus sueños con
pasión y se esfuerzan para alcanzar
sus metas.
Funciones 27
Funciones definidas por el usuario
En Python la definición de funciones se realiza mediante la
instrucción def más un nombre de función descriptivo -para el
cuál, aplican las mismas reglas que para el nombre de las variables-
seguido de paréntesis de apertura y cierre.
Como toda estructura de control en Python, la definición de la
función finaliza con dos puntos (:) y el algoritmo que la compone,
irá identado con 4 espacios en blanco:
def mi_funcion():
# aquí el algoritmo identado
Una función no es ejecutada hasta tanto no sea invocada. Para
invocar una función, simplemente se la llama por su nombre:
def mi_funcion():
print("Hola Mundo")
funcion()
Las funciones pueden retornar datos:
def funcion():
return "Hola Mundo"
Y el valor de retorno de una función puede almacenarse en una
variable:
frase = funcion()
DISPONIBLE EN PDF (SIN DRM)
Imprimirse:
Y EN PAPEL. ENVÍO GRATIS.
print(funcion())
Consigue la versión completa en
O ignorarse:
www.oxfordresearchcentre.co.uk
28 Eugenia Bahit: Python para Principiantes. The Oxford Research Centre, 2020.
funcion()
Sobre los parámetros
Un parámetro es un valor que la función espera recibir cuando sea
llamada (invocada). Una función puede esperar uno o más
parámetros (que son definidos entre los paréntesis y separados
por una coma) o ninguno.
def mi_funcion(param1, param2):
pass
La instrucción pass se utiliza para completar una estructura de
control que no realiza ninguna acción.
Los parámetros que una función espera, serán utilizados por ésta,
dentro de su algoritmo, a modo de variables de ámbito local. Es
decir, que los parámetros serán variables locales que solo son
accesibles dentro de la función:
def calcular_neto(bruto, alicuota):
iva = bruto * float(alicuota) / 100
neto = bruto + iva
return neto
Si se quisiera acceder a esas variables locales fuera del ámbito de
la función, se obtendría un error:
def calcular_neto(bruto, alicuota):
iva = bruto * float(alicuota) / 100
neto = bruto + iva
return neto
DISPONIBLE
# Retornará EN
print(bruto) PDF (SIN DRM)
el error:
Y EN PAPEL. ENVÍO GRATIS.
# NameError: name 'bruto' is not defined
Consigue la versión completa en
www.oxfordresearchcentre.co.uk
Funciones 29
Al llamar a una función, se le deben pasar sus argumentos en
el mismo orden en el que los espera. Para evitar pasarlos en el
mismo orden, pueden utilizarse claves como argumentos
(definidos más abajo).
Parámetros por omisión
Es posible asignar valores por defecto a los parámetros de las
funciones. Esto significa, que la función podrá ser llamada con
menos argumentos de los que ha definido:
def calcular_neto(bruto, alicuota=21):
iva = bruto * float(alicuota) / 100
neto = bruto + iva
return neto
calcular_neto(100) # Retorna 121.0
calcular_neto(100, 10.5) # Retorna 110.5
PEP 8: Funciones
A la definición de una función la deben anteceder dos líneas en
blanco.
Al asignar parámetros por omisión, no debe dejarse espacios
en blanco ni antes ni después del signo =.
Los parámetros por omisión deben ser definidos a continuación de
los parámetros obligatorios.
Claves como argumentos
DISPONIBLE EN PDF (SIN DRM)
Las claves como argumentos (keword arguments) son una
Y EN PAPEL. ENVÍO GRATIS.
característica de Python que no todos los lenguajes poseen.
Python permite llamar a una función pasándole los argumentos
Consigue la versión completa en
esperados como pares de claves=valor:
www.oxfordresearchcentre.co.uk
30 Eugenia Bahit: Python para Principiantes. The Oxford Research Centre, 2020.
def funcion(obligatorio1, opcional='valor por defecto', opcional_dos=15):
pass
funcion('valor obligatorio', opcional_dos=43)
Parámetros arbitrarios
Es posible que una función espere recibir un número arbitrario
-desconocido- de argumentos. Estos argumentos, llegarán a la
función en forma de tupla.
Para definir argumentos arbitrarios en una función, se antecede un
asterisco (*) al nombre del parámetro :
def funcion(obligatorio, *arbitrarios):
pass
funcion('fijo', 1, 2, 3, 4, 5)
funcion('fijo', 1, 2)
funcion('fijo', 1, 2, 3, 4, 5, 6, 7)
funcion('fijo')
Cuando una función espera recibir parámetros obligatorios y
arbitrarios, los arbitrarios siempre deben suceder a los
obligatorios.
Es posible también, obtener parámetros arbitrarios como pares de
clave=valor. En estos casos, al nombre del parámetro deben
precederlo dos asteriscos (**):
def funcion(obligatorio, **arbitrarios):
pass
DISPONIBLE EN PDF (SIN DRM)
funcion('fijo', a=1, b=2, c=3)
Y EN PAPEL. ENVÍO GRATIS.
Consigue la versión completa en
www.oxfordresearchcentre.co.uk
Funciones 31
El recorrido de los parámetros arbitrarios es como el recorrido
de cualquier tupla (para parámetros arbitrarios sin clave) o de
cualquier diccionario (para los parámetros arbitrarios con clave):
def funcion(*arbitrarios):
for argumento in arbitrarios:
pass
def funcion(**arbitrarios):
for argumento in arbitrarios:
valor = arbitrarios[argumento]
Desempaquetado de parámetros
Al invocar a una función se le pueden pasar los parámetros que
espera dentro de una lista o de un diccionario (donde los nombres
de las claves equivalen al nombre de los argumentos). A este
procedimiento se lo conoce como desempaquetado de
parámetros:
def funcion(uno, dos, tres):
pass
# DESEMPAQUETADO DE LISTAS
parametros = [1, 2, 3]
calcular(*parametros)
# DESEMPAQUETADO DE DICCIONARIOS
parametros = dict(uno=1, dos=2, tres=3)
calcular(**parametros)
parametros = {'uno': 1, 'dos': 2, 'tres': 3}
calcular(**parametros)
DISPONIBLE EN PDF (SIN DRM)
Llamadas recursivas y de retorno
Y EN PAPEL. ENVÍO GRATIS.
Una función puede llamar a otra función que retorne un valor.
Esto se conoce como llamada de retorno:
Consigue la versión completa en
www.oxfordresearchcentre.co.uk
32 Eugenia Bahit: Python para Principiantes. The Oxford Research Centre, 2020.
def retornar(algo):
return str(algo)
def llamar():
algo = retornar()
La llamada interna a otra función puede almacenarse, retornarse o
ignorarse.
def almacenar():
algo = retornar()
def volver_a_retornar():
return retornar()
def ignorar():
retornar()
Cuando la llama que se hace es a la misma función que se llama,
se conoce como llamada recursiva.
def get_nombre():
nombre = raw_input("Nombre: ")
if not nombre:
get_nombre()
Sobre la finalidad de las funciones
Una función puede tener cualquier tipo de algoritmo y cualquier
cantidad de instrucciones. Sin embargo, una buena práctica
indica que la finalidad de una función, debe ser realizar una
DISPONIBLE EN PDF (SIN DRM)
única acción.
Y EN PAPEL. ENVÍO GRATIS.
Consigue la versión completa en
www.oxfordresearchcentre.co.uk
View publication stats