IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

un fondamental qui m'echappe!


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 144
    Par défaut un fondamental qui m'echappe!
    voila mon code
    lorsque j'entre une phrase il me donne systématiquement 0 comme réponse
    c'est une erreur évidente de langage mais si vous pouviez me dire pourquoi...cela m'arrangerais vraiment
    merci d'avance(je cherche le caractère 'a 'dans la phrase:
    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
    23
    24
    25
     
    #! /usr/bin/env python
    # -*- coding: Utf8 -*-
     
    # Comptage des occurrences d'un caractère donné dans une chaîne
     
    def compteCar(ch, car):
        "trouve l'indice du caractère car dans la chaîne ch"
     
     
        i, nc = 0, 0                # initialisations
        while i < len(ch):
            if ch[i] == car:
                nc = nc + 1         # caractère est trouvé -> on incrémente le compteur
            i = i + 1
        return nc
     
     
     
     
     
     
     
    z = raw_input('entrez une phrase :')
    print compteCar("z","a")

  2. #2
    Membre Expert
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    z = raw_input('entrez une phrase :')
    print compteCar("z", "a")
    Là tu comtpes combien il y a de "a" dans la chaine "z", donc 0 c'est normal ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    z = raw_input('entrez une phrase :')
    print compteCar(z, "a")
    Maintenant tu comptes combien il y a de "a" dans la chaine représenté par la variable z.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 144
    Par défaut
    je comprends la différence mais ce code ne fonctionne pas...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 144
    Par défaut
    désolé désolé mille fois lorsque j'ai refais le code j'ai oublié le print et forcement....
    merci encore

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        i = 0
        while i < len(ch):
            (...instructions...)
            i = i + 1
    se remplace avantageusement par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while i in xrange(0,len(ch)):
        (...instructions...)






    et même , dans le cas présent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        i, nc = 0, 0                # initialisations
        while i < len(ch):
            if ch[i] == car:
                nc = nc + 1         # caractère est trouvé -> on incrémente le compteur
            i = i + 1
    se raccourcit avantageusement en:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for caractere in ch:
        if caractere==car:
            nc = nc + 1
    Cette manière d’itérer sur les constituants de ch est qualifiée de pythonienne.
    C’est même l’exemple fourni par Guido lui même, si je ne me trompe pas, pour répondre à une question qu'on lui posait de savoir ce que veut dire “manière pythonienne“ de coder. Mais désolé, je ne retrouve pas la référence.

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for caractere in ch:
        if caractere==car:
            nc = nc + 1
    si on va par là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    defcompteCar(ch, car):
        try : return ch.index(car)+1
        except : return 0
    mais je pense que c'etait un execice sur les boucles while ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur de conversion linq qui m'echappe
    Par zzozo32456 dans le forum VB.NET
    Réponses: 4
    Dernier message: 30/05/2011, 17h32
  2. quelque chose qui m'echappe avec le singleton.
    Par turican2 dans le forum Débuter avec Java
    Réponses: 12
    Dernier message: 17/06/2009, 15h13
  3. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08
  4. Créer une fenêtre flottante qui ne peut avoir le focus
    Par BestofMac dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/07/2002, 10h46
  5. Recherche programme qui convertit les chiffres arabes en nb
    Par oli57 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 15/06/2002, 03h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo