initiales.py

Created by schraf

Created on September 14, 2018

602 Bytes

Écrire une fonction initiales qui admet en paramètre une phrase et affiche la première lettre de chacun de ses mots en majuscule. Les mots peuvent être séparés par un ou plusieurs espaces. Par exemple : “Rentre avec tes pieds” donnera RATP.

Conseils

  • On aura une première lettre si le caractère n’est pas un espace et si le précédent est un espace. Par exemple dans “ tes”, le “t” est bien une initiale, par contre le “e” non puisqu’il est précédé d’un “t”.
  • On pourra mémoriser le caractère précédent dans une variable nommée preced
  • On ne peut pas comparer le 1er caractère de la phrase avec le précédent puisqu’il n’y en a pas. L’idée est d’initialiser preced avec un espace, ce qui revient à dire que toutes nos phrases commencent par espace.


def initiales(phrase):
  preced=" "
  sortie=""
  for c in phrase:
      if preced==" " and c!=" ":
              sortie+=c.upper()
      preced=c
  return sortie
  
# Ex : initiales("  rentre  avec tes   pieds")
# donnera RATP

# Version 2

def initialesv2(phrase):
  sortie=""
  for i,c in enumerate(phrase):
    if c!=" " and (i==0 or (i>0 and phrase[i-1]==" ")):
      sortie+=c.upper()
  return sortie

# Version 3

def initialesv3(phrase):
  sortie=""
  phrase=" "+phrase
  for i,c in enumerate(phrase):
    if c!=" " and phrase[i-1]==" ":
      sortie+=c.upper()
  return sortie

During your visit to our site, NumWorks needs to install "cookies" or use other technologies to collect data about you in order to:

With the exception of Cookies essential to the operation of the site, NumWorks leaves you the choice: you can accept Cookies for audience measurement by clicking on the "Accept and continue" button, or refuse these Cookies by clicking on the "Continue without accepting" button or by continuing your browsing. You can update your choice at any time by clicking on the link "Manage my cookies" at the bottom of the page. For more information, please consult our <a href="https://www.numworks.com/legal/cookies-policy/">cookies policy</a>.