Ajout d'un lien sur le référencement/déréférencement des variables en python
This commit is contained in:
parent
d10d3792bb
commit
fa7e1da50d
Binary file not shown.
@ -1084,7 +1084,7 @@ firstline=88,lastline=95,numberstyle=\tiny,numbersep=6pt]
|
||||
|
||||
La strucutre \verb|try-except-else| est bien connue des programmeurs. L'idée est ici d'intercepter l'erreur produite quand on tente d'imprimer la latitude ou la longitude sur la sortie standard. C'est ce qui est fait avec les lignes \ref{ligne:try1} à \ref{ligne:try2}. Évidemment, cela signifie que cette instruction \verb|print| ne doit pas être retirée. L'exception recherchée est de type \verb|NameError| en raison de l'erreur reportée ci-dessus. Elle est levée à la ligne \ref{ligne:except}. Si elle ne l'est pas, le code se poursuit à la ligne \ref{ligne:else} à la suite du \verb|else:|.
|
||||
|
||||
Cela fonctionne très bien si l'image non géolocalisée est la première. Sinon, les variables latitude et longitude sont référencées et l'exception n'est plus levée. Il est donc nécessaire de les déréférencer à la fin de chaque boucle, comme cela est fait à la ligne \ref{ligne:deref}.
|
||||
Cela fonctionne très bien si l'image non géolocalisée est la première. Sinon, les variables latitude et longitude sont référencées et l'exception n'est plus levée. Il est donc nécessaire de les déréférencer\footnote{Concernant le référencement/déréférencement, voir \url{https://zestedesavoir.com/tutoriels/3163/variables-scopes-et-closures-en-python/}} à la fin de chaque boucle, comme cela est fait à la ligne \ref{ligne:deref}.
|
||||
|
||||
\subsection{Améliorations}
|
||||
Finalement, le code est évidemment améliorable, notamment au niveau des deux fonctions de latitude et longitude. Il est possible de les regrouper en une seule et cela devrait être fait. Mais, comme il est probable que des élèves commencent par écrire ces deux fonctions de la même manière, nous les avons laissées pour souligner que le travail d'un informaticien ne devrait pas s'arrêter là.
|
||||
|
Loading…
Reference in New Issue
Block a user