472 lines
10 KiB
Plaintext
472 lines
10 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "e51b69a2",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Fonctions python pour décorer du texte\n",
|
|
"\n",
|
|
"Dans ce TP, vous allez voir plus en précision la manipulation des chaines de caractère en python et surtout apprendre à manipuler une nouveau concept `les fonctions` en python.\n",
|
|
"\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "3b934b68",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Décorer du texte: manipulation des str (strings)\n",
|
|
"\n",
|
|
"Vous avez déjà vu que les opérations en python n'avait pas le même effets en fonction de type de données sur lesquels elles opéraient.\n",
|
|
"\n",
|
|
"1. Pour tous les cas suivants, faire des tests pour décrire l'effet des opérations suivantes\n",
|
|
"\n",
|
|
"Ci-dessous vous trouverez quelques chaines de caractères pour faire vos tests. N'hésitez pas à en ajouter d'autres qui vous semblent appropriés."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"id": "5779596e",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"chaine1 = \"Bonjour \"\n",
|
|
"chaine2 = \"42\"\n",
|
|
"chaine3 = \"10.23\"\n",
|
|
"chaine4 = \"#\"\n",
|
|
"chaine5 = \"Bonjour\\nComment vas-tu?\\nBien et toi?\""
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "f5ca828f",
|
|
"metadata": {},
|
|
"source": [
|
|
"a) L'opération `+` sur deux chaines de caractères"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "181cceef",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# à compléter"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "5907fa80",
|
|
"metadata": {},
|
|
"source": [
|
|
"Description"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "1cad7007",
|
|
"metadata": {},
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "b0d5fa55",
|
|
"metadata": {},
|
|
"source": [
|
|
"b) L'opération `*` entre une chaine de caractères et un entier"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "21c1972e",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# à compléter"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "9b1b85df",
|
|
"metadata": {},
|
|
"source": [
|
|
"Description"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "fc031ece",
|
|
"metadata": {},
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "b55bf1d9",
|
|
"metadata": {},
|
|
"source": [
|
|
"c) Les opérations `-`, `/` sur deux chaines de caractères"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "4184cd65",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "531763ec",
|
|
"metadata": {},
|
|
"source": [
|
|
"d) La fonction `len(...)` sur une chaine de caractère"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "399fd2a6",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# à compléter"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "38eb7527",
|
|
"metadata": {},
|
|
"source": [
|
|
"Description"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "5112faa0",
|
|
"metadata": {},
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "52d39bc2",
|
|
"metadata": {},
|
|
"source": [
|
|
"2. Compléter le programme suivante pour qu'il affiche le texte contenu dans la variable `texte` entouré de 4 symboles `*` avant et apprès."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "886e910c",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"texte = \"Menu du repas de midi\"\n",
|
|
"# à compléter"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "41cd3376",
|
|
"metadata": {},
|
|
"source": [
|
|
"3. Compléter le programme suivant pour qu'il affiche le texte contenu dans la variable `texte` souligné avec le symbole `-` sur toute la longueure"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "d3d0808e",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"texte = \"Titre de mon roman\"\n",
|
|
"# à compléter\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "000c2e59",
|
|
"metadata": {},
|
|
"source": [
|
|
"4. Comment fait-on pour ajouter un saut de ligne dans une chaine de caractère?"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "66a9c657",
|
|
"metadata": {},
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "c8a1df85",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Les fonctions\n",
|
|
"\n",
|
|
"Quand on écrit des programmes, nous avons souvent besoin de réutiliser des morceaux de code à plusieurs endroits. Afin d'éviter un copié collé, il plus interessant d'utiliser une `fonction` qui contiendra les instructions répétées.\n",
|
|
"\n",
|
|
"Le code sera alors factorisé (une partie servira à plusieurs endroit), plus clair à lire et plus simple à utiliser.\n",
|
|
"\n",
|
|
"Ci-dessous, vous trouverez une fonction qui entoure un texte avec 4 symboles avant et après."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"id": "81a9ed1d",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"def entoure4(texte, symbole):\n",
|
|
" avant = symbole * 4\n",
|
|
" apres = symbole * 4\n",
|
|
" return avant + texte + apres"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "23ede0b2",
|
|
"metadata": {},
|
|
"source": [
|
|
"Quand vous avez validé ce code, a priori rien ne s'est passé. Mais en réalité, vous avez ajouter une nouvelle \"capacité\" au language python sous le mot clé `entoure4`.\n",
|
|
"\n",
|
|
"Vous pouvez alors l'utiliser de la manière suivante"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"id": "5c256888",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"~~~~Bonjour~~~~\n",
|
|
"--------blablabla--------\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"print(entoure4(\"Bonjour\", \"~\"))\n",
|
|
"print(entoure4(\"blablabla\", \"--\"))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "37acfeea",
|
|
"metadata": {},
|
|
"source": [
|
|
"1. Utiliser la fonction `entoure4` pour entourer le texte \"NSI\" avec des \"<3\"."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "bd3c1dbc",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "7e45aeb1",
|
|
"metadata": {},
|
|
"source": [
|
|
"2. Décrire les mots clés et la structure pour définir une fonction."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "722f901b",
|
|
"metadata": {},
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "23bb82d0",
|
|
"metadata": {},
|
|
"source": [
|
|
"3. Ecrire puis tester une fonction qui va ajouter 5 symboles avant un texte."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "79b19741",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "c2826872",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "f8a6cfb0",
|
|
"metadata": {},
|
|
"source": [
|
|
"4. Ecrire puis tester une fonction qui va souligné un texte avec le sympbole `-`."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "ede2aa48",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "b39a53e1",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "993d2f51",
|
|
"metadata": {},
|
|
"source": [
|
|
"5. Ecrire une fonction qui prend en argument un texte et un symbole puis qui retourne le texte souligné du symbole"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "e75a3098",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "d72c78a0",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "758505a5",
|
|
"metadata": {},
|
|
"source": [
|
|
"6. Ecrire une fonction qui prend en argument un texte, un symbole et une nombre puis qui retourne le texte entouré du nombre de symboles avant et après.\n",
|
|
"\n",
|
|
"Exemple:\n",
|
|
"\n",
|
|
"Arguments: texte=\"NSI\", symbole=\"#\", nombre=5\n",
|
|
"\n",
|
|
"Retourne: \"#####NSI#####\""
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "81927856",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "3f1ec576",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "dad10cc7",
|
|
"metadata": {},
|
|
"source": [
|
|
"7. Ecrire une fonction qui prend en argument un texte et un symbole puis qui retrourne le texte **encadré** par le symbole."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "714ca4b6",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "2fb4c208",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "d21d1fc5",
|
|
"metadata": {},
|
|
"source": [
|
|
"8. Ecrire une fonction qui prend en argument un texte et un symbole puis qui retourne le texte avec une pyramide croissante de symboles avant et une décroissante après.\n",
|
|
"\n",
|
|
"Exemple:\n",
|
|
"\n",
|
|
"arguments: texte=\"NSI\" symbole=\"#\"\n",
|
|
"\n",
|
|
"valeur retournée:\n",
|
|
" \n",
|
|
" #\n",
|
|
" ##\n",
|
|
" ###\n",
|
|
" NSI\n",
|
|
" ###\n",
|
|
" ##\n",
|
|
" #"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "732ce915",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3 (ipykernel)",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.10.9"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|