Somme des entiers successifs
Exercice
-
Compléter la fonction
somme1
ci-dessous qui prend en paramètre un entiern
positif et renvoie la somme des entiers successifs entre 1 etn
.🐍 Script Pythondef somme1(n): """Signature somme1(n:int)->int""" #à compléter
-
Quelle précondition doit vérifier le paramètre
n
? Insérer une vérification de cette précondition au début du corps de la fonction, avec unassert precondition
oùprecondition
est un test à valeur booléenne (True
ouFalse
)
def somme1(n): bksl-nl """Signature somme1(n:int)->int""" bksl-nl #à compléterbksl-nlbksl-nl# Solution 1bksl-nlbksl-nldef somme1(n): bksl-nl """Signature somme1(n:int)->int""" bksl-nl s = 0 #penser à l'initialisationbksl-nl for k in range(1, n + 1):bksl-nl s = s + kbksl-nl #return hors de la bouclebksl-nl return sbksl-nlbksl-nlbksl-nl# Solution 3 : avec vérification de la précondition n >= 0bksl-nlbksl-nldef somme1bis(n): bksl-nl """Signature somme1bis(n:int)->int""" bksl-nl assert n >= 0 #vérification de la préconditionbksl-nl s = 0 #penser à l'initialisationbksl-nl for k in range(1, n + 1):bksl-nl s = s + kbksl-nl #return hors de la bouclebksl-nl return sbksl-nlbksl-nlbksl-nl# Solution 3 : avec la formule de Gaussbksl-nlbksl-nldef somme1py-undgauss(n): bksl-nl """Signature somme1bis(n:int)->int""" bksl-nl return n py-str (n+1) // 2bksl-nl
A
Z