Les dictionnaires sont des tableaux associatifs dans lesquels chaque clés est reliée à une valeur.
Un dictionnaire se crée avec des accolades.
dico = {} # Création d'une dictionnaire vide
dico = {'clé1' : 'valeur1', 'clé2' : 'valeur1', 'clé3' : 'valeur3'} # Création d'une dictionnaire avec 3 valeurs
Pour ajouter une valeur dans un dictionnaire, il faut indiquer une clé entre crochets.
mon_dico[clé] = valeur # Ajout de valeur à la "position" clé
Si on ajoute une valeur à une clé existante, cela remplacera l'ancienne valeur par la nouvelle.
À savoir : si on boucle sur un dictionnaire, Python nous renverra les clés :
for element in dico:
print(element) # Affiche clé1 puis clé2 puis clé3
Les dictionnaires sont des tableaux associatifs dans lesquels chaque clés est reliée à une valeur.
Un dictionnaire se crée avec des accolades.
dico = {} # Création d'une dictionnaire vide
dico = {'clé1' : 'valeur1', 'clé2' : 'valeur1', 'clé3' : 'valeur3'} # Création d'une dictionnaire avec 3 valeurs
Pour ajouter une valeur dans un dictionnaire, il faut indiquer une clé entre crochets.
mon_dico[clé] = valeur # Ajout de valeur à la "position" clé
Si on ajoute une valeur à une clé existante, cela remplacera l'ancienne valeur par la nouvelle.
À savoir : si on boucle sur un dictionnaire, Python nous renverra les clés :
for element in dico:
print(element) # Affiche clé1 puis clé2 puis clé3
BOUCLES - TESTS
Le langage MACRO permet de faire des boucles et des tests. Il faut juste rajouter le symbole % devant les mots clés. Il ne faut pas oublier la macro-fonction %END après les actions qui doivent être faites.
Boucle :
%MACRO boucle;
%DO i=1 %TO 10 %BY 2; /* Pour i allant de 1 à 10, avec un intervalle de 2. */
Action(s) de chaque boucle
%END;
%MEND boucle;
Test :
%MACRO test(i);
%IF &i=1 %THEN %DO; /* Si le paramètre i est égal à 1 alors affiche Test ok. */
%PUT Test ok;
%END;
%ELSE %DO; /* Sinon affiche Test non ok. */
%PUT Test non ok;
%END;
%MEND test;
%test(1); /* Pour i=1, le test sera validé : affichage de Test ok. */
%test(2); /* Pour i=2, le test ne sera pas validé : affichage de Test non ok. */
Dans un macro-programme, il est parfois utile d'utiliser une boucle dans une étape DATA. Il faut donc écrire l'étape DATA sur plusieurs lignes.
%MACRO autoDo(table);
DATA /* Début de l'étape DATA */
%DO i=1 %TO 12; /* Création de 12 tables (vente1 à vente12). */
vente&i /* Le nom des tables crées est la concaténation du mot vente avec la macro-variable compteur i (allant de 1 à 12). On ne met pas de point virgule car l'étape DATA n'est pas finie */
%END;
error /* Création de la table nommée error (en dehors de la boucle). */
; /* Fin de l'étape DATA */
SET &table; /* Utilise les données de la table dont le nom est contenue dans le paramètre table. */
IF mois=1 THEN OUTPUT vente1; /* On doit faire la première condition avant la boucle. */
%DO i=2 %TO 12;
ELSE IF mois=&i THEN OUTPUT vente&i; /* Si le mois est égal à i (allant de 2 à 12) alors les observations sur ce mois sont envoyées dans la table correspondante (vente2 à vente12). */
%END;
ELSE OUTPUT error; /* Si aucune des conditions précédentes ne sont remplies (le numéro du mois n'est pas compris entre 1 et 12) alors les observations sur ce mois sont envoyées dans la table error. */
RUN;
%MEND autoDo;
%autoDo(tableVente); /* Le paramètre table prend la valeur de tableVente. Les données utilisées dans le programme ci-dessus seront donc celles de la table nommée tableVente. */