## Boucles for
def sumcubes(N:int)->int:
S=0
for k in range(N+1):
S=S+k**3
return S
from math import cos,pi
def sommecos(N):
S=0
for k in range(N+1):
S=S+cos(2*k*pi/N)
return S
def fact(N:int)->int:
p=1 # produit vide
for i in range(1,N+1):
p=p*i
return p
def suite(N):
u=0 # on initialise à u0
for n in range(N): #on appl. la rel. de réc. N fois
u=cos(u)
return u
## Listes
def zeros(n):
L=[]
for i in range(n):
L.append(0)
return L
def zeros2(n):
return n*[0] # version courte mais c'est très spécifique à Python
def miroir(L):
N=len(L)
M=[]
for i in range(1,N+1):
M.append(L[N-i])
return M
def miroir2(L):
#version 'en place' : modifie la liste entrée
N=len(L)
for i in range(N//2):
L[i], L[N-i-1]=L[N-i-1], L[i]
return L
# Liste des cubes des entiers de 1 à 20
L = [i**3 for i in range(21)]
def somme(L):
S=0
for x in L:
S=S+x
return S
def moyenne(L):
return somme(L)/len(L)
def moycoeff(L,C):
assert len(L)==len(C)
S=0
for i in range(len(L)):
S=S+L[i]*C[i]
return S/somme(C)
def sommetermeaterme(L,M):
assert len(L)==len(M)
N=[]
for i in range(len(L)):
N.append(L[i]+M[i])
return N
def sommetermeaterme2(L,M):
#version rapide, en compréhension
assert len(L)==len(M)
return [L[i]+M[i] for i in range(len(L)) ]
def valeurs_suite(N):
L=[]
for i in range(N+1):
L.append(suite(i))
return L
# Pour calculer u2 on calcule u0,u1,u2. Pour calculer u3 on recalcule tout ça plus u3... Pas malin !
def valeurs_suite2(N):
L=[] # on initialise une liste vide
u=0 # on initialise à u0
for n in range(N):
L.append(u) # on ajoute le terme et ...
u=cos(u) # ... on calcule le suivant
return L
def rech(L:list,e:int)->int:
for x in L:
if x==e: return True
# Arrivé ici : pas de e dans L
return False
def maxi(L):
a=L[0]
for x in L:
if x>a: a=x
return a
def valide(c):
for l in c:
if l!='a' and l!='t' and l!='g' and l!='c':
return False
return True
def supprime(c,e):
assert len(e)==1
chaine = ''
for lettre in c:
if lettre!=e:
chaine=chaine+lettre
return chaine
##Q18
L=[5,1,4,7,9,8]
L1=L[1:len(L)]
L2=L[0:len(L)-1]
##Q19
c='coucou'
c2=10*c
##20
# On ne peut pas modifier c[0] ou t[0] : t et c sont non mutables.
##21
# Quand on modifie L ça modifie aussi M. En fait L et M pointent vers le même objet en mémoire. Avec L.copy() on règle ce problème, M est une nouvelle liste.