Algo python Conversion Base 2 à base 10 et base 10 à base 16 [Fermé]

Signaler
-
Messages postés
16102
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 juillet 2021
-
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).

A voir également:

3 réponses

Messages postés
16102
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 juillet 2021
719
Bonsoir, pour poster un code, merci de suivre la procédure décrite là
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ça préserve l'indentation, qui est primordiale en Python
Messages postés
16102
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 juillet 2021
719
En attendant qu'un modérateur édite ton message (ou toi t'as encore un peu de temps avant qu'il ne te soit plus possible de le corriger).
Comment convertis tu à la main de base 2 vers 10.
Par exemple 1010
J'inverse l'ordre des chiffres :0101
Je multiplie (0+2^0) + (1+2^1) +(0+2^2) +(1+2^6)
Messages postés
16102
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 juillet 2021
719
Presque.
C'est pas 2^6 à la fin.
Et ce n'est pas ce que fait ton code
Messages postés
16405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 juillet 2021
877
bonjour,
1° merci d'utiliser la coloration syntaxique quand tu postes du code.
2° pourquoi fais-tu
P = C+P
, qu'en attends-tu?
3° as-tu déjà résolu des exercices plus simples en python?
Messages postés
16102
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 juillet 2021
719
Salut, on s'est croisé
2. Je fais P=C+P pour avoir la somme de tous mes C
3. J'ai un peu appris sur le site france ioi
Messages postés
16102
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
19 juillet 2021
719
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.
Si je mets P=0 , il n'y a plus d'erreur sauf mon eurreur de calcul pour C