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

Fermé
lixounette - Modifié le 14 nov. 2018 à 22:15
Whismeril Messages postés 17818 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2022 - 15 nov. 2018 à 07:24
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

Whismeril Messages postés 17818 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2022 862
14 nov. 2018 à 22:14
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
0
Whismeril Messages postés 17818 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2022 862
14 nov. 2018 à 22:16
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
0
J'inverse l'ordre des chiffres :0101
Je multiplie (0+2^0) + (1+2^1) +(0+2^2) +(1+2^6)
1
Whismeril Messages postés 17818 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2022 862
15 nov. 2018 à 07:24
Presque.
C'est pas 2^6 à la fin.
Et ce n'est pas ce que fait ton code
0
yg_be Messages postés 20301 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 octobre 2022 1 225
14 nov. 2018 à 22:15
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?
0
Whismeril Messages postés 17818 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2022 862
14 nov. 2018 à 22:19
Salut, on s'est croisé
0
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
0
Whismeril Messages postés 17818 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2022 862
14 nov. 2018 à 22:27
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.
0
Si je mets P=0 , il n'y a plus d'erreur sauf mon eurreur de calcul pour C
0