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 :

Moyenne pondérée sans liste


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 3
    Par défaut Moyenne pondérée sans liste
    Bonjour à tous !

    Je suis tout nouveau sur le forum et également tout nouveau en python
    Voila j'essaie de faire un petit programme qui devrait faire une moyenne pondérée sans liste (je n'en suis pas a ce stade) ^^
    Évidement il y a une erreur et je ne la trouve pas si quelqu'un a la solution sa serait sympa merci d'avance
    L'erreur vient quand je lance le programme il me demande combien de note j'entre une valeur et la ca ne fonctionne plus.

    voila le code:

    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
    def moyenne():
         s=0
         k=0
         print ("combien de note y a t il ?")
         a=input(int)
         for i in range (1,a+1):
             i=i+1
             print ("donner la note")
             n=input()
             print ("donner le coef")
             c=input()
             s=s+n*c
             k=k+n
             m=s/k
         print(m)

    Par avance je m'excuse si je ne post pas au bon endroit mais le forum est si grand ! Je n'ai pas non plus réussi a bien mettre les indentations

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 676
    Par défaut
    Salut,

    Citation Envoyé par liduor Voir le message
    L'erreur vient quand je lance le programme il me demande combien de note j'entre une valeur et la ca ne fonctionne plus.
    Le message d'erreur vous donne des informations sur ce qui ne va pas...
    Si vous voulez apprendre à programmer avec Python, il va falloir apprendre à les utiliser pour corriger vos erreurs...
    Et donc la question pourrait être "pourquoi Python me retourne l'erreur tartemolle lorsque...".
    Après, si vous écrivez "a=input(int)", il y a quand même des choses bizarres qui se passent lorsque cette instruction s'exécute: est ce que le message affiché vous paraît être celui que vous vouliez?
    Soyez plus attentif, posez vous des questions,... c'est mieux que juste dire "çà ne marche pas"...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 3
    Par défaut
    Bonsoir
    Vous savez quand on débute, quelque soit le domaine, on a du mal a mettre des mots sur des choses qu'on ne comprend pas. Il me manque certainement du vocabulaire et plein de notions mais je fais comme je peux pour m'expliquer. C'est un peu comme une nouvelle langue pour moi.

    je vais simplement mettre une capture d'écran et peut être que se sera plus simple pour vous de comprendre et vous saurez me dire comment expliquer cela une prochaine fois

    Je vous remercie par avance

    Nom : Capture.PNG
Affichages : 4031
Taille : 24,1 Ko

  4. #4
    Membre émérite

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Billets dans le blog
    1
    Par défaut
    Bonjour
    La plus grosse erreur est mathématique. Ce que l'on cherche est
    quotient de la somme pondérée des n(i)*c(i) par la somme des poids c(i)
    Donc la somme des poids k augmente de c et non n à chaque passage.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
           #somme des poids
            k=k+c
    Pour le reste wiztricks a parfaitement défini le problème !
    Exemple ??? a=input() me convient mieux sauf que le résultat n'est pas un nombre mais une chaîne donc il faut convertir
    ok mais pourquoi pas Le calcul m=s/k se fait en dehors de la boucle quand toutes les données ont été fournie donc vérifiez l'indentation
    Si on "oublie" l'indentation, ce qui rend les choses illisible, il reste à appeler cette fonction pour pouvoir l'utiliser

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 3
    Par défaut
    merci beaucoup !!!

    je ne savais pas pour le int(input())

    ca fonctionne ! Je suis super content

    Je vais essayer de l'améliorer en incluant le fait qu'on puisse se tromper dans le nombre de note au debut du programme

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 676
    Par défaut
    Citation Envoyé par liduor Voir le message
    Vous savez quand on débute, quelque soit le domaine, on a du mal a mettre des mots sur des choses qu'on ne comprend pas. Il me manque certainement du vocabulaire et plein de notions mais je fais comme je peux pour m'expliquer. C'est un peu comme une nouvelle langue pour moi.
    La dernière mouture de votre code se plante ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      File "xxxx", line 9, in <module>
        moyenne()
      File "xxxx", line 6, in moyenne
        for i in range (1,a+1):
    TypeError: Can't convert 'int' object to str implicitly
    et vous voyez que l'erreur, c'est non seulement un message "Can't convert 'int' object to str implicitly" mais aussi la ligne de code qui la provoque "for i in range (1,a+1)".
    Et si vous avez écrit cette ligne de code là, c'est pour faire une boucle avec i variant de 1 à a (inclus)... et qu'en essayant de jouer avec sous l'interpréteur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> a = 3
    >>> for i in range(1, a+1):
    ...     print(i)
    ...
    1
    2
    3
    >>>
    vous obtenez le résultat recherché (un i qui varie de 1 à "a=3").
    Donc vous retournez à votre code pour voir d'où vient ce "a" et vous essayez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> a = input()
    3
    >>> for i in range(1, a+1):
    ...     print(i)
    ...
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: Can't convert 'int' object to str implicitly
    >>>
    Et vous pouvez affiner un peu en testant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> a + 1
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: Can't convert 'int' object to str implicitly
    ou en ayant la curiosité de regarder à quoi ressemble a:
    tiens il y a des simples quote autour alors que:
    il n'y en a pas lorsque a est un entier.
    Et une idée du problème: input retourne une chaine de caractère, comment la convertir en entier.

    Regardez le premier code que vous avez posté, il contient a = input(int), donc vous saviez déjà d'où venait le soucis puisque vous aviez essayé de le résoudre maladroitement... et la question aurait pu être: comment convertir en entier la chaine de caractère retournée par input? J'ai essayé a = input(int) mais çà ne fonctionne pas.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 799
    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 799
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par liduor Voir le message
    je ne savais pas pour le int(input())
    C'est une combinaison de 2 outils
    • input() qui fait saisir une chaine au clavier
    • int(x) qui convertit "x" en entier et renvoie le résultat

    Ces 2 outils tu es sensé les connaitre...

    Citation Envoyé par liduor Voir le message
    Je vais essayer de l'améliorer en incluant le fait qu'on puisse se tromper dans le nombre de note au debut du programme
    Pourquoi ne pas faire une boucle infinie de saisie de note et coefficient. Avec une saisie particulière pour arrêter. Ainsi l'utilisateur n'a pas à se poser de questions métaphysiques quand il exécute ton code...
    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. [Access] Comment faire un moyenne pondérée dans une requete ?
    Par megapacman dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/01/2007, 09h23
  2. Réponses: 4
    Dernier message: 28/07/2006, 08h31
  3. Requête sql, moyenne pondérée
    Par ouiffi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/07/2006, 11h03
  4. URGENT : Moyenne pondéré?
    Par cquadjul dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/04/2006, 19h08
  5. Moyenne pondérée
    Par Tijee dans le forum Langage SQL
    Réponses: 7
    Dernier message: 28/01/2006, 21h13

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