Algo python Conversion Base 2 à base 10 et base 10 à base 16

Bonjour,

Il faut que je fasse un programme qui me convertisse n’importe quelle nombre de la base 2 à base 10 et d la base 10 à la base 1-
J'ai commencer à faire de la base 2 à la base 10 mais il me dise qu'il y a a une erreur:
Voici mon programme :
P=""
N = input("Entrez le nombre que vous voulez convertir en base 10: ")
B = input("Quel est la base de votre nombre : ")
b = int(B)
D = len(N)
F = 0
for loop in range (D):
    K = N[F]
    C = int(K)*b**F
    F = F+1
    P = C+P
print("Le nombre est " ,P, "en base 10.")


Erreur : Traceback (most recent call last):
File "<tmp 1>", line 11, in <module>
P = C+P
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Et je n'arrive pas du tout à faire un programme de la base 10 à la base 16.

P.S= Je ne peux pas utiliser bin(3)=11, int(11)=3, etc

Merci de votre réponse (si possible rapide).

3 réponses

  1. Maintenant que Noctambule a rendu ton code lisible (merci à lui)

    Tu initialises P comme une string
    P = ""

    Puis plus loin, comme l'a noté yg_be, tu additionnes P à C qui est un int.
    Or du texte ça ne s'additionne pas avec un nombre.

    Si tu initialises
    P = 0
    , il n'y a plus d'erreur, mais le résultat n'est pas bon.
    Retour à ma première question, et à celle d'y_be.
    1. Si je mets P=0 , il n'y a plus d'erreur sauf mon eurreur de calcul pour C