Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
python:bases:variables [2022/08/16 08:47] – [1.8 Portée des variables] phil | python:bases:variables [2022/09/25 10:33] (Version actuelle) – [Plus loin ...] phil |
---|
{{ :suivant.png?nolink&30|}} {{ :retour.png?nolink&30|}} [[:python:accueilpython|{{ :iconemaison.jpg?nolink&30|Sommaire Python et microPython}}]] | [[python:bases:controle|{{ :suivant.png?nolink&30|Les instructions de contrôle}}]] {{ :retour.png?nolink&30|}} [[:python:accueilpython|{{ :iconemaison.jpg?nolink&30|Sommaire Python et microPython}}]] |
| |
===== Python - Variables, types numériques et entrées / sorties dans la console ===== | ===== Python - Variables, constantes, types numériques et entrées / sorties dans la console ===== |
| |
[Mise à jour le : 19/7/2021] | [Mise à jour le : 16/8/2022] |
| |
* **Sources** | * **Sources** |
| |
=== 1.8 Portée des variables === | === 1.8 Portée des variables === |
> La **portée** d'une variable est la portion de code source où elle est accessible. | La **portée** d'une variable est la portion de code source où elle est accessible. |
| |
<note important>Pour connaître la portée d'une variable on utilise la règle **LEGB** : \\ **L**ocalement (variable déclarée dans une fonction) \\ **E**nglobante (variable déclarée dans une fonction qui contient la fonction où elle est appelée) \\ **G**lobalement (variable déclarée globalement) \\ **B**uiltins (est une variable Built-in)</note> | <callout type="warning" icon="true">Pour connaître la portée d'une variable on utilise la règle **LEGB** : \\ **L**ocalement (variable déclarée dans une fonction) \\ **E**nglobante (variable déclarée dans une fonction qui contient la fonction où elle est appelée) \\ **G**lobalement (variable déclarée globalement) \\ **B**uiltins (est une variable Built-in)</callout> |
| |
* **Espace local** | * **Espace local** |
</code> | </code> |
| |
//Résultat attendu// | //Résultat attendu// \\ |
| Avant l'appel de func, valext = 5 \\ |
> Avant l'appel de func, valext = 5 | Dans la fonction func, valext = 5 \\ |
> Dans la fonction func, valext = 5 | Dans la fonction func, valint * 2 = 10 \\ |
> Dans la fonction func, valint * 2 = 10 | Après l'appel de func et l'opération valext = func(valext), valext = 10 car valint <- valext lors de l'appel \\ |
> Après l'appel de func et l'opération valext = func(valext), valext = 10 car valint <- valext lors de l'appel | **Une exception s'est produite : NameError** \\ |
> **Une exception s'est produite : NameError** | **name 'valint' is not defined** \\ |
> **name 'valint' is not defined** | |
| |
<callout icon="fa fa-hand-stop-o" color="red" title="ATTENTION">Une fonction ne peut pas modifier la valeur d'une variable extérieure à son espace local par une affectation.</callout> | <callout icon="fa fa-hand-stop-o" color="red" title="ATTENTION">Une fonction ne peut pas modifier la valeur d'une variable extérieure à son espace local par une affectation.</callout> |
print("Après l'appel de func, valext = ", func()) | print("Après l'appel de func, valext = ", func()) |
</code> | </code> |
| |
| |
==== 2. Entrée / sortie dans la console ==== | ==== 2. Entrée / sortie dans la console ==== |
> Il est fréquent qu'un utilisateur ait besoin de saisir des informations lors de l'exécution d'un programme. Les fonctions **print()** et **input()** permettent d'interragir avec l'utilisateur dans la console. | Il est fréquent qu'un utilisateur ait besoin de saisir des informations lors de l'exécution d'un programme. Les fonctions **print()** et **input()** permettent d'interragir avec l'utilisateur dans la console. |
| |
=== 2.1 Afficher le contenu des variables === | === 2.1 Afficher le contenu des variables === |
</code> | </code> |
| |
<callout type="primary" icon="trie">Par défaut l'instruction **print** provoque un retour à la ligne après l'affichage. On peut changer ce comportement en fournissant une autre chaîne de caractère à accoler à l'affichage comme ci-dessus ou même rien.</callout> | <callout type="primary" icon="true">Par défaut l'instruction **print** provoque un retour à la ligne après l'affichage. On peut changer ce comportement en fournissant une autre chaîne de caractère à accoler à l'affichage comme ci-dessus ou même rien.</callout> |
| |
// Exemple // | // Exemple // |
| |
---- | ---- |
| |
| ==== 3. Constantes ==== |
| |
| {{ :python:bases:realpython.png?nolink|}} |
| * **Real Python** : <html><a href="https://realpython.com/python-constants/" target=_blank">Python Constants: Improve Your Code's Maintainability</a></html> |
| |
==== Résumé ==== | ==== Résumé ==== |
| |
==== Plus loin ... ==== | ==== Plus loin ... ==== |
| * <html><a href="https://realpython.com/python-numbers/" target="_blank">Numbers in Python</a></html> |
| * <html><a href="https://realpython.com/python-boolean/#the-in-operator" target="_blank">Python Booleans: Optimize Your Code With Truth Values</a></html> |
* <html><a href="https://realpython.com/python-namespaces-scope/" target="_blank">Namespaces and Scope in Python</a></html> | * <html><a href="https://realpython.com/python-namespaces-scope/" target="_blank">Namespaces and Scope in Python</a></html> |
| |