• Aucun résultat trouvé

Algorithmique et Programmation 1 Valeurs, opérations et variables (et quelques autres choses)

N/A
N/A
Protected

Academic year: 2022

Partager "Algorithmique et Programmation 1 Valeurs, opérations et variables (et quelques autres choses)"

Copied!
15
0
0

Texte intégral

(1)

Algorithmique et Programmation 1

Valeurs, opérations et variables (et quelques autres choses)

Licences Informatique et Mathématiques 1ère année

Premier semestre 2015 – 2016

(2)

Quelques mots sur Python

I Python est un langage :

I Puissant, souple, très répandu, simple, moderne, élégant, facile à utiliser, à maintenir, adapté à l’enseignement, libre et gratuit, portable,baptisé en référence à Monty Python...

I Pas aussi rapide que certains autres

I Langage interprété:

I Programme traduit vers un langage intermédiaire puis exécuté ligne par ligne

I Deux principaux modes d’exécution : console ou programme

(3)

Questions de versions

Attention !

Python 2 6= Python 3

Les deux versions ne sont pas compatibles ! Installez une version 3.x (avec x≥2)

(4)

Types de valeurs

I Toutes les valeurs en Python possèdent un type

I Le type détermine les opérationsqu’on peut appliquer

I Les types les plus simples (on en verra d’autres) sont :

I entier (int) : 0 12 -4 123545

I flottant (float) : 3.14 -1.5 12. 4.56e12

I booléen (bool) : True (vrai) ouFalse(faux)

I valeur indéfinie : None

I chaîne de caractères (str pour “string”) : ’bonjour’

Les majuscules/minuscules sont importantes : True6= true

(5)

Opérations sur les nombres

I Addition (a+b), soustraction (a− b), multiplication (a∗ b), puissance (a∗∗ b)

I sur deuxintet produisant unint

I ou sur deuxfloatet produisant unfloat

I ou sur unintet unfloatet produisant unfloat

>>> 3 + 4 7

>>> 3.0 + 4 7.0

>>> 3.0 + .4 3.4

>>> 34

−1

>>> 3.04

−1.0

>>> 3.4 2.6

>>> 34 12

>>> 3.04 12.0

>>> 3.4 1.2

>>> 3∗∗4 81

>>> 3.0∗∗4 81.0

>>> 3∗∗.4 1.551...

(6)

Opérations sur les nombres

I Division classique (a/ b) : produit toujours un float

I Division euclidienne :

I Quotient(a//b)

I Reste, oumodulo (a %b)

I Siaetbde typeint, produit un int, sinon unfloat

>>> 3 / 4 0.75

>>> 3.0 / 4 0.75

>>> 3.0 / .4 0.75

>>> 3 // 4 0

>>> 3.0 // 4 0.0

>>> 3 // .4 7.0

>>> 3 % 4 3

>>> 3.0 % 4 3.0

>>> 3 % .4

0.19999...# probleme d’arrondi !

Les opérations suivent les règles de priorité usuelles On peut utiliser des parenthèses : (4 + 2)∗ 1.5

(7)

Opérations sur les chaînes de caractères

I Concaténation s +t

>>>’Marne’+’la’+’Vallee’

’MarnelaVallee’

>>>’Marne’+’␣la␣’+’Vallee’

’Marne␣la␣Vallee’

I Répétitions ∗ a

>>>’Hip␣’3 +’Hourra␣!’

’Hip␣Hip␣Hip␣Hourra␣!’

>>> (’Hip␣’3 +’Hourra␣!␣’)2

’Hip␣Hip␣Hip␣Hourra␣!␣Hip␣Hip␣Hip␣Hourra␣!␣’

Beaucoup d’autres opérations (sur les chaînes, les nombres...) On verra ça plus tard

(8)

Variables et affectations

I Variable : nomservant à référencer une valeur

I Une variable est remplacée par sa valeur dans les calculs

I Seules les opérations du type de la valeur sont permises

I Affectation: fait de lier une valeur à unevariable

I Syntaxe : nom=expression

x= 3 y=’UPEM’ z=x+ 2

I On peutréaffecterune variable (même une valeur d’un type différent)

x=’UPEM’

Ce n’est pas du toutle = des mathématiques. Il faut le lire comme “prend la valeur”

(9)

Variables et affectations

Étapes de l’affectationx = 40 + 2

I Calcul dumembre droit(ici 42) et stockage dans la mémoire

x 42

I Création du nom x (sauf si déjà créé)

x 42

I Création du lien entrevariable et valeur

x 42

(10)

Variables et affectations

Étapes de l’affectationy =x + 1

I Calcul dumembre droit après remplacement de chaque variable par la valeur associée (ici x remplacé par 42, résultat : 43)

x 42

43

I Création du nom y (sauf si déjà créé) et du lien entrey et 43

x 42

y 43

Question : Que se passe-t-il quand on exécutex =x + 1 ?

(11)

Variables et affectations

En cas deréaffectation, lien précédentperdu : x =−6.5

x

43 -6.5

Si aucun lien vers la valeur précédente, celle-ci est “détruite”

(12)

Nommage des variables

Règles de nommage des variables :

I Commencent par unelettre, suivie delettres et de chiffres

I Le caractère underscore“_” est considéré comme une lettre

I Éviter les caractères spéciaux (accents, cédille, etc.)

I Les mots réservés (ou mots-clés) de Python sont interdits

I Il y a aussi des conventions (vues plus tard)

Exemples : _ex2 Ex2mpl1

Contre-exemple : 2014mlv

(13)

Mots-clés et autres mots réservés

Les mots suivants sontréservéspour le langage :

and as assert break class continue

def del elif else except finally

for from global if import in

is lambda nonlocal not or pass

raise return try while with yield True False None

Au passage :

I Tout ce qui se trouve après un caractère#est uncommentaire

I Mettre des commentaires dans le code est un bon moyen de pouvoir le reprendre facilement

(14)

Lecture et affichage

Pour interagir avec l’utilisateur, deuxfonctions pré-définies

I Fonction de saisie : x =input()

I L’utilisateur tape une ligne au clavier

I La ligne est stockée sous forme de chaîne de caractères (str)

I Cette valeur peut ensuite être affectée à une variable (icix)

I On peut aussi afficher un message pour l’utilisateur : x=input(’votre␣prenom␣:␣’)

I Fonction d’affichage : print(x)

I Affiche dans le terminal la chaîne de caractères associée àx

I On peut afficher plusieurs valeurs d’un coup : print(x,y,z, ...)

Problème : et si l’on veut saisir un entier ? Afficher un entier ?

(15)

Conversions / transformations de type

On a parfois besoin de convertir une valeur d’un type à l’autre :

I Une valeur en chaîne de caractères avec la fonctionstr

I Un exemple d’affichage : print(5) est équivalent àprint(str(5))

I Un exemple de concaténation : "J’ai␣"+str(10) +’␣ans.’

I Un float, etparfois unstrenint

I Possible : int(3.5) int(’14’)

I Impossible : int(’3.5’) int(’deux’)

I Un int, et parfoisun strenfloat

I Possible : float(3) float(’14.2’)

I Impossible : float(’3,5’) float(’bonjour’)

Références

Documents relatifs

I Si l’on veut sortir de toutes les boucles imbriquées directement, le plus simple est de placer son code dans une fonction et de remplacer break par return ;.. Derniers mots sur

⇒ si vous n’avez pas besoin des positions, forcez-vous à utiliser directement les éléments : le code sera plus lisible ; I while est un peu plus compliqué à utiliser que for ;.

Pour passer d’un type à l’autre, on peut par exemple utiliser la fonction tuple() pour transformer une liste (modifiable) en un tuple (non-modifiable). Pour les dictionnaires comme

I On verra les structures les plus utilisées aujourd’hui, mais il en existe beaucoup d’autres (voir par exemple le module collections ) ;.?. Structures de données

I Un fichier peut aussi être vu comme un itérable de lignes ; I Cela permet de très facilement lire les lignes de fichier ; Exemple (iterable.py). if __name__

renvoie la ligne actuelle du fichier sous forme de chaîne (vide s’il n’y a plus de ligne à lire)

I Comme on l’a vu, lst[:] désigne toute la liste ; I On peut l’utiliser pour modifier lst dans un appel de.

I t[:] désigne toute la liste et nous servira dans les fonctions sur les listes (voir plus loin) ;.. Paramètres par défaut