Mon programme fonctionne pas
Résolu
MiSter_OutFox
Messages postés
197
Date d'inscription
Statut
Membre
Dernière intervention
-
MiSter_OutFox Messages postés 197 Date d'inscription Statut Membre Dernière intervention -
MiSter_OutFox Messages postés 197 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai codé vite-fait un programme python pour convertir un nombre normale en binaire, le problème c'est qu'il ne fonctionne pas :/
Je suis débutant, donc je pense que c'est une erreur de base. Quand j'ouvre mon programme avec python, j'arrive à distinguer qu'il me dit : " File : "*Localisation de mon programme*", line 4 ". J'ai cherché, mais je n'ai pas trouvé pourquoi il y a une erreur.
Voici le programme :
Merci d'avance de votre aide.
J'ai codé vite-fait un programme python pour convertir un nombre normale en binaire, le problème c'est qu'il ne fonctionne pas :/
Je suis débutant, donc je pense que c'est une erreur de base. Quand j'ouvre mon programme avec python, j'arrive à distinguer qu'il me dit : " File : "*Localisation de mon programme*", line 4 ". J'ai cherché, mais je n'ai pas trouvé pourquoi il y a une erreur.
Voici le programme :
A = Input("Nommbre à convertir :") X = 0 C = 1 While A > 0: If(A%2=0): A/2 = A C*10 = C Else : (A-1)/2 = A X+C = X C*10 = C print(X)
Merci d'avance de votre aide.
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Le programme à télécharger ci-dessous contient des erreurs et n'est pas complet. corrigez-le et exécutez-le. quel mot de dix lettres est obtenu ?
- Télécharger clavier arabe - Télécharger - Divers Web & Internet
- Telecharger fl studio 20 pour pc gratuit complet - Télécharger - Édition & Montage
- Comment trouver le mot de passe wifi sur son téléphone - Guide
- Télécharger film d'action gratuitement et rapidement - Télécharger - TV & Vidéo
- Identifiant et mot de passe - Guide
5 réponses
Tout d'abord, merci de votre aide. Effectivement, j'ai l'habitude de mettre des majuscules partout ^^. Je code avec sublime texte. Les 2 égales, bah je m'en souvenait plus x) (En même temps j'utilise une calculatrice Ti-83 CE, dont le codage est "un peu familier" et du coup je n'ai pas mit les 2 égales).
En ayant réglé ces problèmes j'ai une nouvelle erreur à la ligne 6...
Voici le code :
Encore merci de votre aide :)
En ayant réglé ces problèmes j'ai une nouvelle erreur à la ligne 6...
Voici le code :
A = Input("Nommbre à convertir :") X = 0 C = 1 while A > 0: if(A%2==0): A/2 = A C*10 = C else: (A-1)/2 = A X+C = X C*10 = C print(X)
Encore merci de votre aide :)
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
Bonjour,
en plus des erreurs qui ont déjà été signalé, je rajoute qu'une affectation de variable se fait avec le nom de la variable devant le signe =. C'est à dire qu'il faut remplacer A/2 = A par A = A/2.
De plus si tu utilise python3, la fonction input renvoie toujours un type string, il faut donc le convertir en entier avec la fonction int.
--
en plus des erreurs qui ont déjà été signalé, je rajoute qu'une affectation de variable se fait avec le nom de la variable devant le signe =. C'est à dire qu'il faut remplacer A/2 = A par A = A/2.
De plus si tu utilise python3, la fonction input renvoie toujours un type string, il faut donc le convertir en entier avec la fonction int.
--
Merci de ton aide.
J'en apprend de plus en plus x) Je ne connaissais pas l'histoire de l'affection de variable... ça me sera utile. De même pour le input. Merci ^^
En corrigeant cela, ça donne :
Le problème, c'est que maintenant j'ai l'erreur suivante : "Traceback (most recent call last):"
Merci du temps accordé à mon égard :)
J'en apprend de plus en plus x) Je ne connaissais pas l'histoire de l'affection de variable... ça me sera utile. De même pour le input. Merci ^^
En corrigeant cela, ça donne :
A = Input("Nommbre à convertir :") X = 0 C = 1 while A > 0: if(A%2==0): A = A/2 C = C*10 else: A = (A-1)/2 X = X + C C = C*10 print(int(X))
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
Le problème, c'est que maintenant j'ai l'erreur suivante : "Traceback (most recent call last):"
Merci du temps accordé à mon égard :)
Je suis tête en l'air ^^ J'ai lu "input" et j'ai pensé à "print", alors j'ai remplacé pour "print"...
Pour la coloration syntaxique, j'avais pas vu (et je connaissais pas), désolé, mais merci c'est plus simple de compréhension :)
Du coup, j'ai remplacé, et maintenant ça me demande bien le nombre à convertir, mais ça n'affiche pas le résultat :/
Le code :
Merci encore ^^
Pour la coloration syntaxique, j'avais pas vu (et je connaissais pas), désolé, mais merci c'est plus simple de compréhension :)
Du coup, j'ai remplacé, et maintenant ça me demande bien le nombre à convertir, mais ça n'affiche pas le résultat :/
Le code :
A = int(input("Nommbre à convertir :")) X = 0 C = 1 while A > 0: if(A%2==0): A = A/2 C = C*10 else: A = (A-1)/2 X = X + C C = C*10 print(X)
Merci encore ^^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je viens de copier coller ton code et il fonctionne très bien.
Je ne sais pas d'où viens ton problème mais apparemment pas du code.
--
Je ne sais pas d'où viens ton problème mais apparemment pas du code.
--
Pour lancer le programme j'ouvre tout simplement une invite de commande et j’écris le nom du fichier.
Peut-être que tu double-clique sur le fichier, au quel cas c'est normal que la console se ferme directement après que tu ai entré le nombre à convertir car c'est la fin du programme.
le // permet de calculer une division entière (on calcul le quotient avec // et le modulo avec %) et ça renvoie donc un entier
4/2 -> 2.0
4//2 -> 2
Peut-être que tu double-clique sur le fichier, au quel cas c'est normal que la console se ferme directement après que tu ai entré le nombre à convertir car c'est la fin du programme.
le // permet de calculer une division entière (on calcul le quotient avec // et le modulo avec %) et ça renvoie donc un entier
4/2 -> 2.0
4//2 -> 2
Ce n'est pas la peine de faire (A-1)//2 car A est impair donc la division entière par 2 donnera la même chose que A//2.
par exemple si je fais la division entière de 3 par 2 ça donne 1 soit exactement la même chose que 2 diviser par 2.
Tu peux donc en déduire aussi qu'il est inutile d'écrire A//2 dans chaque cas, il suffit de le faire 1 fois après la fin du else
par exemple si je fais la division entière de 3 par 2 ça donne 1 soit exactement la même chose que 2 diviser par 2.
Tu peux donc en déduire aussi qu'il est inutile d'écrire A//2 dans chaque cas, il suffit de le faire 1 fois après la fin du else
C'est le cas pour if et else aussi.
D'autre part, en python et dans de nombreux langages, il y a un différence de syntaxe entre l'égalité entre 2 variables et l'affectation de valeur
A=2 veut dire qu'on affecte 2 à 1
A==2 veut dire que l'on teste si la valeur de A est 2.
Je ne sais pas avec quoi tu codes, mais un bon éditeur (même gratuit) te signale à minima les lignes où la syntaxe est erronée.
Par exemple, avec spyder, il y a une croix en marge quand la ligne présente une erreur
Dans cette capture, les instructions en minuscules sont reconnues, donc affichées en bleu.
La ligne 5 présente l'erreur d'égalité, il y a une croix.