"""
exercice 2.13
"""

def convert(n,b,i=10):
    """ Convertit n (donné en base i) en base b<=36 ; par défaut i=10 
        la base optionnelle i doit aussi être comprise entre 2 et 36 """
    result=""
    if i!=10 : n=int(str(n),i)        #conversion si nécessaire de n en base 10
    while n>0:
        if n%b<10:
            result=str(n%b)+result    #concaténation par la gauche du reste<10 (chiffre)
        else :
            result=chr(87+n%b)+result #concaténation par la gauche du reste>=10 (lettre)
        n=n//b
    return result

n,b=2020,7
print("{} en base {} s'écrit {}".format(n,b,convert(n,b)))  # 2 arguments (i=10)
n,b=2020,16
print("{} en base {} s'écrit {}".format(n,b,convert(n,b)))
n,b,i='7e4',10,16
print("{} en base {} s'écrit {}".format(n,b,convert(n,b,i)))# 3 arguments
n,b,i='7e4',36,16
print("{} en base {} s'écrit {}".format(n,b,convert(n,b,i)))

