GitLab now enforces expiry dates on tokens that originally had no set expiration date. Those tokens were given an expiration date of one year later. Please review your personal access tokens, project access tokens, and group access tokens to ensure you are aware of upcoming expirations. Administrators of GitLab can find more information on how to identify and mitigate interruption in our documentation.
There was an error fetching the commit references. Please try again later.
"Le prix d'un café acheté sur une machine à café de la cafétéria du Patio est de 80 centimes. \n",
"Par ailleurs, les cafés sont distribués dans des gobelets en carton jetables. \n",
"D'après [cet article](https://www.linkedin.com/pulse/%C3%A9tude-de-cas-bilan-carbone-le-gobelet-fip-objets-publicitaires/?originalSubdomain=fr), un gobelet en carton a une empreinte carbone de 0,007 kgCO2e environ. Un gobelet réutilisable en plastique a une empreinte carbone de 0,06 kgCO2 (le gobelet étant réutilisé, cette empreinte est la même quelle que soit le nombre d'utilisations).\n",
"D'après [cet article](https://www.linkedin.com/pulse/%C3%A9tude-de-cas-bilan-carbone-le-gobelet-fip-objets-publicitaires/?originalSubdomain=fr), un gobelet en carton a une empreinte carbone de 0,007 kgCO2e environ. Un gobelet réutilisable en plastique a une empreinte carbone de 0,06 kgCO2 (le gobelet étant réutilisé, cette empreinte est la même quel que soit le nombre d'utilisations).\n",
"Enfin, à la caféteria, les personnes qui utilisent leur propre gobelet bénéficient d'une réduction de 10 centimes : le café coûte alors 70 centimes. \n",
"\n",
"Ecrivez un programme qui demande le nombre de cafés consommés par semaine\n",
...
...
%% Cell type:markdown id: tags:
# Les chaînes de caractères
## Sommaire
1.[Initialisation des chaînes de caractères](#initialisation)
1.[Les caractères spéciaux](#caractères)
1.[✏️ Exercice : apostrophes](#ex_apostrophes)
1.[Concaténation de chaînes de caractères](#concatenation)
1.[Accès aux caractères d'une chaîne](#accès)
1.[✏️ Exercice : tranches et concaténations de chaînes](#ex_tranches)
1.[Insertion de valeurs dans une chaîne](#insertion)
1.[Chaînes vs. nombres](#nombres)
1.[✏️ Exercice : singulier d'un nom](#ex_singulier)
1.[✏️ Exercice : nombre au carré](#ex_carré)
1.[✏️ Exercice : conjugaison au présent de l'indicatif](#ex_present)
1.[✏️ Exercice : impact carbone des gobelets pour le café](#ex_gobelet)
En linguistique informatique, on travaille essentiellement sur des données textuelles. Il est donc nécessaire d'apprendre à manipuler les variables de type chaîne de caractères qui vont être utilisées pour stocker des textes.
## 1. Initialisation des chaînes de caractères <a name="initialisation"></a>
Les chaînes de caractères sont entourées par des guillemets droits, simples ou doubles. Toute la chaîne doit se trouver sur la même ligne. Pour entrer des textes sur plusieurs lignes, il faut les entourer par trois apostrophes (''')
%% Cell type:code id: tags:
``` python
haiku='''Un vieil etang et
Une grenouille qui plonge,
Le bruit de l'eau.'''
print(haiku)
```
%% Cell type:markdown id: tags:
## 2. Les caractères spéciaux <a name="caractères"></a>
Testez le code ci-dessous :
%% Cell type:code id: tags:
``` python
meteo='Il fait beau aujourd'hui'
```
%% Cell type:markdown id: tags:
L'erreur de syntaxe (`SyntaxError`) indique que l'instruction n'est pas bien formée par rapport aux règles de syntaxe propres au langage Python. En l'occurrence, ici, il y a un problème avec la fermeture de la chaîne. Python identifie la fin de chaîne lorsqu'il rencontre la première apostrophe. Or la chaîne ne se termine qu'après "hui". Dans ces cas, il y a deux solutions.
La première solution consiste à entourer la chaîne par des guillemets doubles :
%% Cell type:code id: tags:
``` python
meteo="Il fait beau aujourd'hui"
```
%% Cell type:markdown id: tags:
La deuxième solution consiste à "échapper" l'apostrophe qui se trouve dans "aujourd'hui" à l'aide du caractère d'échappement `\` :
Initialisez la variable `replique` avec le texte suivant (sans qu'il y a ait d'erreur de syntaxe bien sûr) :
> Petit Gibus dit : "Si j'aurais su, j'aurais pas v'nu !"
%% Cell type:code id: tags:
``` python
replique =
```
%% Cell type:markdown id: tags:
## 4. Concaténation de chaînes de caractères <a name="concatenation"></a>
La concaténation consiste à "coller" des chaînes de caractères ensemble, les unes à la suite des autres. Elle se fait à l'aide du symbole `+` :
%% Cell type:code id: tags:
``` python
salutation = "Bonjour "
prenom = "Ada"
print(salutation + prenom)
```
%% Cell type:markdown id: tags:
## 5. Accès aux caractères d'une chaîne <a name="accès"></a>
Chaque caractère d'une chaîne de caractères est associé à une position dans la chaîne. Le premier caractère se trouve à la position 0, le second caractère à la position 1 et ainsi de suite. Ainsi, pour extraire le cinquième caractère du mot "abracadabra", on écrit :
%% Cell type:code id: tags:
``` python
mot = "abracadabra"
cinquieme_lettre = mot[4]
print(cinquieme_lettre)
```
%% Cell type:markdown id: tags:
On peut également par cette méthode extraire la sous-chaîne d'une chaîne :
%% Cell type:code id: tags:
``` python
mot = "abracadabra"
#Extraction des trois premiers caractères
trois_premiers = mot[0:3]
print("Trois premiers", trois_premiers)
#Extraction des trois derniers caractères
trois_derniers = mot[-3:]
print("Trois derniers", trois_derniers)
#Extraction du deuxieme au cinquième caractère
deux_cinq = mot[1:5]
print("Du 2eme au 5eme caractère", deux_cinq)
```
%% Cell type:markdown id: tags:
L'image ci-dessous illustre le principe de l'extraction de sous-chaînes pour le texte "Monty Python" (Source : http://www.nltk.org/book/ch03.html) :
## 6. ✏️ Exercice : tranches et concaténations de chaînes <a name="ex_tranches"></a>
Soient les deux mots ci-dessous. Donner le code qui permet d'afficher le mot "chanteur" en utilisant uniquement l'extraction de sous-chaînes et la concaténation (il est donc interdit d'utiliser des guillemets).
%% Cell type:code id: tags:
``` python
mot1 = "chanson"
mot2 = "acteur"
```
%% Cell type:markdown id: tags:
## 7. Insertion de valeurs dans une chaîne <a name="insertion"></a>
Pour l'affichage d'un texte contenant la valeur d'une ou plusieurs variables qui ne sont pas des chaînes de caractères (un entier ou un nombre réel), il n'est pas possible d'utiliser l'opérateur de concaténation. Dans ce cas, on utilise des chaînes dites formatées (_f-strings_), qui permettent d'inclure des variables et même des portions de code :
%% Cell type:code id: tags:
``` python
jour = 17
mois = 9
annee = 2018
print(f"Nous sommes le {jour}/{mois}/{annee}")
print(f"Demain nous serons le {jour+1}/{mois}/{annee}")
```
%% Cell type:markdown id: tags:
## 8. Chaînes vs. nombres <a name="nombres"></a>
Quand on entre un texte au clavier, le résultat sera enregistré sous forme de chaîne de caractères, même s'il s'agit d'un nombre. Ainsi, la saisie 15 sera enregistrée '15'. Cela a des répercussions sur les opérations qu'il est possible de faire et leur résultat :
%% Cell type:code id: tags:
``` python
prix = '20'
quantite = 3
print(prix * quantite) # Affiche 202020
prix = 20
print(prix * quantite) # Affiche 60
```
%% Cell type:markdown id: tags:
Quelle est l'opération effectuée par `*` pour les chaînes de caractères ? Pour les nombres ?
Il est possible de transformer une chaîne en nombre et vice-versa:
C'est également possible avec les nombres à virgule :
%% Cell type:code id: tags:
``` python
prix = '15.5'
prix_converti = float(prix)
print(prix_converti * quantite) # Affiche 46.5
```
%% Cell type:markdown id: tags:
## 9. ✏️ Exercice : singulier d'un nom <a name="ex_singulier"></a>
Reprenez l'exercice vu en début de cours, qui demande un nom commun masculin singulier et affiche son pluriel. Transformez le programme pour qu'il demande un nom masculin pluriel qui se termine par 's' et qui affiche le singulier, comme suit :
```
Entrez un nom commun masculin pluriel :
chiens
Les formes fléchies de "chien" sont:
un chien
des chiens
```
%% Cell type:code id: tags:
``` python
# Exercice : singulier d'un nom
```
%% Cell type:markdown id: tags:
## 10. ✏️ Exercice : nombre au carré <a name="ex_carré"></a>
Ecrire un programme qui demande à l'utilisateur d'entrer un nombre et qui affiche le nombre au carré :
```
Entrez un nombre :
3
3 au carré vaut 9
```
%% Cell type:code id: tags:
``` python
# Exercice : nombre au carré
```
%% Cell type:markdown id: tags:
## 11. ✏️ Exercice : conjugaison au présent de l'indicatif <a name="ex_present"></a>
Écrivez un programme qui demande à l'utilisateur l'infinitif d'un verbe simple du premier groupe, comme par exemple "chanter", puis affiche la conjugaison du verbe au présent de l'indicatif, de la manière suivante :
```
Entrez l'infinitif d'un verbe du premier groupe :
chanter
La conjugaison de "chanter" au present de l'indicatif :
je chante
tu chantes
il/elle/on chante
nous chantons
vous chantez
ils/elles chantent
```
%% Cell type:code id: tags:
``` python
# Exercice : conjugaison au présent de l'indicatif
```
%% Cell type:markdown id: tags:
## 12. ✏️ Exercice : empreinte carbone des gobelets pour le café <a name="ex_gobelet"></a>
Le prix d'un café acheté sur une machine à café de la cafétéria du Patio est de 80 centimes.
Par ailleurs, les cafés sont distribués dans des gobelets en carton jetables.
D'après [cet article](https://www.linkedin.com/pulse/%C3%A9tude-de-cas-bilan-carbone-le-gobelet-fip-objets-publicitaires/?originalSubdomain=fr), un gobelet en carton a une empreinte carbone de 0,007 kgCO2e environ. Un gobelet réutilisable en plastique a une empreinte carbone de 0,06 kgCO2 (le gobelet étant réutilisé, cette empreinte est la même quelle que soit le nombre d'utilisations).
D'après [cet article](https://www.linkedin.com/pulse/%C3%A9tude-de-cas-bilan-carbone-le-gobelet-fip-objets-publicitaires/?originalSubdomain=fr), un gobelet en carton a une empreinte carbone de 0,007 kgCO2e environ. Un gobelet réutilisable en plastique a une empreinte carbone de 0,06 kgCO2 (le gobelet étant réutilisé, cette empreinte est la même quel que soit le nombre d'utilisations).
Enfin, à la caféteria, les personnes qui utilisent leur propre gobelet bénéficient d'une réduction de 10 centimes : le café coûte alors 70 centimes.
Ecrivez un programme qui demande le nombre de cafés consommés par semaine
Le programme affichera ensuite un comparatif entre l'utilisation de gobelets en cartons jetables et l'utilisation d'un gobelet réutilisable, selon les critères suivants :
- l'empreinte carbone totale pour une année universitaire (en considérant qu'une année universitaire a 28 semaines)
- le coût total de la consommation de café pour l'année
Exemple d'utilisation du programme :
```
Combien de cafés consommez-vous par semaine ? 7
Bilan carbone et financier de votre consommation de café par an :
Gobelets en carton jetables : 156.80 € et 1.37 kgCO2e
Gobelet en plastique réutilisable : 137.20 € et 0.06 kgCO2e
En utilisant un gobelet réutilisable, vous économisez 19.60 € et 1.31 kgCO2e
```
%% Cell type:code id: tags:
``` python
# Exercice : empreinte carbone des gobelets pour le café.