John Cardozo
Software Engineer
John Cardozo
John Cardozo
lenguaje de programación de propósito general
Creado en 1991 por Guido Van Rossum
Multiplataforma
Interpretado, no compilado
Readability
Tipos de datos dinámicos
Librerías (batteries included)
48.07%
Febrero 14, 2023
http://cacm.acm.org/blogs/blog-cacm/176450-python-is-now-the-most-popular-introductory-teaching-language-at-top-u-s-universities/fulltext
Universidades
1. Carnegie Mellon
1. MIT
1. Standford
1. UC Berkeley
5. UIUC
6. Cornell
6. Washington
8. Princeton
9. Georgia Tech
Aplicaciones de escritorio
Aplicaciones web
Redes Definidas por Software - SDN
Procesamiento de grandes volúmenes de información
Big Data
Análisis de señales
Administración de servidores
Procesamiento de imágenes
Transmisión y modulación de datos
Administración de sistemas SCADA
Análisis de datos
Sistemas embebidos
Desarrollo de video juegos
Diseño y visualización 3D
Aplicaciones de consola
https://www.python.org/about/success/
Instalación de Python
Variables
Expresiones aritméticas
Strings
Listas y matrices
Ciclos
Expresiones Booleanas
Condicionales
Funciones
Datos por teclado
Windows
Linux
Mac
AS/400
BeOS
MorphOS
MS-DOS
OS/2
OS/390
RISC
Series 60
Solaris
VMS
WindowsCE
HP-UX
Descarga del sitio oficial
Sólo para instalación en Windows
Verificación de instalación en la Terminal
py nombre_archivo.py
py -m nombre_archivo
python nombre_archivo.py
python3 -m nombre_archivo
o
o
Asignación de constantes
# Asignación int
altura = 3
base = 4
# Asignación str
nombre = 'Catalina'
# Asignación float
area = 4.3
# Asignación boolean
es_adulto = False
Asignación de expresiones
# Asignación
area = (base * altura) / 2
Acceso a variable no definida
print(n)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'n' is not defined
Tipos de dato
int
Valores numéricos enteros
float
Valores numéricos con fracción
str
Cadenas de caracteres
boolean
true | false
# Este es un comentario
x = 5
Operaciones básicas
a = 5 + 4
b = 5 - 4
c = 5 * 4
d = 5 / 4
# El valor de a es 25
a = 45 - 2 * 10
# El valor de a es 4.0
a = 8 / 2
# El valor de a es el entero 1
a = 5 // 4
# El valor de a es 2
a = 20 % 6
# El valor de a es 25
a = 5 ** 2
Comentarios
División que descarta la fracción
La división siempre genera un valor float
Operador módulo
Operador potencia
Precedencia de operadores
Solicitando datos al usuario
nombre = input('Por favor, digite su nombre: ')
# Imprime los datos digitados por el usuario
print(nombre)
Transformando el tipo de dato de una variable
# Pide la edad al usuario
edad = input('Digite su edad: ')
print(edad)
# Convierte el string en entero
edad_entero = int(edad)
# Convierte el string en float
edad_float = float(edad)
# Convierte un entero en string
cadena = str(30)
cadenas de caracteres
cadena = 'hola mundo'
# Imprime doesn't
print('doesn\'t')
# Imprime doesn't
print("doesn't")
# Imprime hola mundo
print('hola mundo')
# Imprime:
# C:\algun
# ombre
print('C:\algun\nombre')
# Imprime C:\algun\nombre
print(r'C:\algun\nombre')
# r antes del string (raw string)
raw strings
Imprimir en terminal
comillas simples
escapar comilla simple
cadena = "hola mundo"
comillas dobles
# Cadena de ejemplo
palabra = 'Python'
# Primer caracter de la cadena (P)
primero = palabra[0]
# Quinto caracter de la cadena (n)
quinto = palabra[5]
# Último caracter (n)
ultimo = palabra[-1]
# Segundo caracter desde el final (o)
antepenultimo = palabra[-2]
# Intenta modificar una posición de la cadena
palabra[0] = 'J'
...
TypeError: 'str' object does not support item assignment
Acceso a las posiciones por índice
Subíndices negativos
Los strings son inmutables
# Caracteres desde la posición 0 (incluido) a 2 (excluido)
# 'Py'
cadena1 = palabra[0:2]
# Caracteres de la posición 2 (incluido) a 5 (excluido)
# 'tho'
cadena2 = palabra[2:5]
palabra = 'Python'
# caracteres desde el principio a la posición 2 (excluida)
# 'Py'
cadena3 = palabra[:2]
# caracteres desde la posición 4 (incluida) al final
# 'on'
cadena4 = palabra[4:]
# caracteres desde el segundo desde el final (incluido) al final
# 'on'
cadena5 = palabra[-2:]
substrings
omitiendo la posición inicial o la final
frase de ejemplo
frase = 'python es un lenguaje'
Obtiene la longitud de un string
# Longitud = 21
longitud = len(frase)
Verifica si un string termina con otro string
# termina = True
termina = frase.endswith('je')
Verifica si un string contiene otro string
# contiene = True
contiene = 'es' in frase
Obtiene la posición de un string en otro string (-1 si no lo encuentra)
# posicion = 10
posicion = frase.find('un')
Formatea una cadena
edad = 18
nombre = 'Catalina'
# Da formato a la cadena
formato = f'{nombre} tiene {edad} años'
# Imprime 'Catalina tiene 18 años'
print(formato)
Capitaliza las palabras de una cadena
# a = 'Python Es Un Lenguaje'
a = frase.title()
Cantidad de ocurrencias
# cantidad = 3
cantidad = frase.count('e')
Verifica si todos los caracteres son:
a = frase.isalnum()
Alfanuméricos
a = frase.isalpha()
Letras
a = frase.isdecimal()
Números
a = frase.islower()
Minúsculas
a = frase.isupper()
Mayúsculas
Convierte a minúsculas
# a = python es un lenguaje
a = frase.lower()
Convierte a mayúsculas
# a = PYTHON ES UN LENGUAJE
a = frase.upper()
Reemplaza caracteres
# a = 'python 3s un l3nguaj3'
a = cadena.replace('e', '3')
Operadores booleanos
Operador | Operación |
---|---|
> | Mayor |
< | Menor |
>= | Mayor o igual |
<= | Menor o igual |
== | Igual |
!= | Diferente |
and | y |
or | o |
not | negación |
edad = 15
# resultado = True
resultado = edad > 10
# resultado = False
resultado = edad < 5
# resultado = False
resultado = edad == 10
# resultado = False
resultado = edad != 15
# resultado = True
resultado = edad >= 15
# resultado = True
resultado = edad > 10 and edad < 20
# resultado = False
resultado = edad > 10 and edad <= 14
# resultado = True
resultado = not(edad != 15)
# resultado = True
resultado = edad > 20 or edad < 16
valor = int(input("Digite un valor entero: "))
if valor < 0:
valor = 0
print('El valor negativo cambio a cero')
elif valor == 0:
print('Cero')
elif valor == 1:
print('Uno')
else:
print('No digitó ni cero, ni uno, ni un valor negativo')
if (una opción)
edad = int(input("Edad? "))
if edad > 18:
print('Es mayor de edad')
if - else if (múltiples opciones)
edad = int(input("Edad? "))
if edad > 18:
print('Es mayor de edad')
else:
print('Es menor de edad')
if - else (dos opciones)
while
# Inicialización
i = 0
# Condición
while i < 3:
print(i)
# rompimiento
i = i + 1
for - range(x)
# Recorre el rango
for numero in range(3):
# Imprime el valor
print(numero)
for - range(x, y)
# Recorre el rango
for numero in range(5, 8):
print(numero)
for - range(x, y, z)
# Recorre el rango
for valor in range(0, 10, 3):
# Imprime el valor
print(valor)
0
1
2
0
1
2
5
6
7
0
3
6
9
# Vacio
numeros = []
# Con valores iniciales
numeros = [1, 4, 9, 16, 25]
# a = 1
a = números[0]
# b = 25
b = números[-1]
# [9, 16, 25]
sub_lista = números[-3:]
# resultado = [1, 4, 9, 16, 25, 36, 49, 64, 81]
resultado = numeros + [36, 49, 64, 81]
# a = 9
a = len(numeros)
Declaración
Acceso a elementos
Concatenar listas
Longitud de lista
numeros[2] = 10
# numeros = [1, 20, 25, 30, 25, 110]
numeros.append(110)
# numeros = [1, 20, 25, 30, 25]
numeros[1:4] = [20, 25, 30]
# numeros = [1, 10, 30, 25, 110]
numeros[2:4] = []
posicion = 1
valor = 10
# Inserta el valor en la posicion
numeros.insert(posicion, valor)
# numeros = [1, 10, 20, 25, 30, 25, 110]
Modificar de un elemento de la lista
Modificar parte de una lista
Agregar elementos a una lista
Eliminar parte de una lista
Insertar elementos a una lista
# Definición de la lista
bandas = ['guns', 'acdc', 'u2', 'aerosmith']
# Cuenta ocurrencias de un elemento en la lista
bandas.count('u2')
# Obtiene el índice de un elemento en la lista
bandas.index('acdc')
# Invierte la lista
bandas.reverse()
# Agrega un elemento a la lista
bandas.append('metallica')
# Ordena la lista (ascentente)
bandas.sort()
# Ordena la lista (descendente)
bandas.sort(reverse=True)
# Elimina el ultimo elemento de la lista
bandas.pop()
# Elimina un elemento de la lista
bandas.remove('guns')
Recorrido de una lista con for con iterador
# Definición de la lista
bandas = ['Guns and Roses', 'ACDC', 'U2', 'Aerosmith']
# Recorrido de la lista
for banda in bandas:
# Imprime el elmento actual
print(banda, len(banda))
# Definición de la lista
bandas = ['Guns and Roses', 'ACDC', 'U2', 'Aerosmith']
# Recorrido de la lista
for indice in range(len(bandas)):
# Imprime el elemento actual
print(indice, bandas[indice])
Listas por comprehension
# Generar x al cuadrado para cada x en el rango desde 0 a 9
squares = [x**2 for x in range(10)]
Guns and Roses 14
ACDC 4
U2 2
Aerosmith 9
Resultado
0 Guns and Roses
1 ACDC
2 U2
3 Aerosmith
Resultado
Recorrido de una lista con for usando el índice
letras = ['a', 'b', 'c']
numeros = [1, 2, 3]
# combinacion = [
# ['a', 'b', 'c'],
# [ 1, 2, 3 ]
# ]
combinacion = [a, n]
# x = ['a', 'b', 'c']
x = combinacion[0]
# y = 'b'
combinacion[0][1]
Declaración de listas
Listas anidadas = matrices
Accediendo por subíndice
while (recorriendo una matriz por subíndices)
# Definicion de la matriz
matriz = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
]
# Variables de inicio
fila = 0
col = 0
# len(matriz) = cantidad de elementos en la matriz
while fila < len(matriz):
col = 0
# len(matriz[fila]) = cantidad de elementos cada sublista
while col < len(matriz[fila]):
# Imprime usando 2 subindices
print(str(matriz[fila][col]), end = '\t')
col = col + 1
print('\n')
fila = fila + 1
for (recorriendo una matriz por iteración)
# Definicion de la matriz
matriz = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
]
# Para cada lista en la matriz
for lista in matriz:
# Para cada elemento en la lista
for elemento in lista:
# Imprime el elemento
print(elemento, end='\t')
# Imprime bajar al siguiente renglón
print('\n')
Definición de la función
# Definición de función
def es_par(numero):
if(numero % 2 == 0):
return True
else:
return False
# Retorna True
es_par(2)
# Retorna False
es_par(5)
Uso de la función
import math
# Imprime 3.141592653589793
print(math.pi)
importar un paquete
def calculo_multiple(num1, num2):
suma = num1 + num2
resta = num1 - num2
return suma, resta
s, r = calculo_multiple(10, 8)
Las funciones pueden retornar varios valores
Definicion de variables globales y funciones
FC = 1
CF = 2
SALIR = 3
def menu():
print('1. Fahrenheit a Celsius')
print('2. Celsius a Fahrenheit')
print('3. Salir')
opcion = input('Digite su opcion: ')
return int(opcion)
def fahrenheit_a_celsius(grados):
nuevos_grados = ((grados - 32) * 5) / 9
return nuevos_grados
def celsius_a_fahrenheit(grados):
nuevos_grados = ((grados * 9) / 5) + 32
return nuevos_grados
Programa que hace uso de las funciones
while True:
# Pide la opcion de menú al usuario
opcion = menu()
# Verifica la opcion del usuario
if opcion == FC:
# Pide los grados al usuario
grados_f = float(input('Digite los grados fahrenheit: '))
# Hace la conversion
resultado = fahrenheit_a_celsius(grados_f)
# Muestra el resultado
print(f'{grados_f}° F son {resultado}° C')
elif opcion == CF:
# Pide los grados al usuario
grados_c = float(input('Digite los grados celsius: '))
# Hace la conversion
resultado = celsius_a_fahrenheit(grados_c)
# Muestra el resultado
print(f'{grados_c}° C son {resultado}° F')
elif opcion == SALIR:
break
else:
print('Opcion no válida')
johncardozo@gmail.com
By John Cardozo
Python 3: Lenguaje, ejecución, variables, estructuras de control y repetición, strings, listas, matrices, funciones