1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| #! python3
# coding: utf-8
from termcolor import cprint
from math import trunc
employes = {
"Dupond": {
"salaire": 4257.12,
"composition": [],
},
"Durand": {
"salaire": 2024.78,
"composition": [],
},
"Pierre": {
"salaire": 814.36,
"composition": [],
},
}
devises = [500, 200, 100, 50, 20, 10, 5, 2, 1, 0.5, 0.10, 0.05, 0.02, 0.01, ]
def compte_devises():
for dico in employes.values():
reste = dico["salaire"]
for devise in devises:
quotient = trunc(reste / devise)
reste = round(reste - quotient * devise, 2)
if quotient != 0:
dico["composition"].append((devise, quotient))
compte_devises()
cprint('Les employés : {}'.format(employes), 'green')
'''
Les employés : {
'Dupond': {'salaire': 4257.12, 'composition': [(500, 8), (200, 1), (50, 1), (5, 1), (2, 1), (0.1, 1), (0.02, 1)]},
'Durand': {'salaire': 2024.78, 'composition': [(500, 4), (20, 1), (2, 2), (0.5, 1), (0.1, 2), (0.05, 1), (0.02, 1), (0.01, 1)]},
'Pierre': {'salaire': 814.36, 'composition': [(500, 1), (200, 1), (100, 1), (10, 1), (2, 2), (0.1, 3), (0.05, 1), (0.01, 1)]}
}
'''
devises_total = []
for devise in devises:
devises_total.append([devise, 0])
def compte_devises_total():
for dico in employes.values():
for t in dico["composition"]:
for lst in devises_total:
if lst[0] == t[0]:
lst[1] += t[1]
compte_devises_total()
cprint('Total des devises nécessaires : {}'.format(devises_total), 'cyan')
# [[500, 13], [200, 2], [100, 1], [50, 1], [20, 1], [10, 1], [5, 1], [2, 5], [1, 0], [0.5, 1], [0.1, 6], [0.05, 2], [0.02, 2], [0.01, 2]] |