0
votes

Le résultat est toujours étrange au lieu de même ou impair

Le résultat est toujours étrange, au lieu de même ou impair. XXX


9 commentaires

thenum! = int n'est pas le moyen de tester si un numéro est un entier.


Ce que vous voulez, c'est si type (thunum) est INT:


Mais il est plus simple de faire si num% 2 == 1:


@Barmar, cela ne fonctionnera pas ici parce que par ex. type (6/3) est float


Pourquoi ai-je l'impression que j'ai déjà vu cela aujourd'hui? @Barmar Est-ce que cela vous semble familier? En tout cas, je vote pour le fermer car il est trivial et peu susceptible de toujours être utile à quiconque.


@Amc je me sens comme si je l'ai déjà vu, mais pas récemment. Je ne pouvais pas trouver un DUP, bien que cela semble être courant.


@Barmar peut-être que cela a été supprimé? J'aurais pu juré que c'était cet utilisateur exact, bien que j'ai peut-être développé la capacité de voir les univers futurs / parallèles.


@Amc Stackoverflow.com/q/59653453/1672429


@Stefanpochmann merci! Je pense que c'est la raison suffisamment pour fermer cette question, même si cela ne peut pas être techniquement signalé comme un duplicata. Wow, et celui d'abord ressemble à une affectation de copie / colle. Il semble que OP a suffisamment de commentaires pour résoudre celui-ci à la question précédente, mais n'a même pas essayé de faire de rien.


3 Réponses :


1
votes

Vous voulez thunum code> pour être le module, alors modifiez-le sur int (num)% 2 code>. Si le nombre est même, il n'y aura pas de reste, donc thenum code> sera égal à 0. Donc, votre relève code> si code> doit être:

if thenum == 0:
    print("Your number is even")
else:
    print("Your number is odd")


0 commentaires

0
votes

Vous voulez tester si un numéro est pair ou impair en divisant par 2 et en vérifiant si le résultat est un int ou un float .

. Ne fonctionne pas, car / est un opérateur qui renvoie toujours un float , même si le résultat aurait pu être un int . Par exemple: xxx

Vous pouvez transformer le résultat dans un int et voir si les résultats sont égaux si vous vouliez vraiment utiliser cette méthode: < / p> xxx

mais qui s'appuie vraiment sur un effet secondaire de la conversion de type et non une très bonne programmation.

mieux serait de vérifier réellement si la division par deux a un reste, donc: xxx

de sorte que votre code serait: xxx

Notez que le elif n'est pas nécessaire non plus, car il n'y a que deux résultats possibles pour le reste lors de la division d'un int par 2.


0 commentaires

0
votes

votre chemin mais fait correctement avec thenum.is_integer () code> au lieu de votre thenum == int code> tentative (qui est aussi défectueux que demander "est mon chat em> l'espèce em> de tous les chats? "):

number = input("write a number: ")

half = int(number) / 2
if half.is_integer():
    print("Your number is even")
else:
    print("Your number is odd")


0 commentaires