01-Fundamentos Prog Unidad 004 Python
01-Fundamentos Prog Unidad 004 Python
Python GERENCIAL
FUNDAMENTOS DE PROGRAMACIÓN
I SEMESTRE
2
VARIABLES Y CONSTANTES
Las variables permiten almacenar datos del programa. Estas serán de un tipo u
otro en función de la información que se guarde en ellas.
import math
# VARIABLES
x=3+9 # variable entera
y=20
z=x/y # variable decimal
si=True # variable lógica
no=not si
print(x, y, z, si, no )
12 20 0.6 True False
Las constantes son valores que se mantiene fijos a lo largo de la ejecución del
Programa. Se recomienda que las constantes sean declaradas en mayúsculas
1 import math
2 # constantes
3 CONST_PI=(math.pi)
4 print(CONST_PI)
5 print(math.tau)
6 print(math.e)
7 3.141592653589793
8 6.283185307179586
9 2.718281828459045
3
ENTRADA Y SALIDA DE DATOS
4
ENTRADA DE DATOS
5
ENTRADA DE DATOS
• La función input() puede hacer algo más: puede mostrar un
mensaje al usuario sin la ayuda de la función print().
• Se ha modificado el ejemplo un poco, observa el código:
algo = input("Dime algo...")
print("Mmm...", algo, "...¿En serio?")
NOTA
• La función input() al ser invocada con un argumento, contiene
una cadena con un mensaje.
• El mensaje será mostrado en consola antes de que el usuario
tenga oportunidad de escribir algo.
• Después de esto input() hará su trabajo.
• Esta variante de la invocación de la función input() simplifica
el código y lo hace más claro.
6
ENTRADA DE DATOS
7
ENTRADA DE DATOS
8
SALIDA DE DATOS
Peter John
Peter John
9
SALIDA DE DATOS
10
SALIDA DE DATOS
11
SALIDA DE DATOS
12
SALIDA DE DATOS
Ejercicio
print("Mi", "nombre", "es", sep="_", end="*")
Mi_nombre_es*Monty*Python.*
13
Tipos de Datos
Números
en Python se pueden representar números enteros, reales y complejos.
Enteros
Los números enteros son aquellos números positivos o negativos que no tienen
decimales (además del cero). En Python se pueden representar mediante el tipo int
(de integer, entero) o el tipo long (largo). La única diferencia es que el tipo long
permite almacenar números más grandes. Es aconsejable no utilizar el tipo long a
menos que sea necesario, para no malgastar memoria.
x=10 # variable numérica tipo entera
entero = 23
También podemos indicar a Python que un número se almacene usando long añadiendo una L al
final:
# type(entero) devolvería long
entero = 23L
14
Tipos de Datos
Reales
Los números reales son los que tienen decimales. En Python se expresan mediante el tipo float.
Para representar un número real en Python se escribe primero la parte entera, seguido de un
punto y por último la parte decimal.
También se puede utilizar notación científica, y añadir una e (de exponente) para indicar un
exponente en base 10. Por ejemplo:
Complejos
Los números complejos son aquellos que tienen parte imaginaria. Si no conocías de su existencia,
es más que probable que nunca lo vayas a necesitar, por lo que puedes saltarte este apartado
tranquilamente.
Los números complejos en Python se representan de la siguiente forma:
complejo = 2.1 + 7.8j
15
Tipos de Datos
CADENAS (STRING)
Las cadenas no son más que texto encerrado entre comillas simples (‘cadena’) o dobles (“cadena”).
Dentro de las comillas se pueden añadir caracteres especiales escapándolos con \, como \n, el carácter de
nueva línea, o \t, el de tabulación.
• nombres="SEBASTIAN CARLO"
• print(nombres)
SEBASTIAN CARLO
Concatenación de strings
Es posible unir dos strings con el operador + :
Print
(nombres + apellidos) # concatenar
SEBASTIAN CARLO WRITE SMITH
16
Tipos de Datos
17
Tipos de Datos
Es posible obtener un caracter concreto de un string utilizando los corchetes [] y el índice del caracter al
que queremos acceder:
• frase = 'Aprendiendo a programar en Python'
• print(frase[0]) # devuelve el primer carácter
• print(frase[1]) # devuelve el segundo carácter
• print(frase[-1]) # devuelve el primer carácter empezando por el final
• print(frase[-2]) # # devuelve el segundo carácter empezando por el final
Si queremos obtener un substring, utilizaremos la siguiente notación:
• frase = 'Aprendiendo a programar en Python'
• mi_substring = frase[0:5]
• print(mi_substring)
• Apren
En caso de dejar la primera variable vacía, se considera la primera posición del string. Dejando la
segunda variable vacía se considera la última posición del string:
• mi_substring = frase[:5]
• # Apren
• mi_substring = frase[4:]
• # 'ndiendo a programar en Python
18
Tipos de Datos
Otros Métodos en cadenas de texto (string)
posible obtener un carácter concreto de un string utilizando los corchetes [] y el índice del
carácter al que queremos acceder:
•
len(str) # devuelve la longitud del string
• str.upper() # convierte a mayúsculas
• str.lower() # convierte a minúsculas
• str.title() # convierte a mayúsculas la primera letra de cada palabra
• str.count(substring [,inicio, fin]) # devuelve el número de veces
• que aparece
• # el substring en el string. Opcionalmente se puede indicar el inicio
y fin.
• str.find(‘d’) # devuelve el índice de la primera aparición de 'd'
• # (devolverá -1 si no lo encuentra)
• substr in str # devuelve True si el string contiene el substring
• str.replace(old, new [, count]) # reemplaza 'old' por 'new' un máximo
de 'count' veces
• str.isnumeric() # devuelve True si str contiene solamente número
19
Operadores y expresiones
Operadores aritméticos
Los operadores aritméticos se utilizan para realizar operaciones matemáticas
(suma, resta, multiplicación,…). La tabla siguiente contiene todos los
operadores aritméticos permitidos por Python:
20
Operadores y expresiones
Operadores aritméticos
Los operadores aritméticos se utilizan para realizar operaciones matemáticas
(suma, resta, multiplicación,…). La tabla siguiente contiene todos los
operadores aritméticos permitidos por Python:
21
Operadores y expresiones
Operadores relacionales o de comparación
Los operadores relacionales se utilizan para comparar valores y devuelven
como resultado un booleano: True o False.
22
Estructuras de Control
Condicionales
Las estructuras de control se utilizan para ejecutar bloques de código en
función de condiciones.
Sentencia IF – ELSE
• # condiconal simple
• numero = 5
• if numero > 1 and numero <10:
• print("Es mayor que 1")
• # Se ejecutará cuando la condición sea True
• #condiconal doble
• numero = 2
• if numero > 10:
• # Se ejecutará cuando la condición sea True
• print("Es mayor que diez")
• else:
• # Se ejecutará cuando la condición sera False
• print("Es menor o igual que diez")
23
Estructuras de Control
Condicionales
Sentencia ELIF
• #condicional if aninada
• numero = int(input("Ingrese un número: "))
• if numero > 0:
• print("El número es positivo")
• elif numero ==0:
• print("El número es igual a cero ")
• else:
• print("El número es negativo")
24
Estructuras de Repetición
Sentencia WHILE
• contador = 0
• while(contador < 5):
• # Se ejecutará mientras la variable contador sea menor a 5.
• contador = contador+1
• print("Iteración número",contador)
• print ("¡Fin!")
Sentencia break
• #interrumpir el loop con Break
• contador = 0
• while(contador < 5):
• contador = contador+1
• print("Iteración número",contador)
• if contador == 3:
• break
• print ("¡Fin!")
25
Estructuras de Repetición
Sentencia continue
• # También es posible saltar únicamente la iteración actual mediante la sentencia continue:
• contador = 0
• while(contador < 5):
• contador = contador+1
• if contador == 3:
• continue
• print("Iteración número {}".format(contador))
• print ("¡Fin!")
Bucle WHILE con ELSE
La expresión else puede utilizarse también tras un bloque while. De este forma podemos definir
un bloque de código que se ejecutará una vez finalizado el bloque while (es decir, cuando la
condición se evalúe False y no se haya finalizado mediante un break):
• count = 0
• while(count < 5):
• count = count+1
• print("Iteración número {}".format(count))
• else:
• print("Bucle while finalizado")
26
Estructuras de Repetición
Sentencia For
27
Estructuras de Repetición
Función Range
La función range([start,] stop [, step]) devuelve una secuencia de números. Es por ello
que se utiliza de forma frecuente para iterar:
• for i in range(3):
• print(i)
#012
También podemos indicar el inicio, fin y step:
• #Manejo por inicio y fin
• print("Números del 5 al 10")
• for i in range(5, 10):
• print(i, end=', ')
# 5, 6, 7, 8, 9,
• print("Números impares del 1 al 10")
• for i in range(1, 10, 2):
• print(i, end=', ’)
#1, 3, 5, 7, 9,
28
Estructuras de Repetición
Sentencia For
Para detener una ejecución se utiliza la sentencia break:
• #para detener el For se usa Break
• numeros = [4,8,2,7,1,9,3,5]
• total = 0
•
for n in numeros:
• total += n
• if total > 10:
• break
• print(total)
Al igual que en otras estructuras de repetición, también es posible saltar únicamente la iteración
actual mediante la sentencia continue:
• # solo sumar los números impares
• for num in numeros:
• if num % 2 == 0:
• print("Numero par, no lo sumamos")
• continue
• total += num
• print(total)
29
Manejo de Excepciones
Try y Except
Los errores detectados durante la ejecución se llaman excepciones
Existen estructuras de ejecución condicional dentro de Python para manejar este tipo
de errores esperados e inesperados, llamadas “try / except”. La idea de try y except es
que si se sabe que cierta secuencia de instrucciones puede generar un problema, sea
posible añadir ciertas sentencias para que sean ejecutadas en caso de error. Estas
sentencias extras (el bloque except) serán ignoradas si no se produce ningún error.
• ent = input('Introduzca la Temperatura Fahrenheit:')
• try:
• fahr = float(ent)
• cel = (fahr - 32.0) * 5.0 / 9.0
• print(cel)
• except:
• print('Por favor, introduzca un número')
Python comienza ejecutando la secuencia de sentencias del bloque try. Si todo va bien, se saltará
todo el bloque except y terminará. Si ocurre una excepción dentro del bloque try, Python saltará
fuera de ese bloque y ejecutará la secuencia de sentencias del bloque except.
30
Manejo de Excepciones
Try y Except
Algunos ejemplos de Excepciones:
ZeroDivisionError: division by zero
TypeError: can only concatenate str (not "int") to str
ValueError: only correct values
while True:
try:
x = int(input("Por favor ingresa un valor. : "))
break
except ValueError:
print("Oops! Esto no es un número válido. Intenta otra vez...")
31
Funciones
Definir y Llamar a una función
Para definir una función se escribe la palabra reservada def seguida del nombre de la
función y sus parámetros entre paréntesis.
Para llamar a una función solo hay que escribir el nombre de la función seguida de los
parámetros (si los hubiera) entre paréntesis.
# funciones sin parámetro
def saludo():
print('Bienvenidos a la clase de Fundamentos de programación')
print('hoy 02 de septiembre del 2021')
saludo()
# funciones con parámetro
def saludo(nombre, apellido):
print(f'Bienvenido {nombre} {apellido} a la clase de Fundamentos de
programación')
saludo('David', 'Cárdenas')
32
Funciones
Definir y Llamar a una función
Existen dos tipos de parámetros o argumentos:
• Parámetros posicionales: la posición en la que se pasan importa
• Parámetros con palabra clave (keyword arguments): la posición no importa, se
indica una clave para cada parámetro.
def suma(a, b):
resultado = a + b
print(resultado)
33
Funciones
ALCANCE O ÁMBITO DE VARIABLES
• El ámbito de una variable (scope) se refiere a la zona del
programa dónde una variable “existe”. Fuera del ámbito de una
variable no podremos acceder a su valor ni manejarla.
• Los parámetros y variables definidos en una función no estarán
accesibles fuera de la función. A este ámbito se le conoce como
ámbito local. Es importante mencionar que una vez ejecutada una
función, el valor de las variables locales no se almacena, por
lo que la próxima vez que se llame a la función, ésta no
recordará ningún valor de llamadas anteriores.
def miFuncion():
var = 2
print("¿Conozco a aquella variable?", var)
var = 1
miFuncion()
print("El valor de la varaible var en el programa es ",var)
¿Conozco a aquella variable? 2
El valor de la varaible var en el programa es 1
34
Funciones
Alcance de una función
variables locales
# aquellas cuyo valor se mantiene solo dentro de la función
# se usa la palabra reservada global
def miFuncion():
var = 2
print("Ámbito dentro de la función", var)
var = 1
miFuncion()
print("Ámbito fuera de la función", var)
Ámbito dentro de la función 2
Ámbito fuera de la función 1
variables globales
# aquellas cuyo valor se mantiene dentro y fuera de la función
# se usa la palabra reservada global
def miFuncion():
global var
var = 2
print("Ámbito dentro de la función", var)
var = 1
miFuncion()
print("Ámbito fuera de la función", var)
Ámbito dentro de la función 2
Ámbito fuera de la función 2
35
Funciones
Intercambio de datos en funciones
#Funciones con intercambio de datos (un solo valor)
def suma(num1, num2):
resulsuma=num1+num2
return resulsuma # devuelve un valor de la función
x=1
y=20
z=0
z=suma(x,y)
print(f'La suma de {x} + {y} es {z}’)
x=10
y=20
z=0
z, w =opera(x,y)
print(f'La suma de {x} + {y} es {z}')
print(f'La resta de {x} - {y} es {w}')
36
Estructuras de datos: Listas
¿Qué son las listas?
• La lista es un tipo de colección ordenada. Sería
equivalente a lo que en otros lenguajes se conoce
por arrays.
• Las listas pueden contener cualquier tipo de dato:
números, cadenas, booleanos, ... y también listas.
Métodos de creación
• Crear una lista es tan sencillo como indicar entre
corchetes, y separados por comas, los valores que
queremos incluir en la lista Ejemplo:
lista = [1, 10.0, 'David', True, 100]
37
Estructuras Listas
Métodos de acceso
lista = [1, 10.0, 'David',True, 100]
Las listas se pueden acceder mediante el uso
de un índice
print(lista[0])
1
Los índices en Python empiezan por cero(0)
Se pueden acceder por medios de índices en
negativo Ej.
Este acceso nos permite obtener el último
dato de una lista
print(lista[-1])
100
38
Estructuras Listas
# Inicializando valores de la lista
lista=[0,0,0,0,0] #inicializar la lista
con 5 elementos con zeros
lista=[0]*5 # otra manera de inicializar
print(lista)
[0,0,0,0,0]
# llenando la lista con datos ingresados
por teclado
for i in range(5):
lista[i]=int(input(f'ingrese los
valores de la lista en su posición
[{i}] '))
print(lista)
39
Estructuras Listas
#Acceso de elementos de una lista
lista = [1, 10.0, 'David', [1, 5], True, 100]
print(lista[0])
print(lista[-1])
1
100
40
Estructuras Listas
QUITAR UN ELEMENTO DE LA LISTA
no se realiza por posición, sino por el contenido
#lista.remove(0) # remuevo el valor zero de la lista
(no existe)
lista.remove(50) # el valor 50 de la lista
print(lista)
41
Estructuras Listas
Invertir el orden de una lista
lista2=[8, 3, 4, 10, 23, 1, 15, 0]
print(lista2)
lista2.reverse()
print(lista2)
[8, 3, 4, 10, 23, 1, 15, 0]
[0, 15, 1, 23, 10, 4, 3, 8]
Obtener el máximo y el mínimo valor de una lista
lista2=[8, 3, 4, 10, 23, 1, 15, 0]
print(lista2)
maxvalor=max(lista2)
print(maxvalor)
minvalor=min(lista2)
print(minvalor)
[8, 3, 4, 10, 23, 1, 15, 0]
23
0
42
Estructuras Listas
OPERACIONES DE LISTAS
lista3=[10, 20, 30, 40, 50, 60]
lista4=[1, 2, 3, 4, 5, 6]
# sumando listas
lista5=sum(lista3)
print(lista5)
# sumando 2 listas
lista6=sum(lista3+lista4)
print(lista6)
# Obteniendo el promedio de una lista
promedio=sum(lista3)/len(lista3)
print(promedio)
print(lista3*2)
for i in range(len(lista3)):
lista3[i]=lista3[i]*10
print(lista3)
210 231 35.0 [10, 20, 30, 40, 50, 60, 10, 20, 30, 40, 50, 60]
[100, 200, 300, 400, 500, 600]
43
Estructuras Arreglos
Librería
Para manejar arreglos se debe importar la librería numpy
• # Arreglos
• # Se debe primero importarla librería numpy
• import numpy as np
Definición de Arreglos
• # Defino arreglo con tamaño 4
• # En python los arreglos deben llenarse con valores primero
• a=np.array([0, 1, 2, 3])
• Ese arreglo es un vector de tamaño 4
44
Estructuras Arreglos
Otra manera de definir un arreglo es mediante arrange
• c=np.arange(3, 7) #llena el arreglo con valores de 3, 4, 5, 6, 7
• print (c)
• #Otra manera de definir un arreglo es mediante zeros
• d=np.zeros(3) #llena el arreglo con valores de 0, 0, 0
• print (d)
• # definir un arreglo es mediante zeros
• e=np.ones(5) #llena el arreglo con valores de 1, 1, 1,
1,1
• print (e)
• # llena de arreglos con valores por pantalla
• for i in range(0, e.size):
• e[i]=float(input(f"ingrese el valor del elemento {[i]
} del vector : "))
• print(e)
•
45
PREGUNTAS