Programme

Fermé
gregoire - 8 déc. 2020 à 19:31
 gregoire - 10 déc. 2020 à 10:47
Bonsoir,
Excusez-moi de vous déranger mais j'ai du mal à comprendre toutes les lignes de votre programme !! Pouvez-vous m'expliquer la fonction de chacune de ces lignes ?
Merci d'avance



Configuration: Windows / Firefox 83.0

14 réponses

Par exemple je ne comprends pas la dernière ligne !!
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
8 déc. 2020 à 20:23
Bonsoir,

Quel programme ?
0
Ah oui excusez moi !!!
celui ci :
binaire = str(input("Entrez le nombre binaire à convertir :"))
decimal = 0
binaire = binaire[::-1]
print(len(binaire))
for x in range(len(binaire)):
d = binaire[x]
decimal += int(d)* 2**x
print(decimal)

Et en plus ce programme qui est censé convertir du binaire au décimal le fait bien mais affiche avant le résultat, le nombre de caractères en plus !!!
je ne comprends pas tout de son fonctionnement pouvez vous m'expliquer ?
Merci d'avance
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
9 déc. 2020 à 15:51
Bonjour gregoire,

Pas facile à lire sans les indentations

L'indentation étant importante en Python, merci de re poster ton code avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :

def test():
    print('test')

test()
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci beaucoup j'espère que c'est lisible cet fois-ci !!!
binaire = str(input("Entrez le nombre binaire à convertir :"))
            decimal = 0 
            binaire = binaire[::-1] 
            print(len(binaire)) 
            for x in range(len(binaire)):
                d = binaire[x]
                decimal += int(d)* 2**x 
            print(decimal)   
    
            
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 9 déc. 2020 à 16:54
Je pense que tu n'as pas suivi le mode d'emploi:

binaire = str(input("Entrez le nombre binaire à convertir :"))
decimal = 0 
binaire = binaire[::-1] 
print(len(binaire)) 
for x in range(len(binaire)):
    d = binaire[x]
    decimal += int(d)* 2**x 
print(decimal) 
 


Admettons
Tu dis ne pas comprendre ce code, il sort d'où, en fait ?

Moi, je vois ce qui se passe: il y a des façons plus directes de convertir binaire -> décimal
Mais ici, c'est basé sur le fait que chaque bit du nb binaire est le coefficient du polynôme
qui est la somme des puissances de 2 de 0 à n :

Exemple: 100 en binaire

1 fois 2 puissance 2 + 0 fois 2 puissance 1 + 0 fois 2 puissance 0 = 4
0
Merci pour ta réponse !!
En fait je dois réaliser un seul programme qui convertit en même temps après le choix de l'utilisateur : base 2/base 10/base 16 ( qui passe de l'un à l'autre)
je suis en train de faire ligne par ligne et programme par programme en m'inspirant de programmes préexistant mais j'ai queques difficultés !!!! sinon merci pour tes explications !!!
J'ai déjà fait ça :
choix = "b"
while choix !=4 :
    print("Décimal vers Binaire : 1")
    print("Binaire vers Décimal : 2")
    print("Decimal vers Hexadecimal : 3")
    choix = input("Que voulez-vous ? ")
    if choix == "1" :
        valeur = int(input("entrer un entier :"))
        binaire = ""
        while valeur != 0 :
            reste = str(valeur%2) 
            binaire = reste + binaire 
            valeur = valeur//2
        print("conversion en binaire :",binaire)   
    else :
        if choix == "2" :
            binaire = str(input("Entrez le nombre binaire à convertir :"))
            decimal = 0 
            binaire = binaire[::-1] 
            print(len(binaire)) 
            for x in range(len(binaire)):
                d = binaire[x]
                decimal += int(d)* 2**x 
            print(decimal)   
    elif:
        if choix== "3":
            
            
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 9 déc. 2020 à 20:37
Holà grégoire,

tu t'es encore trompé: tu vois bien que les couleurs de ton code ne sont pas les mêmes que dans mon message précédent

Il faut copier/coller le code dans ton message, puis sélectionner tout le code à la souris, et enfin dérouler la liste (petite flèche noire vers le bas), et cliquer Python

Ceci dit, pour les test if, elif .... tu peux faire comme ça:

if(choix == '1'):
    ....
elif(choix == '2'):
    ..........
elif(choix == '3'):
    .........


A savoir qu'on peut convertir dans les différentes bases d'une manière simple en utilisant
les formats
0
Merci pour ta réponse !!
Ah oups je suis vraiment désolé !!!
C'est une très bonne idée merci beaucoup pour ton aide !!!
Je ne comprends pas !! C'est quoi les formats ?
0
Voilà en fait le problème c'est qu'on ne peut pas utiliser les formats sinon ce serait beaucoup trop simple !!
Donc as-tu une idée pour réaliser un programme de binaire à hexadécimal pour commencer ?
Au moins je pourrais compléter mon grand programme vu ci-dessus !!
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
10 déc. 2020 à 10:07
Bonjour Grégoire,


Pourquoi pas les formats ?

Sinon, tu as cherché sur Internet pour les conversions d'une base à une autre ?
0
parce que le prof juge ça trop facile !!
Mais sinon j'ai du mal à trouver de bon résultats concluants !!!
As-tu des petits conseils à me donner ?
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
10 déc. 2020 à 10:39
Je ne me suis jamais penché sur la question ...

Pour binaire -> hexa, on pourrait faire binaire -> décimal (tu as déjà la fonction)

puis décimal -> hexa

Si j'avais à faire ça, je taperais "python convertir de binaire en hexa" dans la barre de recherche

internet ...
0
Merci beaucoup je vais me pencher sur la question !!!
0