« Programmation Python/Afficher un texte » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Ligne 38 : Ligne 38 :


== Antislash ==
== Antislash ==
Les caractères affichés par ces fonctions doivent être encadrés par des apostrophes ou des guillemets, mais que se passe-t-il s'ils contiennent eux-mêmes ces symboles ?
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'' :
Testons la fonction ''print'' :
Ligne 55 : Ligne 55 :
|''' ce qui ne marche pas : '''
|''' ce qui ne marche pas : '''
|<source lang="python">
|<source lang="python">
>>> print('un simple guillemet ' encadre par du simple ')
>>> print('un simple guillemet ' encadré par du simple quote ')
[message d'erreur]
[message d'erreur]
>>> print(" pareille pour le " double ")
>>> print(" pareil pour le " double ")
[message d'erreur]
[message d'erreur]
>>> print("double " deux " fois dans double")
>>> print("double " deux " fois dans double")
Ligne 63 : Ligne 63 :
</source>}}
</source>}}


En Python, le simple 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.
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.



Le caractère spécial « \ » (''antislash'') permet quelques subtilités complémentaires :
Pour s'affranchir de ces limitations, on utilise un {{wt|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.
* 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.

Version du 6 mai 2017 à 22:21

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 :

fonction print
>>> print('Hello World!')
Hello World!

input()

input fait comme "print", mais stoppe le programme en attente que l'utilisateur presse "entrée". De plus, si on stocke son résultat une variable, elle contient le texte que l'utilisateur a tapé avant de valider. Si ce texte est vide, le programme plante. Exemple :

variable = input('Quel est votre nom ? ') # répondre avec un texte entre apostrophe
print('Bonjour ' + variable)

raw_input()

raw_input() fait comme "input", mais ne plante pas si le texte est vide.


Afficher des caractères spéciaux

Normalement, les symboles ne faisant pas partie du code ASCII sont traités comme les autres. Ex :

print('à â ç é è ê ë ï ô ù ÿ')
à â ç é è ê ë ï ô ù ÿ

Toutefois selon l'encodage, il peut être nécessaire de les convertir en Unicode en plaçant un "u" avant :

print(u'à â ç é è ê ë ï ô ù ÿ')

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 :

ce qui marche :
>>> print("ça marche aussi")
ça marche aussi
>>> print('et ça ? "ça marche" ou pas')
et ça ? "ça marche" ou pas
>>> print("et on 'essaye' l'inverse")
et on 'essaye' l'inverse
ce qui ne marche pas :
>>> print('un simple guillemet ' encadré par du simple quote ')
[message d'erreur]
>>> print(" pareil pour le " double ")
[message d'erreur]
>>> print("double " deux " fois dans double")
[message d'erreur]

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 :
protection des caractère spéciaux :
>>> print('une chaîne avec des \' guillemets \' simples dans des simples, c\'est protégé ')

une chaîne avec des ' guillemets ' simples dans des simples, c'est protégé

>>> txt3 = '"N\'est-ce pas ?" répondit-elle.'
>>> print txt3
"N'est-ce pas ?" répondit-elle.
>>> Salut = "Ceci est une chaîne plutôt longue\n contenant plusieurs lignes \
... de texte (Ceci fonctionne\n de la même façon en C/C++.\n\
...     Notez que les blancs en début\n de ligne sont significatifs.\n"
>>> print Salut
Ceci est une chaîne plutôt longue
 contenant plusieurs lignes de texte (Ceci fonctionne
 de la même façon en C/C++.
    Notez que les blancs en début
 de ligne sont significatifs.

Remarques

  • La séquence \n dans une chaîne provoque un saut à la ligne.
  • La séquence \' permet d'insérer une apostrophe dans une chaîne délimitée par des apostrophes.
  • Rappelons encore ici que la casse est significative dans les noms de variables (Il faut respecter scrupuleusement le choix initial de majuscules ou minuscules).

« Triple quotes »

Pour insérer plus aisément des caractères spéciaux ou « exotiques » dans une chaîne, sans faire usage de l’antislash, ou pour faire accepter l’antislash lui-même dans la chaîne, on peut encore délimiter la chaîne à l'aide de triples guillemets ou de triples apostrophes :

>>> a1 = """
... Usage: trucmuche[OPTIONS]
... { -h
...   -H hôte
... }"""

>>> print a1

Usage: trucmuche[OPTIONS]
{ -h
  -H hôte
}