# Programmation Python/Afficher un texte
## Partie 1 - Introduction

* Avant-propos à l'attention des non-programmeurs
* Introduction
* Installation
* Éditeurs
* Programmer en deux minutes
** une messagerie instantanée
** un programme interfacé avec Wikipédia
** un serveur Web

## Partie 2 - Le langage

* Afficher un texte
* Structure d'un programme
* Variables
* Opérateurs
* Structures de contrôle
* Instructions répétitives
* Types
** Numériques
** Booléens
** Chaines de caractères
** Listes
** Tuples
** Dictionnaires
** Dates
** Ensembles
* Fonctions
* Modules
* Exercices
** Palindrome
* Regex
* Programmation orientée objet pour les non-programmeurs
* Classes
* Classes et Interfaces graphiques
* Fichiers
* Exceptions
* Bases de données
** Gestion
* L'interface CGI
* Applications web
* Réseau
* Threads

## Partie 3 - Les bibliothèques

* Bibliothèques pour Python
* L'interface graphique
* Utilisation de fenêtres et de graphismes
** Tkinter
** Widgets
** Turtle
* Les threads
* XML
* JSON
* Tests
* Analyse statique de programmes
* Fabric
* Le Web
** Django
** Karrigell
** Aiohttp

## Partie 1 - Introduction

* Avant-propos à l'attention des non-programmeurs
* Introduction
* Installation
* Éditeurs
* Programmer en deux minutes
** une messagerie instantanée
** un programme interfacé avec Wikipédia
** un serveur Web

## Partie 2 - Le langage

* Afficher un texte
* Structure d'un programme
* Variables
* Opérateurs
* Structures de contrôle
* Instructions répétitives
* Types
** Numériques
** Booléens
** Chaines de caractères
** Listes
** Tuples
** Dictionnaires
** Dates
** Ensembles
* Fonctions
* Modules
* Exercices
** Palindrome
* Regex
* Programmation orientée objet pour les non-programmeurs
* Classes
* Classes et Interfaces graphiques
* Fichiers
* Exceptions
* Bases de données
** Gestion
* L'interface CGI
* Applications web
* Réseau
* Threads

## Partie 3 - Les bibliothèques

* Bibliothèques pour Python
* L'interface graphique
* Utilisation de fenêtres et de graphismes
** Tkinter
** Widgets
** Turtle
* Les threads
* XML
* JSON
* Tests
* Analyse statique de programmes
* Fabric
* Le Web
** Django
** Karrigell
** Aiohttp
[ Modifier le sommaire ]
Ce chapitre détaille les différentes manières d'afficher un texte en console, par exemple pour générer des logs. Les interfaces graphiques plus élaborées seront traitées avec des bibliothèques.

## print

La fonction print sert à afficher des données sur la sortie standard, qui est l’écran. Exemple :
La fonction help de l'interpréteur interactif donne la syntaxe des arguments de la fonction print :

### print formaté

Il est possible de changer une partie du texte en y incorporant des marqueurs de conversion précédés de l'opérateur "%". Il s'agit alors d'un "print formaté" (comme avec printf dans d'autres langages).
Les paramètres placés entre parenthèses à droite de la chaîne à afficher seront insérés dedans, en lieu et place des marqueurs. Cette technique a l'avantage de convertir automatiquement les variables pour qu'elles s'inscrivent dans le texte et qu'elles s'affichent.
Parmi les marqueurs disponibles, on trouve :
* %s représente un paramètre de type "string" (texte).
* %d un "digit" (nombre entier).
* %f un "floating" (flottant : nombre réel).
Exemple :
Depuis la 3.6, On peut aussi format de cette manière :
* f"{variable1} blabla {variable2} etc."
Donc en reprenant l'exemple au-dessus :
Cela équivaut à utiliser la méthode format :

### fstring

Similaire au print formaté, la syntaxe fstring est la suivante :

## input

la fonction input fait comme la fonction print, mais stoppe le programme en attente que l'utilisateur presse "entrée". Son résultat sera de type 'string' (chaîne de caractère, texte).
Ici le contenu de ce que l'utilisateur a tapé avant de valider sera stocké dans la variable nommée variable.

## raw_input

raw_input fait comme input, mais renvoie toujours une chaîne de caractère. Elle ne plante pas si le texte est vide.
À partir de Python 3.1, la fonction "raw_input" n'existe plus, et la fonction input la remplace et renvoie systématiquement une chaîne de caractères.

## Afficher des caractères spéciaux

Normalement, les symboles ne faisant pas partie du code ASCII sont traités comme les autres. Ex :
Toutefois selon l'encodage, il peut être nécessaire de les convertir en Unicode en plaçant un "u" avant :
Pour les retours à la ligne, utiliser "\n".

## Antislash

Les caractères affichés par les fonctions précédentes doivent être encadrés par des apostrophes ou des guillemets, mais que se passe-t-il s'ils contiennent eux-mêmes ces symboles ?
Testons la fonction print :
En Python, le simple quote peut encadrer le double, et le double peut encadrer le simple, car la chaîne commence au premier guillemet et finit au même guillemet.
Pour s'affranchir de ces limitations, on utilise un caractère d'échappement, qui est, en Python, l'antislash (« \ »). Il permet quelques subtilités complémentaires :
* En premier lieu, il permet d'écrire sur plusieurs lignes n'importe quel type de commande. Pratique pour éviter de dépasser les 120 caractères pouvant nécessiter l'utilisation d'un ascenseur latéral pour être lus.
* À l'intérieur d'une chaîne de caractères, l’antislash permet d'insérer un certain nombre de codes spéciaux (sauts à la ligne, apostrophes, guillemets, etc.). Exemples :
On remarque que la séquence \' permet d'insérer une apostrophe dans une chaîne délimitée par des apostrophes, et \" par des guillemets. De même, "\\" affiche "\".
D'autres caractères peuvent aussi être introduits par antislash :
* Retour chariot : \n
* Tabulation : \t

## Triple quotes

Si le nombre d’antislash nuit à la lisibilité du code, on peut délimiter la chaîne à l'aide de triples guillemets ou de triples apostrophes :

## Commentaires

Tout ce qui suit un dièse (#) jusqu'à un retour à la ligne est un commentaire : ce n'est pas pris en compte par l'interpréteur. Mais cette règle ne s'applique pas lorsque le dièse est positionné dans une chaîne de caractères (entre quotes).
Le but reste de produire du code compréhensible sans commentaire, mais ce texte affiché uniquement dans le code source, peut servir à expliquer à celui qui relit le code (y compris soi-même), les subtilités les moins évidentes de celui-ci.
* # Toute cette première ligne est un commentaire.
* print("Bonjour le monde") # Ceci est également un commentaire
* print("Bonjour"); print("Le monde"); # Ceci est une ligne comportant
* # plusieurs instructions
* print("Cette ligne ne contient pas de #commentaire")
* Exemple 1 : On notera que la fonction print affiche son argument.

### Commentaires de bloc

Les commentaires de bloc (block comments en anglais) permettent de commenter plusieurs lignes. En Python, ils sont assurés par des triples apostrophes ou guillemets :

## Couleurs

Il est possible d'écrire en couleurs dans un terminal ANSI (Linux) en précisant leurs codes. Exemple :

## Références

* ↑ https://docs.python.org/2.4/lib/typesseq-strings.html
* ↑ https://i.stack.imgur.com/6otvY.png