Vous êtes sur la page 1sur 2

Sorbonne Université — UE LU1IN0*1, Éléments de Programmation 1 (+) — Carte de référence — 2022-23

— Grammaire des types — <alternative> : := if <expression> : bool.


Les éléments simples du langage (noms, symboles) <prog> a == b : vérifie que a et b sont égaux
sont en caractères machine, les ensembles d’éléments ou if <expression> : a != b : vérifie que a et b ne sont égaux
simples en caractères sans sérif. Les éléments composés <prog> a >= b : vérifie que a est plus grand ou égal à b
sont entre < et >. L’étoile ⋆ signifie la répétition d’un <alternant> a > b : vérifie que a est strictement plus grand que b
élément et l’étoile ∗ signifie le produit cartésien. <alternant> : := else : a <= b : vérifie que a est inférieur ou égal à b
<type> : :=<type-base> <prog> a < b : vérifie que a est strictement inférieur à b
ou <type-iter> ou elif <expression> :
ou <type-var> <prog> — Opérations sur les nombres —
ou (<type-fonc>) ou elif <expression> :
Les opérateurs suivants travaillent sur des expres-
ou Tuple[<type>⋆ ] <prog>
sions de type float et renvoient une valeur de type
<type-base> : := int ou float <alternant>
float.
ou bool ou None <boucle-while> : := while <expression> : a + b : effectue l’addition de a et de b
<type-iter> : := str ou List[<type>] <prog> a - b : effectue la soustraction de a par b
ou Set[<type>] <boucle-for> : := for variable in <expression> : a * b : effectue la multiplication de a par b
ou Dict[<type>,<type>] <prog> a ** b : effectue l’exponentiation de a par b
<test> : := assert <expression> a / b : effectue la division (réelle) de a par b
<type-var> : := T ou U etc.
<sequence> : := <prog> produit une erreur lorsque b est égal à 0
— Grammaire du langage — <prog>
<prog> : := <definition> — Opérations sur les entiers —
ou <expression> — Commentaires —
ou <affectation> Ligne commençant par un dièse (#) au moins. Les opérateurs suivants travaillent sur des expres-
ou <alternative> — Vocabulaire — sions de type int et renvoient une valeur de type int.
ou <boucle-while> a // b : effectue la division euclidienne de a par b
Mots-clefs réservés : # ( ) ’ + - * / = < > % "
ou <boucle-for> produit une erreur lorsque b est égal à 0
! and or not if elif else while for in assert
ou <test> a % b : rend le reste de la division euclidienne de a par b
import def return
ou <sequence> produit une erreur lorsque b est égal à 0
constante : les booléens True False, les nombres, les
<définition> : := def nom-fonc (<args>)-><type>: chaînes de caractères, None
<prog> variable, nom-fonc : tout ce qui n’est pas constante — Fonctions arithmétiques —
return <expression> ni réservé min(a : float, b : float,...) -> float :
<args> : := variable :<type> — Spécification et signature de fonction — rend le plus petit des arguments
ou variable :<type> , <args> def nom-fonc (<args>)-><type>: max(a : float, b : float,...) -> float :
<expression> : := variable ou constante """ Précondition: texte rend le plus grand des arguments
ou <application> texte descriptif """ abs(x : float) -> float :
ou <op-un> <expression> rend la valeur absolue de x
— Opérations booléennes —
ou <expression> <op-bin> <expression> Les opérateurs suivants travaillent sur des expres-
— Fonctions du module math —
<op-un> : := - not sions de type bool et renvoient une valeur de type bool. sqrt(x : float) -> float :
<op-bin> : := + - * / == != <= >= % // ** not b : rend la négation de b Précondition : x<0√
and or a and b : rend la conjonction de a et b rend la valeur de x
<application> : := nom-fonc(<argument>) a or b : rend la disjonction de a et b cos(x : float) -> float
<argument> : := <expression> — Opérations sur les valeurs — rend le cosinus de x (en radian)
ou <expression> , <argument> Les opérateurs suivants travaillent sur des expres- sin(x : float) -> float
<affectation> : := variable = <expression> sions de type Valeur et renvoient une valeur de type rend le sinus de x (en radian)
— Fonctions de conversions — — Manipulation des n-uplets — dict() Dict[T, U]
int(x : T) -> int rend le dictionnaire vide
Dans ce qui suit, la variable C est de type Tuple[T1, {k:v,l:w,...} Dict[T, U]
convertit x en un entier
T2, ...], la variable i est de type int et les variables rend le dictionnaire associant
float(x : T) -> float
x, y, ... sont de type T1, T2, ... v à la clé k , w à la clé l , ...
convertit x en un flottant
(x, y, ...) Tuple[T1, T2, ...] D[k] = v None
str(x : T) -> str
rend le n-uplet contenant x , y, ... associe la valeur v à la clé k de D
convertit x en une chaîne de caractères
x, y, ... = C None D[k] U
affecte à x le 1er élément de C, rend la valeur associée à la clé k de D
— Manipulation des chaînes de caractères — à y le second élément de C, ... produit une erreur si la clé k n’existe pas
Dans ce qui suit, les variables s et t sont de type k in D bool
str et les variables i, j et k sont de type int. Les teste si k est une clé de D
expressions suivantes sont toutes de type str. len(D) : int
s + t effectue la concaténation de s avec t — Manipulation des ensembles —
rend le nombre d’associations dans D
s[i] rend le i ème caractère de s Dans ce qui suit, les variables Si sont de type Les itérations sur un dictionnaire peuvent se faire
s[i:j] rend la chaîne composée des caractères de s Set[T], et les variables x et y sont de type T. par clefs : for k in D,
de l’indice i à l’indice j-1 set() : Set[T] ou par associations : for (k,v) in D.items()
s[i:j:k] rend la chaîne composée des caractères de s rend l’ensemble vide — Schémas de compréhension —
de l’indice i à l’indice j-1 par pas de {x, y, ...} Set[T]
k caractères Les schémas de compréhension suivants permettent
rend l’ensemble contenant les valeurs
len(s) : rend le nombre de caractères dans s de créer respectivement des valeurs de type List[T],
x , y , ...
Set[T] et Dict[T,U] :
S.add(x) None
[expr for var in iterable if predicat]
ajoute x à l’ensemble S
— Manipulation des listes — {expr for var in iterable if predicat}
S1 | S2 Set[T]
Dans ce qui suit, les variables L et P sont de type {expr1:expr2 for var in iterable if predicat}
rend l’union de S1 avec S2
List[T], les variables i, j et k sont de type int et les où
S1 & S2 Set[T]
variables x et y sont de type T. rend l’intersection de S1 avec S2 expr et expr1 sont des expressions de type T
[ ] List[T] S1 - S2 Set[T] expr2 est une expression de type U
rend la liste vide rend l’ensemble des éléments de S1 var est une variable
[x, y, ...] List[T] qui ne sont pas dans S2 iterable est une expression de type <type-iter>
rend la liste contenant x , y, ... S1 ^ S2 Set[T]
L.append(x) None predicat est une expression de type bool
rend l’ensemble des éléments qui sont soit
ajoute x à la fin de la liste L dans S1, soit dans S2 mais pas dans les deux — Fonctions diverses —
L + P List[T] S1 <= S2 bool range(n : int, p : int) -> range
effectue la concaténation de L avec P teste si S1 est un sous-ensemble de S2 rend l’intervalle des entiers compris
L[i] T S1 >= S2 bool entre n et p
rend le i ème élément de L teste si S1 est un sur-ensemble de S2 ord(c : str) -> int
produit une erreur si l’indice i x in S bool renvoie l’entier correspondant au code de c
n’est pas valide teste si x est un élément de S chr(i : int) -> str
L[i:j] List[T] len(S) : int renvoie le caractère correspondant au code i
rend la liste des éléments de L de l’indice rend le nombre d’éléments de S help(f) -> None
i à l’indice j-1 affiche la documentation de la fonction f
L[i:j:k] List[T] — Manipulation des dictionnaires — type(x) -> <type>
rend la liste des éléments de L de l’indice rend le type de x
i à l’indice j-1 par pas de k éléments Dans ce qui suit, la variable D est de type Dict[T, print(x) -> None
len(L) : int U], la variable k est de type T et la variable v est de *** Procédure ***
rend le nombre d’éléments de L type U. affiche la représentation de la valeur x

Vous aimerez peut-être aussi