63 lines
1.6 KiB
Python
63 lines
1.6 KiB
Python
def rebours(n):
|
|
if n == 0:
|
|
print()
|
|
return
|
|
print(n, end=" ")
|
|
rebours(n-1)
|
|
|
|
rebours(12)
|
|
|
|
def compte(t, n=1):
|
|
print(n, end=" ")
|
|
if n < t:
|
|
compte(t, n+1)
|
|
else:
|
|
print()
|
|
|
|
compte(5)
|
|
|
|
|
|
def sommeDesCarres(n):
|
|
if n == 1:
|
|
return 1
|
|
return n**2 + sommeDesCarres(n-1)
|
|
|
|
def produit(liste):
|
|
if len(liste) == 1:
|
|
return liste[0]
|
|
return liste[0] * produit(liste[1:])
|
|
|
|
def sommeDesPositifs(liste):
|
|
if len(liste) == 0:
|
|
return 0
|
|
value = liste[0] if liste[0] > 0 else 0
|
|
return value + sommeDesPositifs(liste[1:])
|
|
|
|
def estPalindrome(x):
|
|
if len(x) == 2:
|
|
return x[0] == x[1]
|
|
elif len(x) == 1:
|
|
return True
|
|
return x[0] == x[-1] and estPalindrome(x[1:-1])
|
|
|
|
def renvoitLongueur(liste: list) -> int:
|
|
"""
|
|
Fonction récursive qui renvoie la longueur de la
|
|
liste donné en paramètres sans utiliser la fonction `len`
|
|
"""
|
|
if not liste: # Si la liste est vide
|
|
return 0 # On renvoie 0
|
|
return 1 + renvoitLongueur(liste[1:]) # On renvoie 1 plus la longueur de la liste sans le premier element
|
|
|
|
def inverse_lordre(liste: list) -> list:
|
|
"""
|
|
Fonction récursive qui renvoie l'inverse de la liste
|
|
donnée en paramètres sans utiliser la fonction `reverse`
|
|
"""
|
|
if not liste: # Si la liste est vide
|
|
return [] # On renvoie une liste vide
|
|
|
|
# On renvoit la concatenation d'une liste contenant le dernier element
|
|
# de `liste` avec l'inverse de la `liste` sans le dernier element
|
|
return [liste[-1]] + inverse_lordre(liste[:-1])
|