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++ ?
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.
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.
× 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.
Blond, bouclé, toujours le sourire aux lèvres...
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique