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 39588 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 19 avril 2024 - 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 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
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 2
13 févr. 2021 à 12:04
merci mais ça marche toujours pas
0
jee pee Messages postés 39588 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 19 avril 2024 9 225
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 2
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 39588 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 19 avril 2024 9 225
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 2
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 2
20 févr. 2021 à 17:43
A la place du int je pourrais utiliser quoi?
0
jee pee Messages postés 39588 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 19 avril 2024 9 225
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 2 > jee pee Messages postés 39588 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 19 avril 2024
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 39588 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 19 avril 2024 9 225
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