FUNDAMENTOS DE PROGRAMACIÓN EN PYTHON 3

FUNDAMENTOS DE PROGRAMACIÓN EN PYTHON 3

John Cardozo

John Cardozo

qué es python?

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)

quién usa python?

tendencia: stackoverflow

48.07%

tendencia: google trends

Febrero 14, 2023

tendencia: github

crecimiento y tendencia

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

ámbitos de uso

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/

contenido

Instalación de Python

Variables

Expresiones aritméticas

Strings

Listas y matrices

Ciclos

Expresiones Booleanas

Condicionales

Funciones

Datos por teclado

instalación de python

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

agregar python al path: solo en windows

Sólo para instalación en Windows

python instalado

Verificación de instalación en la Terminal

ejecucion de un script en python

py nombre_archivo.py
py -m nombre_archivo
python nombre_archivo.py
python3 -m nombre_archivo

o

o

variables

variables

variables

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

operadores aritméticos

# 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

datos por teclado

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)

strings

strings

cadenas de caracteres

strings

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

strings

# 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

strings

# 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

métodos de strings (1)

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()

métodos de strings (2)

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')

expresiones booleanas

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

condicionales

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)

ciclos

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

listas

listas

listas

# 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

listas

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

funciones de listas

# 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')

ciclos en listas

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

matrices - listas anidadas

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

ciclos en matrices - while

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

ciclos en matrices - for

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')

funciones

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

ejemplo de funciones (1)

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

ejemplo de funciones (2)

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')
    

john cardozo

johncardozo@gmail.com

Python: Fundamentos de Programación

By John Cardozo

Python: Fundamentos de Programación

Python 3: Lenguaje, ejecución, variables, estructuras de control y repetición, strings, listas, matrices, funciones

  • 1,815