Conversion decimal>hexadecimal

Bonjour, j'aurai besoin d'aide pour un petit programme de conversion en python decimal > hexadecimal sauf que je n'ai pas le droit d'utiliser le changehex
et je bloque a cause d'une erreur que je n'arrive pas a régler.

def entier_to_hexa (N):
    chaine_hexa = ""
    while N>0:
        q = N // 16
        r = N % 16
        if r == 10:
            chaine_hexa = "A" + chaine_hexa
        if r == 11:
            chaine_hexa = "B" + chaine_hexa
        if r == 12:
            chaine_hexa = "C" + chaine_hexa
        if r == 13:
            chaine_hexa = "D" + chaine_hexa
        if r == 14:
            chaine_hexa = "E" + chaine_hexa
        if r == 15:
            chaine_hexa = "F" + chaine_hexa
        else :
            chaine_hexa = r + chaine_hexa
        N=q
    return
N = 2021
meh = chaine_hexa
print (meh)


message d'erreur : Traceback (most recent call last):
File "D:\Entier_to_hexa.py", line 23, in <module>
meh = chaine_hexa
NameError: name 'chaine_hexa' is not defined

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

  1. Bonsoir

    la variable existe dans la fonction, pas dans le programme prinicipal
    1. Je suppose que si ton professeur t’as donné cet exercice c’est qu’il t’as déjà appris comme transmettre le résultat d’une fonction.
      Donc je dirais, regarde dans ton cours.