_2023
Ep 37
ⶠTélécharger le sujet en pdf .
EXERCICE 1
Ăcrire une fonction recherche
qui prend en paramĂštres elt
un nombre entier et tab
un tableau de nombres entiers, et qui renvoie lâindice de la derniĂšre occurrence de elt
dans tab
si elt
est dans tab
et -1
sinon.
Exemples :
đ Script Python >>> recherche ( 1 , [ 2 , 3 , 4 ])
- 1
>>> recherche ( 1 , [ 10 , 12 , 1 , 56 ])
2
>>> recherche ( 1 , [ 1 , 0 , 42 , 7 ])
0
>>> recherche ( 1 , [ 1 , 50 , 1 ])
2
>>> recherche ( 1 , [ 8 , 1 , 10 , 1 , 7 , 1 , 8 ])
5
RĂ©ponse
Complétez le code ci-dessous
# Mettre votre code icibksl-nlbksl-nl
Solution
def recherche(elt, tab):bksl-nl for i in range(len(tab)-1, -1, -1):bksl-nl if tab[i] == elt:bksl-nl return ibksl-nl return -1bksl-nlbksl-nl
EXERCICE 2
On définit une classe gérant une adresse IPv4.
On rappelle quâune adresse IPv4 est une adresse de longueur 4 octets, notĂ©e en dĂ©cimale Ă point, en sĂ©parant chacun des octets par un point. On considĂšre un rĂ©seau privĂ© avec une plage dâadresses IP de 192.168.0.0
Ă 192.168.0.255
.
On considĂšre que les adresses IP saisies sont valides.
Les adresses IP 192.168.0.0
et 192.168.0.255
sont des adresses réservées.
Le code ci-dessous implémente la classe AdresseIP
.
Compléter le code ci-dessus et instancier trois objets : adresse1, adresse2, adresse3 avec respectivement les arguments suivants :
'192.168.0.1', '192.168.0.2', '192.168.0.0'
VĂ©rifier que :
đ Script Python >>> adresse1 . est_reservee ()
False
>>> adresse3 . est_reservee ()
True
>>> adresse2 . adresse_suivante () . adresse
'192.168.0.3'
RĂ©ponse
Complétez le code ci-dessous
class AdresseIP:bksl-nl def py-undpy-undinitpy-undpy-und(self, adresse):bksl-nl self.adresse = ...bksl-nlbksl-nl def listepy-undoctet(self):bksl-nl """renvoie une liste de nombres entiers,bksl-nl la liste des octets de l'adresse IP"""bksl-nl return [int(i) for i in self.adresse.split(".")]bksl-nlbksl-nl def estpy-undreservee(self):bksl-nl """renvoie True si l'adresse IP est une adressebksl-nl rĂ©servĂ©e, False sinon"""bksl-nl return ... or ...bksl-nlbksl-nl def adressepy-undsuivante(self):bksl-nl """renvoie un objet de AdresseIP avec l'adressebksl-nl IP qui suit lâadresse selfbksl-nl si elle existe et False sinon"""bksl-nl if ... < 254:bksl-nl octetpy-undnouveau = ... + ...bksl-nl return AdresseIP('192.168.0.' + ...)bksl-nl else:bksl-nl return Falsebksl-nlbksl-nl
Solution
class AdresseIP:bksl-nl def py-undpy-undinitpy-undpy-und(self, adresse):bksl-nl self.adresse = adressebksl-nlbksl-nl def listepy-undoctet(self):bksl-nl """renvoie une liste de nombres entiers,bksl-nl la liste des octets de l'adresse IP"""bksl-nl return [int(i) for i in self.adresse.split(".")]bksl-nlbksl-nl def estpy-undreservee(self):bksl-nl """renvoie True si l'adresse IP est une adressebksl-nl rĂ©servĂ©e, False sinon"""bksl-nl return self.listepy-undoctet()[3] == 0 or self.listepy-undoctet()[3] == 255bksl-nlbksl-nl def adressepy-undsuivante(self):bksl-nl """renvoie un objet de AdresseIP avec l'adressebksl-nl IP qui suit lâadresse selfbksl-nl si elle existe et False sinon"""bksl-nl if self.listepy-undoctet()[3] < 254:bksl-nl octetpy-undnouveau = self.listepy-undoctet()[3] + 1bksl-nl return AdresseIP('192.168.0.' + str(octetpy-undnouveau))bksl-nl else:bksl-nl return Falsebksl-nlbksl-nladresse1 = AdresseIP('192.168.0.1')bksl-nladresse2 = AdresseIP('192.168.0.2')bksl-nladresse3 = AdresseIP('192.168.0.0')bksl-nlbksl-nl