2022-2023/1NSI/04_Fonctions_specifications.../1E_fonctions_de_decorations...

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
}