Bonjour à tous,
Naturaliste amateur, j'ai eu besoin de cartographier et analyser quelques données et je me suis tourné vers Qgis qui m'a permis quelques réalisations carto. Dans un forum ad hoc, je trouve régulièrement des réponses à des questions d'analyse qui ne font pas référence à des extensions Qgis, mais à des scripts python auxquels je n'entends bien entendu strictement rien. Du coup je me suis dit : c'est quoi python, en dehors des Monty (que j'adore) et du serpent (que je n'ai pas vu souvent) ... ? Et quelle pourrait être son utilité dans mon domaine amateur (la carto naturaliste) ?
Attention, je suis donc plus que novice en python ... et pour arranger le tout, je débute même carrément en programmation tout court ...
Je lis actuellement avec profit (enfin je l'espère) "Apprendre à programmer avec python" de Gérard Swinnen et tente de réaliser certains des exercices proposés.
Il y en a un pour lequel j'obtiens bien les réponses souhaitées mais qui me renvoie également un message d'erreur : il y a donc je pense une erreur (sic) dans le script, en tout cas mon travail n'est pas propre ... et ça fait bien deux heures que je recherche pourquoi ...
J'espère n'être pas trop niais pour ce forum, être surtout dans le bon forum et que vous puissiez m'indiquer s'il y en a un autre de plus adapté à mon niveau.
Ceci dit, voici le petit script en question qui me prend la tête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #un script qui compte le nombre doccurrences du caractère « e » dans une chaîne. ch='"Je suis envieux"' # l'expression à analyser b=len(ch) # b est la longueur de mon expression (tout élément confondu) c=0 # c est mon compteur égrainant le nombre total d'éléments de ma chaîne pour effectuer ma recherche d=0 # d est mon compteur de "e" (= ma recherche) e='e' # e est ma variable représentant les "e" dans mon expression print('la chaîne à étudier est',ch) print('le nombre d\'éléments dans cette chaîne est de',b) while c<b: while ch[c] !=e: c=c+1 if c==(b-1) : print('le nombre de e dans cette expression est de',d) while ch[c]==e: c=c+1 d=d+1 if c==(b-1) : print('le nombre de e dans cette expression est de',d)
et voici maintenant mon résultat et mon message d'erreur :
la chaîne à étudier est "Je suis envieux"
le nombre d’éléments dans cette chaîne est de 17
le nombre de e dans cette expression est de 3
Traceback (most recent call last):
File "C:/Users/user/AppData/Local/Programs/Python/Python35-32/Scripts/chaine nombre de e.py",
line 14, in <module>while ch[c] !=e:
IndexError: string index out of range
Y aurait-il une bonne âme qui puisse me dire où je me goure ?
Si je comprends bien, c'est dû peut être à un dépassement de la valeur de c ... mais je ne sais qu'en tirer comme conclusion ...
Et puis j'en suis venu à me poser une seconde question : est-ce bien normal d'avoir un if sans else à la suite ?... bien que cela semble fonctionner ...
Bon j'ai été un peu long, merci par avance pour votre passage et éventuellement vos réponses !
Partager