Composer des textes¶
Dans cette section nous allons mettre en pratique les concepts
listes de mots
choix aléatoire dans une liste avec
choice()
nombre entier aléatoire avec
randint(a, b)
reste de la division (modulo)
%
boucle
for
fonction
input()
Le module random¶
Le module random
met à disposition des fonctions pour calculer des valeurs aléatoires. Nous importons deux fonctions.
from random import choice, randint
La fonction choice
permet de choisir un élément aléatoire d’une liste.
On pourrait l’utiliser pour programmer un jeu de pierre-papier-ciseaux.
choice(['pierre', 'papier', 'ciseaux'])
'ciseaux'
La fonction randint(a, b)
permet de choisir un entier aléatoire dans l’intervalle [a, b].
On pourrait l’utiliser pour simuler un dé.
randint(1, 6)
2
Créer des phrases¶
Nous définissons des listes pour différentes catégories de mots:
noms de personne
villes
adverbes
verbes
noms = ['Bill', 'Steve', 'Guido', 'Ada', 'Grace']
villes = ['Paris', 'Tokyo', 'Lausanne', 'Lutry', 'Dubai']
adverbes = ['joyeusement', 'tristement', 'temporairement', 'toujours']
verbes = ['dort', 'vit', 'séjourne', 'travaille', 'voyage', 'se balade', 'étudie']
Avec des mots choisis aléatoirement dans ces listes, nous créons des phrases aléatoires.
for i in range(3):
nom = choice(noms)
ville = choice(villes)
verbe = choice(verbes)
adverbe = choice(adverbes)
print(nom, verbe, adverbe, 'à', ville+'.')
Grace dort temporairement à Tokyo.
Bill se balade temporairement à Paris.
Steve séjourne toujours à Paris.
Écrire un horoscope¶
Le premier horoscope basé sur les signes du zodiaque dans la presse française serait paru dans Marie-Claire en 1935.
En général les horoscopes sont plus souvent positifs que négatifs et incitent à la conformité.
signes = ['Bélier', 'Taureau', 'Gémeaux', 'Cancer', 'Lion', 'Vierge',
'Balance', 'Scorption', 'Sagittaire', 'Capricorne', 'Verseau', 'Poissons']
sujets = ['amour', 'argent', 'travail', 'famille', 'santé']
adverbes = ['très', 'peu', 'souvent', 'rarement', 'incroyablement', 'absolument']
adjectifs = ['avantageux', 'profitable', 'rebondissant', 'variable',
'avantageux', 'magnifique', 'fluctuant']
conseils = ['continuer', 'faire attention', 'faire attention', 'profiter', 'se dépêcher']
Nous composons un horoscope en choisissant aléatoirement:
un sujet
adverbe
adjectif
et en ajoutant un conseil (encourageant une conformité).
for signe in signes[:6]:
sujet = choice(sujets)
adverbe = choice(adverbes)
adjectif = choice(adjectifs)
conseil = choice(conseils)
print(signe)
print('-', sujet + ':', adverbe, adjectif + ',', conseil + '!')
print()
Bélier
- amour: incroyablement variable, faire attention!
Taureau
- famille: très avantageux, se dépêcher!
Gémeaux
- amour: rarement avantageux, faire attention!
Cancer
- famille: souvent variable, faire attention!
Lion
- santé: très avantageux, faire attention!
Vierge
- amour: souvent variable, se dépêcher!
Conjuguer un verbe¶
La conjugaison de beaucoup de verbes est régulière.
Voici une fonction pour conjuguer un verbe en er.
def conjuger(verbe):
print('je', verbe[:-2]+'e')
print('tu', verbe[:-2]+'es')
print('elle', verbe[:-2]+'e')
print()
print('nous', verbe[:-2]+'ons')
print('vous', verbe[:-2]+'ez')
print('elles', verbe[:-2]+'ent')
conjuger('parler')
je parle
tu parles
elle parle
nous parlons
vous parlez
elles parlent
conjuger('programmer')
je programme
tu programmes
elle programme
nous programmons
vous programmez
elles programment
conjuger('progresser')
je progresse
tu progresses
elle progresse
nous progressons
vous progressez
elles progressent
Exercice
Créer une fonction conjuger2()
pour conjuger les verbes qui terminent en -ir.