bonzamis.py

Created by schraf

Created on October 09, 2018

453 Bytes

Voilà pourquoi il faut toujours prendre sa Numworks quand on part en vacances !
Imaginez 4 amis : Pierre (noté pi), Audrey (a), Patricia (pa) et Eric (e)
- Pour aller au cinéma, Eric a avancé 10 euros à Audrey
- Pierre a payé 20 euros l’entrée dans un parc pour les 4 personnes
- Patricia a avancé 2 euros à Eric pour une glace
- Eric a avancé 24 euros pour l’entrée à la piscine des 4 amis
Qui doit combien à qui ??
C’est très simple en utilisant le programme amis :
>> amis()
Liste amis ? pi,a,pa,e
T=tous, 0=fin # On nous dit d'utiliser T pour tous et 0 pour terminer
a avance x EUR pr b # l'ordre de saisi est a puis x puis b
a,x,b : e,10,a # Eric avance 10 EUR à Audrey
a,x,b : pi,20,T # Pierre avance 20 EUR à Tous
a,x,b : pa,2,e
a,x,b : e,24,T
a,x,b : 0 # On a fini
Bilan :
pi prend 9.0 # Pierre récupère 9 EUR
a depose 21.0 # Audrey dépose 21 EUR
pa depose 9.0 # Patricia dépose 9 EUR
e prend 21.0 # Eric récupère 21 EUR

Bien entendu vous pouvez utiliser des nombres à virgule, par exemple : pa,2.50,e.


def amis():
  amis = input("Liste amis ? ").split(",")
  c = {'T':[0,0]}
  for p in amis: c[p]=[0,0]
  print("T=tous, 0=fin")  
  print("a avance x EUR pr b")
  while True:
    v = input("a,x,b : ")
    if v=="0": break
    a,x,b = v.split(",")
    c[a][0]+=float(x)
    c[b][1]+=float(x)
  print("Bilan :")
  for p in amis :
    s = c[p][1]+c["T"][1]/len(amis)-c[p][0]
    print(p,"depose" if s>=0 else "prend",abs(s))
  return "Fin"