Pouvez vous corriger mon programme en Python?

Résolu/Fermé
Multi73
Messages postés
88
Date d'inscription
dimanche 13 septembre 2020
Statut
Membre
Dernière intervention
4 mai 2022
- Modifié le 20 févr. 2021 à 16:46
jee pee
Messages postés
35242
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
29 juin 2022
- 20 févr. 2021 à 19:13
Bonjour, Pouvez vous corriger mon programme en Python?
Le voici :
import os
os.system("color fc")
prenom = input("quel est ton nom?")
print ("Bonjour",prenom,"!")
import time
time.sleep(2)
import os
os.system("cls")
capitale = input("quel est la capitale de la france?")
if int(capitale = paris) 
    print ("bien joue!")
else:
    print ("non!")
import time
time.sleep(5)



Merci

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

7 réponses

Dalfab
Messages postés
662
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
8 juin 2022
88
13 févr. 2021 à 11:33
Bonjour,

Je ne connais pas du tout le Python mais quand on fait référence à un texte on utilise des apostrophes ou des guillemets, j'écrirais plutôt en ligne 9:
if int(capitale = "Paris") 
0
Multi73
Messages postés
88
Date d'inscription
dimanche 13 septembre 2020
Statut
Membre
Dernière intervention
4 mai 2022

13 févr. 2021 à 12:04
merci mais ça marche toujours pas
0
jee pee
Messages postés
35242
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
29 juin 2022
8 686
Modifié le 13 févr. 2021 à 13:32
Bonjour,

D'abord sur un source, on n'a besoin de charger les bibliothèques (import ...) une seule fois, et c'est mieux de toutes les charger en début du code.

Tous tes problèmes sont concentrés en une seule ligne la 10.

Effectivement une chaine doit être encadrée
"paris"
, après le
if
est une instruction qui démarre un bloc, avec indentation, elle doit donc se terminer par
:
puis dans Python le test d'égalité c'est
==
,
=
c'est pour l'affectation et enfin
int()
convertit une chaine en un entier, on peut le trouver après un input pour un nombre, mais pas quand la variable contient une chaine de caractères.


0
Multi73
Messages postés
88
Date d'inscription
dimanche 13 septembre 2020
Statut
Membre
Dernière intervention
4 mai 2022

20 févr. 2021 à 16:10
Bonjour, j'ai essayer de le corriger comme vous me l'avait dit mais je n'ai pas réussi.
Pouvez vous m'aider ?

Le voici :



import time
import os
os.system("color fc")
prenom = input("quel est ton nom?")
print ("Bonjour",prenom,"!")
time.sleep(2)
os.system("cls")
capitale = input("quel est la capitale de la france?)
if int(capitale == "Paris:")
print ("bien joue!")
else:
print ("non!")
time.sleep(5)




Merci
0
jee pee
Messages postés
35242
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
29 juin 2022
8 686
20 févr. 2021 à 16:43
Pour la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icônes pour l'enrichissement du texte. Celle qui a cet aspect
<> ▼
permet d'appliquer au code, suivant une liste de valeurs, le format correspondant à sa nature.
Un petit tuto là : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Cela permet de bien voir les indentations, indispensables en python.

Alors je vois une chaine non fermée par un guillemet
un : sur le if au mauvais endroit
et tu utilises toujours int() qui n'a pas de sens pour une chaine
0

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

Posez votre question
Multi73
Messages postés
88
Date d'inscription
dimanche 13 septembre 2020
Statut
Membre
Dernière intervention
4 mai 2022

20 févr. 2021 à 17:09
Merci beaucoup
je vais essayé
0
Multi73
Messages postés
88
Date d'inscription
dimanche 13 septembre 2020
Statut
Membre
Dernière intervention
4 mai 2022

20 févr. 2021 à 17:43
A la place du int je pourrais utiliser quoi?
0
jee pee
Messages postés
35242
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
29 juin 2022
8 686
20 févr. 2021 à 17:49
rien ;-) un input retourne une chaine et tu la compares à une chaine, aucune conversion nécessaire
if capitale == "Paris" : 
0
Multi73
Messages postés
88
Date d'inscription
dimanche 13 septembre 2020
Statut
Membre
Dernière intervention
4 mai 2022
> jee pee
Messages postés
35242
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
29 juin 2022

Modifié le 20 févr. 2021 à 18:45
Merci beaucoup ça a marché.
Si on mets paris comme ça marche : paris et : Paris avec une majuscule ca ne marche pas pourquoi.
Savez vous faire pour que si je mets paris avec ou sans majuscule que ça marche?
Merci
0
jee pee
Messages postés
35242
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
29 juin 2022
8 686
Modifié le 20 févr. 2021 à 19:16
L'informatique et la programmation sont inflexibles de rigueur. a n'est pas A et il y a autant de différence entre a et A qu'entre a et z.

C'est donc au programmeur d'anticiper le problème. Il pourra par exemple convertir la réponse en minuscule à comparer à une chaine elle même en minuscule comme
if lower(capitale) == "paris" : 


Et attention, le correcteur humain du programme pourrait en rajouter une couche dans la rigueur ;-) Il pourrait diminuer la note pour une orthographe défectueuse.

capitale = input("quel est la capitale de la france?)
non, 2 voire 3 fautes.
capitale = input("Quelle est la capitale de la France ? ") 
0