Python: Types de bases: Difference between revisions
Wiki-cours (talk | contribs) |
Wiki-cours (talk | contribs) No edit summary |
||
Line 19: | Line 19: | ||
Le mot-clé '''del''' permet de rompre l'affectation et libère le nom de la variable du contenu qui n'est pas pour autant supprimé | Le mot-clé '''del''' permet de rompre l'affectation et libère le nom de la variable du contenu qui n'est pas pour autant supprimé | ||
<source lang="py"> | <source lang="py"> | ||
del a | del a # ou del(a) qui fonctionne aussi | ||
print a | print(a) | ||
</source> | </source> | ||
La fonction '''type()''' permet d'afficher le type d'une variable | La fonction '''type()''' permet d'afficher le type d'une variable | ||
Line 68: | Line 68: | ||
c = complex(1,2) | c = complex(1,2) | ||
d = 1 + 2j | d = 1 + 2j | ||
print c - d | print(c - d) | ||
print (1+1j)**2 / (1j) | print( (1+1j)**2 / (1j) ) | ||
print c.real, c.imag | print(c.real, c.imag) | ||
</source> | </source> | ||
La bibliothèque '''cmath''' fournit de nombreuses fonctions mathématiques pour les complexes. | La bibliothèque '''cmath''' fournit de nombreuses fonctions mathématiques pour les complexes. | ||
Line 81: | Line 81: | ||
<source lang="py"> | <source lang="py"> | ||
test = (2 == 1) | test = (2 == 1) | ||
print test | print(test) | ||
bool(0) | bool(0) | ||
bool(13928) | bool(13928) | ||
Line 116: | Line 116: | ||
|-{{ligne grise}} | |-{{ligne grise}} | ||
| / | | / | ||
| division | | division | ||
| 6 | | 6/4 == 1.5 | ||
|----- | |----- | ||
| ** | | ** | ||
Line 143: | Line 143: | ||
vide = "" # chaîne de caractère vide ou pas de caractère | vide = "" # chaîne de caractère vide ou pas de caractère | ||
aff = str(nombre) | aff = str(nombre) | ||
print nombre, aff | print(nombre, aff) | ||
</source> | </source> | ||
On peut additionner (on dit concaténer pour les chaînes de caractères) et multiplier des strings, mais pas les soustraire ou les diviser | On peut additionner (on dit concaténer pour les chaînes de caractères) et multiplier des strings, mais pas les soustraire ou les diviser | ||
Line 150: | Line 150: | ||
mot *= 3 | mot *= 3 | ||
mot += "alors..." | mot += "alors..." | ||
print mot | print(mot) | ||
</source> | </source> | ||
En fait, une 'string' fonction à peu près comme une liste dans laquelle chaque caractère est un élément. On peut donc accéder à ses éléments par les méthodes de slicing et autres. | En fait, une 'string' fonction à peu près comme une liste dans laquelle chaque caractère est un élément. On peut donc accéder à ses éléments par les méthodes de slicing et autres. | ||
<source lang="py"> | <source lang="py"> | ||
mot = "Bonjour!" | mot = "Bonjour!" | ||
print mot[-1], mot[3:5], 'B' in mot | print(mot[-1], mot[3:5], 'B' in mot) | ||
</source> | </source> | ||
Cependant, on ne peut pas modifier un caractère d'une chaîne de caractère en l'adressant. Il faut en créer une nouvelle. | Cependant, on ne peut pas modifier un caractère d'une chaîne de caractère en l'adressant. Il faut en créer une nouvelle. |
Revision as of 12:00, 4 September 2016
Constante et variable
- une constante désigne une valeur connue non modifiable possédant un certain type.
- une variable est l'association d'un nom associé à un espace réservé en mémoire (une adresse) et un contenu qui est typé. La variable a le type du contenu.
- en Python, une variable peut changer de type à loisir
- certains types peuvent être convertis les uns en les autres, au prix parfois d'une perte d'information.
- un opérateur est une fonction simple, écrits souvent selon la symbolisation mathématique usuelle, qui prend typiquement un ('unaire') ou deux ('binaire') arguments (les opérandes) et renvoie un résultat
- l'affectation d'un contenu (constante, résultat d'une fonction ou d'une expression) à une variable se fait à l'aide du symbole '='.
- une expression est la combinaison de constantes, variables, fonction, opérateurs... sur une même ligne
a = 10 # on affecte la constante entière 10 à la variable 'a'
Il est possible en python de faire des affectations multiples sur la même ligne pour gagner en lisibilité et en concision
a, b, s = 10, 9.3, 'nom'
Le mot-clé del permet de rompre l'affectation et libère le nom de la variable du contenu qui n'est pas pour autant supprimé
del a # ou del(a) qui fonctionne aussi
print(a)
La fonction type() permet d'afficher le type d'une variable
type(a), type(b), type(c)
On peut obtenir l'adresse en mémoire vive d'une variable avec la fonction id()
id(a), id(b), id(c)
Entiers
Les entiers ont deux types int en 32bits et long en 64bits. Le passage en long se fait automatiquement si besoin.
a = 2147483647 # 2**31 - 1
type(a)
a += 1
type(a)
a = 10000000000L # le L permet de dire que la constante est un long
a = 0xABCEF # écriture en hexadécimal après '0x'
Réels
Les nombres réels sont définis littéralement par l'usage du point qui symbolise la virgule:
a = 1.0 # on affecte la constante entière 10 à la variable 'a'
La notation scientifique usuelle permet de simplifier l'expression des puissances de 10:
print 3.2*10**3 == 3.2e3
La conversion en réel se fait par la fonction float qui permet de les définir également:
a = 2
type(a)
a = float(2)
type(a)
La bibliothèque math fournit de nombreuses fonctions mathématiques pour les réels.
Complexes
Les nombres complexes peuvent être créés et manipulés aisément dans python. Ils ont la forme 'a + bj' où 'a' et 'b' sont les parties réelles et imaginaires. On peut les créer aussi avec la fonction 'complex(a,b)'.
c = complex(1,2)
d = 1 + 2j
print(c - d)
print( (1+1j)**2 / (1j) )
print(c.real, c.imag)
La bibliothèque cmath fournit de nombreuses fonctions mathématiques pour les complexes.
Booléens
Un booléen a deux états possibles False ou True, associés 0 pour le premier et 1 pour le second en binaire. Il correspond au type bool en Python. C'est le type attendu par un test de condition et le résultat des opérateurs de comparaison.
test = (2 == 1)
print(test)
bool(0)
bool(13928)
Les types de bases possède un '0' ou vide qui se convertit en False en booléen
bool(0) # int
bool(0.) # float
bool("") # str
bool([]) # list
bool({}) # dict
bool(()) # tuple
Opérateurs standards
Ils s'appliquent ou pas en fonction du type
symbole | effet | exemple |
---|---|---|
+ | addition | 6+4 == 10 |
- | soustraction | 6-4 == 2 |
* | multiplication | 6*4 == 24 |
/ | division | 6/4 == 1.5 |
** | élévation à la puissance | 12**2 == 144 |
// | division entière | 6//4 == 1 |
% | reste de la division entière | 6%4 == 2 |
ainsi que tous les opérateurs unaires qui prennent la variable et lui ré-affectent le résultat: += , -= , *= , /= , **= , //= , %=
Chaînes de caractères
On peut les créer à partir de constantes entourées de guillemets ou entre apostrophes ou par l'utilisation de la fonction str
mot = "Bonjour!"
mot = 'Bonjour!' # même résultat
nombre = 102983
vide = "" # chaîne de caractère vide ou pas de caractère
aff = str(nombre)
print(nombre, aff)
On peut additionner (on dit concaténer pour les chaînes de caractères) et multiplier des strings, mais pas les soustraire ou les diviser
mot = "et "
mot *= 3
mot += "alors..."
print(mot)
En fait, une 'string' fonction à peu près comme une liste dans laquelle chaque caractère est un élément. On peut donc accéder à ses éléments par les méthodes de slicing et autres.
mot = "Bonjour!"
print(mot[-1], mot[3:5], 'B' in mot)
Cependant, on ne peut pas modifier un caractère d'une chaîne de caractère en l'adressant. Il faut en créer une nouvelle.