{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Types et valeurs de base : représentation d'un texte en machine\n", "\n", "## 1- La table ASCII\n", "\n", "![title](images/ascii.png)\n", "\n", "(source : wikipedia)\n", "\n", "## 2- Python et le codage des caractères\n", "\n", " Python possède deux fonctions natives concernant le codage d'un caractère **chr() et ord():**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.1- La fonction chr( ) :\n", "\n", "**chr(n) : renvoie le caractère (= character en anglais) correspondant au n fourni en paramètre (n entier)**\n", "\n", "Pour obtenir de l'aide sur la fonction chr(), exécuter la cellule suivante. Quelle valeur maximum peut-on donner à n ?" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# aide sur la fonction chr() :\n", "help(chr)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Essayer la cellule suivante. Quel code hexadécimal faudrait-il mettre à la place du nombre 65 pour obtenir la même lettre ? Le tester" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "chr(65)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Que renvoie la fonction chr(n) si n correspond à un code non imprimable (cases représentées en rose dans la table ASCII ci-dessus ? " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ecrire un programme qui,en utilisant la fonction chr(), permet d'afficher toutes les lettres majuscules de l'alphabet de A à Z :" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Entrer ici le code :\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ecrire un programme qui, en utilisant la fonction chr(), permet d'afficher toutes les lettres majuscules de l'alphabet de Z à A :" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Entrer ici le code :\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ecrire un programme qui, en utilisant la fonction chr(), affiche une lettre majuscule sur deux :" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Entrer ici le code :\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.2- La fonction ord( ) :\n", "\n", "**ord(c) : renvoie l’entier codant le caractère c passé en paramètre **\n", "\n", "Essayer la cellule suivante, puis comparer le résultat avec ce que donne la table ASCII. \n", "Comment modifier cette ligne d'instruction pour récupérer le code en hexadécimal ?" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "print(ord('Z'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.3- Python et le codage UTF8\n", " \n", " Si nécessaire on peut coder un caractère spécifique en utilisant son point de code. Observer l'exemple ci-dessous utilisant deux techniques différentes, puis compléter la cellule pour répondre aux deux questions posées (on réutilisera ces deux techniques):\n", " " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# affichage du symbole \"plus moins\" :\n", "print('\\u00B1')\n", "# ou :\n", "print(chr(0x00B1))\n", "# comment afficher le symbole minuscule \"1/4\" (voir la table 8859-1 donnée dans le cours) :\n", "\n", "# comment afficher le symbole de l'euro (Rque : ce symbole n'existe pas dans la table 8859-1 : à vous de \n", "# trouver le code numérique qui le représente ):\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.4- Exercices d'application :\n", "\n", "**1- Comparer les codes correspondants aux lettres majuscules et aux lettres minuscules.** \n", "\n", "Les exercices proposées ici reposent sur le principe donné par le schéma ci-dessous. \n", "\n", "Celui-ci nous montre où se situent les domaines d'action de l'utilisateur et du programmeur :\n", "\n", "> L'utilisateur voit du texte sur son écran, alors que \"derrière le rideau\" le programmeur agit sur des codes numériques (il peut alors utiliser des opérations comme l'addition ou la soustraction pour modifier ces codes numériques) :\n", "\n", "![title](images/ord_chr.png)\n", "\n", "> **On passe d'un domaine à l'autre en utilisant les fonctions natives ord(c) et chr(n)**\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2.1- Ecrire une fonction maj_2_min( ) prenant en paramètre une lettre majuscule et renvoyant la lettre minuscule correspondante. \n", "> (Il pourra être utile de revoir comment on définit une fonction qui renvoie un résultat à l'aide du notebook **1nsi_7_fonctions_1.ipynb**) :" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# définition de la fonction maj_2_min():\n", "def maj_2_min(lettre):\n", " \"\"\" fonction qui transforme une lettre majuscule en minuscule\n", " :param lettre: (str) la lettre à transformer\n", " :return: (str) la lettre en minuscule\n", " \"\"\"\n", " # votre code ici\n", "\n", "\n", "# utilisation de la fonction : \n", "print(maj_2_min('A'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2.2- Que se passe-t-il si on on met en paramètre de cette fonction un caractère autre qu'une lettre majuscule ? Modifier la fonction pour avoir un \"return\" différent selon que la lettre est bien une majuscule ou pas :" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# définition de la fonction maj_2_min():\n", "\n", "\n", "# utilisation de la fonction (tester différents cas valides et non valides : \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3- Ecrire la fonction inverse min_2_maj() :" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# définition de la fonction min_2_maj():\n", "\n", "\n", "# utilisation de la fonction : \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4- Que ferait un programme dans lequel la fonction min_2_maj() appelerait la fonction maj_to_min() ?\n", "Le tester :" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# \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 }