IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

intervalle tableau python


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2021
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2021
    Messages : 40
    Par défaut intervalle tableau python
    Bonsoir on me demande de concevoir un programme qui compte le nombre de valeurs comprises dans l'intervalle [4;12] et d'afficher ce nombre pour un tableau :


    Voici le petit programme que j'ai essayé de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    tab=[17, 23, 5, 19, 7, 8]
    for i in range(0,5):
    tout = tab.count(tab[i]>4 or tab[i]<12)
    print("La somme est : ", tout)


    Malheursement il affiche rien de bon :

    "La somme est : 0"

    La fonction count() n'est donc pas la bonne solution ?

    A part : Comment faire saisir des valeurs dans un tableau/liste pour un utilisateur ? On utilise 'readline' ?
    Merci d'avance pour votre réponse, bonne soirée.

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par BigSql Voir le message
    La fonction count() n'est donc pas la bonne solution ?
    Déjà pour utiliser un outil il faut le comprendre. La fonction count() a pour rôle de compter un truc dans un tableau. Il est alors évident que c'est elle qui se charge de la boucle. Autrement dit, si je veux compter les (par exemple) 18 du tableau, je demanderai un tab.count(18) et j'ai directement le résultat sans avoir besoin de me casser la tête à faire boucler i sur tab pour écrire tab.count(tab[i] == 18).
    Accessoirement si à chaque tour de boucle tu écrases le "tout" précédent par le count courant il est évident qu'à la fin de la boucle tu n'auras que le dernier count

    Autre détail: es-tu certain que tab[i] > 4 or tab[i] < 12 corresponde à la notion de "compris entre 4 et 12"???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    Bonjour,

    Vous n'avez pas besoin d'utiliser range pour énumérer une liste.
    C'est peut-être le moment d'étudier les lists comprehensions, une fois que vous aurez acquis les bases sur les listes et tout le reste.
    En fait, on veut filtrer une liste, puis compter les éléments qui répondent au critère, ça peut se résumer à une seule ligne de code avec les lists comprehensions,
    Cherchez des exemples et vous vous rendrez compte que l'exercice est beaucoup plus simple que vous le pensez.
    Un tuyau: il y a la fonction map aussi mais dans ce cas de figure ce n'est pas l'option privilégiée. Mais tôt ou tard vous pourriez la rencontrer dans le cadre de vos exercices.

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par binarygirl Voir le message
    En fait, on veut filtrer une liste, puis compter les éléments qui répondent au critère, ça peut se résumer à une seule ligne de code avec les lists comprehensions,
    Déjà ce serait bien qu'il arrive à le faire en algo élémentaire, on verra pour la suite en temps utile...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2021
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2021
    Messages : 40
    Par défaut
    Bonjour, je vous remercie pour vos explications.
    J'ai donc mis "and" à la place de "or".
    Si je comprends bien, la fonction count() permet chercher un élément 'x' d'un tableau...
    Permet-il cependant de calculer une somme ? Par exemple calculer la somme des nombres négatifs d'un tableau/liste.

    J'ai donc garder la boucle range, j'ai enlevé cette fonction, et voici à quoi ressemble mon programme qui à l'air maintenant de bien fonctionner:
    ------------------------------------------------------------------------------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    tab=[17, 23, 5, 19, 7, 8]
    nombre = 1
    for i in range(0,5):
    	if (tab[i]>4 and tab[i]<12):
    		nombre = nombre + 1
    print("Le nombre de valeurs est : ", nombre)
    --------------------------------------------------------------------------------------------------
    Résultat: Le nombre de valeurs est: 3

  6. #6
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 920
    Billets dans le blog
    8
    Par défaut
    Bonjour,
    Citation Envoyé par BigSql Voir le message
    J'ai donc garder la boucle range, j'ai enlevé cette fonction, et voici à quoi ressemble mon programme qui à l'air maintenant de bien fonctionner:
    ------------------------------------------------------------------------------------------------
    tab=[17, 23, 5, 19, 7, 8]
    nombre = 1
    for i in range(0,5):
    if (tab[i]>4 and tab[i]<12):
    nombre = nombre + 1
    print("Le nombre de valeurs est : ", nombre)
    --------------------------------------------------------------------------------------------------
    Résultat: Le nombre de valeurs est: 3
    Il ne fonctionne pas si bien que ça, comme tu peux le constater avec tab=[17, 23, 5, 19, 7, 8, 6]...
    Sinon,pourquoi boucler sur un range alors que l'on peut naturellement parcourir la list avec for? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    tab=[17, 23, 5, 19, 7, 8]
    nbr = 0
    for i in tab:
        if 4 <= i >= 12: #bornes incluses
            nbr += 1
    print(nbr)

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par BigSql Voir le message
    Si je comprends bien, la fonction count() permet chercher un élément 'x' d'un tableau...
    Très exactement ça compte combien il y en a.

    Citation Envoyé par BigSql Voir le message
    Permet-il cependant de calculer une somme ? Par exemple calculer la somme des nombres négatifs d'un tableau/liste.
    Ben non, ça compte le nombre d'éléments, ça ne les additionne pas. Remarque, la somme des éléments c'est quelque part l'élément multiplié par le nombre de fois où on le trouve non?
    Sinon pour compter les négatifs, il y a sum() que tu peux associer à une liste en intension comme en a parlé binarygirl. Mais ce sera pour plus tard.

    Citation Envoyé par BigSql Voir le message
    J'ai donc garder la boucle range, j'ai enlevé cette fonction, et voici à quoi ressemble mon programme qui à l'air maintenant de bien fonctionner
    Mouais. Remplace par for i in range(0, len(tab)) au moins...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Extraire une valeur tableau Python
    Par Bangorroscoff dans le forum Général Python
    Réponses: 21
    Dernier message: 08/11/2022, 13h34
  2. [Python 3.X] [AIDE] Trouver des "voisins" dans un tableau python
    Par Tim._. dans le forum Général Python
    Réponses: 5
    Dernier message: 30/04/2021, 14h46
  3. passage de tableau python template et script jquery
    Par pat100 dans le forum jQuery
    Réponses: 4
    Dernier message: 19/09/2012, 11h59
  4. Tableau python tutoSwinnen
    Par pit0n dans le forum Général Python
    Réponses: 7
    Dernier message: 20/07/2011, 17h17
  5. conversion d'un fichier csv en un tableau python
    Par titou_170 dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 25/11/2010, 11h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo