Script python : calculer une somme (Maths terminale spé)
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Script python : calculer une somme (Maths terminale spé)



  1. #1
    Victor245

    Script python : calculer une somme (Maths terminale spé)


    ------

    Bonjour, je viens ici car j'ai vraiment du mal avec python.
    Voilà mon problème :
    Compléter le script de la fonction Somme afin que Somme(n) renvoie la valeur de la somme 1 + 1/2 + 1/3 + 1/4 +...+ 1/2n.

    def somme(n):
    S=1
    for k in range (... , ...):
    ............................
    return .....

    Cela doit vous paraître simple mais j'ai surtout du mal pour le "in range".
    Au return je pense c'est "S" et pour la ligne non rempli entièrement je pense c'est "S=S+1/k".

    Donc si vous pouviez bien m'aider pour le in range cela serait très sympa !
    Merci à vous d'avance !

    -----

  2. #2
    umfred

    Re : Script python : calculer une somme (Maths terminale spé)

    euh un math spé qui demande comment faire une somme ??
    ne pas oubliez que python (comme pratiquement tout) dispose d'une doc qu'il faut user, voir abuser https://docs.python.org/3/library/fu...tml#func-range
    Pour le reste c'est ça, selon comment tu définis k par rapport à la somme demandée allant à 1/(2n)

  3. #3
    polo974

    Re : Script python : calculer une somme (Maths terminale spé)

    que doit renvoyer la fonction si n = 0? (à priori 1, allez savoir pourquoi ? ? ?)

    que doit renvoyer la fonction si n = 1.5? (un erreur, 1.5 ou 1.8333333333333333 ou ...)

    que doit renvoyer la fonction si n = 1.2? (un erreur, 1. ou ...)

    que doit renvoyer la fonction si n = 0? (à priori 1, allez savoir pourquoi ? ? ?)

    sinon, pour rire:
    Code:
    def somme(n): return 1. + sum([1./i for i in range(2, int(2*n+1))])
    Jusqu'ici tout va bien...

  4. #4
    CM63

    Re : Script python : calculer une somme (Maths terminale spé)

    Citation Envoyé par Victor245 Voir le message
    Bonjour, je viens ici car j'ai vraiment du mal avec python.
    Voilà mon problème :
    Compléter le script de la fonction Somme afin que Somme(n) renvoie la valeur de la somme 1 + 1/2 + 1/3 + 1/4 +...+ 1/2n.

    def somme(n):
    S=1
    for k in range (... , ...):
    ............................
    return .....

    Cela doit vous paraître simple mais j'ai surtout du mal pour le "in range".
    Au return je pense c'est "S" et pour la ligne non rempli entièrement je pense c'est "S=S+1/k".

    Donc si vous pouviez bien m'aider pour le in range cela serait très sympa !
    Merci à vous d'avance !
    Et donc ta question se résume à : que fait la fonction range() ? On sait en gros que ça fait la somme de n nombres, mais on se demande toujours quelle est la signification du second argument: le départ? L'arrivée? Le pas? Personnellement, à chaque fois je tape des exemples en ligne de commande pour être fixé, et on est tout de suite fixé.

    Sinon, 0 doit renvoyer 0, puisque 1 doit renvoyer 1. Et donc ton initialisation n'est pas bonne.
    Quoi? Quelque chose que je ne connais pas et qui me fait l'affront d'exister?!

  5. A voir en vidéo sur Futura
  6. #5
    pm42

    Re : Script python : calculer une somme (Maths terminale spé)

    Citation Envoyé par CM63 Voir le message
    que fait la fonction range() ? On sait en gros que ça fait la somme de n nombres
    range ne fait absolument pas la somme de n nombres.

    Citation Envoyé par polo974 Voir le message
    que doit renvoyer la fonction si n = 0? (à priori 1, allez savoir pourquoi ? ? ?)
    sinon, pour rire:
    Code:
    def somme(n): return 1. + sum([1./i for i in range(2, int(2*n+1))])
    Bonne question en effet. Sinon, les . derrière les flottants et le int ne sont pas indispensables à mon avis notamment en python 3 (python 2.7 étant obsolète depuis 2020).
    Dernière modification par pm42 ; 28/10/2022 à 10h48.

  7. #6
    CM63

    Re : Script python : calculer une somme (Maths terminale spé)

    Oui, autant pour moi, range ne fait pas la somme. L'appel à range(start,stop,step) renvoie une liste commençant à start, s'arrêtant avant d'atteindre stop, et par pas de step.

    Par défaut le pas est de 1. Si on ne spécifie qu'un argument, il est pris comme valeur de stop et le start sera égal à 0.

    On peut utiliser range dans un programme de cette façon:

    Code:
    for i in range(0,10):
       print(str(i))
    Mais pour faire quelques essais en ligne de commande, il suffit de taper:

    Code:
    list(range(start,stop,step))
    Voici quelques exemples:

    Code:
    >>> list(range(0,20,2))
    [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
    
    >>> list(range(0,20))
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
    
    >>> list(range(10,20))
    [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
    
    >>> list(range(10))
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    Quoi? Quelque chose que je ne connais pas et qui me fait l'affront d'exister?!

  8. #7
    polo974

    Re : Script python : calculer une somme (Maths terminale spé)

    À pm42,
    le point est en effet superflu (en py2 et en py3), mais je l'ai mis pour montrer que ce bout était potentiellement non entier, contrairement aux paramètres d'un range qui doivent être entiers (py3).
    Jusqu'ici tout va bien...

  9. #8
    pm42

    Re : Script python : calculer une somme (Maths terminale spé)

    En p2, 1 / i et 1. / i ne donnent pas du tout le même résultat donc le . ne serait pas superflu.

  10. #9
    polo974

    Re : Script python : calculer une somme (Maths terminale spé)

    Citation Envoyé par pm42 Voir le message
    En p2, 1 / i et 1. / i ne donnent pas du tout le même résultat donc le . ne serait pas superflu.
    Oups, t'as raison là, je ne regardais que le premier 1. + ... (et j'ai zappé le second alors que c'est moi qui l'ai comis...)

    L'exo mélange quand même dangereusement entiers et flottants...

    (De toute façon, maintenant, py2, c'est le mal )
    Dernière modification par polo974 ; 30/10/2022 à 18h03.
    Jusqu'ici tout va bien...

  11. #10
    umfred

    Re : Script python : calculer une somme (Maths terminale spé)

    Après, on peut travailler avec les types fractions https://docs.python.org/fr/3/library/fractions.html

Discussions similaires

  1. Fonction Python : retourne une somme égale à
    Par invite573b6993 dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 03/11/2016, 19h28
  2. Preuve d'invariant de boucle/somme d'une liste/python
    Par invite01356ec6 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 08/11/2015, 10h28
  3. Python somme de riemann
    Par invite296819e9 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 27/08/2014, 09h55
  4. j'ai importé un script en python
    Par invite69d38f86 dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 13/03/2012, 11h09
  5. Différence entre les maths en terminale et les maths dans le supérieur
    Par invite06ae9913 dans le forum Orientation après le BAC
    Réponses: 1
    Dernier message: 23/10/2008, 22h18