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 :

[Histogramme]exercice Apprendre Python de G. Zwinnen


Sujet :

Python

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [Histogramme]exercice Apprendre Python de G. Zwinnen
    Bonjour,

    ce petit bout de code est probablement une abomination pour vos yeux de dev aguerris, j'aimerai si possible que vous m'aidez à trouver la solution. C'est un exercice du bouquin Python de G. Swinnen (12B11 pour les connaisseurs) et je n'y arrive pas.
    L'idée est de proposer un chiffre de tirer ce nombre de fois un nombre aléatoire, le mettre dans une liste. Demander un écart pour histogramme, tester chaque valeur de la 1ere liste pour voir dans quel "division" d'histogramme il se trouve.
    Je suis embêté pour un problème de type : on ne peut pas tester un float avec une instruction if xx in range(a,b), et je ne sais pas comment je pourrais m'en sortir. J'ai essayé de faire un int(float) mais cela rend la même chose.

    Probablement, mon code n'est pas très pythonique, n'hésitez pas à me le faire savoir, je suis autodidacte et le fait pour mon plaisir, donc très ouvert à la critique.

    Merci !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    from random import *
     
    def liste_aleat():
        n = input("Un chiffre?")
        fraction = input("combien de fraction?")
        #vérification du chiffre
        if n == "":
            n = 1000
        else :
            n = int(n)
        #Vérification du nombre de fraction
        if fraction == "" :
            fraction = 5
        else :
            fraction = int(fraction)
        liste=[]
     
        #creation des listes random
        for i in  range(n) :
            liste.append(randrange(0,1000))
        print (liste)
     
        #création des valeurs de diviseur
        liste_fraction = []
        diviseur = n/fraction
        for j in range(fraction) :
            liste_fraction.append(diviseur*j)
     
        print(liste_fraction)
     
    #parcours liste
        for k in liste:
            a=0
            while k not in range(liste_fraction[a],liste_fraction[a+1]):
                a+=1
            else :
                liste_fraction.append(k)
                break
        for z in liste_fraction:
            print(liste_fraction[z])


    ==> de façon plus générale, j'ai un dossier rar ou des corrections d'exercices existent, mais je n'arrive pas à trouver la correction des exercices du pdf.. une idée d'où je pourrais trouver ca?

  2. #2
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par bergenist Voir le message
    Je suis embêté pour un problème de type : on ne peut pas tester un float avec une instruction if xx in range(a,b), et je ne sais pas comment je pourrais m'en sortir. J'ai essayé de faire un int(float) mais cela rend la même chose.
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    >>> def f(x):
    	if 2<x<10:
    		print("x est entre ]2, 10[")
    	else:
    		print("x n'est pas compris entre ]2, 10[")
     
     
    >>> f(4)
    x est entre ]2, 10[
    >>> f(11)
    x n'est pas compris entre ]2, 10[
    >>>
    Clodion

    Et pour bien te former, les cours et tutoriels pour Python : https://python.developpez.com/cours/

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    merci beaucoup de ton aide !
    Si je ne me trompe pas, et je vois un petit peu l'ouverture, pour l'instant il faut que je propose moi même via le code des intervalles. Ce que je voudrais c'est que ce soit l'utilisateur qui propose les intervalles et que je puisse dénombrer le nombre d'occurences pour chaque intervalle (qu'il y en ait 2 ou 150), mais tu as sans doute montré la solution, néanmoins je ne sais pas bien l'utiliser !

  4. #4
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par bergenist Voir le message
    Si je ne me trompe pas, et je vois un petit peu l'ouverture, pour l'instant il faut que je propose moi même via le code des intervalles. Ce que je voudrais c'est que ce soit l'utilisateur qui propose les intervalles et que je puisse dénombrer le nombre d'occurences pour chaque intervalle (qu'il y en ait 2 ou 150), mais tu as sans doute montré la solution, néanmoins je ne sais pas bien l'utiliser !
    Bonsoir,
    Dans le code proposé, "2" et "10" peuvent très bien être des variables (attention à l'ordre)!
    Sinon, la console est très utile pour faire des essais…

    Le reste se règle par des listes ou des dictionnaires (ou autres). Non?

    Clodion
    PS: découper en plusieurs fonctions pourrait être plus aisé.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonsoir,

    merci pour l'astuce

    concernant les dictionnaires : en effet ! mais dans le livre je pense qu'il est demandé de le faire avec des listes car les dictionnaires ne sont pas censés être vus au moment où l'exercice est posé

    Merci !

Discussions similaires

  1. [COURS] Serie de videos pour apprendre Python !
    Par kjullien dans le forum Général Python
    Réponses: 4
    Dernier message: 23/10/2013, 10h52
  2. Exercice en python besoin de votre aide
    Par Takahitekun dans le forum Général Python
    Réponses: 6
    Dernier message: 14/01/2013, 16h10
  3. Aide exercice 8.14 apprendre Python G.swinnen
    Par Asimoov dans le forum Tkinter
    Réponses: 1
    Dernier message: 25/03/2011, 03h08

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