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 ?
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 ?
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 :
Salut,
math.isclose(x, int(x)) serait peut être plus correct.
- W
Bonjour
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.
Exact car int(4.0) n'est pas égal à 4.0 (enfin au sens Python du terme)
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)).
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager