uments signifie que l'on va introduire un bloc de code, ce sera le bloc de code de la fonction.
<code python>
def f(a, b, c):
print(a, b, c)
</code>
Ici le bloc contient une seule instruction, appela
sque on définit une fonction, comme par exemple:
<code python>
def sum(a,b):
# bloc d'instructions
# de la fonction sum
# ...
</code>
Les variables *a* et *b* sont désignés **param... de définir les **paramètres d'une fonction**.
<code python>
def agenda(nom, prenom, tel):
""" reto... oe', 'prenom': 'John', 'tel': '06 52 47 66 87'}
</code>
Ce fonctionnement est classique. Seulement, on
Python: Portée des variables ======
Un *bloc de code* est un ensemble d'instructions contiguës indenté... tée d'une variable** détermine de quel endroit du code on peut accéder à cette variable. Python utilise ... e est déterminée en fonction de l'endroit dans le code où cette variable est définie**.
* Une variable locale au bloc de code d'une fonction est ce qu'on appelle une **variabl
a classe que l'on appelle **arbre d'héritage**.
<code python>
class Phrase:
"La classe Phrase défin... de classe partagée par toutes les instances
</code>
Pour créer une classe, on utilise l'instruction... on.'.
Maintenant, regardons cet objet `Phrase`.
<code python>
>>> print(Phrase)
<class '__main__.Phrase'>
</code>
L'interpréteur a bien créé un objet "Phrase". À
es:
Pour l'exemple on définit une classe Point1
<code python>
class Point1:
def __init__(self, x, y... ):
return f"Point1[{self.x}, {self.y}]"
</code>
Avec ce code, les instances de Point sont mutables:
<code python>
>>> p1 = Point1(2, 2)
>>> p2 = Point1(2, 3)
# L'
rtagées.
Lorsqu'on fait une affectation simple:
<code python>
>>> a = 3
</code>
À gauche, j'ai l'espace de mes variables, que l'on appellera **espace de nom... ence vers mon entier.
Si par la suite on tape:
<code bash>
>>> a = 'spam'
</code>
Python crée un objet **'spam'** de type chaîne de caractères, compteur de
ratrices**.
===== Expression génératrice =====
<code python>
# compréhension de liste simple
# produit... mémoire
>>> carre = [x**2 for x in range(1000)]
</code>
Cette liste est créée en mémoire et contient le... n peut utiliser la fonction *built-in* ''sum'':
<code python>
>>> sum(carre)
332833500
</code>
Pour calculer la somme de ces éléments, on peut éviter de cré
une troisième classe C, qui hérite de C1 et C2.
<code python>
# déclaration de la classe C1
class C1:
... C héritant de C1 et C2
class C (C1, C2):
pass
</code>
En Python cette notion d'héritage est représent... on d'héritage on s'appuie sur une classe Phrase.
<code python>
s = 'Je fais un MOOC sur Python'
class P... f, phrase):
self.mots = phrase.split()
</code>
La première ligne déclare une chaîne de caractèr
iable **interne** de type chaîne de caractères:
<code bash>
# Attention pas d'espaces entre le nom de v... affectation '=' et la valeur
mavar="hello bash"
</code>
La primitive **declare** permet de définir une... tiliser indifféremment ces mnémoniques.
</note>
<code bash>
# Forme générale:
# declare option label_va... tier
number=33
number=number+3
echo $number
36
</code>
* Voir les notes concernant l'utilisation des
ut d'un fichier on utilise la commande **head**:
<code bash>
# extraire les 15 premières lignes
$ head -n 15 /path/to/file
</code>
Pour extraire les dernière lignes d'un fichier, utiliser la commande **tail**:
<code bash>
# extraire les 20 dernières lignes
$ tail -n 20 /path/to/file
</code>
La commande **split** permet de découper un fic
commun à beaucoup de langages
de programmation.
<code bash>
while condition
do
commande1
commande2
...
done
</code>
==== Exemple d'utilisation de boucles while ====
<code bash>
#!/bin/bash
# Si l'argument 1 est vide, un... $i -lt $nb ] ; do
echo $mot
i=$(($i + 1))
done
</code>
==== Lecture avec read et while ====
Une utili
emples de recherche sont présentées ci dessous.
<code bash>
# Rechercher dans les répertoires /etc et /... ou .cpp
find . -type f -name "*.py" -o "*.cpp"
</code>
La commande find permet de lancer des traitemen... un exemple d'utilisation de l'option **-exec**:
<code bash>
# Retrouver à partir du répertoire courant ... .txt" -exec wc -l {} ’;’ -exec cp {} {}.bak ’;’
</code>
===== Rechercher/traiter dans un fichier =====
adresses IPv6 associées aux interfaces de PC-1:
<code bash>
ip -6 address show
</code>
^ lo0 | **::1** |
^ eth0 | **fe80**::e... e à l'aide des commandes **ifconfig** ou **ip**
<code bash>
$ ip link show eth0
</code>
Adresse MAC de l'interface eth0: **ee:dd:3b:56:5f:5e**
L'adresse UL
assés au script via la ligne de commande; Dans le code du script on récupère ces arguments à l’aide de v... l’exemple d’une affectation par la commande set:
<code bash>
$ set -- 1 2 3 4 5 6 7 8 9 a b
$ echo $1 $9 ${10}
1 9 a
</code>
En plus des variables positionnelles, des varia... ette commande, prenons le script decal.sh avec le code suivant:
<code bash>
#!/bin/bash
echo $# $@
shift