CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Addition/multiplication liste python

AminAA
AminAA
Niveau 1
11 novembre 2020 à 22:47:53

Bonjour , je dois effectuer 3 tâches et je bloque à la dernière je vous montre :
Ce que je dois faire :
- La somme de tous les entiers pairs entre 0 et 99
- La somme de tous les entiers impairs entre 0 et 99
- Le produit de tous les entiers multiples de 11 entre 0 et 99

Voici mon code :

#!/usr/bin/python3

print("Somme de tous les entiers pairs entre 0 et 99 :")
NBR_ENTIER = list(range(0,99,2))
sum(NBR_ENTIER)
print(sum(NBR_ENTIER))

print("Somme de tous les entier impairs entre 0 et 99 :")
NBR_ENTIER2 = list(range(1,99,2))
sum(NBR_ENTIER2)
print(sum(NBR_ENTIER2))

print("Produit de tous les entiers multiples de 11 entre 0 et 99")
NBR_ENTIER3 = list(range(0,99,11))

Mais voilà je n'ai pas d'idée sur comment multiplier les multiples de 11 entre eux.
Si vous auriez une idée svpp
Mercii beaucoup ! :)

Pseudo supprimé
Pseudo supprimé 11 novembre 2020 à 23:12:11

Tu mets ton résultat dans une variable (initialisée à 1) et tu itere sur chaque élément en multipliant ton résultat par l'élément courant

Kluent75
Kluent75
Niveau 9
11 novembre 2020 à 23:28:48

Le 11 novembre 2020 à 23:12:11 thisismelol a écrit :
Tu mets ton résultat dans une variable (initialisée à 1) et tu itere sur chaque élément en multipliant ton résultat par l'élément courant

Inutile, ça se fait en une ligne en manipulant les opérations sur les listes :
reduce(lambda x, y: x * y, range(0,99,11)[1:])

Message édité le 11 novembre 2020 à 23:31:16 par Kluent75
re_cybergladia
re_cybergladia
Niveau 19
12 novembre 2020 à 02:23:39

Tu vois bien qu'il débute VDD :pf: Si l'auteur ne sait pas iterer sur une liste il risque pas de comprendre la syntaxe hyper compact du lambda, que tu ne prends même pas la peine d'expliquer. Tu es venu aider ou te montrer ?

AminAA
AminAA
Niveau 1
12 novembre 2020 à 08:58:34

Le 11 novembre 2020 à 23:28:48 Kluent75 a écrit :

Le 11 novembre 2020 à 23:12:11 thisismelol a écrit :
Tu mets ton résultat dans une variable (initialisée à 1) et tu itere sur chaque élément en multipliant ton résultat par l'élément courant

Inutile, ça se fait en une ligne en manipulant les opérations sur les listes :
reduce(lambda x, y: x * y, range(0,99,11)[1:])

Salut, pourrais tu m'expliquer ta ligne stp? Je n'y comprends pas grand chose

Kluent75
Kluent75
Niveau 9
12 novembre 2020 à 09:57:26

Le 12 novembre 2020 à 08:58:34 AminAA a écrit :

Le 11 novembre 2020 à 23:28:48 Kluent75 a écrit :

Le 11 novembre 2020 à 23:12:11 thisismelol a écrit :
Tu mets ton résultat dans une variable (initialisée à 1) et tu itere sur chaque élément en multipliant ton résultat par l'élément courant

Inutile, ça se fait en une ligne en manipulant les opérations sur les listes :
reduce(lambda x, y: x * y, range(0,99,11)[1:])

Salut, pourrais tu m'expliquer ta ligne stp? Je n'y comprends pas grand chose

Hello, biensûr :
on part de range(0,99,11) que tu connais :
[1:] On retire le premier élément pour ne garder que la sous-liste commençant par 11 (on dégage le 0 pour éviter que la multiplication renvoie 0)
reduce : permet de réduire une collection de n éléments en 1 seul élément appliquant successivement une fonction de transformation
lambda x,y: x*y => fonction de transformation. 2 éléments de la liste sont réduits en 1 seul en utilisant une multiplication...

donc si tu as (A, B, C) ça sera réduit comme ça : ((A, B), C) => (A*B, C) => A*B*C

Note qu'il existe aussi des librairies python permettant de multiplier directement les éléments, comme tu le fais avec sum.

Notamment numpy ou math qui contiennent la méthode prod. Si tu peux les utiliser, à mon sens ces dernières sont mieux. En tout cas dans la vraie vie c'est comme ça qu'on code, on ne s'amuse pas à itérer tous les éléments à la main.

Si c'est un exercice dans le cadre d'une formation scolaire, peut-être qu'ils attendent que tu itères à la main mais c'est dommage => on se retrouve avec beaucoup de jeunes développeurs incapables de coder de façon moderne, alors que ce n'est pas plus difficile de faire ce que j'ai proposé.

Un petit article à ce sujet : https://www.geeksforgeeks.org/python-multiply-numbers-list-3-different-ways/

Message édité le 12 novembre 2020 à 10:00:54 par Kluent75
AminAA
AminAA
Niveau 1
12 novembre 2020 à 14:10:35

Le 12 novembre 2020 à 09:57:26 Kluent75 a écrit :

Le 12 novembre 2020 à 08:58:34 AminAA a écrit :

Le 11 novembre 2020 à 23:28:48 Kluent75 a écrit :

Le 11 novembre 2020 à 23:12:11 thisismelol a écrit :
Tu mets ton résultat dans une variable (initialisée à 1) et tu itere sur chaque élément en multipliant ton résultat par l'élément courant

Inutile, ça se fait en une ligne en manipulant les opérations sur les listes :
reduce(lambda x, y: x * y, range(0,99,11)[1:])

Salut, pourrais tu m'expliquer ta ligne stp? Je n'y comprends pas grand chose

Hello, biensûr :
on part de range(0,99,11) que tu connais :
[1:] On retire le premier élément pour ne garder que la sous-liste commençant par 11 (on dégage le 0 pour éviter que la multiplication renvoie 0)
reduce : permet de réduire une collection de n éléments en 1 seul élément appliquant successivement une fonction de transformation
lambda x,y: x*y => fonction de transformation. 2 éléments de la liste sont réduits en 1 seul en utilisant une multiplication...

donc si tu as (A, B, C) ça sera réduit comme ça : ((A, B), C) => (A*B, C) => A*B*C

Note qu'il existe aussi des librairies python permettant de multiplier directement les éléments, comme tu le fais avec sum.

Notamment numpy ou math qui contiennent la méthode prod. Si tu peux les utiliser, à mon sens ces dernières sont mieux. En tout cas dans la vraie vie c'est comme ça qu'on code, on ne s'amuse pas à itérer tous les éléments à la main.

Si c'est un exercice dans le cadre d'une formation scolaire, peut-être qu'ils attendent que tu itères à la main mais c'est dommage => on se retrouve avec beaucoup de jeunes développeurs incapables de coder de façon moderne, alors que ce n'est pas plus difficile de faire ce que j'ai proposé.

Un petit article à ce sujet : https://www.geeksforgeeks.org/python-multiply-numbers-list-3-different-ways/

Merci ton explication m'a beaucoup aider et effectivement je suis dans un cadre scolaire du coup comment pourrais-je faire pour tout itérer à la main?
Merci encore

Pseudo supprimé
Pseudo supprimé 12 novembre 2020 à 14:59:34

Commence à 11 (0 retournera 0, 1 tu feras 1, 12, 23 qui sont pas multiples de 11 et 1 est élément neutre donc ça sert à rien), déjà.
Après, y’a math.prod apparemment, sinon je suppose qu’ils veulent que tu fasses une boucle for sur ta liste.
pour x element de ta liste... je te laisse faire le reste

Chocolayte
Chocolayte
Niveau 73
12 novembre 2020 à 15:18:12

Le 12 novembre 2020 à 14:10:35 AminAA a écrit :

Le 12 novembre 2020 à 09:57:26 Kluent75 a écrit :

Le 12 novembre 2020 à 08:58:34 AminAA a écrit :

Le 11 novembre 2020 à 23:28:48 Kluent75 a écrit :

Le 11 novembre 2020 à 23:12:11 thisismelol a écrit :
Tu mets ton résultat dans une variable (initialisée à 1) et tu itere sur chaque élément en multipliant ton résultat par l'élément courant

Inutile, ça se fait en une ligne en manipulant les opérations sur les listes :
reduce(lambda x, y: x * y, range(0,99,11)[1:])

Salut, pourrais tu m'expliquer ta ligne stp? Je n'y comprends pas grand chose

Hello, biensûr :
on part de range(0,99,11) que tu connais :
[1:] On retire le premier élément pour ne garder que la sous-liste commençant par 11 (on dégage le 0 pour éviter que la multiplication renvoie 0)
reduce : permet de réduire une collection de n éléments en 1 seul élément appliquant successivement une fonction de transformation
lambda x,y: x*y => fonction de transformation. 2 éléments de la liste sont réduits en 1 seul en utilisant une multiplication...

donc si tu as (A, B, C) ça sera réduit comme ça : ((A, B), C) => (A*B, C) => A*B*C

Note qu'il existe aussi des librairies python permettant de multiplier directement les éléments, comme tu le fais avec sum.

Notamment numpy ou math qui contiennent la méthode prod. Si tu peux les utiliser, à mon sens ces dernières sont mieux. En tout cas dans la vraie vie c'est comme ça qu'on code, on ne s'amuse pas à itérer tous les éléments à la main.

Si c'est un exercice dans le cadre d'une formation scolaire, peut-être qu'ils attendent que tu itères à la main mais c'est dommage => on se retrouve avec beaucoup de jeunes développeurs incapables de coder de façon moderne, alors que ce n'est pas plus difficile de faire ce que j'ai proposé.

Un petit article à ce sujet : https://www.geeksforgeeks.org/python-multiply-numbers-list-3-different-ways/

Merci ton explication m'a beaucoup aider et effectivement je suis dans un cadre scolaire du coup comment pourrais-je faire pour tout itérer à la main?
Merci encore

Tu as trois exemples dans son lien. Le premier est le plus scolaire, assimile-le bien pour commencer

Azerban
Azerban
Niveau 16
12 novembre 2020 à 16:40:23

Sinon à partir de Python 3.8, il y a la méthode prod dans le module math :

import math
math.prod([i for i in range(1, 99) if i % 11 == 0])

Il y a aussi une fonction similaire dans le module numpy :

import numpy as np
np.prod([i for i in range(1, 99) if i % 11 == 0])

Attention, dans les deux cas, le nombre 99 (multiple de 11) ne sera pas pris en compte.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment