Path: csiph.com!news.mixmin.net!aioe.org!oZUqNhYkyz6GHAeo9O/ldg.user.gioia.aioe.org.POSTED!not-for-mail From: Alain Ketterlin Newsgroups: fr.comp.lang.python Subject: Re: Somme, =?utf-8?Q?r=C3=A9cursive?= Date: Fri, 30 Apr 2021 18:14:00 +0200 Organization: =?utf-8?Q?Universit=C3=A9?= de Strasbourg Lines: 53 Message-ID: <875z0392d3.fsf@universite-de-strasbourg.fr.invalid> References: <48-dnbOA4f2klhb9nZ2dnUU7983NnZ2d@giganews.com> <87mttgakrp.fsf@izac.org> NNTP-Posting-Host: oZUqNhYkyz6GHAeo9O/ldg.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Complaints-To: abuse@aioe.org User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) Cancel-Lock: sha1:eRTIrg7wTAWtIxXIvMuy57S9asg= X-Notice: Filtered by postfilter v. 0.9.2 Xref: csiph.com fr.comp.lang.python:3491 Olivier Miakinen writes: > Le 30/04/2021 17:06, je r=C3=A9pondais =C3=A0 Benoit Izac : >>=20 >> Et vu la r=C3=A9ponse de raph14 c'est la somme. >>=20 >> Noter que je ne peux pas lui r=C3=A9pondre parce que le =C2=AB PEAR::Net= _NNTP v1.5.0 >> (stable) =C2=BB de Giganews met du 8-bits dans la champ Subject et que = =C3=A7a fait >> buguer mon SeaMonkey. > > En tout cas, si c'est bien la somme, et vu que je suis moi-m=C3=AAme d=C3= =A9butant > (un mois =C3=A0 peu pr=C3=A8s ?) je me permets de divulgacher la solution. > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > def somme(liste): > return sum(liste) > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Ou simplement : somme =3D sum > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > def somme(liste): > if len(liste) =3D=3D 0: > return 0 > return liste[0] + somme(liste[1:]) > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Pour =C3=A9viter la construction d'une nouvelle liste =C3=A0 chaque appel : def somme (liste, i=3D0): if i < len (liste): return liste[i] + somme (liste, i+1) else: return 0 ou encore, pour faire le malin : def somme (liste, i=3D0): return liste[i] + somme (liste, i+1) if i < len (liste) else 0 mais clairement, les listes de Python ne sont pas vraiment faites pour l'algorithmique r=C3=A9cursive classique. -- Alain.