NSI Première

Fiche Exercices la séquence "Chaîne de caractères"

Correction Exercice sur les chaînes

Exercice 5

Ecrire une fonction double qui prend en argument un mot (type str) et renvoie le mot obtenu en doublant chaque lettre.

Par exemple double("bon") a pour valeur "bboonn"

In [3]:
def double(mot):
    chaine = ""
    for lettre in mot:
        chaine = chaine + 2*lettre
    return chaine
In [4]:
double('bon')
Out[4]:
'bboonn'

Exercice 6

  1. Ecrire une fonction identique qui prend en argument un mot (type str) et renvoie True si le mot commence et se termine par la même lettre et False sinon.
  2. Ecrire une fonction double_identique qui prend en argument deux mots (type str) et renvoie True si les deux mots commencent par la même lettre et se terminent par la même lettre et False sinon.

In [5]:
# Question 1
def identique(mot):
    if mot[0] == mot[-1]:
        return True
    else:
        return False
In [7]:
identique('laval')
Out[7]:
True
In [8]:
identique('Maison')
Out[8]:
False
In [9]:
# Question 2
def double_identique(mot1, mot2):
    if mot1[0] == mot1[-1] and mot2[0] == mot2[-1]:
        return True
    else:
        return False
In [ ]:
 

Exercice 7

  1. Ecrire une fonction occurence qui prend en paramètre une chaine de caractères mot et un caractère c et qui renvoie True si c apparaît dans mot, et False sinon.
      Par exemple: occurence("a", "cheval") renvoie True et occurence("a", "école") renvoie False
  2. Modifier la fonction occurence qui au lieu de renvoyer True , envoie la première position du caractère c dans la chaîne mot et si le caractère n’est pas présent la fonction renvoie -1.
      Par exemple: occurence("a", "cheval") renvoie 4 et occurence("a", "école") renvoie -1
In [11]:
# Question 1
def occurence(c, mot):
    for lettre in mot:
        if lettre == c:
            return True
    return False
In [12]:
occurence("a", "cheval")
Out[12]:
True
In [13]:
occurence("a", "école")
Out[13]:
False
In [15]:
# Une autre version 
def occurence_bis(c, mot):
    if c in mot:
            return True
    return False
In [17]:
occurence_bis("a", "cheval")
Out[17]:
True
In [18]:
occurence_bis("a", "école")
Out[18]:
False
In [22]:
# Question 2
def occurence(c, mot):
    for lettre in mot:
        if lettre == c:
            return mot.index(lettre)
    return -1
In [23]:
occurence("a", "cheval")
Out[23]:
4
In [24]:
occurence("a", "école")
Out[24]:
-1
In [27]:
# Une autre version 
def occurence_bis(c, mot):
    if c in mot:
            return mot.index(c)
    return -1
In [28]:
occurence_bis("a", "cheval")
Out[28]:
4
In [29]:
occurence_bis("a", "école")
Out[29]:
-1

Exercice 8

reverso qui renvoie le mot donné en paramètre à l'envers.

In [30]:
# Une solution possible

def reverso(mot):
    return mot[::-1]

# Jeu d'essai
print("Pass test1 --> ",reverso("")=="")
print("Pass test2 --> ",reverso("a")=="a")
print("Pass test3 --> ",reverso("bonjour")=="ruojnob")
print("Pass test4 --> ",reverso("aa")=="aa")
print("Pass test5 --> ",reverso("laval")=="laval")
Pass test1 -->  True
Pass test2 -->  True
Pass test3 -->  True
Pass test4 -->  True
Pass test5 -->  True

Exercice 9

Écrire une fonction palindrome utilisant la fonction reverso et qui renvoie True si le mot passé en paramètre est un palindrome.

In [31]:
# Une solution possible

def palindrome(mot):
    test = False
    if reverso(mot) == mot and mot !="":
        test = True
    return test
      
# Jeu d'essai
print("Pass test1 --> ",palindrome("") == False)
print("Pass test2 --> ",palindrome("a") == True)
print("Pass test3 --> ",palindrome("bonjour") == False)
print("Pass test4 --> ",palindrome("aa") == True)
print("Pass test5 --> ",palindrome("laval") == True)
Pass test1 -->  True
Pass test2 -->  True
Pass test3 -->  True
Pass test4 -->  True
Pass test5 -->  True