# -*- coding: utf-8 -*-
carga50 = 100
carga20 = 100
carga10 = 100
def sacar_dinero(cantidad):
global carga50, carga20, carga10
if cantidad <= 50 * carga50 + 20 * carga20 + 10 * carga10:
de50 = int(cantidad / 50)
cantidad = cantidad % 50
if de50 >= carga50: # Si hay suficientes billetes de 50
cantidad = cantidad + (de50 - carga50) * 50
de50 = carga50
de20 = int(cantidad / 20)
cantidad = cantidad % 20
if de20 >= carga20: # y hay suficientes billetes de 20
cantidad = cantidad + (de20 - carga20) * 20
de20 = carga20
de10 = int(cantidad / 10)
cantidad = cantidad % 10
if de10 >= carga10: # y hay suficientes billetes de 10
cantidad = cantidad + (de10 - carga10) * 10
de10 = carga10
# Si todo ha ido bien, la cantidad que resta por entregar es nula:
if cantidad == 0:
# Así que hacemos efectiva la extracción
carga50 = carga50 - de50
carga20 = carga20 - de20
carga10 = carga10 - de10
return [de50, de20, de10]
else: # Y si no, devolvemos la lista con tres ceros:
return [0, 0, 0]
else:
return [-1, -1, -1]
try:
c = int(input('Cantidad a extraer: '))
resultado=sacar_dinero(c)
if resultado==[0,0,0]:
print ('No hay desglose de billetes para su importe')
elif resultado==[-1,-1,-1]:
print ('No hay suficientes billetes')
else:
print ('Billetes de 50:', resultado[0])
print ('Billetes de 20:', resultado[1])
print ('Billetes de 10:', resultado[2])
except:
print ('Importe incorrecto')
Comentarios sobre la versión: Python 3 (6)
# -*- coding: utf-8 -*-
carga100 = 100
carga50 = 100
carga20 = 100
carga10 = 100
carga5 = 100
de100 = carga100
de50 = carga50
de20 = carga20
de10 = carga10
de5 = carga5
# Si todo ha ido bien, la cantidad que resta por entregar es nula:
# Así que hacemos efectiva la extracción
else:
try:
else:
except:
ese es el codigo que modifique, le solucione algunos errores y sume valores
Lo he dejado en billetes de 500, 200 y 100, faltaría seguir hacia abajo, pero el código sería igual.
Gracias.
from datetime import datetime
from tkinter import messagebox
adni=[]
aclave=[]
amonto=[]
registrado=False
def Registrar():
global registrado
try:
archivo=open("D://banco.txt")
for line in archivo:
registro=line
temp=registro.split("/")
adni.append(temp[0])
aclave.append(temp[1])
amonto.append(temp[2])
if (temp[0].strip()==dni.get()):
registrado=True
archivo.close()
except IOError:
print("")
try:
if not registrado:
archivo=open("D://banco.txt","a")
archivo.write(dni.get()+"/"+clave.get()+"/"+str(monto.get())+"\n")
archivo.close()
messagebox.showinfo("Sistema","Nueva cuenta generada...")
else:
messagebox.showinfo("Sistema","Ya tiene cuenta generada...")
except IOError:
archivo=open("D://banco.txt","x")
archivo.close()
messagebox.showinfo("Sistema","Archivo banco generado...")
archivo=open("D://banco.txt","a")
archivo.write(dni.get()+"/"+clave.get()+"/"+str(monto.get())+"\n")
archivo.close()
messagebox.showinfo("Sistema","Nueva cuenta generada...")
dni.set("")
clave.set("")
monto.set(0)
ventana=Tk()
ventana.title("BANCO PRIVADO DEL NORTE")
ventana.geometry("800x400")
dni=StringVar()
clave=StringVar()
monto=IntVar()
opcion=IntVar()
lblemp=Label(ventana,text="BANCO PRIVADO DEL NORTE S.A.C").place(x=20,y=20)
lblreg=Label(ventana,text="APERTURA DE CUENTA").place(x=100,y=50)
lbldni=Label(ventana,text="DNI:").place(x=50,y=90)
lblclave=Label(ventana,text="CLAVE:").place(x=50,y=130)
lblmon=Label(ventana,text="MONTO:").place(x=50,y=170)
txtdni=Entry(ventana,textvariable=dni).place(x=150,y=90)
txtclave=Entry(ventana,textvariable=clave).place(x=150,y=130)
txtmon=Entry(ventana,textvariable=monto).place(x=150,y=170)
rbent=Radiobutton(ventana,text="Retiro",value=1,variable=opcion).place(x=450,y=130)
rbsal=Radiobutton(ventana,text="Deposito",value=2,variable=opcion).place(x=450,y=170)
btnreg=Button(ventana,text="Registrar",command=Registrar).place(x=50,y=240)
ventana.mainloop()