La versión más actualizada de este documento está disponible en: rip3.arielortiz.info
1. Básicos
Tema | Descripción | Ejemplos |
---|---|---|
Comentarios |
Comienzan con un signo de numeral ( |
|
Identificadores |
Un identificador es un nombre que se utiliza para identificar una variable, función o módulo. Un identificador comienza con una letra de la |
|
Palabras clave |
Los siguientes nombres se utilizan como palabras reservadas o palabras clave de Python y no se pueden usar como identificadores comunes. False await else import pass None break except in raise True class finally is return and continue for lambda try as def from nonlocal while assert del global not with async elif if or yield |
|
Variables |
Una variable es una localidad de memoria en la que se puede almacenar un valor. Toda variable debe tener un nombre, el cual debe ser un identificador. Las variables se crean en el momento en que se les asigna un valor. |
|
Bloques e indentación |
Un grupo de sentencias relacionadas (por ejemplo, las sentencias correspondientes a un \(\texttt{if}\) o a un \(\texttt{else}\)) conforman un bloque y deben estar indentados al mismo nivel. La indentación comienza un bloque y su ausencia lo termina. Un bloque puede estar anidado dentro de otro bloque. Se recomienda usar cuatro espacios en cada nivel de indentación. |
|
Referencia completa: Comments, Identifiers and keywords, Indentation. |
2. Obteniendo ayuda
Función | Descripción | Ejemplos | ||
---|---|---|---|---|
\(\texttt{help()}\) |
Función que invoca al sistema de ayuda que está diseñada para uso interactivo. Si se omite \(x\), el sistema de ayuda interactiva se inicia en la consola del intérprete. Si el argumento es una cadena, se busca la cadena como si fuera el nombre de un módulo, función, tipo, método, palabra clave o tema de documentación, y se imprime la página correspondiente de ayuda en la consola. Si el argumento es cualquier otro tipo de objeto, se genera una página de ayuda para ese objeto en particular.
|
|
||
\(\texttt{dir}(x)\) |
Función que devuelve una lista de cadenas que corresponden a los nombres de los atributos con los que cuenta el objeto \(x\). |
|
3. Tipos de datos
Tipo | Descripción | Ejemplos | ||
---|---|---|---|---|
Número entero. Puede ser positivo o negativo. El rango de estos valores es ilimitado, sujeto a la memoria disponible de la computadora. Ver también la sección de números. |
|
|||
Número real o de punto flotante. Usualmente contiene un punto decimal y puede ser positivo o negativo. Alternativamente, puede expresarse usando notación científica; por ejemplo, \(1.5 \times 10^{-3}\) se escribe así: Rango aproximado (con 15 dígitos decimales de precisión): \[ \pm 2.225 \times 10^{-308} \cdots \pm 1.798 \times 10^{+308} \] Ver también la sección de números. |
|
|||
Valor lógico o booleano. Tiene dos posibles valores: verdadero ( Ver también la sección de booleanos. |
|
|||
Cadena de caracteres. Secuencia de cero o más caracteres entre comillas, ya sean simples ( Es posible tener cadenas multilíneas usando triples comillas ( Ver también la sección de cadenas. |
|
|||
Lista. Secuencia de cero o más valores separados por comas y delimitados por corchetes ( Ver también la sección de listas. |
|
|||
Tupla. Secuencia de cero o más valores separados por comas y delimitados por paréntesis. Una tupla es inmutable. Los valores contenidos en una tupla pueden ser todos del mismo tipo o de tipos diferentes. Ver también la sección de tuplas. |
|
|||
Diccionario. Colección que permite asociar (o mapear) claves a valores. El diccionario se delimita usando los símbolos de llaves ( Ver también la sección de diccionarios. |
|
|||
|
Valor nulo o inexistente. Representa la ausencia de un valor útil. Por omisión, las funciones devuelven
|
|
Referencia completa: The standard type hierarchy. |
4. Operadores
Un operador es un símbolo que realiza una operación en uno o más operandos. Un operando es una variable o un valor con el que realizamos la operación.
Por ejemplo, el símbolo +
(más) es un operador que pemite realizar sumas, mientras que el símbolo *
(asterisco) es un operador que permite realizar multiplicaciones.
Ejemplos:
>>> 1 + 1
2
>>> x = 5
>>> x * 2
10
4.1. Precedencia
Si una expresión contiene múltiples operadores, la precedencia determina el orden en el que se deben evaluar. Por ejemplo:
>>> 1 + 2 * 3
7
La expresión anterior da como resultado 7 en lugar de 9 debido a que la multiplicación tiene mayor precedencia (se realiza antes) que la suma. En la sección de lista de operadores se puede consultar la precedencia de todos los operadores descritos en esta referencia.
Sin embargo, es posible usar paréntesis para obligar a que una expresión se evalúe en un orden diferente. A partir del ejemplo anterior, si deseamos que la suma se realice antes que la multiplicación debemos reescribirla así:
>>> (1 + 2) * 3
9
Si una expresión tiene múltiples operadores con la misma precedencia, entonces se evalúan en orden de izquierda a derecha (la única excepción es el operador de potenciación). Ejemplos:
>>> 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 (1)
55
>>> 1 / 2 / 3 / 4 / 5 (2)
0.008333333333333333
>>> 8 / 2 * (2 + 2) (3)
16.0
1 | En esta expresión primero se calcula \(1+2\), luego a ese resultado se le suma 3, y así sucesivamente hasta llegar al resultado final. Si las sumas se realizaran de derecha a izquierda el resultado sería el mismo, dado que la suma es asociativa, es decir “\((x + y) + z\)” produce el mismo resultado que “\(x + (y + z)\)”. |
2 | De manera similar, en esta expresión primero se calcula \(1 / 2\), luego a ese resultado se le divide entre 3, y así sucesivamente hasta llegar al resultado final. Si las divisiones se realizaran de derecha a izquierda el resultado sería otro (1.875 en esta caso) dado que, a diferencia de la suma, la división no es asociativa. |
3 | Lo que está en paréntesis se evalúa primero. Pero luego la división y la multiplicación están al mismo nivel y ambos operadores tienen la misma precedencia. Siguiendo la regla descrita, evaluamos de izquierda a derecha: primero se divide y luego se multiplica.
Dato curioso: a finales de julio de 2019 se viralizó en redes sociales el reto 8÷2(2+2) que polarizó a la gente con dos posibles respuestas: 1 y 16. Como se puede ver aquí, Python dice que el resultado es 16. |
4.2. Lista de operadores
La siguiente tabla resume todos los operadores de Python descritos en esta referencia así como su precedencia, que va de mayor a menor. Los operadores que se encuentran en el mismo renglón tienen la misma precedencia.
Operador | Nombre | |
---|---|---|
Mayor precedencia |
|
|
|
Indexación, rebanada, invocación de función, referencia a atributo. |
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Menor precedencia |
|
Referencia completa: Operator precedence. |
5. Sentencias
Sentencia | Descripción | Ejemplos |
---|---|---|
Sintaxis: \(\; \; \; \; \textit{var} \; \texttt{=} \; \textit{exp}\) Asigna a la variable \(\textit{var}\) el valor de la expresión \(\textit{exp}\). Se pueden asignar \(n\) valores diferentes a \(n\) variables (separadas por comas) al mismo tiempo, siempre y cuando exp sea una colección (cadena, lista, tupla, diccionario o rango) con \(n\) elementos. Se pueden asignar varias variables con el mismo valor usando la siguiente sintaxis: \(\; \; \; \; \textit{v}_1 \, \texttt{=} \, \textit{v}_2 \, \texttt{=} \, \textit{v}_3 \, \texttt{=} \, \ldots \, \texttt{=} \, \textit{exp}\) |
|
|
Sintaxis: \(\; \; \; \; \textit{var} \; \texttt{⊕=} \; \textit{exp}\) En donde \(\texttt{⊕}\) es alguno de los operadores Esta sentencia es básicamente equivalente a: \(\; \; \; \; \textit{var} \texttt{ = } \textit{var} \texttt{ ⊕ } (\textit{exp})\) |
|
|
Sintaxis 1: \(\; \; \; \; \texttt{import}\) módulo Realiza la importación de módulo. En lo sucesivo, todo elemento id contenido en módulo puede ser referido usando la notación: \(\; \; \; \; \)módulo . id Sintaxis 2: \(\; \; \; \; \texttt{from}\) módulo \(\texttt{import} \; \textit{id}, \ldots\) Realiza la importación individual de cada id contenida en módulo. En lo sucesivo, todo elemento id puede ser referido directamente por su nombre. |
|
|
Condicional if |
Sintaxis: \(\; \; \; \; \texttt{if} \; \textit{exp}_1\): Los corchetes \([ \, ]\) usados arriba indican que dicho elemento es opcional. Selecciona exactamente uno de los grupos de sentencias \(\textit{sents}_i\) mediante la evaluación de las expresiones \(\textit{exp}_i\) una por una hasta que se encuentra que una es verdadera; entonces ejecuta ese grupo de sentencias. Ninguna otra parte de la sentencia \(\texttt{if}\) se ejecuta o evalúa. Si todas las expresiones \(\textit{exp}_i\) son falsas, se ejecuta el grupo de sentencias correspondientes al \(\texttt{else}\), en caso de estar presente. |
|
Ciclo while |
Sintaxis: \(\; \; \; \; \texttt{while} \; \textit{exp}\): Evalúa la expresión \(\textit{exp}\). Si resulta verdadera ejecuta el grupo de sentencias \(\textit{sents}\). Posteriormente se repite el proceso una y otra vez mientras \(\textit{exp}\) sea verdadera. El ciclo termina cuando el resultado de \(\textit{exp}\) es falso. Es posible que el grupo de sentencias \(\textit{sents}\) nunca se ejecute si \(\textit{exp}\) resulta falsa desde el mero inicio del ciclo. Se puede usar una sentencia |
|
Sintaxis: \(\; \; \; \; \texttt{for} \; \textit{var} \; \texttt{in} \; s\): La variable \(\textit{var}\) toma el valor del primer elemento de \(s\), el cual debe ser objeto iterable (cadena, lista, tupla, diccionario, rango o archivo). Posteriormente ejecuta el grupo de sentencias \(\textit{sents}\). Esto se repite con los demás elementos sucesivamente, uno por uno, hasta agotar todos los elementos de \(s\). |
|
|
Sintaxis: \(\; \; \; \; \texttt{def} \; \textit{fun}(\textit{parm}_1, \textit{parm}_2, \ldots)\): Define una función llamada \(\textit{fun}\) con parámetros \(\textit{parm}_1, \textit{parm}_2, \ldots\) y un cuerpo conformado por el grupo de sentencias \(\textit{sents}\). Si se desea que la función devuelva un valor específico, este se puede indicar usando la sentencia Ver también la sentencia de invocación de función. |
|
|
Sintaxis: \(\; \; \; \; \textit{fun}(\textit{exp}_1, \textit{exp}_2, \ldots)\) Manda llamar a la función llamada \(fun\) con \(\textit{exp}_1, \textit{exp}_2, \ldots\) como argumentos. Ver también la sentencia de definición de función. |
|
|
Sintaxis: \(\; \; \; \; \texttt{with} \; \textit{exp} \; \texttt{as} \; \textit{var}, \ldots\): Se utiliza principalmente al momento de abrir y procesar archivos, pues se garantiza que estos quedan cerrados al concluir la sentencia. |
|
|
Sentencia nula |
Sintaxis: \(\; \; \; \; \texttt{pass}\) No hace cosa alguna cuando se ejecuta. Se puede usar cuando una sentencia es requerida sintácticamente pero no se necesita acción alguna en ese momento. |
|
Referencia completa: Simple statements, Compound statements. |
6. Conversiones y manejo de tipos
Función | Descripción | Ejemplos |
---|---|---|
\(\texttt{bool}(x)\) |
Devuelve |
|
Devuelve una cadena de caracteres cuyo punto de código de Unicode es \(x\). Es posible dibujar un carácter y obtener su punto de código en ShapeCatcher. Esta es la función inversa de |
|
|
Crea un nuevo diccionario. \(x\) debe ser una secuencia de parejas clave/valor o un diccionario. En este ultimo caso crea una copia superficial de \(x\). |
|
|
Devuelve \(x\) convertido a un flotante. \(x\) debe ser una cadena de caracteres o un valor numérico. Produce un error si no es posible realizar la conversión. |
|
|
\(\texttt{id}(x)\) |
Devuelve la “identidad” de \(x\). Este es un número entero que se garantiza que es único y constante para este objeto durante toda su vida útil. En algunas implementaciones de Python esta función devuelve efectivamente la dirección en memoria de \(x\). |
|
Devuelve \(x\) convertido a un entero. \(x\) debe ser una cadena de caracteres o un valor numérico. Se trunca la parte fraccionaria si \(x\) es flotante. Produce un error si no es posible realizar la conversión. |
|
|
\(\texttt{isinstance}(x, t)\) |
Devuelve |
|
Devuelve \(x\) convertida a una lista. \(x\) debe ser un objeto iterable (cadena, lista, tupla, diccionario o rango). |
|
|
Devuelve el punto de código de Unicode del carácter contenido en la cadena \(x\). Esta es la función inversa de |
|
|
Devuelve \(x\) convertido a una cadena de caracteres. |
|
|
Devuelve \(x\) convertida a una tupla. \(x\) debe ser un objeto iterable, tal como una colección (cadena, lista, tupla, diccionario o rango). |
|
|
\(\texttt{type}(x)\) |
Devuelve el tipo de dato de \(x\). |
|
Referencia completa: Built-in Functions. |
7. Comparaciones
Los operadores ==
, !=
, <
, <=
, >
y >=
se pueden usar como se usan convencionalmente en matemáticas. Así pues, por ejemplo, la expresión matemática:
\[ 0 < a \le b \le c < 100 \]
se puede escribir en Python así:
0 < a <= b <= c < 100
y es básicamente equivalente a:
0 < a and a <= b and b <= c and c < 100
con la única diferencia de que las subexpresiones (0
, a
, b
, c
y 10
) se evalúan a lo más una sola vez.
7.1. Operaciones de comparación
Operador | Descripción | Ejemplos |
---|---|---|
Idéntico. Determina si \(x\) es idéntico a (es exactamente el mismo objeto que) \(y\). Si la dirección en memoria del objeto \(x\) es la misma que la dirección de memoria del objeto \(y\), entonces se dice que \(x\) es idéntico a \(y\). |
|
|
No idéntico. Determina si \(x\) no es idéntico a (no es exactamente el mismo objeto que) \(y\). Si la dirección en memoria del objeto \(x\) no es la misma que la dirección de memoria del objeto \(y\), entonces se dice que \(x\) no es idéntico a \(y\). |
|
|
Igual. Determina si \(x\) es igual a (tiene el mismo valor que) \(y\). Los tipos numéricos se comparan según su valor numérico, por lo que el 0 entero es igual al 0.0 flotante. Se utiliza orden lexicográfico cuando se comparan colecciones. Si se están comparando dos flotantes, es preferible usar la función |
|
|
Diferente. Determina si \(x\) es diferente a (no tiene el mismo valor que) \(y\). Se utiliza orden lexicográfico cuando se comparan colecciones. Si se están comparando dos flotantes, es preferible usar la función |
|
|
Menor. Determina si \(x\) es menor a \(y\). Se utiliza orden lexicográfico cuando se comparan colecciones. |
|
|
Menor o igual. Determina si \(x\) es menor o igual a \(y\). Se utiliza orden lexicográfico cuando se comparan colecciones. |
|
|
Mayor. Determina si \(x\) es mayor a \(y\). Se utiliza orden lexicográfico cuando se comparan colecciones. |
|
|
Mayor o igual. Determina si \(x\) es mayor o igual a \(y\). Se utiliza orden lexicográfico cuando se comparan colecciones. |
|
Referencia completa: Comparisons. |
7.2. Orden lexicográfico
Una colección (cadena, lista, tupla, diccionario y rango) se puede comparar con otra colección siempre y cuando sea del mismo tipo. En este caso se usa orden lexicográfico, el cual consiste en comparar el primer elemento de la primera colección con el primer elemento de la segunda colección. Si difieren, esto determina el resultado de la comparación. Si son iguales, se compara el siguiente par de elementos, y así sucesivamente hasta agotar cualquiera de las colecciones. Si dos elementos que deben compararse son a su vez colecciones del mismo tipo, la comparación lexicográfica se realiza de forma recursiva. Si todos los elementos de las dos colecciones son iguales, entonces ambas colecciones se consideran iguales. Si una colección es un prefijo de la otra, la colección más corta es la que se considera menor.
El orden lexicográfico de las cadenas de caracteres utiliza el valor del punto de código de Unicode (así como lo devuelve la función ord
) para comparar caracteres individuales. Esto quiere decir, por ejemplo, que 'A' < 'B'
produce True
, ya que ord('A') < ord('B')
también produce True
.
Las cadenas, listas y tuplas pueden compararse usando los operadores ==
, !=
, <
, <=
, >
y >=
. Los diccionarios y rangos solo se pueden comparar con los operadores ==
y !=
.
Ejemplos:
>>> (1, 2, 3) < (1, 2, 4)
True
>>> [1, 2, 3] < [1, 2, 4]
True
>>> 'ABC' < 'Python'
True
>>> (1, 2, 3, 4) < (1, 2, 4)
True
>>> (1, 2) < (1, 2, -1)
True
>>> (1, 2, 3) == (1.0, 2.0, 3.0)
True
>>> (1, 2, ('aa', 'ab')) < (1, 2, ('abc', 'a'), 4)
True
>>> {'a': 1, 'b': 2, 'c': 3} == {'b': 2, 'c': 3, 'a':1}
True
>>> range(10) == range(0, 10, 1)
True
Referencia completa: Comparing Sequences and Other Types. |
8. Números
8.1. Opradores aritméticos
Operador | Descripción | Ejemplos | ||
---|---|---|---|---|
Más unario. Produce el valor de \(x\). Existe por simetría con el menos unario. |
|
|||
Menos unario. Calcula el valor negado de \(x\), es decir, \(x\) con el signo contrario. |
|
|||
Suma. Calcula la suma de \(x\) más \(y\). |
|
|||
Resta. Calcula la resta de \(x\) menos \(y\). |
|
|||
Multiplicación. Calcula el producto de \(x\) por \(y\). |
|
|||
División real. Calcula la división real o flotante de \(x\) entre \(y\). El resultado siempre es un número flotante. Produce un error cuando \(y\) es igual a cero. |
|
|||
División de piso. Calcula el cociente entero de la división de \(x\) entre \(y\). Produce un error cuando \(y\) es igual a cero. |
|
|||
Módulo o residuo. Calcula el residuo de la división de \(x\) entre \(y\). Produce un error cuando \(y\) es igual a cero. Si se tiene que: \[ c = x \; \texttt{//} \; y \\ r = x \; \texttt{%} \; y \] Entonces, se debe cumplir que: \[ c \cdot y + r = x \] |
|
|||
Potenciación. Calcula \(x^y\) (la base \(x\) elevada al exponente \(y\)).
|
|
Referencia completa: Unary arithmetic operations, Binary arithmetic operations, The power operator. |
8.2. Funciones numéricas
Función | Descripción | Ejemplos |
---|---|---|
\(\texttt{abs}(x)\) |
Devuelve el valor absoluto de \(x\). |
|
\(\texttt{float}(x)\) |
||
\(\texttt{int}(x)\) |
||
Con un solo argumento, \(x\) debe ser un objeto iterable (cadena, lista, tupla, diccionario o rango) y devuelve el valor más grande contenido en este. Con más de un argumento, devuelve el valor más grande de \(n_1, n_2, \ldots\). |
|
|
Con un solo argumento, \(x\) debe ser un objeto iterable (cadena, lista, tupla, diccionario o rango) y devuelve el valor más pequeño contenido en este. Con más de un argumento, devuelve el valor más pequeño de \(n_1, n_2, \ldots\). |
|
|
\(\texttt{round}(x, \texttt{ndigits=None})\) |
Redondea \(x\) a un cierto número de dígitos decimales establecidos por |
|
\(x\) debe ser un objeto iterable (lista, tupla, diccionario o rango) y devuelve la suma de todos sus elementos. |
|
Referencia completa: Built-in Functions. |
8.3. Módulo «math»
Función o constante | Descripción | Ejemplos |
---|---|---|
Función que devuelve el arco coseno de \(x\) en radianes. Esta es la función inversa de |
|
|
Función que devuelve el arco seno de \(x\) en radianes. Esta es la función inversa de |
|
|
Función que devuelve el arco tangente de \(x\) en radianes. Esta es la función inversa de |
|
|
\(\texttt{ceil}(x)\) |
Función que devuelve el techo de \(x\), el entero más pequeño mayor o igual que \(x\). En otras palabras, redondea la parte fraccionaria de un flotante hacia el siguiente valor entero en sentido del infinito positivo. |
|
Función que devuelve el coseno de \(x\) en radianes. Esta es la función inversa de |
|
|
Función que devuelve el ángulo \(x\) convertido de radianes a grados. Esta es la función inversa de |
|
|
\(\texttt{e}\) |
Constante matemática \(e\), conocida como número de Euler. \[ e \approx 2.718281828459045 \ldots \] |
|
Función que devuelve \(e^x\), donde \(e\) es el número de Euler. Esta es la función inversa de |
|
|
\(\texttt{factorial}(x)\) |
Función que devuelve \(x!\) (factorial de \(x\)) como un número entero. El factorial de \(x\) se define como el producto de todos los números enteros positivos desde 1 hasta \(x\). Por ejemplo: \[ 5! = 1 \times 2 \times 3 \times 4 \times 5 = 120 \] |
|
\(\texttt{floor}(x)\) |
Función que devuelve el piso de \(x\), el entero más grande menor o igual que \(x\). En otras palabras, redondea la parte fraccionaria de un flotante hacia el siguiente valor entero en sentido del infinito negativo. |
|
\(\texttt{gcd}(x, y)\) |
Función que devuelve el máximo común divisor de \(x\) y \(y\), es decir, el valor entero más grande que divide de forma exacta a ambos números. |
|
Función que devuelve Dadas las imprecisiones que pueden ocurrir al comparar dos números de punto flotante, en lugar de los operadores
|
|
|
Función que devuelve el logaritmo natural (base \(e\)) de \(x\), donde \(e\) es el número de Euler. Esta es la función inversa de |
|
|
\(\texttt{pi}\) |
Constante matemática \(\pi\), la cual representa la relación entre la longitud de una circunferencia y su diámetro. \[ \pi \approx 3.141592653589793 \ldots \] |
|
Función que devuelve el ángulo \(x\) convertido de grados a radianes. Esta es la función inversa de |
|
|
Función que devuelve el seno de \(x\) en radianes. Esta es la función inversa de |
|
|
\(\texttt{sqrt}(x)\) |
Función que devuelve \(\sqrt{x}\) (raíz cuadrada de \(x\)). |
|
Función que devuelve la tangente de \(x\) en radianes. Esta es la función inversa de |
|
Referencia completa: Mathematical functions. |
9. Booleanos
Ver también el tipo de dato bool
.
9.1. Valores de verdad
En Python solamente se consideran falsos los siguientes valores:
-
Valor booleano
False
. -
Valor nulo
None
. -
Cero numérico: entero (0) y flotante (0.0).
-
Colecciones de longitud 0: cadena vacía (
''
), lista vacía ([]
), tupla vacía (()
), diccionario vacío ({}
) y rango nulo (range(0)
).
Cualquier otro valor distinto a los listados arriba se considera verdadero.
Referencia completa: Truth Value Testing. |
9.2. Operaciones lógicas
Operador | Descripción | Ejemplos | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Negación lógica. Produce La negación obedece a la siguiente tabla de verdad:
|
|
||||||||||||||||
Conjunción lógica. Produce \(y\) si \(x\) es verdadero, de lo contrario produce \(x\). Utiliza evaluación de cortocircuito: no evalúa \(y\) si \(x\) es falso. La conjunción obedece a la siguiente tabla de verdad:
|
|
||||||||||||||||
Disyunción lógica. Produce \(x\) si \(x\) es verdadero, en caso contrario produce \(y\). Utiliza evaluación de cortocircuito: no evalúa \(y\) si \(x\) es verdadero. La disyunción obedece a la siguiente tabla de verdad:
|
|
Referencia completa: Boolean Operations. |
10. Colecciones
10.1. Secuencias
Las siguientes operaciones son comunes para todas las secuencias (cadenas, listas, tuplas y rangos).
Operador, función o método | Descripción | Ejemplos |
---|---|---|
Pertenencia. Operador que produce |
|
|
Exclusión. Operador que produce |
|
|
Concatenación. Operador que produce una nueva secuencia conformada por \(s\) concatenada (unido) con \(t\), siempre y cuando sean del mismo tipo. Esta operación no se puede efectuar utilizando rangos. |
|
|
Replicación. Operador que produce una nueva secuencia conformada por \(s\) concatenada consigo mismo \(n\) veces. Se produce una secuencia vacía si \(n \le 0\). Esta operación no se puede efectuar utilizando rangos. |
|
|
Indexación. Operador que produce el \(i\)-ésimo elemento de \(s\), comenzando en el índice 0. Si \(i < 0\), entonces produce el elemento en el índice \(\texttt{len}(s) + i\). |
|
|
Rebanada. Operador que produce una rebanada (subsecuencia) conformada por los elementos de la secuencia \(s\) que se encuentran comenzando en el índice \(i\) y hasta justo antes del índice \(j\), con un paso de tamaño \(k\). Es válido omitir los valores de \(i\), \(j\) y \(k\), tomando los siguientes valores por omisión:
Para valores de índices negativos de \(i\) o \(j\) se aplica la misma regla que para el operador de indexación. |
|
|
Método que devuelve el número de veces que aparece \(x\) dentro de la secuencia \(s\). |
|
|
Función que devuelve un objeto iterable con tuplas que contienen dos elementos: un contador (que inicia con el valor de \(\texttt{start}\)) y el valor correspondiente que se obtienen al iterar sobre \(s\). |
|
|
Método que devuelve el índice en el que aparece por primera vez \(x\) dentro de la rebanada \(s[i:j]\). El primer índice es 0. Produce un error si \(x\) no pertenece a \(s\). Valores por omisión:
|
|
|
Función que devuelve el número de elementos que contiene la secuencia \(s\). |
|
|
Función que devuelve un objeto iterable con todos los elementos de la secuencia \(s\) pero en orden inverso. Contrastar con el método |
|
|
Función que devuelve una nueva lista con todos los elementos contenidos en la secuencia \(s\) en orden ascendente. Se utiliza orden lexicográfico al momento de comparar los elementos de \(s\). De estar presente, el valor del parámetro \(\texttt{key}\) debe ser una función que se aplica a cada elemento antes de realizar las respectivas comparaciones durante el ordenamiento. Si se indica verdadero en el parámetro \(\texttt{reverse}\) el resultado se devuelve en orden descendente. Está garantizado que el algoritmo de ordenamiento utilizado es estable, es decir, no se cambia el orden relativo de los elementos que resultan iguales al ser comparados. Lo anterior es útil para ordenar en varias pasadas (por ejemplo, ordenar primero por calificaciones, luego por nombre). Contrastar con el método |
|
|
Función que agrupa los elementos de las secuencias que recibe como argumentos. Devuelve un objeto iterable compuesto de \(m\) tuplas, en donde la i-ésima tupla contiene el i-ésimo elemento de cada una de las secuencias \(s_1, s_2, \ldots, s_n\). El valor de \(m\) es igual al tamaño de la secuencia de entrada más corta. |
|
Referencia completa: Common Sequence Operations, Built-in Functions. |
10.2. Cadenas
Ver también el tipo de dato str
.
10.2.1. Operaciones con cadenas
Operador, función o método | Descripción | Ejemplos |
---|---|---|
\(x \; \texttt{in} \; \textit{s}\) |
||
\(x \texttt{ not in } \textit{s}\) |
||
\(s \; \texttt{+} \; t\) |
||
\(s \; \texttt{*} \; n\) |
||
\(s [i]\) |
||
\(s [i:j:k]\) |
||
\(s.\texttt{capitalize}()\) |
Método que devuelve una copia de la cadena \(s\) con su primer carácter en mayúscula y el resto en minúscula. |
|
\(\texttt{chr}(x)\) |
||
\(s.\texttt{count}(x)\) |
||
\(s.\texttt{endswith}(t)\) |
Método que devuelve |
|
|
||
\(s.\texttt{index}(x)\) |
||
\(s.\texttt{isalpha}()\) |
Método que devuelve |
|
\(s.\texttt{isdigit}()\) |
Método que devuelve |
|
\(s.\texttt{islower}()\) |
Método que devuelve |
|
\(s.\texttt{isupper}()\) |
Método que devuelve |
|
\(s.\texttt{join}(x)\) |
Método que devuelve una cadena que es la concatenación de las cadenas contenidas en el objeto iterable \(x\) (cadena, lista, tupla o diccionario). El separador entre elementos es la cadena \(s\). Produce un error si hay valores en \(x\) que no sean cadenas. |
|
\(s.\texttt{lower}()\) |
Método que devuelve una copia de la cadena \(s\) con todas sus letras convertidas a minúsculas. |
|
\(\texttt{len}(s)\) |
||
Método que devuelve una copia de la cadena \(s\) pero eliminando todos los caracteres en blanco (espacios, tabuladores y saltos de línea) que aparecen al inicio (left strip). |
|
|
\(\texttt{max}(s)\) |
||
\(\texttt{min}(s)\) |
||
\(\texttt{ord}(x)\) |
||
\(s.\texttt{replace}(t, u)\) |
Método que devuelve una copia de la cadena \(s\) en donde todas las ocurrencias de la subcadena \(t\) son reemplazadas por \(u\). |
|
\(\texttt{reversed}(s)\) |
||
Método que devuelve el índice de la cadena \(s\) donde se encuentra la última ocurrencia de la subcadena \(t\) dentro de la rebanada \(s[i:j]\). Similar al método Valores por omisión:
Ver también el método |
|
|
Método que devuelve una copia de la cadena \(s\) pero eliminando todos los caracteres en blanco (espacios, tabuladores y saltos de línea) que aparecen al final. |
|
|
\(\texttt{sorted}(s)\) |
||
\(s.\texttt{split}()\) |
Método que devuelve una lista con las palabras contenidas en \(s\) delimitadas por \(x\). Si se omite \(x\) considera como delimitador a cualquier sequencia consecutiva de caracteres en blanco (espacios, tabuladores y saltos de línea). |
|
\(s.\texttt{startswith}(t)\) |
Método que devuelve |
|
\(\texttt{str}(x)\) |
||
Método que devuelve una copia de la cadena \(s\) pero eliminando todos los caracteres en blanco (espacios, tabuladores y saltos de línea) que aparecen al inicio y al final. |
|
|
\(s.\texttt{title}()\) |
Método que devuelve una copia de la cadena \(s\) en donde el primer carácter de cada palabra inicia con una letra mayúscula y el resto de las letras están en minúscula. |
|
\(s.\texttt{upper}()\) |
Método que devuelve una copia de la cadena \(s\) con todas sus letras convertidas a mayúsculas. |
|
Referencia completa: String Methods, Common Sequence Operations, Built-in Functions. |
10.2.2. Secuencias de escape
Las secuencias de escape se utilizan para definir ciertos caracteres especiales dentro de las cadenas de caracteres.
Secuencia de escape | Descripción | Punto de código |
---|---|---|
|
Diagonal invertida |
92 |
|
Comilla simple |
39 |
|
Comillas dobles |
34 |
|
Salto de línea |
10 |
|
Retorno de carro |
13 |
|
Tabulador |
9 |
|
Carácter llamado |
Depende de |
|
Carácter de Unicode de 32 bits representado como ocho dígitos en hexadecimal. |
|
Referencia completa: String and Bytes literals. |
10.2.3. Cadenas con formato
Una cadena con formato es una cadena de caracteres que tiene el prefijo 'f'
o 'F'
. Estas cadenas pueden contener campos de reemplazo, que son expresiones delimitadas por llaves {}
y que se evalúan a tiempo de ejecución.
Las partes de la cadena que se encuentran fuera de las llaves se toman literalmente, excepto que las llaves dobles '{{'
o '}}'
se reemplazan con la llave individual correspondiente.
Ejemplos:
>>> x = 42
>>> f'El valor de x es: {x}.'
'El valor de x es: 42.'
>>> F'{{x}} = {x}'
'{x} = 42'
>>> f"Un kibibyte es igual a {2**10} bytes."
'Un kibibyte es igual a 1024 bytes.'
>>> primera_parte = 'nadie espera la'
>>> segunda_parte = 'inquisición española'
>>> f'''
... {primera_parte.title()}
... {segunda_parte.upper()}
... '''
'\nNadie Espera La\nINQUISICIÓN ESPAÑOLA\n'
Los campos de reemplazo tienen la siguiente sintaxis que permite dar formato al resultado de \(\textit{exp}\):
\[ \{ \textit{exp} [: [ [ \textit{relleno} ] \textit{alin} ] [ \textit{ancho} ] [ \textit{coma} ] [ \texttt{.} \textit{prec} ] [ \textit{tipo} ]]\} \]
Los corchetes \([ \, ]\) usados arriba indican que dicho elemento es opcional.
Elemento | Descripción | Ejemplo |
---|---|---|
\(\textit{ancho}\) |
Debe ser un número entero que establece el ancho mínimo del campo. Si se omite, se utiliza el ancho exacto que ocupa el valor de \(\textit{exp}\). |
|
\(\textit{alin}\) |
Puede ser Si se omite, los valores numéricos de \(\textit{exp}\) se alinean por omisión a la derecha y todos los demás se alinean a la izquierda. |
|
\(\textit{relleno}\) |
Puede ser cualquier carácter distinto a las llaves Si se omite, se utiliza el carácter de espacio en blanco como relleno. |
|
\(\textit{coma}\) |
Debe ser el carácter de coma |
|
\(\texttt{.} \textit{prec}\) |
Debe ser un número entero que indica cuántos dígitos se deben mostrar después del punto decimal para un valor de \(\textit{exp}\) de punto flotante. Si se omite, se utilizan 6 dígitos de precisión por omisión cuando el tipo es |
|
\(\textit{tipo}\) |
Determina cómo se debe presentar el valor de \(\textit{exp}\):
Si se omite, se utiliza el tipo de \(\textit{exp}\) a tiempo de ejecución. Se utiliza la notación que resulte más compacta si \(\textit{exp}\) es de tipo flotante. |
|
Es posible combinar todas los elementos en un mismo campo de reemplazo, por ejemplo:
>>> MEBIBYTE = 2 ** 20
>>> GIBIBYTE = 2 ** 30
>>> print(f'''
... 1 Mebibyte = {MEBIBYTE:*>20,.1f} bytes
... 1 Gibibyte = {GIBIBYTE:*>20,.1f} bytes
... ''')
1 Mebibyte = *********1,048,576.0 bytes
1 Gibibyte = *****1,073,741,824.0 bytes
Se pueden usar llaves {}
anidadas dentro de un campo de reemplazo para determinar a tiempo de ejecución el valor de uno o más de sus elementos. Por ejemplo:
>>> PLANCK = 6.62607015e-34
>>> relleno = '~'
>>> alin = '>'
>>> ancho = 15
>>> prec = 4
>>> tipo = 'e'
>>> f'h = {PLANCK:{relleno}{alin}{ancho}.{prec}{tipo}} J\N{Middle Dot}s'
'h = ~~~~~6.6261e-34 J·s'
Referencia completa: Formatted string literals, Format Specification Mini-Language. |
10.3. Listas
Ver también el tipo de dato list
.
Sentencia, operador, función o método | Descripción | Ejemplos | ||
---|---|---|---|---|
\(x \; \texttt{in} \; \textit{s}\) |
||||
\(x \texttt{ not in } \textit{s}\) |
||||
\(s \; \texttt{+} \; t\) |
||||
\(s \; \texttt{*} \; n\) |
||||
\(s [i]\) |
||||
\(s [i] \; \texttt{=} \; x\) |
Asignar con índice. Sentencia que asigna \(x\) a la \(i\)-ésima localidad de la lista \(s\). El primer índice es 0. Si \(i < 0\), entonce el índice utilizado es: \(\texttt{len}(s) + i\).
|
|
||
\(s \texttt{ += } t\) |
Extender. Sentencia/método que añade al final de \(s\) cada uno de los elementos contenidos en \(t\), el cual debe ser un objeto iterable (cadena, lista, tupla, diccionario o rango). El método Equivale a: \[ s[\texttt{len}(s):\texttt{len}(s)] \texttt{ = } t \] Comparar con el método
|
|
||
\(s \texttt{ *= } n\) |
Replicar y actualizar. Sentencia que replica la secuencia \(s\) un total de \(n\) veces dejando el resultado en \(s\). Equivale a: \[ s \texttt{ = } s * (n) \]
|
|
||
\(s [i:j:k]\) |
||||
\(s [i:j] \texttt{ = } t\) |
Asignar rebanada. Sentencia que reemplaza la rebanada \(s [i:j:k]\) por \(t\), el cual debe ser un objeto iterable (cadena, lista, tupla, diccionario o rango). Si \(k \ne 1\), entonces \(t\) debe ser del mismo tamaño que la rebanada que está reemplazando.
|
|
||
Método que añade \(x\) al final de la lista \(s\). Devuelve Equivale a: \[ s[\texttt{len}(s):\texttt{len}(s)] \texttt{ = } [x] \] Comparar con el método
|
|
|||
\(s.\texttt{clear}()\) |
Método que elimina todos los elementos de la lista \(s\). Devuelve Equivale a: \[ \texttt{del} \; s[:] \]
|
|
||
\(s.\texttt{copy}()\) |
Método que devuelve una nueva lista que contiene una copia superficial de \(s\). Equivale a: \[ s[:] \] |
|
||
\(s.\texttt{count}(x)\) |
||||
\(\texttt{del } s [i]\) |
Borrar con índice. Sentencia que elimina de la lista \(s\) el elemento contenido en el índice \(i\). Equivale a: \[ s[i:i+1] \texttt{ = } [ \;] \]
|
|
||
\(\texttt{del } s [i:j]\) |
Borrar rebanada. Sentencia que elimina de la lista \(s\) todos los elementos que corresponden a la rebanada \(s [i:j:k]\). Si \(k = 1\), entonces equivale a: \[ s[i:j] \texttt{ = } [ \;] \]
|
|
||
\(s.\texttt{index}(x)\) |
||||
\(s.\texttt{insert}(i, x)\) |
Método que inserta en el índice \(i\) de la lista \(s\) el elemento \(x\). El primer índice es 0. Devuelve Equivale a: \[ s[i:i] \texttt{ = } [x] \]
|
|
||
\(\texttt{len}(s)\) |
||||
\(\texttt{list}(s)\) |
||||
\(\texttt{max}(s)\) |
||||
\(\texttt{min}(s)\) |
||||
\(s.\texttt{pop}()\) |
Método que remueve y devuelve el elemento \(i\)-ésimo de la lista \(s\). El primer índice es 0. Si se omite \(i\) se remueve y devuelve el elemento del final de la lista \(s\).
|
|
||
\(s.\texttt{remove}(x)\) |
Método que remueve la primera ocurrencia de \(x\) en la lista \(s\). Produce un error si \(x\) no pertenece a \(s\). Devuelve Equivale a: \[ \texttt{del } s [ s.\texttt{index}(x)] \] Ver el método
|
|
||
Método que invierte en su mismo lugar el orden de los elementos de la lista \(s\). Contrastar con la función
|
|
|||
\(\texttt{reversed}(s)\) |
||||
Método que ordena en su mismo lugar los elementos contenidos en la lista \(s\) en orden ascendente. Se utiliza orden lexicográfico al momento de comparar los elementos de \(s\). De estar presente, el valor del parámetro \(\texttt{key}\) debe ser una función que se aplica a cada elemento antes de realizar las respectivas comparaciones durante el ordenamiento. Si se indica verdadero en el parámetro \(\texttt{reverse}\) los elementos quedan en orden descendente. Está garantizado que el algoritmo de ordenamiento utilizado es estable, es decir, no se cambia el orden relativo de los elementos que resultan iguales al ser comparados. Lo anterior es útil para ordenar en varias pasadas (por ejemplo, ordenar primero por calificaciones, luego por nombre). Contrastar con la función
|
|
|||
\(\texttt{sorted}(s)\) |
||||
\(\texttt{sum}(s)\) |
Referencia completa: Mutable Sequence Types, Lists. |
10.4. Tuplas
Ver también el tipo de dato tuple
.
Operador, función o método | Descripción |
---|---|
\(x \; \texttt{in} \; \textit{s}\) |
|
\(x \texttt{ not in } \textit{s}\) |
|
\(s \; \texttt{+} \; t\) |
|
\(s \; \texttt{*} \; n\) |
|
\(s [i]\) |
|
\(s [i:j:k]\) |
|
\(s.\texttt{count}(x)\) |
|
\(s.\texttt{index}(x)\) |
|
\(\texttt{len}(s)\) |
|
\(\texttt{max}(s)\) |
|
\(\texttt{min}(s)\) |
|
\(\texttt{reversed}(s)\) |
|
\(\texttt{sorted}(s)\) |
|
\(\texttt{sum}(s)\) |
|
\(\texttt{tuple}(s)\) |
Referencia completa: Common Sequence Operations, Tuples, Built-in Functions. |
10.5. Rangos
El tipo range
representa una secuencia inmutable de números enteros. Se usa comúnmente para efectuar un ciclo un cierto número de veces a través de la sentencia de ciclo for
. Por ejemplo:
>>> for i in range(25):
... print(i, end=' ')
...
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Operador, función o método | Descripción | Ejemplos |
---|---|---|
\(x \; \texttt{in} \; \textit{s}\) |
||
\(x \texttt{ not in } \textit{s}\) |
||
\(s [i]\) |
||
\(s [i:j:k]\) |
||
\(s.\texttt{count}(x)\) |
||
\(s.\texttt{index}(x)\) |
||
\(\texttt{len}(s)\) |
||
\(\texttt{max}(s)\) |
||
\(\texttt{min}(s)\) |
||
\(\texttt{range}( \textit{j} )\) |
Devuelve un rango que principia en \(i\) y termina justo antes de llegar a \(j\), avanzando en incrementos de \(k\). Valores por omisión:
Es posible producir rangos descendientes, siempre y cuando \(\textit{i} > \textit{j} \,\) y \(\, \textit{k} < 0\). |
|
\(\texttt{reversed}(s)\) |
||
\(\texttt{sorted}(s)\) |
||
\(\texttt{sum}(s)\) |
Referencia completa: Common Sequence Operations, Ranges, Built-in Functions. |
10.6. Diccionarios
Ver también el tipo de dato dict
.
Sentencia, operador, función o método | Descripción | Ejemplos | ||
---|---|---|---|---|
\(x \; \texttt{in} \; \textit{d}\) |
Pertenencia. Operador que produce |
|
||
\(x \texttt{ not in } \textit{d}\) |
Exclusión. Operador que produce |
|
||
Acceso a elemento. Operador que produce el valor asociado a la clave \(k\) del diccionario \(d\). Genera un error si dicha clave no existe en el diccionario. |
|
|||
\(d [k] \; \texttt{=} \; x\) |
Asignación con clave. Sentencia que asocia la clave \(k\) con el valor \(x\) dentro del diccionario \(d\). Si \(k\) existía previamente en \(d\), su valor anterior es sobrescrito.
|
|
||
\(d.\texttt{clear}()\) |
Método que elimina todas las parejas clave/valor contenidas en el diccionario \(d\). Devuelve
|
|
||
\(d.\texttt{copy}()\) |
Método que devuelve un nuevo diccionario que contiene una copia superficial de \(d\). |
|
||
\(\texttt{del } d [k]\) |
Borrar con clave. Sentencia que elimina del diccionario \(d\) la clave \(k\) junto con su valor asociado.
|
|
||
\(\texttt{dict}(x)\) |
||||
\(d.\texttt{get}(k, x)\) |
Método que devuelve el valor asociado a la clave \(k\) del diccionario \(d\). Sin embargo, si dicha clave no existe, devuelve a \(x\). |
|
||
\(d.\texttt{items}()\) |
Método que devuelve una secuencia con las parejas clave/valor, en forma de tuplas, contenidas en el diccionario \(d\). |
|
||
\(d.\texttt{keys}()\) |
Método que devuelve una secuencia con las claves (sin sus valores asociados) contenidas en el diccionario \(d\). |
|
||
\(\texttt{len}(d)\) |
Función que devuelve el número de parejas clave/valor que contiene el diccionario \(d\). |
|
||
\(d.\texttt{setdefault}(\\ \; \; \; \; k, x)\) |
Método que funciona así: Si la clave \(k\) está en el diccionario \(d\), devuelve su correspondiente valor asociado. De otra forma, asocia la clave \(k\) con el valor \(x\) y devuelve a \(x\).
|
|
||
\(\texttt{sorted}(d)\) |
Función que devuelve una nueva lista con todas las claves contenidas en el diccionario \(d\) en orden ascendente. Ver descripción completa. |
|
||
\(d.\texttt{update}(e)\) |
Método que actualiza el diccionario \(d\) a partir del contenido de \(e\), el cual debe ser un diccionario o una secuencia de parejas clave/valor. Devuelve
|
|
||
\(d.\texttt{values}()\) |
Método que devuelve una secuencia con los valores (sin sus claves) contenidos en el diccionario \(d\). |
|
Referencia completa: Mapping Types — dict, Built-in Functions. |
11. Entrada y salida
11.1. Impresión y lectura
Función | Descripción | Ejemplos |
---|---|---|
Imprime valores en |
|
|
\(\texttt{input}()\) |
Si \(p\) está presente, lo despliega en la salida estándar (típicamente la pantalla). Posteriormente la función lee y devuelve una línea de la entrada estándar (típicamente el teclado) como una cadena de caracteres pero sin el salto de línea final. |
|
Referencia completa: Built-in Functions. |
11.2. Archivos
Función o método | Descripción | Ejemplos | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
Función que abre y devuelve el archivo llamado \(nombre\) usando la modalidad establecida en Es muy recomendable abrir un archivo usando la sentencia La modalidad puede ser alguna de las siguientes:
|
|
|||||||||
\(a.\texttt{read}()\) |
Método que lee el contenido completo del archivo \(a\) (el cual debe estar abierto en modalidad de lectura) y lo devuelve como una cadena de caracteres. |
|
||||||||
\(a.\texttt{readlines}()\) |
Método que devuelve una lista de cadenas de caracteres, en donde cada cadena es una línea de texto contenida en el archivo \(a\) (el cual debe estar abierto en modalidad de lectura). Cada cadena de la lista resultante incluye al final su correspondiente salto de línea. Es posible iterar sobre todas las líneas de texto de un archivo usando la sentencia de ciclo |
|
||||||||
\(a.\texttt{write}(\textit{s})\) |
Método que escribe la cadena \(s\) en el archivo \(a\) (el cual debe estar abierto en modalidad de escritura o de añadir). Devuelve el número de caracteres escritos. En muchos casos puede resultar más conveniente usar la función |
|
Referencia completa: Built-in Functions, Core tools for working with streams, Reading and Writing Files. |
12. Valores pseudoaleatorios
Un valor pseudoaleatorio es un valor generado por un algoritmo que parece producir números al azar, aunque en realidad no es así. Las secuencias de valores pseudoaleatorios no muestran ningún patrón o regularidad aparente desde un punto de vista estadístico. El módulo random
contiene funciones para generar una variedad valores pseudoaleatorios.
Función | Descripción | Ejemplos | ||
---|---|---|---|---|
\(\texttt{choice}(s)\) |
Devuelve un elemento aleatorio tomado de la secuencia \(s\) (cadena, tupla, lista o rango). Al menos debe haber un elemento en secuencia. |
|
||
\(\texttt{random}()\) |
Devuelve un flotante aleatorio \(N\), tal que \(0.0 \le N < 1.0\). |
|
||
\(\texttt{randrange}(j)\) |
Devuelve un entero aleatorio dentro de un rango que principia en \(i\) y termina justo antes de llegar a \(j\), avanzando en incrementos de \(k\). Valores por omisión:
|
|
||
\(\texttt{sample}(s, k)\) |
Devuelve una nueva lista con una muestra aleatoria de \(k\) elementos únicos tomados de la secuencia \(s\) (cadena, tupla, lista o rango) en donde \(k \le \texttt{len}(s)\). |
|
||
\(\texttt{seed}\)(a=\(\texttt{None}\)) |
Inicializa la semilla del generador de números aleatorios con el valor de a. Esto es útil cuando se quiere repetir la misma secuencia de valores aleatorios. El valor por omisión de a es |
|
||
\(\texttt{shuffle}(s)\) |
Revuelve de manera aleatoria todos los elementos contenidos en la lista \(s\). Devuelve
|
|
Referencia completa: Generate pseudo-random numbers. |
13. Gráficas de tortuga
Las gráficas de tortuga permiten dibujar todo tipo de figuras en la pantalla de la computadora usando comandos que controlan las acciones de una “tortuga”, equipada con una “pluma” o “bolígrafo”, y que deja un rastro según se vaya desplazando.
Al inicio de un programa la tortuga aparece como un pequeño triángulo negro apuntando hacia el este (hacia la derecha) en el centro de una nueva ventana. Los movimientos se efectúan relativos hacia donde apunta la tortuga.
El siguiente ejemplo es un programa que dibuja un cuadrado de \(100 \times 100\) píxeles.
import turtle
for i in range(4):
turtle.forward(100)
turtle.right(90)
# Esta debe ser la última operación con la tortuga.
turtle.done()
El programa produce la siguiente salida:
13.1. Operaciones con la tortuga
Función | Descripción | ||
---|---|---|---|
Retrocede la tortuga \(p\) pasos. Cada paso equivale a un píxel de la pantalla. Esta es la función inversa de |
|||
\(\texttt{circle}(r)\) |
Dibuja un arco (o círculo) de radio \(r\) que se extiende \(g\) grados. En caso de omitirse, el valor por omisión de \(g\) es 360, por lo que se dibuja un círculo completo. |
||
\(\texttt{done}()\) |
Indica que se terminó de dibujar.
|
||
Avanza la tortuga \(p\) pasos. Cada paso equivale a un píxel de la pantalla. Esta es la función inversa de |
|||
Hace invisible a la tortuga. Esta es la función inversa de |
|||
\(\texttt{home}()\) |
Mueve la tortuga a su posición inicial (centro de la pantalla) y la apunta hacia el este (hacia la derecha). |
||
Gira la tortuga a la izquierda \(g\) grados. Esta es la función inversa de |
|||
Baja la pluma. En lo sucesivo la tortuga deja un rastro al avanzar o retroceder. Esta es la función inversa de |
|||
\(\texttt{pensize}(x)\) |
Establece a \(x\) como el tamaño de la pluma en píxeles. |
||
Sube la pluma. En lo sucesivo la tortuga no deja un rastro al avanzar o retroceder. Esta es la función inversa de |
|||
Gira la tortuga a la derecha \(g\) grados. Esta es la función inversa de |
|||
Hace visible a la tortuga. Esta es la función inversa de |
|||
\(\texttt{speed}(v)\) |
Establece la velocidad de la tortuga. Los posibles valores de \(v\) son las cadenas:
|
Referencia completa: Turtle graphics. |
13.2. Manejo de colores
Para las funciones documentadas a continuación, el parámetro del color \(c\) debe ser una cadena con el nombre de un color (por ejemplo: 'red'
) o un valor RGB (por ejemplo: '#FF0000'
).
Función | Descripción |
---|---|
\(\texttt{begin_fill}()\) |
Se debe invocar justo antes de dibujar una figura a rellenar. |
\(\texttt{bgcolor}(c)\) |
Establece a \(c\) como el color de fondo de la ventana de dibujo. |
\(\texttt{end_fill}()\) |
Se debe invocar justo después de dibujar una figura a rellenar. |
\(\texttt{fillcolor}(c)\) |
Establece a \(c\) como el color para rellenar. |
\(\texttt{pencolor}(c)\) |
Establece a \(c\) como el color de la pluma. |
Referencia completa: Turtle graphics. |
El ejemplo que sigue demuestra la manera de dibujar la bandera de Suiza.
import turtle
turtle.hideturtle()
turtle.speed('fastest')
turtle.bgcolor('red')
turtle.pencolor('white')
turtle.fillcolor('white')
turtle.left(90)
turtle.begin_fill()
for i in range(4):
for j in range(3):
turtle.forward(25)
turtle.right(90)
turtle.right(180)
turtle.end_fill()
turtle.done()
La salida correspondiente es similar a lo siguiente:
14. Licencia y créditos
-
© 2019-2021 por Ariel Ortiz Ramírez, Tecnológico de Monterrey.
-
Este material está disponible bajo la licencia de Atribución-NoComercial de Creative Commons CC BY-NC 4.0.
-
El uso libre y gratuito del código fuente presentado aquí se concede bajo los términos de la GPL, versión 3.
-
Este documento fue preparado usando el lenguaje de marcado de texto AsciiDoctor con íconos de Flaticon.
-
Gracias a las siguientes personas por su colaboración con correcciones y/o sugerencias a este documento:
-
Yolanda Martínez Treviño.
-
Angélica Sofía Ramírez Porras
-