Chaînes de caractères

Voyelles ou Consonnes.

  1. Ecrire un programme en Python qui demande de saisir une chaîne de caractères et d’afficher le nombre de voyelles dans cette chaîne de caractères.
  2. Résolution de l'exercice "Nombre de voyelles".

    # -*- coding: utf-8 -*-
    def voyelles(mot):
        """
        Fonction, de paramètre une chaîne de caractères, qui
         renvoie le nombre de voyelles dans cette chaîne de caractères.
        """
        voyelles = "aeiouyAEIOUY"
        nombre = 0
        for lettre in mot :
            if lettre in voyelles:
                nombre = nombre + 1
        print("Le nombre de voyelles dans \"{}\" est {}".format(mot, nombre))
    
    #Programme principal
    voyelles("python")
  3. Modifier cette fonction pour qu'elle affiche le nombre de consonnes dans une chaîne de caractères.
  4. Résolution de l'exercice "Nombre de consonnes".

    # -*- coding: utf-8 -*-
    def voyelles(mot):
        """
        Fonction, de paramètre une chaîne de caractères, qui
         renvoie le nombre de voyelles dans cette chaîne de caractères.
        """
        voyelles = "aeiouyAEIOUY"
        nombre = 0
        for lettre in mot :
            if lettre not in voyelles:
                nombre = nombre + 1
        print("Le nombre de consonnes dans \"{}\" est {}".format(mot, nombre))
    
    #Programme principal
    voyelles("python")

Présence d'un caractère dans un mot.

On considère le jeu suivant : Le joueur 1 note sur sa feuille un mot (une phrase) et le second note une lettre (un mot) sur sa feuille. Puis, on compte le nombre d'apparitions de la lettre (du mot) qui correspond au nombre de points gagnés par le second joueur. Ensuite, on inverse les rôles.

    L'objectif de cet exercice est d'écrire une fonction qui fait les tâches suivantes :
  • Le joueur 1 propose un mot.
  • Le joueur 2 propose une lettre.
  • L’ordinateur indique alors si cette lettre est présente ou non dans le mot et précise combien de fois elle apparaît.

Ecrire une fonction, de paramètres une chaîne de caractères et un caractère, qui renvoie le nombre d'apparitions du caractère dans la chaîne de caractères.

Résolution de l'exercice "Présence d'un caractère dans un mots".

# -*- coding: utf-8 -*-
def jeuMot(mot,lettre):
    """
    Fonction, de paramètres une chaîne de caractères
    et un caractère, qui renvoie le nombre d'apparitions
    du caractère dans la chaîne de caractères.
    """
    n=0
    for c in mot :
        if c == lettre:
            n = n + 1

    if n == 0:
        return "la lettre {} n'apparaît pas dans la chaîne \"{}\"".format(lettre,mot)
    else :
        return "la lettre \"{}\" apparaît {} fois dans la chaîne \"{}\"".format(lettre,n,mot)

Une autre solution

# -*- coding: utf-8 -*-
def jeuMot(mot,lettre):
    """
    Fonction, de paramètres une chaîne de caractères
    et un caractère, qui renvoie le nombre d'apparitions
    du caractère dans la chaîne de caractères.
    """
    n = mot.count(lettre)
    if n == 0:
        return "la lettre {} n'apparaît pas dans la chaîne \"{}\"".format(lettre,mot)
    else :
        return "la lettre \"{}\" apparaît {} fois dans la chaîne \"{}\"".format(lettre,n,mot)

Mélanger les caractères d'un mot.

  1. Ecrire une fonction, de paramètre une chaîne de caractères, qui mélange les caractères de la chaîne et renvoie la chaîne constituée par les caractères mélangés.
  2. Résolution de l'exercice "melanger les caractères d'un mot".

    # -*- coding: utf-8 -*-
    from random import *
    def melange(mot):
        """
        Fonction, de paramètres une chaîne de caractères, qui
         mélange les caractères de la chaîne et renvoie la chaîne 
    	 constituée par les caractères mélangés.
        """
        melange = mot
        for i in range(len(mot)):
            m = randint(0,len(mot)-1)
            n = randint(0,len(mot)-1)
            nouveau = ""
            for j in range(len(melange)):
                if j == m:
                    nouveau = nouveau + melange[n]
                elif j == n:
                    nouveau = nouveau + melange[m]
                else :
                    nouveau = nouveau + melange[j]
            melange = nouveau
        return "Voici la chaîne de caractères mélangée : {}".format(melange)
  3. On considère le jeu suivant : le joueur1 entre un mot, l’ordinateur mélange les lettres, affiche le mot constitué par les lettres mélangées. Le joueur2 doit alors retrouver le mot initial ou un mot qui a un sens.

    Ecrire une fonction qui réalise le jeu.

  4. Résolution de l'exercice "Retrouver le mot initial".

    # -*- coding: utf-8 -*-
    from random import *
    def JeuMelange(mot):
        """
        Fonction, de paramètres une chaîne de caractères, qui
         mélange les caractères de la chaîne et renvoie la chaîne
         de caractères mélangée.
        """
        melange = mot
        for i in range(len(mot)):
            m = randint(0,len(mot)-1)
            n = randint(0,len(mot)-1)
            nouveau = ""
            for j in range(len(melange)):
                if j == m:
                    nouveau = nouveau + melange[n]
                elif j == n:
                    nouveau = nouveau + melange[m]
                else :
                    nouveau = nouveau + melange[j]
            melange = nouveau
        print("Voici la chaîne de caractères mélangée : {}".format(melange))
        prop = "&&&"
        while prop != "":
            prop = input("joueur 2 : Entrez une proposition :")
            if prop == mot :
                print("Bravo, vous avez trouvé le mot ")
                prop = ""
            else :
                print("Non, vous n'avez pas trouvé le mot exact ")

Scrabble.

Le Scrabble est un jeu de société dont l’objectif est de cumuler des points : On place dans une chaîne 7 lettres correspondant au tirage du jeu d’un joueur de scrabble.

1 point EAINORSTUL
2 points DMG
3 points BCP
4 points FHV
8 pointsJQ
10 pointsKWXYZ

Remarque

Pas de répétition de lettres, c’est-à-dire, si on appelle jeu les 7 lettres du joueur et mot le mot que l’on veut écrire avec ces lettres, il faut que pour chaque caractère du mot, le nombre d’apparitions soit supérieur ou égal au nombre d’apparitions de ce même caractère dans le jeu.

  1. Réaliser une fonction qui demande au joueur un mot et lui renvoie s’il peut en effet le former avec ses 7 lettres choisies au hasard.
  2. Résolution de l'exercice "Mot de sept lettres".

    # -*- coding: utf-8 -*-
    from random import *
    def scrable() :
        """
        Cette fonction consiste à placer dans une chaîne 7 lettres correspondant
        au tirage du jeu d'un joueur de scrable, demander au joueur le mot et
        vérifier s'il peut le former avec toutes ou une partie des 7 lettres et
        de compter le nombre de points que rapporte un mot au scrabble.
        """
        alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        jeu=''
        for i in range(7):
            k = randint(0,25)
            jeu=jeu+alphabet[k]
        mot = input("Entrez un mot que vous voulez \
        érire avec les lettres {} : ".format(jeu)).upper()
        possible = True
        for lettre in mot:
            if jeu.count(lettre) < mot.count(lettre):
                possible = False
        if possible:
            return "On peut écrire {} avec {}".format(mot, jeu)
        else :
            "On ne peut pas écrire {} avec {}".format(mot, jeu)
    		
    #Programme principal
    
    scrable()
  3. Réaliser une fonction qui renvoie le nombre de points que rapporte un mot au scrabble.
  4. Résolution de l'exercice "Le nombre de points".

    # -*- coding: utf-8 -*-
    from random import *
    def scrableP() :
        """
        Cette fonction consiste à placer dans une chaîne 7 lettres correspondant
        au tirage du jeu d'un joueur de scrable, demander au joueur le mot et
        vérifier s'il peut le former avec toutes ou une partie des 7 lettres et
        de compter le nombre de points que rapporte un mot au scrabble.
        """
        alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        jeu=''
        for i in range(7):
            k = randint(0,25)
            jeu=jeu+alphabet[k]
        mot = input("Entrez un mot que vous voulez \
        érire avec les lettres {} : ".format(jeu)).upper()
        possible = True
        for lettre in mot:
            if jeu.count(lettre) < mot.count(lettre):
                possible = False
        if possible:
            print("On peut écrire ", mot, "avec ", jeu)
            points = 0
            for lettre in mot :
                if lettre in 'EAINORSTUL':
                    points = points + 1
                if lettre in 'DMG':
                    points = points + 2
                if lettre in 'BCP':
                    points = points + 3
                if lettre in 'FHV':
                    points = points + 4
                if lettre in 'JQ':
                    points = points + 8
                if lettre in 'KWXYZ':
                    points = points + 10
            print("le mot ", mot, "rapporte ", points, "points.")
        else :
            print("On ne peut pas écrire ", mot, "avec ", jeu)
    		
    #Programme principal
    
    scrableP()