Apuntes Python
Apuntes Python
M2: Tipos de datos, Variables, Operaciones Básicas de Entrada y Salida, Operadores Básicos
S1 : El Programa Hola Mundo
• 1. La función print() es una función integrada imprime/envía un mensaje específico a la pantalla/ventana de consola.
• 2. Las funciones integradas, al contrario de las funciones definidas por el usuario, están siempre disponibles y no tienen
que ser importadas. Python 3.7.1 viene con 69 funciones incorporadas. Puedes encontrar su lista completa en orden
alfabético en Python Standard Library.
• 3. Para llamar a una función (invocación de función), debe utilizarse el nombre de la función seguido de un paréntesis.
Puedes pasar argumentos a una función colocándolos dentro de los paréntesis. Se deben separar los argumentos con una
coma, por ejemplo, print("¡Hola,", "Mundo!"). Una función print() "vacía" imprime una línea vacía a la pantalla.
• 4. Las cadenas de Python están delimitadas por comillas, por ejemplo, "Soy una cadena" (comillas dobles), o 'Yo soy
una cadena, también' (comillas simples).
• 5. Los programas de computadora son colecciones de instrucciones. Una instrucción es un comando para realizar una
tarea específica cuando se ejecuta, por ejemplo, para imprimir un determinado mensaje en la pantalla.
• 6. En las cadenas de Python la barra diagonal inversa (\) es un carácter especial que anuncia que el siguiente carácter
tiene un significado diferente, por ejemplo, \n (el carácter de nuevalínea) comienza una nuevalínea de salida.
• 7. Los argumentos posicionales son aquellos cuyo significado viene dictado por su posición, por ejemplo, el segundo
argumento se emite después del primero, el tercero se emite después del segundo, etc.
• 8. Los argumentos de palabra clave son aquellos cuyo significado no está dictado por su ubicación, sino por una palabra
especial (palabra clave) que se utiliza para identificarlos.
• 9. Los parámetros end y sep se pueden usar para dar formato la salida de la función print(). El
parámetro sep especifica el separador entre los argumentos emitidos. Por ejemplo, print("H", "E", "L", "L",
"O", sep="-"), mientras que el parámetro end especifica que imprimir al final de la declaración de impresión (end="\
n" explicito)
M2: Tipos de datos, Variables, Operaciones Básicas de Entrada y Salida, Operadores Básicos
S2 : Literales de Ptyhon
• 1. Los literales son notaciones para representar valores fijos en el código. Python tiene varios tipos de literales - es decir,
un literal puede ser un número por ejemplo, 123), o una cadena (por ejemplo, "Yo soy un literal.").
• 2. El sistema binario es un sistema numérico que emplea 2 como su base. Por lo tanto, un número binario está compuesto
por 0s y 1s únicamente, por ejemplo, 1010 es 10 en decimal.
• Los sistemas de numeración Octales y Hexadecimales son similares pues emplean 8 y 16 como sus bases respectivamente.
El sistema hexadecimal utiliza los números decimales más seis letras adicionales.
• 3. Los enteros (o simplemente int) son uno de los tipos numéricos que soporta Python. Son números que no tienen una
parte fraccionaria, por ejemplo, 256, o -1 (enteros negativos). 11111 o 11_111
• 4. Los números punto-flotante (o simplemente flotantes) son otro tipo numérico que soporta Python. Son números que
contienen (o son capaces de contener) una parte fraccionaria, por ejemplo, 1.27.
• 5. Para codificar un apóstrofe o una comilla dentro de una cadena se puede utilizar el carácter de escape, por
ejemplo, 'I\'m happy.', o abrir y cerrar la cadena utilizando un conjunto de símbolos distintos al símbolo que se desea
codificar, por ejemplo, "I'm happy." para codificar un apóstrofe, y 'El dijo "Python", no "typhoon"' para
codificar comillas.
• 6. Los valores booleanos son dos objetos constantes True y False empleados para representar valores de verdad (en
contextos numéricos 1 es True, mientras que 0 es False.
Extra
• Existe un literal especial más utilizado en Python: el literal None. Este literal es llamado un objeto de NoneType, y puede
ser utilizado para representar la ausencia de un valor. Pronto se hablará más acerca de ello.
M2: Tipos de datos, Variables, Operaciones Básicas de Entrada y Salida, Operadores Básicos
S3 : Operadores
• 1. Una expresión es una combinación de valores (o variables, operadores, llamadas a funciones, aprenderás de ello pronto)
las cuales son evaluadas y dan como resultado un valor, por ejemplo, 1 + 2.
• 2. Los operadores son símbolos especiales o palabras clave que son capaces de operar en los valores y realizar operaciones
matemáticas, por ejemplo, el * multiplica dos valores: x * y.
• 3. Los operadores aritméticos en Python: + (suma), - (resta), * (multiplicación), / (división clásica: regresa un flotante
siempre), % (módulo: divide el operando izquierdo entre el operando derecho y regresa el residuo de la operación, por
ejemplo, 5 % 2 = 1), ** (exponenciación: el operando izquierdo se eleva a la potencia del operando derecho, por
ejemplo, 2 ** 3 = 2 * 2 * 2 = 8), // (división entera: retorna el número resultado de la división, pero redondeado al número
entero inferior más cercano, por ejemplo, 3 // 2.0 = 1.0)
• 4. Un operador unario es un operador con solo un operando, por ejemplo, -1, o +3.
• 5. Un operador binario es un operador con dos operandos, por ejemplo, 4 + 5, o 12 % 5.
• 6. Algunos operadores actúan antes que otros, a esto se le llama - jerarquía de prioridades:
• El operador ** (exponencial) tiene la prioridad más alta;
• Posteriormente los operadores unarios + y - (nota: los operadores unarios a la derecha del operador exponencial enlazan
con mayor fuerza, por ejemplo 4 ** -1 es igual a 0.25)
• Después *, /, //, y %,
• Finalmente, la prioridad más baja: los operadores binarios + y -.
• 7. Las sub-expresiones dentro de paréntesis siempre se calculan primero, por ejemplo, 15 - 1 * ( 5 *( 1 + 2 ) ) = 0.
• 8. Los operadores de exponenciación utilizan enlazado del lado derecho, por ejemplo, 2 ** 2 ** 3 = 256.
M2: Tipos de datos, Variables, Operaciones Básicas de Entrada y Salida, Operadores Básicos
S4 : Variables
• 1. Una variable es una ubicación nombrada reservada para almacenar valores en la memoria. Una variable es creada o
inicializada automáticamente cuando se le asigna un valor por primera vez. (2.1.4.1)
Cada variable debe de tener un nombre único - un identificador. Un nombre válido debe ser aquel que no contiene
espacios, debe comenzar con un guion bajo(_), o una letra, y no puede ser una palabra reservada de Python. El primer
carácter puede estar seguido de guiones bajos, letras, y dígitos. Las variables en Python son sensibles a mayúsculas y
minúsculas.
Python es un lenguaje de tipo dinámico, lo que significa que no se necesita declarar variables en él. Para asignar valores a
las variables, se utiliza simplemente el operador de asignación, es decir el signo de igual (=), por ejemplo, var = 1.
• 2. También es posible utilizar operadores de asignación compuesta (operadores abreviados) para modificar los valores
asignados a las variables, por ejemplo: var += 1, o var /= 5 * 2.
• 3. Se les puede asignar valores nuevos a variables ya existentes utilizando el operador de asignación o un operador
abreviado, por ejemplo:
• Puedes combinar texto y variables usando el operador + y emplear la función print() para generar cadenas y variables, por
ejemplo:
M2: Tipos de datos, Variables, Operaciones Básicas de Entrada y Salida, Operadores Básicos
S5 : Comentarios
• 1. Los comentarios pueden ser utilizados para colocar información adicional en el código. Son omitidos al momento de la
ejecución. Dicha información es para los lectores que están manipulando el código. En Python, un comentario es un
fragmento de texto que comienza con un #. El comentario se extiende hasta el final de la línea.
• 2. Si deseas colocar un comentario que abarque varias líneas, es necesario colocar un # al inicio de cada línea. Además, se
puede utilizar un comentario para marcar un fragmento de código que no es necesario en el momento y no se desea
ejecutar. (observa la última línea de código del siguiente fragmento), por ejemplo:
• 3. Cuando sea posible, se deben auto comentar los nombres de las variables, por ejemplo, si se están utilizando dos
variables para almacenar la altura y longitud de algo, los nombres length y width son una mejor elección
que myvar1 y myvar2.
• 4. Es importante utilizar los comentarios para que los programas sean más fáciles de entender, además de emplear
variables legibles y significativas en el código. Sin embargo, es igualmente importante no utilizar nombres de variables que
sean confusos, o dejar comentarios que contengan información incorrecta.
• 5. Los comentarios pueden ser muy útiles cuando tú estás leyendo tu propio código después de un tiempo (es común que
los desarrolladores olviden lo que su propio código hace), y cuando otros están leyendo tu código (les puede ayudar a
comprender que es lo que hacen tus programas y como es que lo hacen).
M2: Tipos de datos, Variables, Operaciones Básicas de Entrada y Salida, Operadores Básicos
S6 : Interacción con el usuario
• 1. La función print() envía datos a la consola, mientras que la función input() obtiene datos de la consola.
• 2. La función input() viene con un parámetro opcional: la cadena de mensaje. Te permite escribir un mensaje antes de que
el usuario ingrese algo, por ejemplo:
• 3. Cuando la función input() es llamada o invocada, el flujo del programa se detiene, el símbolo del cursor se mantiene
parpadeando (le está indicando al usuario que tome acción ya que la consola está en modo de entrada) hasta que el
usuario haya ingresado un dato y/o haya presionado la tecla Enter.
Tip: la característica mencionada anteriormente de la función input() puede ser utilizada para pedirle al usuario que
termine o finalice el programa. Observa el siguiente código:
• 4. El resultado de la función input() es una cadena. Se pueden unir cadenas unas con otras a través del operador de
concatenación (+). Observa el siguiente código:
• 2. Cuando deseas ejecutar algún código solo si se cumple una determinada condición, puedes usar una sentencia
condicional:
M3: Valores Booleanos, Ejecución Condicional, Bucles, Listas y su procesamiento, Operaciones Lógicas
S1 : Toma de desiciones en Python
• 6. La función len() se puede usar para verificar la longitud de la lista, por ejemplo:
• 7. Una invocación típica de función tiene el siguiente aspecto: result = function(arg), mientras que una
invocación típica de un método se ve así: result = data.method(arg).
M3: Tipos de datos, Variables, Operaciones Básicas de Entrada y Salida, Operadores Básicos
S5: Ordenando listas simples: el ordenamiento de burbuja
• 1. Puedes usar el método sort() para ordenar los elementos de una lista, por ejemplo:
• 2.También hay un método de lista llamado reverse(), que puedes usar para invertir la lista, por ejemplo:
M3: Tipos de datos, Variables, Operaciones Básicas de Entrada y Salida, Operadores Básicos
S6: Operaciones con listas.
• 1. Si tienes una lista list_1, y la siguiente asignación: list_2 =
list_1 esto no hace una copia de la lista list_1, pero hace que las
variables list_1 y list_2 apunten a la misma lista en la memoria.
Por ejemplo:
2. Una variable que existe dentro de una función 3. Se puede emplear la palabra clave reservada global
tiene un alcance solo dentro del cuerpo de la seguida por el l nombre de una variable para que el alcance de la
función (Ejemplo 4), por ejemplo: variable sea global, por ejemplo:
M4: Funciones, Tuplas, Diccionarios, Excepciones y Procesamiento de Datos.
S5: Creación de funciones multiparámetro
• 1. Una función puede invocar otras funciones o incluso a sí misma. Cuando una función se invoca a si misma, se le conoce
como recursividad, y la función que se invoca a si misma y contiene una condición de terminación (la cual le dice a la función
que ya no siga invocándose a si misma) es llamada una función recursiva.
• 2. Se pueden emplear funciones recursivas en Python para crear funciones limpias, elegantes, y dividir el código en trozos más
pequeños. Sin embargo, se debe tener mucho cuidado ya que es muy fácil cometer un error y crear una función la cual nunca
termine. También se debe considerar que las funciones recursivas consumen mucha memoria, y por lo tanto pueden ser en
ocasiones ineficientes.
• Al emplear la recursividad, se deben de tomar en cuenta tanto sus ventajas como desventajas.
• La función factorial es un ejemplo clásico de como se puede implementar el concepto de recursividad:
M4: Funciones, Tuplas, Diccionarios, Excepciones y Procesamiento de Datos.
S6: Tuplas y diccionarios
• 1. Las Tuplas son colecciones de datos ordenadas e inmutables. Se
puede pensar en ellas como listas inmutables. Se definen con
paréntesis:
Cada elemento de la tupla puede ser de un tipo de dato diferente
(por ejemplo, enteros, cadenas, boleanos, etc.). Las tuplas pueden
contener otras tuplas o listas (y viceversa).
• 2. Se puede crear una tupla vacía de la siguiente manera:
• 3. La tupla de un solo elemento se define de la siguiente manera:
• También se puede crear una tupla utilizando la función integrada de Python tuple(). Esto es
particularmente útil cuando se desea convertir un iterable (por ejemplo, una lista, rango,
cadena, etcétera) en una tupla:
• De la misma manera, cuando se desea convertir un iterable en una lista, se puede emplear
la función integrada de Python denominada list():
M4: Funciones, Tuplas, Diccionarios, Excepciones y Procesamiento de Datos.
S6: Tuplas y diccionarios
• 1. Los diccionarios son *colecciones indexadas de datos, mutables y desordenadas. (*En
Python 3.6x los diccionarios están ordenados de manera predeterminada.
• Cada diccionario es un par de clave:valor. Se puede crear empleando la siguiente sintaxis:
• 3. Si se desea cambiar el valor asociado a una clave específica, se puede hacer haciendo
referencia a la clave del elemento, a continuación se muestra un ejemplo:
• 4. Para agregar o eliminar una clave (junto con su valor asociado), emplea la siguiente
sintaxis:
M4: Funciones, Tuplas, Diccionarios, Excepciones y Procesamiento de Datos.
S6: Tuplas y diccionarios
• Además, se puede insertar un elemento a un diccionario utilizando
el método update(), y eliminar el ultimo elemento con el
método popitem(), por ejemplo:
• El código anterior le pide al usuario que ingrese un valor hasta que el valor ingresado sea un número entero válido.
Si el usuario ingresa un valor que no se puede convertir a un int, el programa imprimirá en la consola Advertencia: el
valor ingresado no es un número válido. Intenta de nuevo..., y pide al usuario que ingrese un número
nuevamente. Veamos que sucede en dicho caso?
• El programa entra en el bucle while.
• El bloque try se ejecuta. El usuario ingresa un valor incorrecto, por ejemplo: ¡hola!.
• Se genera una excepción, y el resto del código del bloque try se omite. El programa salta al bloque except, lo
ejecuta, y luego se sigue al código que se encuentra después del bloque try-except.
• Si el usuario ingresa un valor correcto y no se genera ninguna excepción, las instrucciones subsiguientes al
bloque try, son ejecutadas. En este caso, los excepts no se ejecutan.
M4: Funciones, Tuplas, Diccionarios, Excepciones y Procesamiento de Datos.
S7: Excepciones
• 3. Puedes manejar múltiples excepciones en tu bloque de código. Analiza los
siguientes ejemplos:
• Puedes utilizar varios bloques except dentro de una sentencia try, y especificar
nombres de excepciones. Si se ejecuta alguno de los except, los otros se
omitirán. Recuerda: puedes especificar una excepción integrada solo una
vez. Además, no olvides que la excepción por defecto (o genérica), es decir, a
la que no se le especifica nombre, debe ser colocada al final (utiliza las
excepciones más específicas primero, y las más generales al último).
• También puedes especificar y manejar múltiples excepciones integradas
dentro de un solo bloque except:
• 4. Algunas de las excepciones integradas más útiles de Python
son: ZeroDivisionError, ValueError, TypeError, AttributeError, y SyntaxError.
Una excepción más que, en nuestra opinión, merece tu atención es la
excepción KeyboardInterrupt, que se genera cuando el usuario presiona la
tecla de interrupción (CTRL-C o Eliminar). Ejecuta el código anterior y presiona
la combinación de teclas para ver qué sucede.
• Para obtener más información sobre las excepciones integradas de Python,
consulta la documentación oficial de Python aquí.
• 5. Por último, pero no menos importante, debes recordar cómo probar y depurar tu código. Utiliza técnicas de depuración como
depuración de impresión; si es posible - pide a alguien que lea tu código y te ayude a encontrar errores o mejorarlo; intenta aislar
el fragmento de código que es problemático y susceptible a errores: prueba tus funciones aplicando valores de argumento
predecibles, y trata de manejar las situaciones en las que alguien ingresa valores incorrectos; comenta las partes del código que
ocultan el problema. Finalmente, toma descansos y vuelve a tu código después de un tiempo con un par de ojos nuevos.