Premiers termes d'une suite

Bonjour,
Bonjour,
je débute avec Python . J'aimerais calculer les premiers termes de cette suite . Quelles sont mes erreurs s'il vous plaît? merci beaucoup
def f(x):
    return x**2-2
    a=1
    b=2
    for n in range(4):
        a=a-f(a)*(b-a)/(f(b)-f(a)) 
    print (a)



PS: l'indentation n'apparaît pas ici... bizarre, comment faire?

EDIT : En utilisant correctement les balises de code... l'indentation apparait.... bizarre... :-)
Utilisation des balises de code : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Configuration: Windows / Chrome 80.0.3987.106

11 réponses

  1. Bonjour à tous

    Tu mélanges la définition de la fonction f et le programme proprement dit qui l'utilise
    Essaies comme ceci

    def f(x):
        return x**2-2
    
    a=1
    b=2
    for n in range(4):
        a=a-f(a)*(b-a)/(f(b)-f(a)) 
        print (a)

    Cdlmnt
    1. Il te suffit de "sortir" print(a) de ta boucle for n in range(101)

      Cdlmnt
      1. Ca ne fonctionne toujours pas...
        1. Modérateur
          Que t'affiche ton print ?

          Q'uesperes tu obtenir ?
      2. J'aimerais obtenir les 4 premiers termes de cette suite. c'est juste un exemple, j'aimerais savoir en règle générale comme calculer et obtenir les premiers termes d'une suite à l'aide de Python.
        1. Modérateur
          Tu ne m'as toujours pas indiqué ce que t'affichait ton print
      3. il devrait afficher les premiers termes de cette suite définie par récurrence: f(a)=(2+2a)/(2+a)
        4/3, etc...
        1. Bonjour, autre question: et si maintenant j'aimerais afficher uniquement le terme d'indice 100 de cette suite. faut-il remplacer "for n in range(4):" par "for n in range(100, 101):" ?
          ça ne fonctionne pas...ça m'affiche uniquement le 1er terme...
          merci
          1. Bonjour,
            autre question: j'aimerais après avoir défini une fonction ,la calculer pour une certaine valeur.
            Par exemple j'ai défini ici la somme de n entiers, et j'aimerais ensuite donner le résultat pour n=10 (somme des entiers de 1 à 10).
            Apparemment il y a une erreur au niveau de "n=10 print(s)"... laquelle? merci
            def s(n):
                s=0
                for i in range (1,n+1):
                    s=s+i
                return (s)
                
            n=10
            print (s)