• Aucun résultat trouvé

Python Types de base

N/A
N/A
Protected

Academic year: 2022

Partager "Python Types de base"

Copied!
13
0
0

Texte intégral

(1)

Python Types de base

Nicolas Delestre

(2)

Rappels ou introduction 1 / 2

Objets, attributs et m´ ethodes

Tout est objet en Python

Un objet a un ´etat d´efini par lesvaleursde ces attributs

On acc`ede `a un attributad’un objeto`a l’aide de la notation point´eeo.a

On peut agir (interroger, modifier, obtenir d’autres objets) sur l’objet en envoyant un message `a un objet On envoie un message (m) `a un objet `a l’aide de la notation point´ee avec entre parenth`eses (obligatoires) des param`etres effectifs (optionnels) :o.m([param1, ...])

Python cherche alors la m´ethode (le code python) `a invoquer (interpr´eter)

(3)

Rappels ou introduction 2 / 2

Identit´ e vs ´ egalit´ e

En python une variable r´ ef´ erence un objet

Deux variables a et b sont consid´ er´ ees comme ´ egales si elles r´ ef´ erencent des objets qui sont ´ egaux (mˆ eme ´ etat mais r´ ef´ erences diff´ erentes)

a == bretourneTrue a is bretourneFalse

Deux variables sont consid´ er´ ees commes identiques si elles r´ ef´ erencent le mˆ eme objet

a == bretourneTrue

a is bretourneTrue

(4)

Le type bool

Deux objets immuables ` a r´ ef´ erence unique : True et False Trois op´ erateurs : or, and et not

Op´ erateurs de comparaison qui retourne un bool´ een

<, >, <=, >=, == (´ egal), !=, is (identique) et is not

(5)

Nombres 1 / 2

Les types num´ eriques

Types de donn´ ees immuables

int repr´ esentant les entiers sign´ es

pr´efixe des constantes (par d´efaut repr´esentation d´ecimale) :0bou0Bpour binaire, 0oou 0Opour octale,0xou0Xpour notation hexad´ecimale,

1 000 000

de 0 `a 256 r´ef´erences uniques

>>> a = 2

>>> b = 1 + 1

>>> a is b True

>>> a = 300

>>> b = 300

>>> a is b False

float repr´ esentant les flottants sign´ es : 1., 1.0, 1e10, 1.E-10

complex repr´ esentant les nombres complexes : 2+3j, 3.j+2

(6)

Nombres 2 / 2

Op´ erateurs et fonctions sur les types num´ eriques Op´ erateurs : +, -, *, /, //, %, **

Fonctions : abs, int, float, complex, divmod, pow

M´ ethode (uniquement sur les complexes) : conjugate

Op´ erateurs bits ` a bits (uniquement sur les int) : ~, <<, >>

(7)

Sequences 1 / 4

tuple

Suite immuable d’objets, qui peuvent ˆ etre muables, de type divers

Exemples : 1,1.0,"abc",a ou (1,1.0,"abc",a) ou tuple(s) avec s une s´ equence

range

Suite immuable d’entiers ordonn´ es s´ epar´ es d’un certains pas (par d´ efaut de 1) Syntaxe : range(fin), range(debut, fin[, pas])

L’entier de fin n’est pas inclu Exemple : range(10)

list

Suite muable d’objets de type divers

Exemples : [1,1.0,"abc",a] ou list(s) avec s une s´ equence

(8)

Sequences 2 / 4

str

Suite immuable de caract`eres UTF-8

Constantes peuvent utiliser des simples quotes, doubles quotes ou des triples simples quotes ou triples doubles quotes

De nombreuses m´ethodes permettant d’interroger, de d´ecouper, de retrouver, de remplacer et de formater une chaˆıne. `A chaque fois elles retournent une valeur (par exemple la nouvelle chaˆıne calcul´ee) https://docs.python.org/fr/3/library/stdtypes.html#text-sequence-type-str

Mise en forme de chaˆıne avec l’utilisation de l’op´erateur%(utilisation d’un tuple si plusieurs valeurs) ou desf-string (`a partir de la version 3.6)

>>> a=1

>>> b="une cha^ıne"

>>> "a vaut %d et b vaut ’%s’" % (a,b)

"a vaut 1 et b vaut ’une cha^ıne’"

>>> f"a vaut {a} et b vaut {b}"

’a vaut 1 et b vaut une chaine’

(9)

Sequences 3 / 4

slice

Permet de d´ esigner une partie d’une s´ equence

>>> a=tuple(range(0,20,2)) # tuple compos´e des 10 premiers nombres pairs

>>> a

(0, 2, 4, 6, 8, 10, 12, 14, 16, 18)

>>> a[slice(None)]

(0, 2, 4, 6, 8, 10, 12, 14, 16, 18)

>>> # d’indice >=0 et <5

>>> a[slice(0,5)]

(0, 2, 4, 6, 8)

>>> a[slice(1,4)]

(2, 4, 6)

>>> a[slice(-2,None)]

(16, 18)

>>> # d’indice >=0 et <5 par pas de 2

>>> a[slice(0,5,2)]

(0, 4, 8)

>>> a[:]

(0, 2, 4, 6, 8, 10, 12, 14, 16, 18)

>>> # d’indice >=0 et <5

>>> a[0:5]

(0, 2, 4, 6, 8)

>>> a[1:4]

(2, 4, 6)

>>> a[-2:]

(16, 18)

>>> # d’indice >=0 et <5 par pas de 2

>>> a[0:5:2]

(0, 4, 8)

(10)

Sequences 4 / 4

Op´ erations, fonctions, m´ ethodes

op´ erations in, not in, +, *, [i], [i:j], [i:j:k]

fonctions len, min, max

m´ ethodes index(X[, i[, i]]), count(x)

Op´ erations suppl´ ementaires pour les s´ equences muables op´ erations s[i] = x, s[i:j] = t, s[i:j:k] = t

fonctions del s[i:j], del s[i:j:k]

m´ ethodes append, clear, copy, extend, insert, pop, remove, reverse

(11)

Ensemble

set et frozenset

Ensemble d’objets hashables

Exemples : {1,2,3,1} ou set(s) avec s une s´ equence pour obtenir un ensemble muable, ou frozenset(s) pour obtenir un ensemble immuable

Op´ erations, fonctions

fonction ethode op´erateur in not in len

isdisjoint

issubset <=

<

issuperset >=

>

fonction ethode op´erateur

union |

intersection &

difference -

symmetric difference ^

(12)

Dictionnaire

dict

Association de cl´ es et de valeurs

Les cl´ es doivent ˆ etre hashables (pas possible pour les s´ equences muables)

Exemples

>>> d={1:"a",(1,2):"b"}

>>> d[1]

’a’

>>> d[(1,2)]

’b’

Op´ erations, fonctions, m´ ethodes

op´erations in,not in,[i], fonction len

ethodes clear,copy,get,items,keys,pop,popitem,update,values

(13)

Conclusion

Dans ce cours nous avons

rappel´e ce qu’est un objet, un attribut, une m´ethode et un message rapell´e la diff´erence entre ´egalit´e et identit´e et les op´erateurs associ´es vu que de base Python propose :

un type pour repr´esenter les bool´eens :bool(immuable)

trois types pour les nombres :int(immuable),float(immuable),complex(immuable) des types pour les s´equences : de caract`eres :str(immuable), d’entiers positifs :range (immuable), d’objets :list(muable),tuple(immuable)

deux types pour les ensembles math´ematiques :set(muable),frozenset(immuable) un type pour les dictionnaires (ou tableaux associatifs) :dict(muable)

vu que l’on peut d´esigner une sous partie d’une s´equence `a l’aide desslice

vu que Python propose dusucre syntaxiquefacilitant la cr´eation des listes ([]), des tuples (()), des ensembles muables ({}), des dictionnaires ({}) et des slices (:)

Références

Documents relatifs

Si on veut cependant que cette équation admette des solutions, il faudra imaginer un ensemble plus grand, ce sera l'ensemble  des nombres complexes (mais ces nombres complexes

En effet les triangles DPR et DGY sont toujours semblables avec un rapport de similitude égal à 2/5 et les hauteurs respectives issues de D,E et F dans les triangles DPR, EPQ et

D Elle permet d’ouvrir le fichier &#34;exemple.txt&#34; en mode écriture même si le fichier n’est pas dans le même dossier que le fichier du programme Python comportant

B elle liste tous les fichiers du répertoire /home/pi et enregistre le résultat dans un fichier toto.txt C elle liste tous les fichiers des répertoires de /home/pi et de toto.txt. D

Sachant que le répertoire courant contient les fichiers fich.txt, mafich.txt et programme.py, quel est le résultat de la commande ls fich* dans un shell

La fission nucléaire est l’éclatement d’un noyau lourd et instable en deux noyaux plus légers et quelques neutrons. Cet éclatement s’accompagne d’un dégagement de

On appelle nombre entier naturel un nombre entier positif ou nul ; les entiers naturels sont les nombres servant à compter les objets (0 n’a été considéré comme nombre

aires constantes entre deux points d’une même sphère; et celui de la détermination des congruences à foyers associés équidistants d’une droite fixe, à celui de