M3 - Programación Básica (Python)
M3 - Programación Básica (Python)
Área: NEGOCIOS
Introducción ......................................................................................................................................................... 1
1. Lectura de archivos ........................................................................................................................................... 2
1.1 Método: readline() ...................................................................................................................................................... 5
2. Split en cadena de texto ................................................................................................................................... 7
3. Diccionario ........................................................................................................................................................ 8
3.1 Ejercicio de aplicación ................................................................................................................................................. 9
4. Errores más comunes en la programación ..................................................................................................... 12
4.1 El uso de variables inexistentes en el código............................................................................................................. 12
4.2 Tipografía ................................................................................................................................................................... 13
4.3 El uso de mayúsculas y minúsculas............................................................................................................................ 13
4.4 Tabulación o espacios ................................................................................................................................................ 13
4.5 Dos puntos ( : ) al final de cada ciclo o validación .................................................................................................... 14
4.6 Variables que empiecen con _ ,- , numero o carácter ............................................................................................... 14
4.7 Guardar archivo sin extensión .py ............................................................................................................................. 14
4.8 Ocupar tipo de dato equivocado ............................................................................................................................... 15
5. Manejo de errores .......................................................................................................................................... 15
6. Normas de programación PEP-8 ..................................................................................................................... 17
6.1 Que es PEP 8 .............................................................................................................................................................. 17
6.1 Propuestas de Mejora de PEP 8................................................................................................................................. 17
a. Indentación ............................................................................................................................................................. 17
b. Máximo de 79 caracteres por línea ......................................................................................................................... 17
c. Argumentos de funciones ordenados ..................................................................................................................... 17
d. Validación de un Booleano...................................................................................................................................... 18
e. Espacios ................................................................................................................................................................... 18
f. Comentarios ............................................................................................................................................................. 19
g. Importación de librerías .......................................................................................................................................... 19
7. Cierre .............................................................................................................................................................. 20
Área: NEGOCIOS M3
Curso:PROGRAMACIÓN BÁSICA (PYTHON)
Lectura de archivos
Diccionario
Revisión de programas
computacionales
Errores en programación
Manejo de errores
Introducción
Una situación común en la programación, es la búsqueda de los errores que inducen a fallas graves en la
ejecución de un programa desarrollado; a veces esa falla era la falta de un punto y coma ( ; ) por ejemplo. En
Python no existen puntos y coma, pero si la identanción: en donde un programador o su IDE ocupa 4
espacios en vez de un tab y el otro programador ocupa solo tab, lo cual significa que al momento de juntar
sus códigos no funciona el programa.
También existían casos (espero que aún no existan) en los cuales los programadores poco éticos, realizan
códigos de tal manera que solo es entendible por ellos, y al llegar un nuevo programador no puede entender
nada de lo desarrollado por su predecesor. Al realizar estas acciones, los programas se estancan, dado que su
actualización solo depende de un programador; por estos motivos se inició la estandarización de la
programación, más conocido como “buenas practicas”, como será el PEP 8.
Esto es una realidad. Las necesidades siempre son distintas a través del tiempo; los clientes que ocupan una
herramienta constantemente se están actualizando, por seguridad, nuevas aplicaciones, integración con
nuevos dispositivos o corrección de errores.
Área: NEGOCIOS M3
Curso:PROGRAMACIÓN BÁSICA (PYTHON) Pág. 2
linea 1
l2inea 2
palabral 2linea 3
palaba 2linea 4
2linea 5 final
archivo = open(“archivo”,”r”)
Print(archivo)
archivo.close()
IMPORTANTE
Recomendación: Siempre cierren el archivo, a penas lo dejen de utilizar, eso se recomienda para no gastar
recursos innecesarios de su computador, al principio con programas básicos no existirá muchos problemas pero a
medida que realicen programas más extensos esto será más notorio, por eso siempre es mejor perfeccionarse
desde el inicio y no a mitad de camino
Mostrará lo siguiente:
<_io.TextIOWrapper name='archivo.txt' mode='r' encoding='UTF-8'>
Esto significa que archivo ahora tiene la propiedad de un método de entrada o salida de datos del archivo
archivo.txt, que se encuentra en modo r (que significa read, leer en español), y con la codificación UTF-8 (8-
bit Unicode Transformation Format), es uno de los formatos más utilizados actualmente en el 2017.
Área: NEGOCIOS M3
Curso:PROGRAMACIÓN BÁSICA (PYTHON) Pág. 3
Si el archivo no existe Python arrojara error. En los archivos con modo de lectura Read, dado que estos solo
buscan el archivo.
Hay diferentes maneras de recorrer un archivo. La más básica pero no tan recomendada es recorrer cada
punto con un for i in archivo, si realizamos esto pasara lo siguiente
Código:
archivo = open("archivo.txt","r")
for i in archivo:
print(i)
archivo.close()
Área: NEGOCIOS M3
Curso:PROGRAMACIÓN BÁSICA (PYTHON) Pág. 4
linea 1
linea 2
palabra linea 3
palaba linea 4
linea 5 final
Lo mejor es eliminar el salto de línea con replace. Cambiamos el replace en la variable i por nada, así al
momento de mostrar la información se realizara sin salto de línea innecesario.
archivo = open("archivo.txt","r")
for i in archivo:
i = i.replace("\n","")
print(i)
archivo.close()
linea 1
linea 2
palabra linea 3
palaba linea 4
linea 5 final
Existen distintos métodos para leer archivo; los programadores son libres de ocupar el que más les acomode.
A continuación mostraremos las siguientes maneras de recorrer un archivo:
Área: NEGOCIOS M3
Curso:PROGRAMACIÓN BÁSICA (PYTHON) Pág. 5
Código:
archivo = open("archivo.txt","r")
line = archivo.readline()
print(line)
line = archivo.readline()
print(line)
Muestra lo siguiente:
linea 1
linea 2
Se avanza de línea aunque las líneas de comando sean exactamente iguales, eso se debe a que readline
siempre queda en el cursor siguiente.
IMPORTANTE
Advertencia: si realizo un readline cuando el curso ya está en la última línea Python retorna un error.
Ahora si queremos recorrer todas las líneas con readline, existe el readlines; el cual retorna todas las líneas,
esta por lo general se ocupa con un for, como por ejemplo:
Código:
archivo = open("archivo.txt","r")
for linea in archivo.readlines():
print(linea)
Área: NEGOCIOS M3
Curso:PROGRAMACIÓN BÁSICA (PYTHON) Pág. 6
linea 1
linea 2
palabra linea 3
palaba linea 4
linea 5 final
Ahora es importante saber del punto de lectura. El puntero es como una flecha que se mueve a través del
documento, en ella es importante saber su posición para saber qué línea mostraremos o dónde escribiremos
la nueva información; si no se utiliza bien y estamos trabajando de un modo r+ y sobrescribiremos
información.
Ejercicio:
Realicemos un código para escribir en el archivo sin borrar su información anterior, al final sin utilizar add en
modo r+.
Código:
archivo = open("archivo.txt","r+")
contenido = archivo.read() #leemos todo el archivo para que avance el cursor
archivo.write("nuevo texto")
archivo.close()
Área: NEGOCIOS M3
Curso:PROGRAMACIÓN BÁSICA (PYTHON) Pág. 7
linea 1
linea 2
palabra linea 3
palaba linea 4
linea 5 final
nuevo texto
Ahora nos percatamos que se ingresó la nueva línea, al final del documento.
Algunas veces cuando se lee un archivo txt, que contenga acentos el programa Thonny y algunos IDE, nos
arrojarán problemas según su configuración inicial, para evitar este problema, agreguen un tercer parámetro
al open, que es: encoding='utf-8'
Ejemplo:
Código:
Y mostrará lo siguiente:
Este comando nos será muy útil al momento de querer separar información. Split es muy sencillo,
split(atributo), atributo es el carácter por el cual quieres separar el texto.
Área: NEGOCIOS M3
Curso:PROGRAMACIÓN BÁSICA (PYTHON) Pág. 8
Ejemplo:
Creemos un arreglo que tenga la variable M Y F, que signifique Masculino y Femenino, y en otro arreglo en
forma de diccionario lo iremos contando.
arreglo = ['M','M','F','M','M','F','F','M','F','M','F','M','F','F','M','F','F','M','F','F']
sexo={}
sexo["masculino"] = 0
sexo["femenino"] = 0
for i in arreglo:
if (i == 'M'):
sexo["masculino"] += 1
else:
sexo["femenino"] += 1
print(sexo)
Ahora realicemos un ejercicio un poco más complicado, con colores, pero ahora no iniciaremos todos los
colores en cero dado que no sabemos que colores van a ir saliendo. Si lo hacemos de la misma manera
anterior nos arrojará un error, dado que debemos comprobar si existe el diccionario con ese color, para eso
existe el comando in, que nos indicará con un True o un False si está en el diccionario.
Ejemplo de código:
arreglo =
['rojo','verde','verde','rojo','azul','verde','rojo','azul','azul','amarillo','morado','amarillo','morado','
naranjo','violeta','azul','blanco','azul','negro','negro']
color={}
for i in arreglo:
if (i in color):
color[i] += 1
else:
color[i] = 1
print(color)
Área: NEGOCIOS M3
Curso:PROGRAMACIÓN BÁSICA (PYTHON) Pág. 9
También existen otros comandos con los diccionarios, los cuales son:
•Este retorna toda las llaves •Este retorna todo los valores •Retorna una tupla de cada
del diccionario. del diccionario. valor que existe en el
diccionario.
• Somos un Instituto, en donde guardamos toda la información de nuestros alumnos en un txt. Este txt
contendrá la siguiente información: rut, nombre, apellido, fecha_nacimiento, carrera, materias
(materias estará entre [] y separas con un : cada una)
bd_instituto.txt
archivo = open("bd_instituto.txt","r+")
persona = {}
aux = [] # creamos un arreglo auxiliar es el que contendrá la información dentro del ciclo
for linea in archivo:
linea = linea.replace('\n','') # borramos el salto de línea
aux = linea.split(',')# separamos la línea en aux para obtener la información de persona
separada
persona[aux[0]] = aux[1:]
print(persona)
Resultado en pantalla:
archivo = open("bd_instituto.txt","r+")
persona = {}
aux = [] # creamos un arreglo auxiliar es el que contendrá la información dentro del ciclo
for linea in archivo:
linea = linea.replace('\n','') # borramos el salto de línea
aux = linea.split(',')# separamos la línea en aux para obtener la información de persona
separada
persona[aux[0]] = aux[1:]
#ahora tenemos toda la información en persona
materias = {} #creamos el diccionario de materias
for per in persona:
'''
como per solo tiene el rut de cada persona, lo que realizamos es obtener el arreglo
completo
guardado en cada persona, que contiene lo siguiente en las siguientes posiciones:
0 = nombre
1 = apellido
2 = fecha_nacimiento
Área: NEGOCIOS M3
Curso:PROGRAMACIÓN BÁSICA (PYTHON) Pág. 11
Como verán este ejercicio fue algo complicado hubo que utilizar for dentro de for para poder obtener la
información.
Resultado en pantalla:
archivo = open("bd_instituto.txt","r+")
persona = {}
aux = [] # creamos un arreglo auxiliar es el que contendrá la información dentro del ciclo
for linea in archivo:
linea = linea.replace('\n','') # borramos el salto de línea
aux = linea.split(',')# separamos la línea en aux para obtener la información de persona
separada
persona[aux[0]] = aux[1:]
#ahora tenemos toda la información en persona
carreras = {}
for per in persona:
s_carrera = persona[per][3]
if s_carrera in carreras:
carreras[s_carrera] += 1
else:
carreras[s_carrera] = 0
print(carreras)
Resultado en pantalla:
suma = a + 14
Print(suma)
4.2 Tipografía
Muchas veces ocurre que al momento escribir rápido se invierte el nombre de una variable o esta queda mal
escrita. Ejemplo:
Layers = 15
Print(Layesr)
Ejemplo:
palabra = "hola"
for i in palabra:
print("la letra es: ") #esta con Tab
print(i) #esta con espacios
Área: NEGOCIOS M3
Curso:PROGRAMACIÓN BÁSICA (PYTHON) Pág. 14
palabra = "hola"
for i in palabra
print(i)
Ejemplo:
a = 15
palabra = "el número a es: " + a
print(palabra)
Nos explica que se tiene que trabajar con string, no con una variable número. Para arreglar este error hay
que castear la variable a que sea string con str().
5. Manejo de errores
Existe una forma muy sencilla que el try para el manejo de los errores. Trabaja de una forma muy parecida a
un if, si todo está bien el código estará en try, pero si existe algún problema el código estará en el except.
Ejemplo:
Hagamos un ciclo infinito que reciba todo el tiempo un número, este lo vamos cambiando a entero. Todo
estará dentro del try, entonces como ingresamos el número, sabemos que si ingresamos una palabra o letra
esta no se podrá convertir a entero y deberá arrojar un error, entonces en ese momento deberá saltar al
except.
Código:
while True:
try:
x = int(input("ingrese un número: "))
except ValueError:
print("no se ingreso un caracter correcto")
break
Área: NEGOCIOS M3
Curso:PROGRAMACIÓN BÁSICA (PYTHON) Pág. 16
ingrese un número: 32
ingrese un número: 432
ingrese un número: 34
ingrese un número: 23342
ingrese un número: a
no se ingreso un caracter correcto
Esta sería una manera de ocuparlo, aunque también lo podemos hacer para forzarlo a que entregue un
carácter correcto.
Código:
while True:
try:
x = int(input("ingrese un número: "))
break
except ValueError:
print("ocurrio un error en el numero ingresado favor intentar de nuevo")
ingrese un número: sa
ocurrio un error en el numero ingresado favor intentar de nuevo
ingrese un número: ds
ocurrio un error en el numero ingresado favor intentar de nuevo
ingrese un número: a
ocurrio un error en el numero ingresado favor intentar de nuevo
ingrese un número: 12
De esta manera trabaja el try. Se puede ocupar en todo el código, no es necesario que sea en ciclos. Sin el try,
al momento que ocurra un error, el programa se pararía; con su uso evitamos y controlamos esta situación.
Área: NEGOCIOS M3
Curso:PROGRAMACIÓN BÁSICA (PYTHON) Pág. 17
Antiguamente era así: el mundo de la programación era muy desordenado y cada uno programaba con su
estilo. Esto ha ido cambiando con el tiempo, dado que se crearon “buenas costumbres de programación”: las
cuales determinan la manera de declarar una variable, función y hasta los comentarios. En Python se realizó
un estándar de programación que es llamado PEP – 8.
Correcto:
#opcion1
variable = funcionx(variable_1, variable2
variable_3)
#opcion2
variable = funcionx(
variable_1, variable2
variable_3)
Incorrecto:
variable = funcionx(variable_1, variable2
variable_3)
Se percatarán que si no están todas las variables abajo del nombre de la función, no está ninguna.
d. Validación de un Booleano
Nunca se tiene que validar un booleano con un ==. Ejemplo la variable valido es de tipo booleano:
Correcto:
if valido:
Accion1
Incorrecto:
if valido == True:
accion1
e. Espacios
Nunca usar espacios innecesarios en el código. Nunca se tiene que ocupar espacios en operaciones
aritméticas:
Correcto:
Resultado = a+b
Incorrecto:
Resultado = a + b
Área: NEGOCIOS M3
Curso:PROGRAMACIÓN BÁSICA (PYTHON) Pág. 19
Correcto:
c = (a+b) * (a-b)
Incorrecto:
c = (a + b) * (a - b)
Nunca usar espacios alrededor de un signo igual en una entrega de argumentos por defecto. Ejemplo:
Correcto:
def suma(a=0, b=0):
Incorrecto:
def suma(a = 0, b = 0):
Correcto:
funcion1(2)
Incorrecto:
funcion1 (2)
f. Comentarios
No se deben realizar comentarios obvios en el código. Los comentarios no deben contradecir el código.
g. Importación de librerías
Al momento de importar librerías, éstas no deben ir juntas si no separadas:
Correcto:
import os
import sys
Incorrecto:
Se permitirá el uso de importación consecutivo cuando vengan solo de la misma librería. Ejemplo:
Importación de
Librería estándar Librería de tercero
aplicación local
7. Cierre
Los contenidos vistos en este módulo son fundamentales para la formación de un programador, ya que
conocieron el manejo de archivos con Python, cuáles eran sus modos y la importancia de cada uno. Con esta
información el estudiante puede comenzar a crear programas con una gran cantidad de caso de pruebas,
diccionario y Split. También les será de gran ayuda al momento de la programación, dado que estas son las
herramientas más utilizadas en Python.
Posteriormente comprendieron la conducta de los programadores, revisando algunos de los errores más
comunes que ocurren durante la programación. Finalmente el conocimiento de la norma de PEP-8 permitirá
pulir su forma de programación, realizando una programación más universal, esto les servirá para su
desarrollo profesional, ya que sus códigos ahora podrán ser entendibles y perdurables en el tiempo, ser por
ustedes o por otros programadores.