Pouvez vous corriger mon programme en Python?

Résolu
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

  1. 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") 
    
    1. Modérateur
      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.

      1. 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
        1. Modérateur
          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
      2. A la place du int je pourrais utiliser quoi?
        1. Modérateur
          rien ;-) un input retourne une chaine et tu la compares à une chaine, aucune conversion nécessaire
          if capitale == "Paris" : 
        2. @jee peeMerci 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
      3. Modérateur
        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 ? ")