Curso Python. Volumen II: Primer Programa

Escrito por Javier Ceballos Fernández
Python
6

Bienvenidos de nuevo a nuestro curso de Python,  la semana pasada os introdujimos en el lenguaje y os enseñamos a instalar un entorno de programación para este lenguaje. En este capítulo queremos que os quitéis el miedo a programar y a probar cosas, así que os enseñaremos cómo se definen las variables y funciones en Python, además también aprenderemos cómo podemos leer los datos introducidos por el usuario.

La entrega la haremos en 2 partes debido a que hay muchos conceptos que hay que asimilar. No os preocupéis si algo ahora mismo no lo entendéis, ya que en futuras entregas iremos profundizando en el lenguaje. Intentaremos ir explicando todo a través de un ejemplo, ya que creemos que así resultará más sencillo.

Después de esta breve introducción nos ponemos manos a la obra y empezaremos por practicar la programación estructurada. El programa que vamos a desarrollar es un pequeño programa que nos permita crear una cuenta bancaria y realizar operaciones sobre ella.

Tendremos que empezar por crear una lista para ir almacenando nuestros clientes. Como os indicamos Python es un lenguaje interpretado así que para crear una lista solo tenemos que hacer lo siente

Clientes = []

Como habéis podido ver, solo he igualado la variable a [ ] esto es porque las listas en Python se representan de este modo. Las listas tienen muchos métodos asociados que os iremos explicando en próximas entregas. También crearemos un contador para saber el número de cuenta que hay que asignar

numCuentas=0

variables

Las variables siempre que se definan es conveniente inicializarlas, de este modo ya le estaremos indicando al compilador qué tipo de dato es. Ahora tendremos que definir las funciones necesarias para poder operar con los clientes. Por eso vamos a definir 5 funciones que serán:

  • Crear Cuentas
  • Hacer Ingreso
  • Visualizar Cuentas
  • Ver Saldo
  • Hacer Retirada

Crear Cuentas

Para crear una función tendremos que anteponer la palabra def nombreDeLaFuncion(parámetros):, por ejemplo:

def crearCuenta(clientes,numCuentas):
 #Este método lo que hace es crear una cuenta bancaria
 nombre = input('Introduzca nombre: ')
 apellido = input('Introduzca apellido: ')
 #Estamos creando una lista donde el índex en vez de ser un número, es el nombre de la variable, de este modo nos creamos una estructura.
 cuenta ={'nombre':nombre,'apellido':apellido,'cuenta':{'saldo':0'numeroCuenta':numCuentas}}
 clientes.append(cuenta)
 numCuentas += 1
 print("Cuenta creada")
 input("Pulse Enter para continuar...")
 return clientes,numCuentas

crearcuenta

Como podéis comprobar todo el código se encuentra tabulado, no es solo para que sea más legible y podamos saber que se está ejecutando. Las tabulaciones de código son obligatorias en Python, esto es debido a que al ser interpretado es la manera que tiene el compilador de saber qué tiene que ejecutar. Las líneas que empiezan por # son comentarios, así que todo lo que tenga # delante el compilador no lo ejecutará.

Este método nos va a crear una cuenta bancaria para un cliente. Entonces pasaremos dos parámetros, clientes que es donde la vamos almacenar y numCuentas que es para saber el número de cuenta que tenemos que asignar. Si modificamos estos parámetros, y queremos que se modifiquen para el resto de la aplicación, tendremos que hacer al final un return de estos parámetros en la función como se aprecia en el ejemplo.

En esta función solicitamos 2 datos al usuario, para ello tenemos que definir dónde queremos almacenarlo y utilizamos el método input() de Python que nos permitirá añadir dentro del paréntesis un texto si queremos mostrar un mensaje al usuario, este texto deberá ir entre comillas para que el compilador sepa que es texto. En nuestro caso solicitamos el nombre y el apellido del cliente:

nombre = input('Introduzca nombre: ')
apellido = input('Introduzca apellido: ')

Para almacenar una cuenta vamos a crear una estructura como la siguiente

EstructuraCuenta.png

Para crear esta estructura en Python crearemos una lista del siguiente modo:

cuenta={'nombre':nombre,'apellido':apellido,'cuenta':{'saldo':0,'numeroCuenta':numCuentas}}

Al crearla con llaves nos permite hacer que los índices no sean numéricos, sino que podemos usar el nombre que queramos, los : separa el valor que le queremos asignar. Una vez que tenemos la cuenta lo tenemos que añadir a la lista de clientes, para eso solo tenemos que utilizar la función append() de listas.

estructuracuenta

Clientes.append(cuenta)

Una vez hecho esto ya tendremos una cuenta creada, que realizamos un return de las parámetros que hemos pasado a la función ya que los hemos modificado.

Hacer Ingreso

Este método le sumará una cantidad a nuestro saldo.

def hacerIngreso(clientes):
 # Este método realiza el incremento del saldo de un cliente.
 if len(clientes) 0:
 cuenta = input('Por favor indique el numero de cuenta al que desea hacer el ingreso:')
 cantidad = input('Por favor indique la cantidad a ingresar:')
 saldoActual=clientes[int(cuenta)]['cuenta']['saldo']
 clientes[int(cuenta)]['cuenta']['saldo']=saldoActual+int(cantidad)
 print('Se ha realizado el ingreso')
 else:
 print("no existen cuentas")
 input("Pulse Enter para continuar...")

haceringreso

Una de las cosas que os pueden llamar la atención al ver este código es que he utilizado la función len() esta función se usa para las listas y nos devuelve el tamaño de esta. También he incluido una sentencia condicional que es if..else vemos que la sintaxis es parecida a la del resto de lenguajes de programación. Entonces para definirlo correctamente sería:

if comprobación :
//Sentencia a ejecutar
else:
//Sentencia a ejecutar

Esta comprobación que he añadido es solo para evitar que se intente aumentar el saldo de una cuenta si no existe, también se puede añadir algún control más como por ejemplo saber que el número de cuenta introducido existe. Luego tendremos que aumentar el saldo, así que obtenemos el saldo actual que tenemos almacenado en la lista y le sumamos la cantidad introducida por teclado. Para sumar solo tenemos que usar el operador +

C = a + b

Pero en este caso la variable cantidad es un string (tipo texto) y no podemos sumar a un número un texto así que hay que hacer una conversión cast, de este modo le indicaremos al compilador de que esa variable se trata de un número.

int(cantidad)

Y de este modo tan sencillo tendremos la función realizada

Visualizar Cuentas

Este método visualiza las cuentas que tenemos ahora mismo almacenadas.

def visualizarCuentas(clientes):
#Este método visualiza todas las cuentas que existen creadas en este momento, recorremos la lista mostrando sus elementos
if len(clientes):
for cliente in clientes:
print('Nombre: ' + cliente['nombre'])
print('Apellido: ' + cliente['apellido'])
print('Número de Cuenta: ' + str(cliente['cuenta']['numeroCuenta']))
print('\n')
else:
print('No existen cuentas para listar')
input("Pulse Enter para continuar...")

visualizarcuentas

Para poder visualizar las cuentas tendremos que recorrer toda la lista para eso utilizaremos la función ‘for’ solo, que en este caso no lo usamos de una manera habitual lo definimos del siguiente modo:

For variable in lista

Lo que hacemos de este modo es coger un elemento de lista y lo almacenamos en la variable para luego poder usarlo y este bucle funcionará hasta que se acaben los elementos de la lista.

Y esto es todo por hoy, os dejo como deberes los 2 siguientes métodos, aunque os diré cómo se hacen en la próxima entrega, así que no os preocupéis. Todo el código lo podéis ir ejecutando por partes del siguiente modo:

clientes=[]

numCuentas=0

cuenta={'nombre':'Javier','apellido':'Ceballos','cuenta':{'saldo':0,'numeroCuenta':numCuentas}}

clientes.append(cuenta);

print('Nombre: ' + clientes[0]['nombre'])
print('Apellido: ' + clientes[0]['apellido'])
print('Número de Cuenta: ' + str(clientes[0]['cuenta']['numeroCuenta']))

Como veis solo hay que definir las variables, operar (en este caso una asignación y añadir un elemento a la lista) y visualizar. De esta manera tan sencilla podéis ir probando el código.


Continúa leyendo
  • nova6k0

    Profe xD 😉 estoy haciendo el programa y cuando compilo el programa me dice que ‘cliente’ is not defined.

    Salu2

    • Javier Ceballos

      Hola nova6k0

      Había una pequeña errata en el código, ya os lo he actualizado. Ese error lo que te quiere decir es que no existe esa variable.

      Un saludo.

  • Maikol Jimenez

    Saludos, este curso es para principiantes ?

    • Mira el índice del curso para ver todos los temas, hemos empezado de 0 en Python pero es recomendable saber algo de programación antes para entenderlo a la perfección.

      • Maikol Jimenez

        Yo no se programar, que curso me recomendaría para poder iniciar ?

        • Pues te recomendaría empezar con el de Java, creo que te será más sencillito para empezar. Nuestro curso online de Java está completo, puedes verlo en la zona de cursos online.

Últimos análisis

Valoración RZ
10
Valoración RZ
7
Valoración RZ
9
Valoración RZ
10
Valoración RZ
8
Valoración RZ
10
Valoración RZ
9
Valoración RZ
9
Valoración RZ
10