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 :

si x est un entier [Python 3.X]


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2021
    Messages : 3
    Points : 2
    Points
    2
    Par défaut si x est un entier
    Bonsoir,
    Je vais faire simple ^^, j'aimerais créer une condition if qui détermine si x est un entier naturel ou non, pas facile de trouver des réponses sur internet a ce sujet.
    Je me tourne vers vous, avez vous des pistes ?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    17 691
    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 : 17 691
    Points : 30 533
    Points
    30 533
    Par défaut
    Salut,

    Citation Envoyé par wild_ap Voir le message
    j'aimerais créer une condition if qui détermine si x est un entier naturel ou non, pas facile de trouver des réponses sur internet a ce sujet.
    type(x) == int ou isinstance(x, int).
    type et isinstance étant des opérations de base du langage, le plus difficile est de trouver les mots clefs qui permettront de sortir des réponses.

    Après si x est une chaine de caractères, c'est une autre histoire.

    - 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
    avril 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2021
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    type(x) == int ou isinstance(x, int).
    type et isinstance étant des opérations de base du langage, le plus difficile est de trouver les mots clefs qui permettront de sortir des réponses.

    Après si x est une chaine de caractères, c'est une autre histoire.

    - W
    Merci de ta réponse !

  4. #4
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    novembre 2010
    Messages
    2 979
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : novembre 2010
    Messages : 2 979
    Points : 8 242
    Points
    8 242
    Par défaut
    salut,

    Citation Envoyé par wild_ap Voir le message
    (...) détermine si x est un entier naturel ou non
    si la question est plus celle de l'ensemble mathématique que celle du type de variable je ferai plutôt un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if x >= 0 and int(x) == x:
       (...)

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2021
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2021
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par BufferBob Voir le message
    salut,


    si la question est plus celle de l'ensemble mathématique que celle du type de variable je ferai plutôt un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if x >= 0 and int(x) == x:
       (...)
    Effectivement, la réponse que m'a donné wiztricks fonctionne mais pas dans ma situation.

    Enfaite x est le résultat d'une division, et lorsque que x est entier, la variable contient 'x.0' donc avec type ou isinstance je ne peux pas reconnaître 'x.0' comme entiers.

    D'ailleur je ne pense pas que " if int(x)==x:" fonctionnerait pour mon cas

    J'ai fait un truc un peu tordu mais ça fonctionne pour ce que je voulais :
    If x == int(x)+0.0 :

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    17 691
    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 : 17 691
    Points : 30 533
    Points
    30 533
    Par défaut
    Salut,

    math.isclose(x, int(x)) serait peut être plus correct.

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

  7. #7
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    8 963
    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 : 8 963
    Points : 24 568
    Points
    24 568
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par wild_ap Voir le message
    Enfaite x est le résultat d'une division, et lorsque que x est entier, la variable contient 'x.0' donc avec type ou isinstance je ne peux pas reconnaître 'x.0' comme entiers.
    Excellent cas d'école d'un problème XY. Au lieu de venir nous demander comment déterminer l'exactitude d'une division tu as d'abord inventé une solution bancale et tu es venu nous demander comment la mettre en oeuvre. Parce que si tu as la division (mettons de x/y) tu peux alors tester x%y == 0 ou bien x/y == x//y. Et tu peux même écrire res=divmod(x, y) ce qui te donne le résultat de la division entière dans res[0] et le reste dans res[1]. Ne reste qu'à regarder si ce reste vaut/ne vaut pas 0.

    Citation Envoyé par wild_ap Voir le message
    D'ailleur je ne pense pas que " if int(x)==x:" fonctionnerait pour mon cas
    Exact car int(4.0) n'est pas égal à 4.0 (enfin au sens Python du terme)

    Citation Envoyé par wild_ap Voir le message
    J'ai fait un truc un peu tordu mais ça fonctionne pour ce que je voulais If x == int(x)+0.0
    Là tu crées une opération avec float pour utiliser int(x) comme float, ce qui peut s'écrire alors if x == float(int(x)).
    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

  8. #8
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    novembre 2010
    Messages
    2 979
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : novembre 2010
    Messages : 2 979
    Points : 8 242
    Points
    8 242
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    int(4.0) n'est pas égal à 4.0 (enfin au sens Python du terme)
    je sais pas de quelle égalité on parle mais ça semble fonctionner pas trop mal en pratique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> int(4.0) == 4.0
    True

  9. #9
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    8 963
    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 : 8 963
    Points : 24 568
    Points
    24 568
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par BufferBob Voir le message
    je sais pas de quelle égalité on parle mais ça semble fonctionner pas trop mal en pratique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> int(4.0) == 4.0
    True
    Tiens, tu as raison. J'ai dû faire mon test trop rapidement. Désolé
    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

  10. #10
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    juin 2013
    Messages
    1 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2013
    Messages : 1 462
    Points : 1 903
    Points
    1 903
    Par défaut
    C'est étonnant car ils sont de 2 types différents.
    Pas d'aide par mp.

  11. #11
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    8 963
    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 : 8 963
    Points : 24 568
    Points
    24 568
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par marco056 Voir le message
    C'est étonnant car ils sont de 2 types différents.
    Suffit de jouer avec l'opérateur "__eq__" et ses frères.
    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

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

Discussions similaires

  1. [Math]Tester si un nombre est un entier positif
    Par billy67 dans le forum Général Java
    Réponses: 9
    Dernier message: 28/12/2005, 09h14
  2. Réponses: 18
    Dernier message: 15/11/2005, 10h13
  3. Réponses: 3
    Dernier message: 07/10/2005, 09h34
  4. [VB.NET] [VS.NET] Tester si le texte saisi est un entier
    Par San Soussy dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/10/2004, 10h41
  5. [XSL] Tester si la valeur est un entier dans un xml
    Par MrMaze dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/07/2003, 04h35

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