# BOUHALLI NASSIM
```python=
#a)
class Tranche_a:
#constructeur:
def __init__(self,t,debut,fin):
self.t=t
self.debut=debut
self.fin=fin
self.tranche_a=[]
for i in range(debut,fin):
self.tranche_a+=[t[i]]
#méthodes:
def longueur(self): # retourne la longueur de la liste
return self.fin-self.debut+1
def getitem(self,position): # retourne la valeur du n-ième élément
return self.tranche_a[position]
def setitem(self,position,val): # changer la valeur du n-ième élément
self.tranche_a[position]=val
#b) et c)
class Tranche_b:
#constructeur:
def __init__(self,t,debut,fin):
self.t=t
self.debut=debut
self.fin=fin
self.tranche_b=[]
for i in range(debut,fin):
self.tranche_b+=[t[i]]
#méthodes:
def __len__(self): # retourne la longueur de la liste
return self.fin-self.debut+1
def __getitem__(self,position): # retourne la valeur du n-ième élément
return self.tranche_b[position]
def __setitem__(self,position,val): # changer la valeur du n-ième élément
self.tranche_b[position]=val
#programme principal
#a)
print("question a")
a=Tranche_a([1,2,3,4,5],2,4)
print(a.longueur())
print(a.getitem(1))
a.setitem(1,7)
print(a.getitem(1))
#b)
print("-----")
print("question b")
print("-----")
b=Tranche_b([1,2,3,4,5],2,4)
print(len(b))
print(b[1])
b[1]=7
print(b[1])
#c)
print("-----")
print("question c")
print("-----")
print(isinstance(b,list)) #on teste pour voir si b est un tableau, ce n'est pas le cas
u=Tranche_b(b,0,1) #on crée une tranche à partir de la tranche b
print(len(u))
print(b[0])
print(b[1])
print(isinstance(u,list)) #on teste pour voir si u est un tableau, ce n'est pas le cas