Syntaxe PL

La syntaxe PL est la syntaxe employée pour décrire un exercice dans un fichier PL. Il n'y a que trois types d'opérations possibles dans cette syntaxe :

  • affecter une valeur à une clé ;
  • charger un fichier dans l'environnement ;
  • hériter du contenu d'un fichier PL.

Des lignes de commentaires peuvent être insérées en utilisant un croisillon (#) comme caractère initial.

# Ceci est un commentaire.

Affecter une valeur à une clé

Les types de valeur qu'une clé peut prendre sont les types de base de Python :

  • chaînes de caractères ;
  • nombres entiers ;
  • nombres flottants ;
  • booléens ;
  • None ;
  • listes ;
  • dictionnaires.

Opérateur =

Le principal opérateur d'affectation dans la syntaxe PL est l'opérateur =. Il permet d'affecter à une clé une valeur des types cités plus haut.

mystring1 = "Titre de l'exercice"

mystring2 = "Πλάτων"

mynint = 6

myfloat = 17.89

mybool = False

myvar = None

mylist1 = [4, -1, 0.5, 1]

mylist2 = [[0, "A"], [1, "B"], [2, "C"]]

mydict =  {"firstname": "Victor", "lastname": "Hugo", "born": 1802, "dead": 1885}

Il est possible de définir un dictionnaire propriété par propriété ou de façon mixte. Par exemple les définitions ci-dessous sont équivalentes à la définition précédente de mydict.

mydict.firstname = "Victor"
mydict.lastname = "Hugo"
mydict.born = 1802
mydict.dead = 1885
mydict = {"firstname": "Victor", "lastname": "Hugo"}
mydict.born = 1802
mydict.dead = 1885

Warning

La syntaxe PL ne permet pas l'affectation d'une liste ou d'un dictionnaire sur plusieurs lignes.

Opérateur ==

L'opérateur == permet de saisir des chaînes multilignes brutes (sans échappement).

mystring ==
Ligne 1
Ligne 2
==

L'opérateur == est particulièrement utile pour entrer des textes, des scripts Python, des blocs HTML, etc.

myscript ==
lst = []
for k in range(5):
 lst.append(k**2)
==

Il est possible d'activer une coloration syntaxique dans l'éditeur PLaTon en ajoutant une balise en commentaire après l'opérateur ==. Dans l'exemple ci-dessous, la balise py active la coloration syntaxique Python pour le code contenu dans la clé myscript.

myscript == #|py|
lst = []
for k in range(5):
 lst.append(k**2)
==

Autres balises disponibles : html, js (JavaScript).

Charger un fichier dans l'environnement

L'opérateur @ permet de charger un fichier dans l'environnement de l'exercice. Le fichier peut être désigné par son chemin absolu ou par son chemin relatif.

@ dirA/dirB/myfile.py

Le nom du fichier peut-être remplacé par un alias au moment du chargement.

@ dirA/dirB/myfile.py [thisfile.py]

Hériter d'un fichier PL

Hériter d'un fichier PL consiste à importer son contenu (clés, fichiers à charger). C'est avec l'opérateur extends qu'on effectue cette opération. Le fichier peut être désigné par son chemin absolu ou par son chemin relatif.

extends = dirA/dirB/parent.pl 

Si des clés définies dans le corps du fichier PL ont le même nom que des clés héritées, les premières remplacent les secondes. Il en va de même pour les fichiers à charger.

Exemple. L'exercice associé au fichier myfile.pl contiendra une clé key1 valant 0 et une clé key2 valant "toto".

# parent.pl

key1 = 5

key2 = "toto"
# myfile.pl

extends = parent.pl

key1 = 0

Il est possible d'hériter en cascade de plusieurs fichiers.