Introducción a Python
Luisa María Zapata Saldarriaga
2023
Una Facultad abierta
y transformadora
Una Facultad abierta y transformadora ‹Nº›
Python
Una Facultad abierta y transformadora
Python
Lenguaje de programación…
⚬ De alto nivel
⚬ De propósito general
⚬ De fácil lectura
⚬ Interpretado
Creado por el holandés Guido
van Rossum en 1989 y popular
desde su versión 2.0 lanzada
en el 2000. Actualmente trabaja
en Dropbox.
Ventajas Python
• Es de código abierto (certificado por la OSI).
• Es interpretable y compilable.
• Es fácil de aprender gracias a que su sintaxis es bastante
legible para los humanos.
• Es un lenguaje maduro (29 años).
• Es fácilmente extensible e integrable en otros lenguajes (C,
java).
• Esta mantenido por una gran comunidad de desarrolladores y
hay multitud de recursos para su aprendizaje.
Tipos de ejecución
Interpretado en la consola de Python
Se ejecuta cada instrucción que introduce el usuario de manera
interactiva.
Interpretado en fichero
Se leen y se ejecutan una a una todas las
instrucciones del fichero.
Descargar e instalar
• Python
[Link]/downloads/
• Spyder
[Link]
• Visual Studio Code
[Link]
• La plataforma de desarrollo Anaconda:
[Link]
Programas en Python
Un programa Python está compuesto por una
secuencia de instrucciones que son ejecutadas
por el intérprete en una terminal.
print('Hola')
name = input('¿cúal es su nombre?: ')
pers = 12
print(name,'Hay', pers, 'personas')
Sintaxis: reglas para un programa válido
Semántica: significado de un programa
Objetos de datos (Data objects)
En Python, a los datos se les llama objetos y
pueden ser escalares o no-escalares.
Los objetos escalares pueden ser de tipo:
int: números enteros (ej: 5)
float: números reales (ej: 3.465)
bool: True y False (verdadero y falso)
None: vacío (ausencia de datos)
Variables
En Python, las variables son nombres que se
pueden relacionar con los objetos de datos.
memoria
base = 10
base
height = 3 10
area = base*height/2 height
b = base 3
b = 8 area
15
b 8
Variables
Una variable es la que permite
almacenar un valor al asignarlo a un
nombre el cual puede ser utilizado para
referirse al valor más adelante en el
programa.
Para asignar una variable, se utiliza el
signo igual ( = ). A diferencia de lo que
se ha visto hasta el momento, esta
instrucción de asignación no genera
ninguna salida en la consola de
Python.
Variables
Las variables pueden ser reasignadas
tantas veces como se quiera para
cambiar su valor.
En Python las variables no tienen un
tipo específico, es decir, a una variable
se puede asignar una cadena y luego un
entero.
Nombre de variables
Los nombre de las variables tienen algunas restricciones;
1. Los únicos caracteres que permite Python para nombre variables son letras, números y
guiones bajos.
2. Las variables no pueden empezar con número.
3. No pueden tener espacios
Tipos de Variables
Cadena = string Concatenación
str('Hola') == 'Hola' "Hola" + " " + "Mundo"
'Hola' == "Hola" "Yo tengo" + "20" + "años"
' "Hola" ' == " \"Hola\" " "El número" + "3,1416"
+ " se llama pi"
Tipos de Variables
Enteros = integers Operaciones
int(10) == 10 int(10) + int(20)
var1 = 10 / 20 == 0.5
var1 = 10
var1 = 10 // 20 == 0
var2 = -10 var2 = -10 + 20
Tipos de Variables
Flotantes = floating Operaciones
float(10) == 10.0 float(1.0) + float(2.0)
var1 = 0.28 var1 = 1.0 + 2.0
var2 = -0.57 var2 = -0.2 + 2.0
Tipos de Variables
Booleano = boolean Operaciones
True == 1.0 == (not False) True + (False / True)
False == 0.0 == int(False) True + True
False* False
Tipos de Variables
¿Cómo puedo saber que tipo de variable
tengo utilizando python?
type(Elemento)
type(1) == int type(2.5) == float
type(True) == bool c = 5//3
type(c) == int
type('a') == str
Entrada/salida (Input/Output)
Para capturar datos que el usuario quiera ingresar
al programa o para mostrarle resultados:
Print ‘what is your name?’
Read name
Print ‘good morning’ ¿ Cómo lo hago en
Python ?
Print name
Print ‘!’
Entrada/salida (Input/Output)
Para capturar datos que el usuario quiera ingresar
al programa o para mostrarle resultados:
name = input('What is your name?')
Print ‘what is your name?’
print('Good morning', name, '!')
Read name
print('Good morning' + name + '!')
Print ‘good morning’
Print name age = input('How old are you?')
print('In one year you will be', int(age)+1)
Print ‘!’ print('In one year you will be', age+1)
error
¡input() siempre entrega un string!
Cadenas de caracteres (Strings)
Un tipo de dato no-escalar muy utilizado es la
cadena de caracteres, denotado por str en
Python. Se usan las comillas (sencillas o dobles)
para representar un str literal.
name = 'Juan Rodríguez'
country = 'Colombia'
d_quotes = "Comillas dobles también"
var1 = name + country concatenar
var2 = name * 2 replicar
var3 = name + 3
var4 = name * country error
Manipulando (Handling) strings
Se pueden realizar diferentes operaciones con las cadenas de
caracteres, veamos algunas de ellas:
• Para conocer la longitud (número de letras) de un carácter se usa el
comando len. Por ejemplo:
name = 'Juan Rodríguez'
longitud de un str
f = len(name)
• Indexación: A cada carácter de una cadena de caracteres se le asigna
un índice.
Manipulando (Handling) strings
• Forma en la que se indexa un string:
• Índices negativos:
• Partición extendida (Cf no se incluye):
string[C₀:Cf:paso]
Manipulando (Handling) strings
• Con el índice se puede escoger un solo carácter de la
cadena, por ejemplo:
f = len(name)
name[0]
indexar un str
name[f-1]
name[f]
name[-1]
• También se pueden tomar partes de una cadena:
name[0:3] Segmentar (slice) un str
name[0:f] -> Desde el principio hasta el carácter con índice f (excluido)
name[:] -> Crea un clon de la variable, copia idéntica en otra posición de mem
name[:4] -> Desde el principio hasta el carácter con el índice 4 (excluido)
name[7:] -> Desde el carácter 7 hasta el final
Manipulando (Handling) strings
• Con la partición extendida se puede dar un paso con el
cual se segmenta la cadena de caracteres, por ejemplo:
name = 'Juan Rodríguez’
print(name[::2]) Segmentación extendida
>> Ja orge
print(name[-9::2])
>> Rdíez
print(name[::-1]) -> Invierte el string
>> zeugírdoR nauJ
Manipulando (Handling) strings
• Con los comandos .upper() .lower() .replace(n,v) se
puede crear un nuevo string, respectivamente, en
mayúsculas, minúsculas, o con caracteres
remplazados, por ejemplo.
name = 'Juan Rodríguez’
print([Link]())
>> JUAN RODRÍGUEZ
print([Link]())
>> juan rodríguez
print([Link]('e','') .replace(‘u',''))
>> Jan Rodrígz
Manipulando (Handling) strings
• Por último, entre las operaciones relevantes que se
pueden hacer con strings, se tiene la identificación de la
pertenencia de un string en otro, por ejemplo:
name = 'Juan Rodríguez'
print('Juan' in name )
>> True
print('Carlos' in name )
>> False
• y la conversión de un escalar a un string: str(5)
Condicionales (Conditionals)
• Las instrucciones condicionales en
Python se escriben así:
apples = int(input('Price of apples: '))
mangos = int(input('Price of mangos: '))
if apples > mangos: yes no
print('Mangos are cheaper') a>m
else:
print('Apples are cheaper') Print ‘Mangos are cheaper’
Programas de tiempo constante: sin Print ‘Apples are cheaper’
importar los datos de entrada, hay un
máximo número de instrucciones que el
programa ejecuta
Condicionales anidados
• (Nested conditionals) Las instrucciones
condicionales pueden anidarse:
if x%2 == 0:
if x%3 == 0:
print('Divisible by 2 and 3')
else:
print('Divisible by 2 and not by 3')
elif x%3 == 0:
print('Divisible by 3 and not by 2')
Ciclo mientras (While loop)
• Los ciclos en Python se implementan
mediante la instrucción while así:
N = int(input('Enter a number: '))
num = 1
sum = 0
while num <= N:
sum = sum + num
num = num + 1
print('The first', N, 'integers sum', sum)
Ciclo for (loop) y la función range
• Los ciclos for permiten expresar de
forma más simple ciclos que iteran sobre
una secuencia de enteros.
suma = 0
for i in (1,2,3,4,5):
tab suma=suma+i
print(suma)
Ciclo for (loop) y la función range
• Los ciclos for permiten expresar de forma más
simple ciclos que iteran sobre una secuencia de
enteros.
• range(0,n,1) crea un iterativo desde 0 hasta n-1
con paso 1, esto es, 0,1,2,3,..,n-1
suma = 0
n = int(input('Enter an integer number: '))
for i in range(0,n+1):
tab suma=suma+i
print(suma)
for loops with strings
• Los ciclos for también pueden iterar
sobre strings…
#Print a string with each letter followed by a star
name = input('Enter your name: ')
for let in name:
print(let + '*')
'''Print a string with each letter followed by a star,
but using the end configuration of print'''
name = input('Enter your name: ')
for let in name:
print(let, end='*')
Exhaustive enumeration
• El siguiente programa calcula la raíz
cúbica de un entero, si la tiene.
n = int(input('Enter an integer number: '))
cube = 0
while cube**3 < abs(n):
cube = cube + 1 enumeración exhaustiva
if cube**3 != abs(n):
print(n, 'is not a perfect cube')
else:
if n < 0:
cube = -cube
print('Cube root of', n, 'is', cube)
for loops and range
• Los ciclos for nos permiten expresar de una
forma más simple, por ejemplo, ciclos que iteran
sobre una secuencia de enteros.
n = int(input('Enter an integer number: '))
for cube in range(0, abs(n)+1): cube = 0
if cube **3 >= abs(n): while cube**3 < abs(n):
cube = cube +1
break
if cube**3 != abs(n):
print(n, 'is not a perfect cube')
else:
if n < 0:
cube = -cube
print('Cube root of', n, 'is', cube)
Aproximate solutions
• Calcular una aproximación de la raíz
cuadrada de un número positivo:
#Find an approximation of the square root
x = 25
epsilon = 0.01
step = epsilon**2
guesses = 0
ans = 0.0
while abs(ans**2 - x) >= epsilon and ans <= x:
ans += step
guesses += 1
if abs(ans**2 - x) >= epsilon:
print('Couldn\'t find the square root of', x)
else:
print(ans, 'is approximately the square root of', x)
print('There were', guesses, 'guesses')
Ejemplo
Los empleados de una fábrica trabajan en dos turnos (de 8 horas),
diurno y nocturno. Teniendo en cuenta las siguientes reglas para el
pago del salario:
• La tarifa de las horas diurnas es de 6 pesos
• La tarifa de las horas nocturnas es de 10 pesos
• En caso de ser domingo, la tarifa se incrementará en 200 pesos
el turno diurno y 300 pesos el turno nocturno
Calcule el costo de la nómina mensual (costo total de salarios) de
la fábrica
Ejemplo
• Una máquina dispensadora de productos requiere un
algoritmo para calcular las devueltas en monedas.
• El objetivo del algoritmo es que, dada una cantidad a
devolver, calcule la combinación que genere la mínima
cantidad de monedas, utilizando denominaciones de
$1000, $500, $200, $100 y $50.
• El sistema deberá decir también lo que resta para
lograrla.
Ejemplo
Resuelva con el método de Polya, realice
una prueba de escritorio e implemente en
Python, el siguiente problema:
• Dada una palabra ingresada por el
usuario verifique si es un palíndromo o
no.
Ejemplo
Resuelva con el método de Polya, realice una prueba de
escritorio e implemente en Python, los siguientes
problemas:
• Un programa que lea un numero de tres cifras e
imprima el número al revés.
• Otro programa que sume dos tiempos que incluyen
horas, minutos y segundos. Los tiempos llegan al
algoritmo así: por ejemplo 74532, queriendo decir 7
horas, 45 minutos y 32 segundos.
Ejemplo
Resuelva. El índice de masa corporal se calcula así:
Desarrolle un algoritmo que reciba la masa y la estatura
del usuario y que muestre su ICM y la clasificación de su
estado nutricional según la tabla:
Ejemplo
Haga un algoritmo que muestre el siguiente patrón
en la pantalla:
#
###
#####
#######
#########
El tamaño del patrón estará determinado por un
número entero impar que ingrese el usuario. En el
ejemplo mostrado, el tamaño de la figura es 9.
Gracias
[Link]
Fecha y ciudad
Una Facultad abierta
transformadora‹Nº›
Una Facultad abierta yytransformadora