Browse Source

Transférer les fichiers vers ''

sjanjusic 2 years ago
parent
commit
ecb83bf73c
1 changed files with 370 additions and 0 deletions
  1. 370 0
      Tuto_Python.ipynb

+ 370 - 0
Tuto_Python.ipynb

@@ -0,0 +1,370 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Tuto Python : réaliser un premier programme\n",
+    "\n",
+    "\n",
+    "Pour créer un jeu il va d'abord falloir interagir avec les joueurs. La partie à laquelle nous nous attaquons ici ne nécessite pas encore l'utilisation d'une interface graphique comme Pygame.\n",
+    "\n",
+    "Pour pouvoir faire ce tuto il faut consulter le notebook intitulé ***Quelques notions de bases en programmation*** que vous trouverez dans vos fichiers.\n",
+    "<br><br><br><br>\n",
+    "Pour la suite voici ce que nous allons faire :\n",
+    "\n",
+    "1. Réaliser un programme qui demande des renseignements à son utilisateur.\n",
+    "2. Les renseignements demandés sont :\n",
+    "    - son nom\n",
+    "    - son prénom\n",
+    "    - son âge \n",
+    "3. Le programme doit afficher à l'écran une phrase récapitulative.\n",
+    "4. Le programme enregistre ces informations dans un fichier pour qu'on puisse les utiliser plus tard.\n",
+    "<br><br>\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "\n",
+    "## 1 - Demander des informations à un utilisateur.\n",
+    "\n",
+    "A chaque fois qu'on veut obtenir une réponse de la part de l'utilisateur d'un programme il y a 3 étapes à réaliser :\n",
+    "1. poser la question à l'utilisateur.\n",
+    "2. lui permettre de saisir sa réponse à l'aide du clavier.\n",
+    "3. enregistrer sa réponse dans une variable.\n",
+    "\n",
+    "Vous pouvez poser une question à votre utilisateur en utilisant la fonction **input()**. \n",
+    "Dans l'exemple ci-dessous on crée la variable _nom_ qui va récupérer la réponse de l'utilisateur.\n",
+    "\n",
+    "(Cliquez d'abord sur le bouton **Exécuter** dans la barre d'outils ci-dessus, puis une fois que vous avez tapés le nom faite **Entrer** au clavier)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "nom = input(\"Quel est votre nom de famille ? \")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Si on veut afficher le contenu de la variable _nom_ on peut utiliser la fonction **print()**."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "print(nom)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "**Attention, notez bien :**\n",
+    "\n",
+    "Pour récupérer un nombre entier il y a une astuce à respecter. Il faut en effet convertir le texte saisi par l'utilisateur en utilisant la fonction *int()*\n",
+    "\n",
+    "Voyez l'exemple ci-dessous :"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "nombre_entier = int(input(\"Saisissez un nombre.\"))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 2 - Posez vos questions à votre utilisateur.\n",
+    "### Exercice 01 :\n",
+    "En imitant l'exemple ci-dessus créez les 3 autres variables et les trois questions associées :\n",
+    "- prénom\n",
+    "- âge \n",
+    "- note"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# saisissez votre réponse ici en sautant une ligne.\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 3 - Affichez une phrase récapitulative à l'écran.\n",
+    "\n",
+    "Une fois que vous avez enregistré les différentes réponses de votre utilsateur dans des variables vous pouvez afficher à l'écran une phrase qui les récapitule, du type \"Vous vous appelez ..., vous avez ... ans et votre note de SNT est de ...\"\n",
+    "\n",
+    "Vous allez devoir utiliser la fonction **print()** car celle-ci vous permet de faire apparaître un texte à l'écran.\n",
+    "\n",
+    "Mais ce n'est pas tout : vous allez devoir combiner plusieurs parties de texte. \n",
+    "\n",
+    "Afin de mieux saisir comment faire voici par exemple comment afficher un message de bienvenu reprenant le nom de la personne contenu dans la variable _nom_."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "message_bienvenu = \"Bonjour, vous vous appelez \" + nom\n",
+    "print(message_bienvenu)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Exercice 02 :\n",
+    "En imitant l'exemple ci-dessus affichez le message \"Vous vous appelez ... ..., vous avez ... ans et votre note de SNT est de ...\" où chacun des petits points sont remplacés par le prénom, le nom, l'âge et la note de l'utilisateur. "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# saisissez votre réponse ici en sautant une ligne.\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 4 - Enregistrer les réponses de l'utilisateur dans un fichier.\n",
+    "\n",
+    "Il peut être utile de sauvegarder les réponses de votre utilsateur dans un fichier pour pouvoir les exploiter plus tard. \n",
+    "\n",
+    "Pour cela il faut ajouter la fonction **open()** à votre programme.\n",
+    "Celle-ci permet comme son nom l'indique d'ouvrir un fichier ou s'il n'existe pas de le créer.\n",
+    "\n",
+    "Le lignes suivantes expliquent comment enregistrer le contenue de la variable _nom_ dans un fichier qu'on appelle _variable_nom.txt_."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "fichier = open('variable_nom.txt', 'w') # le 'w' ouvre le fichier en mode écriture \n",
+    "fichier.write(nom) # on écrit dans le fichier\n",
+    "fichier.close() # on ferme le fichier après utilisation"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Exercice 03 :\n",
+    "\n",
+    "En vous inspirant de l'exemple ci-dessus écrivez les lignes de codes permettant d'enregistrer dans un fichier les 4 variables :\n",
+    "- nom\n",
+    "- prénom\n",
+    "- âge \n",
+    "- note"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# saisissez votre réponse ici en sautant une ligne.\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 5 - Créez une fonction\n",
+    "\n",
+    "Comme on l'a vue ci-dessus pour enregistrer une variable dans un fichier il faut écrire trois lignes de codes. Si dans un programme on veut enregistrer quelque chose il faudra à chaque fois retaper ces trois lignes. Plutôt que de faire ça il est possible de créer une fonction qui regroupe ces trois lignes et qui évitera de tout réécrire à chaque fois.\n",
+    "\n",
+    "On peut créer une fonction en utilisant le mot clef **def**, l'exemple ci-dessous modifie le code présenté dans le chapitre 4 pour en faire une fonction."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# création de la fonction\n",
+    "def enregistre (variable_a_enregistrer, nom_du_fichier):\n",
+    "    fichier = open(nom_du_fichier, 'w') \n",
+    "    fichier.write(variable_a_enregistrer) \n",
+    "    fichier.close()\n",
+    "\n",
+    "# utilisation de la fonction\n",
+    "enregistre (nom, 'nouveau_nom.txt')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Cette fonction, à qui on a donné le nom de _enregistre(),_ prend 2 **paramètres** : la variable à enregistrer et le nom du fichier à créer. Ainsi à chaque fois qu'on voudra utiliser cette fonction on pourra faire varier la variable qu'on veut enregistrer et le fichier de destination. "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Exercice 04 :\n",
+    "\n",
+    "Reprenez le code que vous avez écrit pour l'exercice 03 et modifiez le pour pour que l'enregistrement des 4 variables dans un fichier se fasse à l'aide d'une fonction :"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# saisissez votre réponse ici en sautant une ligne.\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 6 - Aller plus loin...\n",
+    "\n",
+    "Maintenant que vous maîtrisez l'art d'enregistrer les renseignements pris à vos utilisateurs vous pensez qu'il est temps qu'on vous donne une bonne note.\n",
+    "\n",
+    "### Exercice 05 :\n",
+    "\n",
+    "Pour en convaincre tout le monde créez un programme qui va générer un fichier contenant 1000 fois la phrase commençant par votre nom et se terminant par \"mérite une bonne note\". Vous pouvez même terminer la phrase en précisant la note que vous vous voudriez avoir."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# saisissez votre réponse ici en sautant une ligne.\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Exercice 06 :\n",
+    "La fonction randint(a,b) du module **random** renvoie un nombre entier aléatoire compris entre a et b.\n",
+    "\n",
+    "En utilisant la fonction randint(), écrivez une fonction que vous appelerez *lance_de()* qui simule un lancé de dé cubiques équilibré dont les faces sont numérotées de 1 à 6. Cette fonction doit donc retourner un nombre aléatoire compris entre 1 à 6. \n",
+    "\n",
+    "Aide: Pour être certain du résultat on affichera avec print() le résultat des dés dans la fonction\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from random import random\n",
+    "\n",
+    "def lance_de():\n",
+    "    # A vous de compléter\n",
+    "\n",
+    "print(lance_de())"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Exercice 07 :\n",
+    "Utilisez la fonction *lance_de()* pour organiser un pari !\n",
+    "\n",
+    "Vous allez donc devoir créer une nouvelle fonction que vous appelerez *pari()*. Celle-ci doit d'abord poser une question au joureur : sur quel nombre est-il prêt à parier.\n",
+    "\n",
+    "Votre fonction doit ensuite simuler un lancé de dé à l'aide de la fonction *lance_de()* puis afficher un message un message de victoire si le joueur a gagné ou au contraire un message de défaite s'il a perdu.\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def pari():\n",
+    "    # A vous de compléter"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Exercice 08 :\n",
+    "Modifiez la fonction *pari()* pour qu'elle demande à présent au joueur non seulement sur quel chiffre il est prêt à parier mais aussi quelle somme d'argent il veut parier.\n",
+    "\n",
+    "En cas de victoire la fonction doit afficher un message indiquant au joueur qu'il a gagné une somme équivalente à 6 fois le montant de son pari.  \n",
+    "\n",
+    "En cas de défaite la fonction doit afficher un message indiquant au joueur qu'il a perdu son pari."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def pari():\n",
+    "    # A vous de compléter"
+   ]
+  }
+ ],
+ "metadata": {
+  "authors": [
+   {
+    "name": "Janjusic Sacha"
+   }
+  ],
+  "kernelspec": {
+   "display_name": "Python 3",
+   "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.7.9"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}