Accueil » Python » Forums Python » Forum général Python » confusion variable / fonction ?

 question confusion variable / fonction ?

Document Actions
Réponses: 4   Visites: 0
Up one level
Vous devez être un membre enregistré pour contribuer sur ce forum. Inscrivez-vous maintenant

question confusion variable / fonction ?

Posté par eastwind le 29/02/2008 22:29
voila je débute en python en suivant le cours pdf de swinnen , et je fait un script pour résoudre l'exercice 5.06 mais celui ci ne fonctionne pas , je vais voir la solution , et le script de solution est identique , mais fonctionne ..... je ne comprend pas ... j'ai saisi la fonction
code:
ch
pour récupérer un caractère d'une chaine de caractère mais il semblerait qu'il le considère comme une variable ... il me dit :

code:
me@robby:~/python.swinnen$ python comptage.0.2.py
Traceback (most recent call last):
  File "comptage.0.2.py", line 6, in ?
    if ch== d:
NameError: name 'ch' is not defined


mon script :

code:

a , b , c , d = 0 , 0 , "Stephanie" , "e"

while a <= len(c): # Du premier jusqu'à la dernière lettre , 
if ch== d: # (tu compares) Et si en comparant ,
b = b + 1 # (tu trouves un caractère identique ) tu le compte (ajoute un nombe à la liste )
a = a + 1 # continue ta comparaison avec le deuxieme , troisieme etc .... refait la meme chose

print b # affiche moi le nombre de lettres identiques trouvés




alors que la solution est :

code:
#! /usr/bin/env python
# -*- coding: Latin-1 -*-



# 5.7. Écrivez un script qui compte le nombre d'occurrences du caractère « e » dans une chaîne.


ch = raw_input ('entrez la phrase: ') # phrase dans laquelle il faut trouver le caractère 

cr = raw_input ('entrez la lettre: ') # caractère a trouver 


i = 0 # indicateur de la position du caractère comparé 

z = 0 # compteur nombre de fois caractère 

while i < len(ch): # boucle : tant que le compteur est inférieur à la somme des caractère continu opération
    if ch== cr: # compare si le caractère position x ( exemple 3 ) de la liste est égale au caracère demandé
z = z + 1 # si vrai alors ajoute un au compteur de caractère
i = i + 1 # ajoute un pour pouvoir aller au caractère suivant

print " il y a ", z , "fois le caractère",cr, "dans " , ch # imprime résultat



Pouvez vous m'aider ?

ps : je viens de remarqué que le forum ne gère pas les crochets :( donc c'est ch crochet ouvert a crochet fermé

 • Re: confusion variable / fonction ?

Posté par jpcw2002 le 02/03/2008 20:41
salut je crois que tu as oublié le =

code:
ch =[]

Donc il ne sait pas ce qu'est 'ch' tant que tu ne l'as pas affecté comme ici à une liste vide.
@++

 • Re: confusion variable / fonction ?

Posté par Lucci le 03/03/2008 15:09
Tu devrais utiliser la tabulation à l'intérieur de tes fonctions...

 • Re: confusion variable / fonction ?

Posté par glickind le 04/03/2008 10:27
astuces:
- utilise 4 espaces à la place de la tabulation
- utilise Aperçu avant d'Enregistrer un message
- pour afficher des crochets il faut ajouter un espace " " après le crochet ouvrant : "[" , sinon c'est interprêté comme une balise de mise en forme dans ce forum

Dans ton code, la variable c contient la chaine à analyser et correspond à ch dans la solution,
tu ne peux pas changer de nom de variable au milieu de ton programme.
Tu as utilisé ch alors que cette variable ne contient aucune valeur, aucun objet : elle n'est pas définie ...

Correction:

code:
# -*- coding: latin-1 -*-

a , b , c , d = 0 , 0 , "Stephanie" , "e"

while a < len(c): # Du premier jusqu'à la dernière lettre , 
    if c[a] == d: # (tu compares) Et si en comparant , 
        b = b + 1 # (tu trouves un caractère identique ) tu le compte (ajoute un nombe à la liste )
    a = a + 1 # continue ta comparaison avec le deuxieme , troisieme etc .... refait la meme chose

print b # affiche moi le nombre de lettres identiques trouvés

 • Re: confusion variable / fonction ?

Posté par glickind le 04/03/2008 10:34
au jeu des différences, tu avais aussi mis <= au lieu de < ;)