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 :

nombre triangulaire en python


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut nombre triangulaire en python
    Bonjour,

    Je souhaite réaliser un programme sur les nombres triangulaires.

    Le but du programme est que l'utilisateur doit donner un nombre, et le programme dit s'il est triangulaire ou pas.

    Je ne souhaite pas utiliser une liste de nombre, mais la formule n(n+1)/2.

    Le problème est que peut importe le nombre que je mets, il me dit toujours qu'il n'est pas triangulaire. Savez-vous où peut venir le problème?

    Merci d'avance

    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
    import math 
     
    #donne la liste de tous les triangulaires entre 1 et n 
    def triangulaires(n): 
        return [i*(i+1)/2 for i in range(1,n+1)] 
     
    #teste si un nombre est triangulaire 
    def est_triangulaire(n): 
        r=int(math.sqrt(2*n)) 
        if n==r*(r+1)/2 or n==(r+1)*(r+2)/2: 
            return True 
        else: 
            return False 
     
     
    test = raw_input("Donnez un nombre pour savoir s'il est triangulaire : ")
    if test == est_triangulaire:
        print (test + " est un nombre triangulaire")
     
    if test != est_triangulaire:
        print (test + " n'est pas un nombre triangulaire")

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par yokola Voir le message
    Le problème est que peut importe le nombre que je mets, il me dit toujours qu'il n'est pas triangulaire. Savez-vous où peut venir le problème?
    Il y a déjà 4 erreurs (silencieuses) dans ces 2 lignes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if test == est_triangulaire:
        print (test + " est un nombre triangulaire")
    Peut être qu'une bonne âme prendra la peine de corriger votre code, et de vous expliquer 2/3 trucs, je me contenterai de vous rappeler "poster" suppose que vous avez pris le temps de lire un tuto. pour comprendre les types de bases comme str, int, ... comment on appelle une fonction.

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

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci de ta réponse

    Lorsque je lance mon programme, il ne m'indique aucune erreur, donc les 4 erreurs que tu m'indiques ne doivent pas être si grave que ça, si ?

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par yokola Voir le message
    Lorsque je lance mon programme, il ne m'indique aucune erreur, donc les 4 erreurs que tu m'indiques ne doivent pas être si grave que ça, si ?
    C'est ce qui fait que votre programme ne retourne pas le résultat attendu.

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

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Donc si mon programme ne fait pas ce que je veux, c'est à cause de ces deux lignes si j'ai bien compris?

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par yokola Voir le message
    Donc si mon programme ne fait pas ce que je veux, c'est à cause de ces deux lignes si j'ai bien compris?
    et des mêmes erreurs faites dans les 2 lignes suivantes car vous ne savez même plus qu'il existe un "else".

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

  7. #7
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Bonsoir

    en plus des remarques précédentes de wiztricks sur l'existence du else,

    est_triangulaire est une fonction qui demande un argument (l'entier que l'on veut tester).

    La comparaison

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test == est_triangulaire
    c'est à dire "est-ce que quelque chose (string ou entier, raw_input, en python2, je ne sais plus) vaut une fonction ?" retournera toujours False.
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2016
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Je vous l'ai pas dis mais j'ai réussi finalement mon programme :

    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
    import math
     
     
    #test si un nombre est triangulaire
    def est_triangulaire(n):
        r=int(math.sqrt(2*n))
        if n==r*(r+1)/2 or n==(r+1)*(r+2)/2:
            return True
        else:
            return False
     
     
    test = raw_input("Donnez un nombre pour savoir s'il est triangulaire : ")
    if est_triangulaire(int(test)):
        print (test + " est un nombre triangulaire")
     
    else:
        print (test + " n'est pas un nombre triangulaire")

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par yokola Voir le message
    Je vous l'ai pas dis mais j'ai réussi finalement mon programme :
    Bravo
    L'avantage de Python c'est que vous pouvez facilement vous passer de commentaires pourvu que votre code reste lisible.
    A la base lire "if test == est_triangulaire:", c'est voir que vous comparez une chaine de caractères à une fonction alors que votre intention est d'appeler cette fonction avec un paramètre et de tester le booléen qu'elle va retourner. Et tant que vous n'arrivez pas à retrouver à la lecture de votre code l'intention que vous aviez, c'est que vous ne comprenez pas trop ce que vous écrivez.

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

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/06/2015, 18h08
  2. Réponses: 4
    Dernier message: 13/06/2014, 06h40
  3. Python et les grands nombres
    Par Alpha573 dans le forum Calcul scientifique
    Réponses: 4
    Dernier message: 23/01/2011, 11h46
  4. Réponses: 0
    Dernier message: 11/11/2007, 21h31
  5. programme python : conversion nombre en chaine de caracteres
    Par koala_64 dans le forum Général Python
    Réponses: 6
    Dernier message: 02/11/2007, 21h10

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