Funciones incorporadas y ayuda

Última actualización: 2025-07-01 | Mejora esta página

Hoja de ruta

Preguntas

  • ¿Cómo puedo utilizar las funciones incorporadas?
  • ¿Cómo puedo averiguar lo que hacen?
  • ¿Qué tipo de errores pueden ocurrir en los programas?

Objetivos

  • Explica el propósito de las funciones.
  • Llama correctamente a las funciones incorporadas de Python.
  • Anida correctamente las llamadas a funciones incorporadas.
  • Utilice la ayuda para mostrar la documentación de las funciones incorporadas.
  • Describir correctamente las situaciones en las que se producen SyntaxError y NameError.

Usa comentarios para añadir documentación a los programas.


PYTHON

# This sentence isn't executed by Python.
adjustment = 0.5   # Neither is this - anything after '#' is ignored.

Una función puede tomar cero o más argumentos.


  • Ya hemos visto algunas funciones — ahora echemos un vistazo más de cerca.
  • Un argumento es un valor que se pasa a una función.
  • len toma exactamente uno.
  • int, str, y float crean un nuevo valor a partir de uno existente.
  • print toma cero o más.
  • print sin argumentos imprime una línea en blanco.
    • Siempre se deben usar paréntesis, incluso si están vacíos, para que Python sepa que se está llamando a una función.

PYTHON

print('before')
print()
print('after')

SALIDA

before

after

Cada función devuelve algo.


  • Cada llamada a una función produce algún resultado.
  • Si la función no tiene un resultado útil que devolver, normalmente devuelve el valor especial None.None es un objeto de Python que se sustituye cuando no hay ningún valor.

PYTHON

result = print('example')
print('result of print is', result)

SALIDA

example
result of print is None

Las funciones incorporadas más utilizadas son max, min, y round.


  • Utilice max para encontrar el mayor valor de uno o más valores.
  • Usa min para encontrar el más pequeño.
  • Ambos funcionan tanto con cadenas de caracteres como con números.
    • “Mayor” y “menor” utilizan (0-9, A-Z, a-z) para comparar letras.

PYTHON

print(max(1, 2, 3))
print(min('a', 'A', '0'))

SALIDA

3
0

Puede que las funciones sólo funcionen para ciertos (combinaciones de) argumentos.


  • max y min deben tener al menos un argumento.
    • “Mayor del conjunto vacío” es una pregunta sin sentido.
  • Y se les debe dar cosas que puedan ser comparadas significativamente.

PYTHON

print(max(1, 'a'))

ERROR

TypeError                                 Traceback (most recent call last)
<ipython-input-52-3f049acf3762> in <module>
----> 1 print(max(1, 'a'))

TypeError: '>' not supported between instances of 'str' and 'int'

Las funciones pueden tener valores por defecto para algunos argumentos.


  • round redondeará un número de coma flotante.
  • Por defecto, redondea a cero decimales.

PYTHON

round(3.712)

SALIDA

4
  • Podemos especificar el número de decimales que queremos.

PYTHON

round(3.712, 1)

SALIDA

3.7

Las funciones adjuntas a objetos se llaman métodos


  • Las funciones toman otra forma que será común en los episodios de pandas.
  • Los métodos tienen paréntesis como las funciones, pero van después de la variable.
  • Algunos métodos se utilizan para operaciones internas de Python, y están marcados con doble subrayado.

PYTHON

my_string = 'Hello world!'  # creación de un string 

print(len(my_string))       # la función len toma un string y devuelve la longitud del string

print(my_string.swapcase()) # llamada al método swapcase de mi objeto my_string

print(my_string.__len__())  # llamando al método interno __len__ en el objeto my_string, usado por len(my_string)

SALIDA

12
hELLO WORLD!
12
  • Incluso puede verlos encadenados. Funcionan de izquierda a derecha.

PYTHON

print(my_string.isupper())          # no todas las letras son mayúsculas
print(my_string.upper())            # esto lo convierte todo a mayúsculas

print(my_string.upper().isupper())  # ahora son todo mayúsculas

SALIDA

False
HELLO WORLD
True

Use la función incorporada help para obtener ayuda de una función.


  • Cada función incorporada tiene documentación en línea.

PYTHON

help(round)

SALIDA

Help on built-in function round in module builtins:

round(number, ndigits=None)
    Round a number to a given precision in decimal digits.

    The return value is an integer if ndigits is omitted or None.  Otherwise
    the return value has the same type as the number.  ndigits may be negative.

El Jupyter Notebook tiene dos formas de obtener ayuda.


  • Opción 1: Coloque el cursor cerca del lugar donde se invoca la función en una celda (es decir, el nombre de la función o sus parámetros),
    • Mantén pulsado Shift y pulsa Tab.
    • Haga esto varias veces para ampliar la información devuelta.
  • Opción 2: Escribe el nombre de la función en una celda con un signo de interrogación detrás. A continuación, ejecute la celda.

Python informa de un error de sintaxis cuando no puede entender el código fuente de un programa.


  • Ni siquiera intentará ejecutar el programa si no puede ser analizado.

PYTHON

# Olvidamos cerrar la comilla
name = 'Feng

ERROR

  File "<ipython-input-56-f42768451d55>", line 2
    name = 'Feng
                ^
SyntaxError: EOL while scanning string literal

PYTHON

# An extra '=' in the assignment.
age = = 52

ERROR

  File "<ipython-input-57-ccc3df3cf902>", line 2
    age = = 52
          ^
SyntaxError: invalid syntax
  • Fíjate mejor en el mensaje de error:

PYTHON

print("hello world"

ERROR

  File "<ipython-input-6-d1cc229bf815>", line 1
    print ("hello world"
                        ^
SyntaxError: unexpected EOF while parsing
  • El mensaje indica un problema en la primera línea de la entrada (“línea 1”).
    • En este caso la sección “ipython-input” del nombre del archivo nos indica que estamos trabajando con entrada en IPython, el intérprete de Python utilizado por el Jupyter Notebook.
  • La parte -6- del nombre del archivo indica que el error se produjo en la celda 6 de nuestro Cuaderno.
  • A continuación se muestra la línea de código problemática, indicando el problema con un puntero ^.

Python informa de un error de ejecución cuando algo va mal mientras se ejecuta un programa. {#error en tiempo de ejecución}


PYTHON

age = 53
remaining = 100 - aege # mis-spelled 'age'

ERROR

NameError                                 Traceback (most recent call last)
<ipython-input-59-1214fb6c55fc> in <module>
      1 age = 53
----> 2 remaining = 100 - aege # mis-spelled 'age'

NameError: name 'aege' is not defined
  • Corrige los errores de sintaxis leyendo el código fuente y los errores de ejecución rastreando la ejecución del programa.

Qué ocurre cuando

  1. Explica en términos sencillos el orden de las operaciones en el siguiente programa: cuándo se produce la suma, cuándo la resta, cuándo se llama a cada función, etc.
  2. ¿Cuál es el valor final de radiance?

PYTHON

radiance = 1.0
radiance = max(2.1, 2.0 + min(radiance, 1.1 * radiance - 0.5))
  1. Orden de las operaciones:
  2. 1.1 * radiance = 1.1
  3. 1.1 - 0.5 = 0.6
  4. min(radiance, 0.6) = 0.6
  5. 2.0 + 0.6 = 2.6
  6. max(2.1, 2.6) = 2.6
  7. Al final, radiance = 2.6

Encuentra la Diferencia

  1. Predice lo que imprimirá cada una de las sentencias print del siguiente programa.
  2. ¿Se ejecuta max(len(rich), poor) o produce un mensaje de error? Si se ejecuta, ¿tiene algún sentido su resultado?

PYTHON

easy_string = "abc"
print(max(easy_string))
rich = "gold"
poor = "tin"
print(max(rich, poor))
print(max(len(rich), len(poor)))

PYTHON

print(max(easy_string))

SALIDA

c

PYTHON

print(max(rich, poor))

SALIDA

tin

PYTHON

print(max(len(rich), len(poor)))

SALIDA

4

max(len(rich), poor) lanza un TypeError. Esto se convierte en max(4, 'tin') y como discutimos anteriormente una cadena y un entero no pueden ser comparados significativamente.

ERROR

TypeError                                 Traceback (most recent call last)
<ipython-input-65-bc82ad05177a> in <module>
----> 1 max(len(rich), poor)

TypeError: '>' not supported between instances of 'str' and 'int'

¿Por qué no?

¿Por qué max y min no devuelven None cuando se llaman sin argumentos?

max y min devuelven TypeErrors en este caso porque no se suministró el número correcto de parámetros. Si sólo devolviera None, el error sería mucho más difícil de rastrear, ya que probablemente se almacenaría en una variable y se utilizaría más adelante en el programa, sólo para lanzar probablemente un error en tiempo de ejecución.

Último carácter de una cadena

Si Python empieza a contar desde cero, y len devuelve el número de caracteres de una cadena, ¿qué expresión índice obtendrá el último carácter de la cadena name? (Nota: veremos una forma más sencilla de hacer esto en un episodio posterior)

name[len(name) - 1]

¡Explora la documentación de Python!

La documentación oficial de Python es posiblemente la fuente de información más completa sobre el lenguaje. Está disponible en diferentes idiomas y contiene muchos recursos útiles. La página de funciones incorporadas contiene un catálogo de todas estas funciones, incluyendo las que hemos cubierto en esta lección. Algunas de ellas son más avanzadas e innecesarias por el momento, pero otras son muy sencillas y útiles.

Puntos Clave

  • Utiliza comentarios para añadir documentación a los programas.
  • Una función puede tomar cero o más argumentos.
  • Las funciones incorporadas más utilizadas son max, min y round.
  • Puede que las funciones sólo funcionen para ciertos (combinaciones de) argumentos.
  • Las funciones pueden tener valores por defecto para algunos argumentos.
  • Utilice la función incorporada help para obtener ayuda sobre una función.
  • El Jupyter Notebook tiene dos formas de obtener ayuda.
  • Toda función devuelve algo.
  • Python informa de un error de sintaxis cuando no puede entender el código fuente de un programa.
  • Python informa de un error de ejecución cuando algo va mal mientras se ejecuta un programa.
  • Corrige los errores de sintaxis leyendo el código fuente, y los errores de ejecución rastreando la ejecución del programa.