CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Python] Problème avec if ... is "..."

Danslamerdeuhu
Danslamerdeuhu
Niveau 6
29 mai 2012 à 02:48:31

Bonjour,

Voici une boucle simple que je viens de créer, mon problème est que quelque soit l'input (oui, non ou autres), la machine affiche mon Else. Merci de m'aider :

while 1:

confirmation = input("\nEntrez \"oui\" ou \"non\" : ")

if confirmation is "oui":
print("\nMise de", mise, "$ confirmée")
break
elif confirmation is "non":
print("\nMise annulée.")
continue
else:
print("\nErreur : veuillez resaisir votre confirmation.")
continue

Danslamerdeuhu
Danslamerdeuhu
Niveau 6
29 mai 2012 à 03:09:22

Je pense avoir isolé le problème avec un exemple bidon :

Dans l'interpréteur si je fais :

confirmation = "oui"
if confirmation is "oui":
print("YEAH")

Alors là ca marche.

Par contre si je fais :

confirmation = input("Dites oui") #Et donc je rentre oui
if confirmation is "oui":
print("YEAH")

Alors là ca ne marche pas.

chris_27
chris_27
Niveau 10
29 mai 2012 à 10:29:24

À mon humble avis, tu ferais mieux d'utiliser un test d'égalité à la place de ton "is".

Voici pour information ce que j'obtiens sur ma machine :

chris@tarsonis:~% python

Python 2.7.3rc2 (default, Apr 22 2012, 22:35:38)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.

toto=raw_input("? ")

? oui

len(toto)

3

toto

'oui'

if toto is "oui" :

... print("Yo")
...

if toto is 'oui' :

... print("Yo")
...

if toto == "oui" :

... print("Yo")
...
Yo

if toto == 'oui' :

... print("Yo")
...
Yo

Bref, utilise ==. :oui:

Poneymovez
Poneymovez
Niveau 9
29 mai 2012 à 11:39:00

"is" je savais même pas que ça existait :)

Mais comme dit plus haut, tout les tests d'égalités ce font avec "==" dans n'importe quel langage :) !

Pocolo
Pocolo
Niveau 10
29 mai 2012 à 13:23:20

Je connais pas très bien Python mais en fait il me semble que le "is", en plus de vérifier la valeur des deux objets, vérifie aussi qu'ils soient de même type.

Par exemple si on compare 5 et 5.00 avec "==" ça renvoie vrai alors que si on les compare avec "is" ça renvoit faux.

Danslamerdeuhu
Danslamerdeuhu
Niveau 6
29 mai 2012 à 15:02:44

Ok merci a vous tous. Je vais utiliser == et je vous dirai si ca marche.

Danslamerdeuhu
Danslamerdeuhu
Niveau 6
29 mai 2012 à 15:09:20

Ca marche nickel !

Et même a taton j'ai vu qu'on pouvais faire :

if confirmation == "oui" or confirmation == "OUI" or confirmation == "Oui":

Ca fait du bien !

Poneymovez
Poneymovez
Niveau 9
30 mai 2012 à 17:46:30

Je pense que "is" est pour les instances :

Admettons une classe level
L'instance de level = Levelz

On peux faire if Levelz is level:
Du moins je pense, ça à l'air le plus logique (Levelz EST level)

Bref :) !

Pocolo
Pocolo
Niveau 10
30 mai 2012 à 20:27:49

Non, en fait après vérification le "is" sert à vérifier deux variables font référence a un même objet, en fait ça reviendrait à comparer deux pointeurs (l'adresse vers laquelle ils pointent) en C.

Pocolo
Pocolo
Niveau 10
30 mai 2012 à 20:28:37

" sert à vérifier deux variables "

sert à vérifier SI...

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment