Outils pour utilisateurs

Outils du site


dev:python:start

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
dev:python:start [2020/11/12 18:41] yoanndev:python:start [2021/02/01 21:51] (Version actuelle) – modification externe 127.0.0.1
Ligne 42: Ligne 42:
 </code> </code>
  
 +Pour plus de détails concernant l'installation voir le wiki [[dev:python:core:installer_interpreteurs]]. 
  
 ===== Jeux de caractères ===== ===== Jeux de caractères =====
Ligne 97: Ligne 97:
 ===== Types de base ===== ===== Types de base =====
  
-En Python tout est objet. Le type d'une variable est déterminé dynamiquement, pas de déclaration avant l'utilisation. La fonction **type()** renvoi le type de l'objet passé en paramètre: +En Python tout est objet. Le type d'une variable est déterminé dynamiquement, pas de déclaration de variable avant l'utilisation. La fonction **type()** renvoi le type de l'objet passé en paramètre: 
-Le type est important puisqu'il détermine quelles méthodes peuvent être appelées, quel comportement peut avoir l'objet.+Le type est important puisqu'il détermine quelles méthodes peuvent être appelées, quel comportement peut avoir l'objet. Parmi les types de base (built-in types) ont distingue les types mutables et les types immuables: 
 + 
 +^ Type        ^ Mutablilité | 
 +| int, float   | immuable    |    
 +| complex,bool | immuable    | 
 +| str        | immuable    | 
 +| list        | mutable     | 
 +| dict        | mutable     | 
 +| set          | mutable     | 
 +| frozenset    | immuable    | 
 + 
 +Un objet mutable peut être modifié en place. Un objet immuable ne peut être modifié, python doit réallouer un espace mémoire différent et mettre à jour la référence.
  
 <code python> <code python>
Ligne 128: Ligne 139:
 La fonction **isinstance()** est plus largement utilisée pour la mise en œuvre des mécanismes d'héritage. Elle permet de savoir si un objet est d'un type donné. La fonction **isinstance()** est plus largement utilisée pour la mise en œuvre des mécanismes d'héritage. Elle permet de savoir si un objet est d'un type donné.
  
-De plus comme python est un langage à typage dynamique, il est souvent utile de s'assurer qu'une variable passée à une fonction est du type attendu à l'execution, puisque contrairement à un langage typé statiquement, aucune garantie ne peut être apportée en amont.+De plus comme python est un langage à typage dynamique, isinstance() permet de s'assurer qu'une variable passée à une fonction à l’exécution est du type attendu, puisque contrairement à un langage typé statiquement, aucune garantie ne peut être apportée en amont. 
 + 
 +<note> 
 +Depuis python 3.5 les **Type hints** ou annotations de types permettent d'expliciter les suppositions qui sont faites par le programmeur pour le bon fonctionnement de son code. Totalement optionnelles et meme si elles sont présentes elles ne sont pas utilisées à l'exécution par l'interpréteur. Cependant elles permettent a des outils externes comme mypy d'effectuer des contrôles poussés de correction de code. 
 +</note>
  
 ==== La liste ==== ==== La liste ====
Ligne 149: Ligne 164:
 </code> </code>
  
-Notes plus détaillées à propos des [[dev:python:listes|listes en Python]].+Notes plus détaillées à propos des [[dev:python:core:listes|listes en Python]].
  
 ==== Le tuple ==== ==== Le tuple ====
  
-Le tuple est un ensemble ordonné et figé d'objets pouvant être de types différents. On ne peut pas ajouter/supprimer/modifier les éléments d'un tuple. Le principal avantage d'un tuple est le temps d’accès à l'information bien plus court que la liste.+Le tuple est un objet séquence très proche de la liste, sa principale différence est d'être immuable. Le tuple contient un ensemble ordonné et figé d'objets pouvant être de types différents. On ne peut pas ajouter/supprimer/modifier les éléments d'un tuple. Le principal avantage d'un tuple est le temps d’accès à l'information bien plus court que la liste.
  
 <code python> <code python>
Ligne 203: Ligne 218:
 >>> print(sous_chaine) >>> print(sous_chaine)
 etxet iloj nu etxet iloj nu
 +</code>
  
- +Notes plus détaillées à propos des [[dev:python:core:tuples|tuples]].
-</code>+
  
 ==== Le dictionnaire ==== ==== Le dictionnaire ====
  
-Un dictionnaire est un ensemble dynamique non ordonné (on parle aussi de tableau associatif). On accède aux élément via la clé. Une clé peut être une chaîne de caractères ou un nombre.+Un dictionnaire est un ensemble dynamique non ordonné (on parle aussi de tableau associatif). On accède aux élément via la clé.
  
 <code python> <code python>
Ligne 217: Ligne 232:
  
 Remarque: Pour copier un dictionnaire utiliser la méthode **copy()** Remarque: Pour copier un dictionnaire utiliser la méthode **copy()**
 +
 +Confère wiki [[dev:python:core:type_dictionnaire|dictionnaires]] pour plus de détails.
  
 ===== Définition d'un objet ===== ===== Définition d'un objet =====
Ligne 264: Ligne 281:
   * **eval()** pour évaluer une chaîne de caractères   * **eval()** pour évaluer une chaîne de caractères
  
 +<code python>
 +
 +>>> # La variable c1 référence un objet str
 +>>> c1 = 'say'
 +
 +>>> # création d'une variable c2 référencant le meme objet
 +>>> c2 = c1
 +
 +>>> c2 is c1
 +True
 +
 +>>> print(f"adresse c1: {id(c1):0x}"                                                         
 +adresse c1: 7fc861d4b0b0
 +
 +>>> print(f"adresse c2: {id(c2):0x}"                                                         
 +adresse c2: 7fc861d4b0b0
 +
 +>>> # Comme un objet str est immuable la concaténation 
 +>>> # ci-dessous produit une nouvelle référence associée a c1
 +c1 += ' hello'
 +
 +>>> c2 is c1                                                                                   
 +False
 +
 +>>> print(f"adresse c1: {id(c1):0x}"                                                         
 +adresse c1: 7fc8535cf6b0
 +</code>
  
 ===== Import et modules ===== ===== Import et modules =====
dev/python/start.1605206486.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)