Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Certamen 1
Python
Ayudante: Leonardo Ramírez
Esto quiere decir que un valor entre comillas no es el mismo que sin estas: 5 ≠
‘5’. A este último se le llama string de cinco, y representa al 5 como carácter
literal, en vez de valor numérico.
Todo carácter puede ser llevado a string: Letras ‘Aa’, números ‘123’ y símbolos
‘$#%’. Las letras pueden ser tanto en mayúscula como minúscula, y se diferencian
entre una y otra: ‘M’ ≠ ‘m’.
Los strings son un tipo de dato superior que también puede ser considerado como
una estructura de datos, por lo que se verá con detalle más adelante.
Booleanos bool( )
Valores de verdad propios de la lógica matemática binaria. Este tipo de dato solo
posee dos posibilidades: True o False (con mayúsculas y sin comillas); y es usado
principalmente en las condiciones de los ciclos while y en las selecciones if-elif-else.
Los datos del tipo booleano tienen sentido como el resultado de operaciones
relacionales o de verificación. Por ejemplo, cuando al programa se le “pregunta” si
x>y, este arrojará True o False como respuesta.
None: Tipo de dato utilizado para casos donde no hay ningún valor, o este no es
válido.
Operadores Lógicos
Operador Comando Descripción/Observación
Y lógico A and B Será True <=> A=B=True (Ver tabla)
O lógico A or B Será False <=> A=B=False (Ver tabla)
Negación not A Invierte el valor e verdad de A (Ver tabla)
Estos Operadores se utilizan en conjunto con los operadores relacionales, ya que el resultado de los
relacionales siempre será un booleano, lo cual es perfectos para los operadores Lógicos, que solo reciben
booleanos.
Operadores Relacionales
Operador Comando Observación Ejemplos
1==1.0 >>>True ;
Igual a A==B True si A es igual a B, de lo contrario False 1==2 >>> False
1!=1 >>>False ;
Distinto a A!=B True si A es distinto a B, de lo contrario False 1!=2 >>> True
3>2 >>> True ;
Mayor estricto A>B True si A es mayor a B, de lo contrario False 3>6 >>>False
3<2 >>> False ;
Menor estricto A<B True si A es menor a B, de lo contrario False 3<6 >>>True
4=<4 >>> True ;
Mayor o igual A>=B True si A es mayor o igual a B, de lo contrario False 4=<2 >>>False
4=>4 >>> True ;
Menor o igual A<=B True si A es menor o igual a B, de lo contrario False 4=>2 >>> True
Todos los resultados de estos operadores son booleanos, por lo que son excepcionales para crear
condiciones en ciclos while y condicionales if.
Interacciones
Para todo programa, es crucial interactuar con el operador (usuario) y los datos.
Asignación: Para guardar datos se requiere de variables literales, estás serán cruciales para manejar todo
tipo de información. Las variables deben estar compuestas por letras, números o simbolos; los números no
pueden ser el primer carácter de la variable, y hay símbolos que no se pueden ocupar (los símbolos de
operadores): Suma✓ perro_1✓ _ventas✓ torre+altaX 9reinasX .Para asignar un dato,
simplemente se pone: variable = valor (x=2 , y=y+1 , z=x==y)
Entrada input(mensaje): Esta función le pide al usuario por pantalla un dato a utilizar. Por default,
siempre será string, así que se debe ocupar un comando de tipeo para cambiar el tipo de dato, a int(),
float() o bool(). El mensaje debe estar sí o sí entre comillas. Nota=int(input(“Ingrese nota:
“))
Salida print (): Esta función permite mostrar elementos por pantalla al usuario . Se coloca print seguido
del mensaje a mostrar entre paréntesis. Si necesitas entregar texto y números, estos pueden ir separados por
comas (solo en el print). print (‘Su nota es’,Nota)
Condicional if (Si)
La sentencia if ejecuta las instrucciones sólo si se cumple una condición. Si la
condición es falsa, se continua hacia abajo sin entrar.
if condición:
sentencias cuando la condición es verdadera
if condición:
sentencias cuando la condición es verdadera
else:
sentencias cuando la condición es falsa
if condicion1:
que hacer si la condicion1 es verdadera
elif condicion2:
que hacer si la condicion2 es verdadera
elif condicion3:
que hacer si la condicion3 es verdadera
…
else:
que hacer cuando ninguna de las anteriores es verdaderas
Similar al if-else, se genera a que el programa elija un camino, esta vez, entre muchos para elegir. Se hace
hincapié en el orden de las condiciones, ya que afectará directamente a la decisión que tomará el programa
(No es estrictamente necesario el uso del else). Si quiere “entrar” a más de una condición, ocupe simplemente
if, generando condiciones pertinentes.
Ciclo while (Mientras)
El ciclo while ejecuta una secuencia de instrucciones mientras la condición sea verdadera. Cada una de las
veces que la serie de secuencias es ejecutada se llama iteración. La condición es evaluada antes de cada
iteración. Si la condición es inicialmente falsa, no se ejecutara ninguna iteración.
while condición:
sentencias mientras la condición sea verdadera
El ciclo while se diferencia de los condicionales debido a su
carácter repetitivo; lo que lo hace crucial para programas donde
se debe ejecutar una acción una cantidad arbitraria o indefinida
de veces.
• Los Parámetros: Son los valores que recibe una función como entrada, variables mudas que se le
asignan a los valores reales con los que se llaman la función dependiendo del orden dispuesto.
• El Código de la función: Son las operaciones que hace la función, similar a un programa.
• El resultado o retorno: es el valor final que entrega la función, esta sentencia concluye la función.
def nombre_de_la_función(parámetro1,parámetro2,…):
…código de la función…
…
return resultado_de_la_función
Funciones
Las variables que son creadas dentro de la Para llamar a una función simplemente debes
función (incluyendo los parámetros) se llaman escribir su nombre y los valores que ocuparás
variables locales, y sólo sirven dentro de la como parámetros. Al llamar una función, se
función, no el resto del programa. obtiene el valor del return de esta, ningún otro.
Recordar que los return no son equivalentes a los
Por otra parte, las variables creadas fuera de print. Uno es simplemente el resultado de una
alguna función se llaman variables globales, y son función, y el otro es “imprimir” por pantalla. Si
útiles desde cualquier parte del programa, incluso quieres mostrar un valor de return, pon:
dentro de las funciones. Ojo con modificar print(nombre_función(parámetro))
variables globales dentro de una función, porque
esta cambiará tanto dentro como fuera de ella. print (par(2))
print (par(3))
*Pantalla:*
>>>True
False
Ruteo
El ruteo consiste en anotar todas las asignaciones que genera un programa en una tabla, donde cada columna
representa una variable distinta y cada fila representa una asignación, por lo que se deberá anotar solo una
asignación por fila (Regla de oro).
Programa y Funciones: Esta es el “enunciado” del ruteo, el programa mismo, que decide como se distribuirán
los datos en la tabla, cuales datos y en que orden. Las asignaciones por función se debe hacer en la columna en
donde aparece su nombre en la tabla.
Caja-Pantalla: Esta caja muestra los prints del programa y/o funciones. Cada print se ejerce en una línea
distinta, por lo que debes escribir hacia abajo
Tabla):En esta tabla es donde van todas las asignaciones de datos de cualquieras de las variables
mencionadas. Cada variable en el programa y/o función aparece especificada, una por columna.
Por asignaciones se entiende todas las secuencias tipo variable=dato, todas las llamadas a función, que
asignan los parámetros a los valores dados F(4,7)=> parametro1=4, parametro2=7 , y los ciclos
for, donde la variable de este se asigna a todas los datos de la estructura: for i in [1,2,3]: =>i=1,
i=2, i=3.
Análisis de algoritmo
El análisis de algoritmo consiste en describir lo que realiza una función en breve palabras, o sea, debes
describir lo más objetiva y brevemente posible lo que realiza la función. Estas funciones siempre son
especiales, por lo que la función siempre tendrá un objetivo trivial. Cabe destacar que la función a analizar
puede ser la del ruteo.
Sus elementos son bastante simples. Corresponden a la función misma, y a un rectángulo, en el cual se debe
describir la función.
Usos: Sacar promedios, contar bajo alguna condición específica, manipular cantidades, sacar
porcentajes, etc.
Algoritmos comunes
Suma/Productoria
La suma consiste en crear una variable para ir sumando cifras que se necesiten acumular, como por ejemplo
montos, notas o puntajes. Análogamente, las productorias se utilizan para ir multiplicando distintos valores.
En la gran mayoría de los casos las sumas debe partir de 0, y las productorias de 1 (neutro aditivo y
multiplicativo), y se debe posicionar bien en el programa para no provocar sumas/multiplicaciones erróneas,
como cuando se quiere generar distintas sumas con el mismo algoritmo o para cuando se necesita solo una
que sea la variable general para todas estas cantidades.
Algoritmos Comunes
Flag o Verificador
El Flag o verificador es una variable booleana para identificar si es que se a cumplido cierta condición
o requisito. En otras palabras, verifica si un suceso se produjo o no. A priori, el evento no a sucedido
(bandera abajo), y cuando se cumple, se invierte su valor de verdad (bandera arriba).
El Flag es excepcional para crear un menús y otros algoritmos mayores, ya que, al ser una condición
propiamente tal (un booleano) permite evitar generar mecanismos más complejos de verificación, los cuales
son poco ortodoxos o muy arbitrarios.
Algoritmos Comunes
Máximo/Mínimo
El máx(mín) es una variable que permite determinar entre múltiples datos cual es el de mayor(menor),
comparando uno a uno los datos con la variable, para finalmente entregar al mayor(menor). Existen dos tipos:
cuantitativo (¿cuánto es el máximo?) o cualitativo (¿quién es mayor?).
Para esto, se hace una segunda variable, donde se guardará al “dueño” del dato (mayor, menor), así, conforme
se encuentre un nuevo máximo, se encontrará un nuevo “dueño”, para finalmente entregar este, y no el dato
en sí. No importa el valor a priori de la variable “dueño”, ya que esta se modificará de inmediato.
Menús
Un Menú consiste en un programa con opciones, dependiendo de la opción ingresada será la
operación a realizar por este; en otras palabras, una compilación de subprogramas.
En los enunciados saldrá explícitamente que debe hacer cada opción, por lo que serán muy fácil
identificar cuando se necesita hacer un menú y cómo.
En todos los Menús habrán 2 o más opciones, siendo una de estas la opción “Salir”. Esta termina
el ciclo del Menú. Por lo que la opción “Salir” será la que cambiará la variable Flag de True a
False.
Además, a veces, se pide que en caso de que se entregue una opción no listada, mostrar un
mensaje de error y volver a pedir una opción, esto se agrega como un else al final de la
cadena if-elif-else, donde la condición de cada uno es si la opción corresponde a un número
dado.
Primero se empieza con las variables que se
necesitarán alterar durante el ciclo, por lo
general serán otros Algoritmos comunes
como Máximos o sumas; y por supuesto el
Flag.
Para encontrar errores en el programa, uno de los mejores métodos es usando prints, donde se fuerza al
programa a generar un “ruteo” por si mismo, por lo que uno solo tendrá que analizar como evolucionan los
datos conforme el programa avanza, y localizar en donde está fallando.
Este método es eficaz debido a la naturaleza cíclica que suelen tener los programas, debido a que la mayoría
se basa en un loop con condiciones, por lo que alguna entrada indebida a un if o un ciclo terminado
inesperadamente (que son errores muy comunes), son fáciles de detectar y arreglar.
El método consiste en “printear” las variables conforme se modifican en el programa, intenta ocupar
solamente un print por variable, y corre un ejemplo fácil, para detectar el problema sin problemas.