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 :

ex:mettre 1er lettre de chaque mot d une chaine en majuscule 'boucle'


Sujet :

Python

  1. #1
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2018
    Messages : 8
    Points : 3
    Points
    3
    Par défaut ex:mettre 1er lettre de chaque mot d une chaine en majuscule 'boucle'
    bonjour tout le monde,

    je suis débutante en python j'essaye d apprendre la programmation en python et j ai un exercice a faire :

    voilà j'aimerai mettre chaque 1er lettre d une chaine de caractère en majuscule :

    chaine=' bonjour tout le monde '


    je sais le faire avec la fonction title()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    chaine= 'bonjour tout le monde'
    print(chaine.title());
    Bonjour Tout Le Monde
    mais j'aimerai le faire en utilisant la boucle while comment je peux le faire ?
    après j'aimerai mettre seulement la 1er lettre du 2em mot ( tout) en majuscule = bonjour Tout le monde

    merci d avance

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Tu peux transformer ta chaîne en liste et boucler dessus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    >>> c = "bonjour tout le monde"
    >>> l = c.split(' ')
    >>> t = []
    >>> for i in l:
    ...     t.append(i.title())
    ... 
    >>> result = " ".join(t)
    >>> result
    'Bonjour Tout Le Monde'
    >>> # en une ligne
    >>> result = " ".join([i.title() for i in c.split(' ')])
    >>> result
    'Bonjour Tout Le Monde'

  3. #3
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2018
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    bonjour,

    merci pour la reponse même si j ai pas bien compris c quoi split c une fonction qui sert a quoi exactement? et pour la boucle j aimerai savoir comment faire avec while ..

    merci encore

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Teste ceci dans une console "bonjour tout le monde".split(' ').

    while signifie tant que et sera donc utilisé lorsque l'on ignore combien de fois il faudra boucler.
    Ça ne correspond pas à ta situation puisque tu connais le nombre de mots de la chaîne.

    Maintenant si c'est pour l'exercice, essaye de le faire et, si ça ne va pas, poste ton code.

  5. #5
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2018
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    bonjour,

    oui j ai compris en fait split() : sert a diviser une chaîne de caractère en sous chaîne comme l exemple ici " bonjour tout le monde " = ['bonjour','tout','le','monde']

    mais au cas ou on veut ignorer le nombre de mots je devrai utiliser while !

    merci

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Toi, tu ignores peut-être le nombre d'élément de la liste mais pas Python.

    C'est pour cela que l'on peut faire for i in my_list

    Mais, comme je l'ai dit, si tu veux le faire avec un while, fonce et, si ça ne va pas, montre nous ton code.

  7. #7
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2018
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    bonjour ,

    merci pour la reponse en fait je sais pas comment la faire avec while ..
    par contre j ai essayé de resoudre 2 em question : si je veux afficher seulement la 1er lettre du 2em mot de la chaine en majuscule mais j ai remarqué que y a pas d'espace entre le 1er mot et 2em je sais pas pourquoi

    voilà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ch="bonjour tout le monde";
    ch1=" ";
    ch1=ch[:7]+ch[8].upper()+ch[9:];
    print(ch1):
    bonjourTout le monde
    je comprends pas pourquoi y a pas d espace être les deux mots normalement je devrai avoir des résultats comme ça : bonjour Tout le monde !?

    merci d avance

  8. #8
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    T'as pas le droit d'utiliser la méthode title, mais tu as le droit d'utiliser upper ?
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  9. #9
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2018
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    T'as pas le droit d'utiliser la méthode title, mais tu as le droit d'utiliser upper ?
    bonjour,

    non c'est pas question que j ai pas le droit j ai pas dis ça ... mais j ai dis que j'évite d'utiliser les outils de la biblio comme title ou upper ... j aimerai plutôt utiliser les boucles ...

    merci

  10. #10
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Mouais... pourquoi essayer d'inventer la roue carrée ? Le langage python est un langage spécifiquement simple surtout pour ses méthodes d'objets, il est contre productif de faire ce type d'exercice avec.

    Et puis pourquoi une boucle while ? Pourquoi pas une boucle for ? Tu as fais un autre langage avant python ?

    mais j ai dis que j'évite d'utiliser les outils de la biblio comme title ou upper ... j aimerai plutôt utiliser les boucles ...
    Et le pourquoi faire simple quand on peut faire compliqué ?
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  11. #11
    Membre confirmé

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Points : 503
    Points
    503
    Billets dans le blog
    1
    Par défaut
    Donc en gros, tu souhaites réinventer la roue, mais tu n'as pas encore les connaissances pour y arriver.
    Parce que cela est on ne peut plus simple.

    En gros cela se résume grosso-modo à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    créer chaine vide
    Pour chaque caractère de la chaine faire
        Si caractère précédent vaut un espace ou caractère courant est le 1er alors
            ajouter à chaine vide caractère courant en majuscule
        Sinon ajouter à chaine caractère courant

    Maintenant si tu ne veux pas utiliser title, tu peux toujours t'amuser avec ord() et char() et éventuellement de gérer aussi les caractères accentués, etc.
    Le temps ronge l'amour comme l'acide.

  12. #12
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2018
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Mouais... pourquoi essayer d'inventer la roue carrée ? Le langage python est un langage spécifiquement simple surtout pour ses méthodes d'objets, il est contre productif de faire ce type d'exercice avec.

    Et puis pourquoi une boucle while ? Pourquoi pas une boucle for ? Tu as fais un autre langage avant python ?



    Et le pourquoi faire simple quand on peut faire compliqué ?
    j ai pensé que suivre une méthode de développement est mieux surtout en programmation au cas ou on tombe sur des situations plus difficile que des exercices d apprentissage ça reste mon point de vue mais je sais pas

    pour la boucle j sais pas j ai essayé de résoudre des exercices avec c tout ... j ai fais un peu de matlab mais plutôt c++, mais je souhaite vraiment apprendre python pas seulement pour des simples exercices mais plutôt pour répondre a des besoins ou des situations plutôt qui demande un peu développement ...

    merci encore

  13. #13
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2018
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par bistouille Voir le message
    Donc en gros, tu souhaites réinventer la roue, mais tu n'as pas encore les connaissances pour y arriver.
    Parce que cela est on ne peut plus simple.

    En gros cela se résume grosso-modo à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    créer chaine vide
    Pour chaque caractère de la chaine faire
        Si caractère précédent vaut un espace ou caractère courant est le 1er alors
            ajouter à chaine vide caractère courant en majuscule
        Sinon ajouter à chaine caractère courant

    Maintenant si tu ne veux pas utiliser title, tu peux toujours t'amuser avec ord() et char() et éventuellement de gérer aussi les caractères accentués, etc.
    oui j ai pas encore tous les connaissances de base je pense mais bon ... ce que j aimerai apprendre pas seulement de résoudre les exercices d une manière simple car en fin de compte j veux apprendre comment résoudre un gros problème avec c langages au cas ou j aurai un sujet ou projet et j aimerai le faire avec python c plutôt compliquer ... j espère qee vous arrivez a comprendre c que je cherches

    merci encore

  14. #14
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par zouda000 Voir le message
    oui j ai pas encore tous les connaissances de base je pense mais bon ... ce que j aimerai apprendre pas seulement de résoudre les exercices d une manière simple car en fin de compte
    Il y a de bons tutos pour apprendre les bases.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  15. #15
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2018
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Il y a de bons tutos pour apprendre les bases.

    - W
    oui c'est pour ça j me suis inscrite ici

    merci d avance

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/05/2011, 18h59
  2. [RegEx] mettre en majuscule chaque mot d'une chaine
    Par bigs3232 dans le forum Langage
    Réponses: 9
    Dernier message: 20/05/2010, 09h48
  3. Réponses: 10
    Dernier message: 15/10/2008, 11h21
  4. garder les 2eres lettres de chaque mot dans une colonne
    Par infiniti dans le forum Langage
    Réponses: 3
    Dernier message: 01/06/2008, 17h01

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