Partage
  • Partager sur Facebook
  • Partager sur Twitter

Commentaires + questions

    12 septembre 2017 à 20:47:55

    Bonsoir,

    Lorsque j'utilise \(""" ... """ \) pour faire des commenatires en python cela ne marche pas. Je pense que je dois louper quelques chose mais je ne vois pas quoi.

    Voici le code :

    #!/usr/bin/python3.5
    # -*-coding:Utf-8 -*
    import math
    
    a = int(input("Number : "))
    
    print(int(math.sqrt(35))
    
    """for i in range(1, int(math.sqrt(a))):
        if a%i == 0:
            b = False
            for j in range(2, int(math.sqrt(i))):
                if i%j == 0:
                    b = True
            if b == False:
                print(i)"""

    Le message d'erreur est juste : 'Invalid syntax' ligne 17 soit à la dernière ligne.


    En dehors de ce petit problème j'ai une question qui me turlupine.

    Pourquoi l'indentation est-elle si restrictive en python ? Pourquoi les créateurs du language n'ont pas opté pour des \(;\) afin d'indiquer la fin d'une instruction comme en C++ ?

    Merci d'avance !

    • Partager sur Facebook
    • Partager sur Twitter
      12 septembre 2017 à 21:30:45

      Coucou,

      Il te manque une parenthèse fermante au print juste au-dessus.

      De plus, la syntaxe """ … """ n’est pas un commentaire mais une chaîne de caractère sur plusieurs lignes. Dans ton cas, ça se comporte comme un commentaire vu que tu n’utilises pas cette chaîne.

      Un code propre est un code correctement indenté avec une instruction par ligne, tant que ton code est propre, à quoi servent les points virgules et les accolades ?
      De plus, quand tu as un code bien propre sous les yeux on a souvent tendance à « lire » les indentations plutôt que réfléchir, du coup si une ligne est mal indenté, le code peut sembler se comporter différemment de ce qui a écrit, ce qui est très compliqué à déboguer par ailleurs.

      • Partager sur Facebook
      • Partager sur Twitter
        12 septembre 2017 à 22:20:31

        Au passage, l'opérateur ; peut être utilisé en python:

        >>> print("a");
        a
        >>> a = 5; b = 6;
        >>> for c in "llama":
        ...     print(c);
        ... 
        l
        l
        a
        m
        a

        C'est au niveau des blocs ({} en C, indentation en python) qu'il y a une différence.

        -
        Edité par Mad scientist 12 septembre 2017 à 22:23:58

        • Partager sur Facebook
        • Partager sur Twitter
        Un vrai cours de: (C | C++ | Haskell débutant | Haskell intermédiaire | Rust).
          12 septembre 2017 à 22:53:40

          Poggendorf a écrit:

          Pourquoi les créateurs du language n'ont pas opté pour des \(;\) afin d'indiquer la fin d'une instruction comme en C++ ?

          Pourquoi ils ont pas utilisé des s-expressions comme en Lisp, ou une syntaxe à la Haskell ?

          Par bonheur le créateur de Python nous a pas collé les "end" pour terminer un bloc comme en Ruby.

          • Partager sur Facebook
          • Partager sur Twitter

          Blond, bouclé, toujours le sourire aux lèvres...

            13 septembre 2017 à 11:11:49

            Poggendorf a écrit: > Pourquoi l'indentation est-elle si restrictive en python ?

            Parce que l'indentation, c'est bien. Et comme tout le monde indente son code, ça fait un élément naturel pour séparer les blocs d'instructions.

            Poggendorf a écrit: > Pourquoi les créateurs du language n'ont pas opté pour des ; afin d'indiquer la fin d'une instruction comme en C++ ?

            Quel intérêt ça aurait, quand tu reviens à la ligne après chaque instruction ?

            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              13 septembre 2017 à 14:49:28

              Poggendorf a écrit:

              Pourquoi l'indentation est-elle si restrictive en python ?

              Parce-que l'indentation devrait être appliquée sur tous langages et que l'auteur de ce langage a eu du bon sens ! D'autres langages l'appliquent en étant tout aussi restrictifs, ça apporte conventionnalité, et donc des codes un minimum indenté peuvent être lus de la même manière quelque soit le langage de prédilection du lecteur.

              Les langages comme le C par exemple, mais d'autres aussi, je ne vise pas lui particulièrement, sont difficiles à lire sans indentation, il est souvent demandé à l'auteur d'un code, d'indenté afin de simplifier sa lecture. Autant l'imposé, ça évite de prendre de mauvaises habitudes dans l'apprentissage.

              Et apporter un cadre, quelque soit la catégorie de travail, c'est bénéfique, on sait où on va et où on doit pas aller. À tes risques et périls dans le cas où tu bifurques.

              Poggendorf a écrit:

              Pourquoi les créateurs du language n'ont pas opté pour des \(;\) afin d'indiquer la fin d'une instruction comme en C++ ?

              Pourquoi ajouter de la verbosité ? À choisir entre ajouter un ; ou ne rien mettre, mon choix est vite fait et pour trois raisons

              • Si tu multiplies le nombre de lignes, ça fait un paquet de points-virgule à placer, et donc
              • Ça multiplie les chances d'oublis,
              • Ça augmente les difficultés à la correction du code

              L'auteur l'a éviter, grand bien lui fasse, et à nous aussi...


              En ce qui concerne les commentaires, ils sont représentables à l'aide du caractère #

              print('hello') # affichage à l'écran de la chaîne hello

              Les triples quotes, représentés par """...""" sont utiles pour

              • écrire une chaîne de caractères sur plusieurs lignes (évite le caractère \n et utilisé à l'assignation d'une variable et à l'utilisation de print).
              • comme docstrings, genre de mini aide à la compréhension d'une fonction, méthode, classe où d'exemple d'utilisation d'une fonction par exemple.
              • Partager sur Facebook
              • Partager sur Twitter
                13 septembre 2017 à 22:13:46

                Merci beaucoup pour toutes vos réponses !
                • Partager sur Facebook
                • Partager sur Twitter

                Commentaires + questions

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown