Travailler avec des chaînes de caractères
Démarche de résolution de problèmes
Les différents programmes que vous devez réaliser seront nommés ALP-S11Ex1 à ALP-S11Ex5 et se trouveront dans un dossier nommé ALP-S11.
Ecrire un programme permettant d'afficher le nombre d'occurences (= apparitions) d'un caractère dans une chaîne. Votre programme doit contenir au minimum une fonction.
Par exemple, le caractère a
apparaît 5
fois dans la chaîne "abracadabra"
.
Faire saisir par l'utilisateur la chaîne et le caractère à compter puis afficher le résultat comme suit:
la lettre 'a' se trouve 5 fois dans 'abracadabra'
Ecrire une fonction compte_et_affiche_types_de_car(s)
qui compte et affiche le nombre de : minuscules, majuscules, chiffres et autres symboles d'une chaîne s
passée en paramètre.
Par exemple, cet appel :
compte_et_affiche_types_de_car("P@#yn26at^&i5ve")
produit l'affichage suivant (notez la gestion des pluriels et singuliers) :
La chaîne contient 7 minuscules, 1 majuscule, 3 chiffres et 4 autres symboles.
Informations:
Vous pouvez déclarer les constantes suivantes:
MINUSCULES = "abcdefghijklmnopqrstuvwxyz"
MAJUSCULES = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
NUM = "0123456789"
et voir si le caractère que vous testez s'y trouve (sinon c'est un autre symbole).
Une autre approche est possible avec les fonctions islower()
ou isupper()
qui s'utilisent comme ceci c.islower()
... A vous de choisir !
Ecrire une fonction ajoute_au_milieu(s1,s2)
qui retourne une chaîne de caractères. La chaine de caractère retournée doit contenir la chaîne s2
au milieu de la chaîne s1
. Si la longueur de s1
est impaire, garder la plus grande partie au début du mot.
Par exemple:
ajoute_au_milieu("python", "COUCOU") → "pytCOUCOUhon"
ajoute_au_milieu("sandbox", "COUCOU") → "sandCOUCOUbox"
Ecrire un programme qui demande un mot à l'utilisateur, puis qui lui indique si ce mot est un palindrome (un mot que se lit dans les deux sens). Votre programme doit contenir au minimum une fonction à résultat booléeen. Votre solution ne doit, si possible, pas inverser la chaîne.
Quel mot voulez-vous tester? sugus
--> sugus est un palindrome
Quel mot voulez-vous tester? python
--> python n'est pas un palindrome
Trouver une autre manière de résoudre le même problème (par exemple en inversant la chaîne cette fois). A écrire dans une (ou plusieurs) autre fonction.
Ecrire une procédure permettant d'afficher "en escalier", descendant (paramètre à 0) ou montant (paramètre à 1), une chaîne de caractères.
Par exemple: la chaîne "abracadabra"
, en descendant
, donne:
a
b
r
a
c
a
d
a
b
r
a
Et en montant
...
a
b
r
a
c
a
d
a
b
r
a