Sesión 16. Python - Fundamentos 0
Sesión 16. Python - Fundamentos 0
• Automatizar
1. Enunciado de un problema
2. Entender el problema
6. PONER EN MARCHA.
1. Instrucciones de entrada
Nv = int(input (“Digite su edad”))
2. Instrucciones de salida
print (nv1, “mensaje descriptivo”, nv2,
constante, etc)
3. Instrucciones de asignación
Nv = expresión
4. Instrucciones condicionales NO REPETITIVA
(bifurque)
if / if else / if elif else
5. Instrucciones condicionales REPETITIVA
(bucles o ciclos)
while / for
MAIN BODY
#fin del programa en Python – Aquí termina
MAIN BODY: Es el cuerpo principal (bloque de instrucciones) del programa. Por aquí es
que empieza a ejecutarse un programa de computador.
# ESTRUCTURA 2
MAIN BODY
nombredelafunción()
...
Tipos de caracteres:
• Letras: a, b, c, …, z; A, B, C,…, Z
• Dígitos: 0, 1, 2,…, 8, 9
• Especiales: ¿+*#”!{]}[-:/_, etc
Ejemplo: este número tiene 3 caracteres: 453
• Datos tipo string: Son mensajes que deben estar encerrados entre
comillas y utilizan cualquier tipo de caracter. En Python toman el
nombre de str.
• Datos tipo entero: Son valores que se pueden utilizar en fórmulas
matemáticas. En Python toman el nombre de int.
• Datos tipo real: Son valores que se pueden utilizar en fórmulas
matemáticas. En Python toman el nombre de float.
• Datos tipo booleano: son valores true o false. En Python toman el
nombre de bool.
Operadores: Se utilizan para escribir expresiones.
Tipos de Operadores:
Tipos de expresiones:
input (“mensaje”)
• Lo que se captura del teclado es del tipo string
• string también toma el nombre de alfanumérico o
cadena de caracteres
• Los datos tipos string no se pueden utilizar en las
fórmulas matemáticas/aritméticas
Uso de fórmulas matemáticas
1) Instrucción de lectura/captura
2) Instrucción de escritura/impresión
3) Instrucción de asignación
4) Instrucción condicional no repetitiva
5) Instrucción condicional repetitiva
Instrucciones/Sentencias Básicas en Python:
La instrucción input:
Solución No. 1
Solución No. 2
La instrucción print:
Solución No. 1
Solución No. 2
Solución No. 3
1) S = “Moñitos – Córdoba”
2) R1 = a + b * c
3) R2 = ((a + c – b) * b) / (c + d )
4) X = 5
5) Z = w
6) Y = x <= 20
7) B = false or true
8) x = false
9) y = true
10) B = x or y
11) C = false and true
Ejercicios: Evalué las siguientes expresiones aritméticas, lógicas y
relacionales. Describa paso a paso como se llega al resultado final
en cada ejercicio.
Ejemplos:
5 / 2 = 2.5
5 div 2 = 2
21 mod 6 = 21 – 6*3 = 3
21 mod 4 = 21 – 4*5 = 1
50 mod 30 = 20
10 mod 2 = 0
3 mod 9 = 3 – 9*0 = 3
5 mod 1000 = 5
-4 mod 1 = 0
2 mod 2 = 0
X mod 1 = 0
Ejemplo: Si a = 9; b =2; c =5; d = 3
Expresión Aritmética
a+b*c
(a+b)*c
((a + c – b) * b) / (c + d )
(c + d) ^ b
Ejemplo:
S = "Moñitos – Córdoba"
print ("S=",S)
a=9
b=2
c=5
d=3
R1 = a + b * c
print ("R1=", R1)
R2 = ((a + c - b) * b) / (c + d )
print ("R2==>", R2)
X = int(input("Digite X: "))
print ("X=", X)
w=100
Z=w
print ("w=", w, ";", "Z=", Z)
Los Conceptos Matemáticos, Los Operadores y las Funciones Predefinidas
Potencias de N:
Y = x^2 =x*x=x**2 // Python
Y = x^3 =x*x*x =x**3 // Python
Y = x^N = x**N // Python
Y = pow(x, N) // Python (pow() es una función de la librería math)
Y = pow(base, exponente) // Python (pow() es una función de la librería math)
Raíces enésimas:
Raizcuadrada(x): Y= x^0.5 = x^(1/2) = x**0.5 // Python
Raizcuadrada(x): Y = pow(x, 0.5) // Python (pow() es una función de la librería math)
Raizcuadrada(x): Y=sqrt(x); // Python (sqrt() es una función de la librería math)
RaizN(x) = x^(1/N) // Python
RaizN(x) = Y = pow(x, (1/N)) // Python (pow() es una función de la librería math)
RaizN(x) = Y = en JavaScript??
Y = pow(x,2);
Y = pow(x,0.5);
Y = pow(x,(1/3));
En Python:
Y = e^N: Y = exp(N) // librería math
Y = ln(x): Y = ln(N) // librería math
En C++:
Y = e^N: Y = exp(N) // librería math.h
Y = ln(x): Y = ln(N) // librería math.h
Y = exp(N*ln (x)) // librería math.h
En JavaScript: ???
Ejemplo
Ejemplo
Ejemplo
Ejemplo:
a=float(input("Digite el valor de A:"))
b=float(input("Digite el valor de B:"))
c=float(input("Digete el valor de C:"))
d=float(input("Digete el valor de D:"))
Z=a+(b*c)
print("El resultado del primer problema es :",Z)
X=(a+b)*c
print("El resultado del segundo problema es:",X)
J=((a + c-b)*b)/(c+d)
print("El resusltado del trecer problema es:",J)
G=(c+d)**b
print("El resultado del cuarto problema es:",G)
Ejercicios:
Ejemplo 1.
Ejemplo 2.
Ejemplo 3.
Ejemplo 4.
Ejemplo 5.
Ejemplo 1.
Ejemplo 2.
Ejemplo 3.
Ejemplo 4.
Tareíta No. 1.
Tareíta No. 2.
Tareíta No. 3.
Solución No. 1:
Componentes de un Ciclo:
1. Expresión inicial. Toda condición tiene asociada por lo menos una variable.
Está expresión inicial me permite iniciar las variables asociadas a la
condición. OJO pelao: dependiendo del valor inicial de estas variables,
entonces el ciclo se puede o no ejecutar. Después de la expresión inicial,
siempre se evalúa la condición.
2. Expresión booleana. Evaluar sí es falsa o verdadero una condición. Para
controlar cuántas veces se va a repetir el proceso. La condición tiene asociada
por lo menos una variable que debe ser actualizada. Cada vez que se repite el
ciclo, se evalúa la condición.
3. Expresión de avance. Nos permite actualizar las variables asociadas a la
condición del ciclo. Para que el resultado de la condición (expresión booleana)
en algún momento cambie de valor (cambie de true a false, o viceversa).
• Se requieren instrucciones/sentencias:
o En Python: el while y el for
o En C++: el while y el for
• Toda sentencia de ciclo/bucle require que se le especifiquen los tres(3)
componentes
Otro aspecto muy importante de esta estructura de control es que si la expresión lógica
es inicialmente falsa el bucle no se ejecuta ni una sola vez; es decir, la estructura
mientras supone que el bucle iterará 0 ó más veces.
expresión inicial;
while expresión booleana:
instrucción1;
instrucción2;
…
instrucciónN;
expresión de avance
// Siguiente instrucción después del while, cuando salimos del while
Ejemplo No. 1: Elaborar un programa en Python que nos genere e imprima los cinco
(5) primeros números enteros positivos, empezando con el uno (1).
Solución:
i = 1 # expresión inicial
while (i <=5): # expresión booleana
print ("El valor de i es :", i)
i=i+1 # expresión de avance
print ("Saliendo del while…")
print ("El valor de i es :", i)
Ejemplo No. 2: Elaborar un programa en Python que nos genere los cinco (5) primeros
números enteros positivos, empezando con el uno (1); y los imprima con sus
respectivos cuadrados.
#Solución No. 1
i = 0 # expresión inicial
while (i < 5): # expresión booleana
print ("El valor de i es :", i+1, " su cuadrado es: ", (i+1)**2)
i=i+1 # expresión de avance
print ("Saliendo del while…")
#Solución No. 2
i=1
while (i < 6):
print(f"El cuadrado del número {i} es >> {i**2}")
i+=1
print(f"fin")
Ejemplo No. 3.1: Elaborar un programa que lea una pareja de números, intercambie
sus valores y los imprime intercambiados.
Ejemplo No. 3.2: Elaborar un programa que lea tres pareja de números, para cada
pareja intercambie los valores y los imprima intercambiados.
p = 1 # expresión inicial
while (p > 2): # expresión booleana
x = int (input(“digite el valor de x: ”))
y = int (input(“digite el valor de y: ”))
t=x
x=y
y=t
print (“el valor de x intercambiado es: ”, x)
print (“el valor de y intercambiado es: ”, y)
p=p+1; # expresión de avance
print ("Saliendo del while…y fin del programa")
p=1
while (p<=3):
# proceso: lineas 4 a 10
print ("Digite los valores de la pareja ", p, ":")
x = int (input("digite el valor de x: "))
y = int (input("digite el valor de y: "))
t=x
x=y
y=t
print ("el valor de x intercambiado es: ", x)
print ("el valor de y intercambiado es: ", y)
# expresion de avance
p=p+1
print("saliendo endo,...")
Ejemplo No. 4: Elaborar un programa que nos genere e imprima los números pares del
0 al 10.
#Solución No. 1
print ("Numeros pares del 0 al 10")
p=0
while (p<=10):
# proceso: lineas 4 a 10
print (p)
p=p+2
print("saliendo endo,...")
#Solución No. 2
n=1
while n<=10:
if n%2==0:
print(n)
n=n+1
Ejemplo No. 5: Elaborar un programa que nos genere e imprima los números impares
del 0 al 10.
Ejercicios
1. Elaborar un algoritmo que lea N parejas de números, por cada pareja debe imprimir el
mayor y el menor. Imprima un mensaje especial si los números son iguales.
2. Elaborar un algoritmo que lea N ternas de números (x, y, z), por cada terna debe imprimir el
mayor y el menor. Imprima un mensaje especial si por lo menos hay dos números iguales.
Para cada terna (x, y, z) se puede cumplir alguno/uno de los siguientes casos:
1) Si entre x, y, z hay por lo menos dos (2) iguales, entonces tenemos: (x==y)
or (x==z) or (y==z)
Sí no es verdad la condición anterior, entonces puede ocurrir uno de los
siguientes casos:
Expresión Lógica x y z
(x==y) or (x==z) or (y==z) 3 45 3
x > y and y > z
x > z and z > y 10 4 5
y > x and x > z
y > z and z > x
z > x and x > y
z > y and y > x 1 50 80
Solución de Kevin:
# valido si los datos ingresados son de tipo entero si no lo son el da un alerta al usuario y
no terminara hasta que sea un entero
while numero1.isnumeric() == False or numero2.isnumeric() == False:
print("DATOS INCORRECTOS, DEBEN SER NUMERO ENTEROS")
print("===========================================")
numero1 = input("digite el primer numero: ")
print("===========================================")
numero2 = input("digite el segundo numero: ")
print("===========================================")
numero3 = input("digite el tercer numero: ")
numero1=int(numero1)
numero2=int(numero2)
numero3=int(numero3)
elif numero3 > numero1 and numero3 >numero2 and numero1 >numero2:
print("===========================================")
print("el mayor es: ",numero3,"y el menor es: ",numero2)
print("===========================================")
elif numero3 > numero2 and numero3 >numero1 and numero2 >numero1:
print("===========================================")
print("el mayor es: ",numero3,"y el menor es: ",numero1)
print("===========================================")
elif numero1 == numero2 or numero2 == numero3 or numero1== numero3:
print("hay dos numeros iguales")
Elabore un programa de computador que lea los siguientes datos para un número
desconocido de personas:
• Edad de la persona
• Sexo (1 si es masculino, 2 si es femenino)
• Estado civil (1 si es soltero, 2 si es casado)
Se desea saber:
Nota: Solo pueden votar los que tengan 18 años cumplidos ó más.
Conta_puede_votar = 0
Conta_no_puede_votar = 0
Total_personas = 0
while True:
Total_personas += 1
edad = int(input("Digite su edad (años): "))
sexo = int(input("Digite sexo (1: hombre; 2: mujer): "))
esci = int(input("Digite estado civil (1: soltero; 2: casado): "))
if edad >= 18:
Conta_puede_votar += 1
else:
Conta_no_puede_votar += 1
sw = input("Desea continuar (s: si; n: no ==> ")
if sw == "n":
break
print ("Total personas que pueden votar: ", Conta_puede_votar)
print ("Total personas que no pueden votar: ", Conta_no_puede_votar)
print("Fin del programa...")
Bucles infinitos
Los bucles infinitos deben evitarse pues significan perder el control del programa.
Cada lenguaje de programación utiliza una combinación de teclas para interrumpir la
ejecución de un bucle infinito: por ejemplo, en Python para interrumpir un bucle
infinito, hay que pulsar la combinación de teclas Ctrl+C.
i=1
while i <= 10: Imprime infinitamente (nunca sale del ciclo)
print(i, "", end="") 1 1 1 1 1 1 1 1 ...
i=1
while i > 0:
print(i, "", end="") Imprime infinitamente (nunca sale del ciclo)
i += 1 1 2 3 4 5 6 7 8 9 10 11 ...
cuenta = 0
i=1
while i <= 100:
if i % 7 == 0:
cuenta = cuenta + 1
print (i, " es multiplo de 7")
i=i+1
print("Desde 1 hasta 100 hay", cuenta, "múltiplos de 7")
Detalles importantes:
Variable Acumulador
Se entiende por acumulador una variable que acumula el resultado de una operación.
El ejemplo siguiente es un ejemplo de programa con contador.
Ejemplo: Elaborar un algoritmo que nos imprima la suma de los primeros 4 números
enteros positivos (1, 2, 3 y el 4).
suma = 0
i=1
while i <= 4:
suma = suma + i
i=i+1
print("Suma de los enteros entre 1 y 4: ", suma)
Detalles importantes:
• El acumulador se modifica en cada iteración del bucle. (en este caso, el valor
de i se añade al acumulador suma).
• Antes del bucle se debe dar un valor inicial al acumulador (en este caso, 0)
• Código
• Nombre
• Nota1
• Nota2
Definitiva = (Nota1+Nota2)/2
Nos piden:
1. Imprimir Código y la definitiva de cada estudiante
2. Calcular e Imprimir el promedio del grupo
3. Calcular e Imprimir el número de estudiantes (Cuántos?) con definitiva
superior o igual al promedio del grupo.
4. Calcular e Imprimir cuáles estudiantes tienen definitiva superior o igual al
promedio del grupo. Imprima el código y el nombre de cada uno de estos.
5. Imprimir los datos de cada estudiante, ordenados
(ascendentemente/descendente) por la definitiva.
6. Imprimir los datos de cada estudiante, ordenados
(ascendentemente/descendente) por la nombre.
#Forma 1
print ("Forma 1")
for i in range(1, 10, 1):
print ("i=", i)
#Forma 2
print ("Forma 2")
for i in range(1,10,2):
print ("i=", i)
#Forma 3
print ("Forma 3")
for i in range(10):
print ("i=", i)
#Forma 4
print ("Forma 4")
for i in range(3, 5):
print ("i=", i)
Ejercicios
Ejemplo: Elaborar un algoritmo que lea N parejas de números, por cada pareja debe imprimir
el mayor y el menor. Imprima un mensaje especial si los números son iguales. Reemplace el
while por un for.
Solución [for]
En Python break y continue son dos sentencias que alteran el flujo de un ciclo,
haciendo que se detenga o que continue dependiendo de la condición que se
plantee.
Las sentencias Break y Continue sólo se pueden utilizar dentro de un ciclo (while o
for).
La sentencia Break
Observa que solamente se imprimen los números del 0 al 10, por el condicional que
se cumple cuando x = 10. Al mismo tiempo dentro del condicional puedes ubicar
cualquier condición de cualquier tipo para que el ciclo se detenga usando break.
La sentencia Continue
Observa que la sentencia continue hace que el ciclo continue aun así haya terminado
con un proceso en específico y salta enseguida a la siguiente iteración. En este
programa podrás observar que cuando x toma el valor de 10 no lo imprime porque
pasa directamente a la siguiente iteración y pasa a imprimir el resto de número,
ejecútalo veras como en la secuencia de números impresos solo hace falta del
número 10.
EJEMPLO:
Y = (a**N)/N!
Numerador = a**N
Denominador = N! =1x2x3x4x5x…x(N-1)xN
Y = Numerador / Denominador