{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# ASCII Art \n", "\n", "### 1- Du graphisme à l'ancienne...\n", "\n", "Lorsque les écrans des ordinateurs n'affichaient que du texte, il fallait ruser avec l'affichage de différents caractères pour essayer de représenter des images...\n", "\n", " Oh le beau sapin !!!\n", "\n", " #\n", " ###\n", " #####\n", " #######\n", " #########\n", " ###########\n", " #############\n", " ###############\n", " #################\n", " #\n", " #\n", " \n", "Essayer le code suivant et le modifier à volonté :\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "i = 4\n", "print(i * '#') # on affiche i fois le caractère dièse" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "On souhaite obtenir à l'écran la sortie suivante, qui représente en Ascii-Art un triangle rectangle :\n", "\n", " #\n", " ##\n", " ###\n", " ####\n", "\n", "Ci-dessous voici une façon de procéder (la tester) :" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# code pas beau N° 1 :\n", "print('#')\n", "print('##')\n", "print('###')\n", "print('####')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "En voici une autre à tester aussi :" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Code pas beau N°2\n", "print(1*'#')\n", "print(2*'#')\n", "print(3*'#')\n", "print(4*'#')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Les deux codes proposés font le travail demandé, mais ce n'est pas une façon convenable de faire : lourdeur mais aussi problème de réutilisation du code.\n", "\n", "Par exemple, si l'on veut maintenant demander à l'utilisateur la hauteur (en nombre de lignes) du motif à réaliser, ces deux codes ne sont pas réutilisables.\n", "\n", "Ce deuxième code (pas beau) nous met cependant sur une voie intéressante, car de ligne en ligne, on voit progresser par pas de un le nombre de motifs ':' à afficher.\n", "\n", "On voit alors qu'un code similaire à celui vu en introduction :\n", "\n", " i = 1\n", " print(i * '#')\n", "\n", "pourrait convenir si on arrivait à répéter la ligne d'instruction **print(i * '#')** en incrémentant à chaque répétition la valeur de i.\n", "\n", "Ce petit problème peut se résoudre avec une structure fondamentale en programmation : **la boucle.**\n", "\n", "Ecrire ci-dessous, à l'aide d'une boucle, un programme permettant d'afficher le même triangle rectangle :\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Code N°3... bien plus joli !\n", "???\n", "...\n", "???" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**EXERCICE 1 :**\n", "\n", "Modifier le code N° 3 pour qu'il demande à l'utilisateur le nombre de lignes à afficher. \n", "\n", "Si nécessaire, revoir le notebook **0_1_interaction_utilisateur.ipynb**" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Code N°3 modifié (ajout de l'interaction utilisateur):\n", "???\n", "...\n", "???\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**EXERCICE 2 :**\n", "\n", "Ecrire ci-dessous, **en 4 lignes de code maximum**, un programme qui reproduit **exactement** le sapin dessiné en introduction...\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Le beau sapin...\n", "???\n", "...\n", "???" ] }, { "source": [ "**Exercice 3 :**\n", "\n", "Ecrire un programme qui demande à l'utilisateur la taille du sapin...puis qui l'affiche.\n", "\n", "*La taille du sapin sera le nombre de lignes du triangle ; le pied du sapin fera toujours deux '#\" de haut.*\n", "\n", "...le programme peut tenir sur 5 lignes !" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Exercice 3 :\n", "???\n", "...\n", "???" ] } ], "metadata": { "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.3-final" } }, "nbformat": 4, "nbformat_minor": 2 }