J'ai essayé d'utiliser la fonction de Python dédiée à la mise en majuscule de chaque lettre d'une chaîne, mais après l'avoir utilisée une chaîne de caractères booléens ne fonctionne pas sur cette chaîne. Qu'est-ce que je veux dire que vous demandez? Eh bien, disons que les booléens suivants:str.upper() retourne une chaîne qui apparemment ne vaut rien, y compris une autre str.upper()
"b".upper() is "B"
".".upper() is "."
".".upper() is ".".upper()
sont tout faux.
Je suis tellement confus. Il se comporte comme si je convertissais une chaîne en forme upper(), au lieu de renvoyer la même chaîne avec des majuscules (ce que dit la documentation), il retourne un nouvel objet qui n'égale rien même un objet produit dans les mêmes conditions.
La définition de points d'arrêt et l'examen des valeurs réelles des variables semblent inutiles. Je survole is_graduate_input = input("Enter (y/n)").upper()
et il me montre une valeur de "Y", parce que c'est ce que j'ai entré. Mais alors directement après cette ligne mon instruction print(is_graduate_input is "Y")
imprime False?!?! Pourquoi?!?!
La documentation de Python indique que leur algorithme de majuscule est décrit dans certains standards Unicode. Je ne veux pas le lire. Je ne pense pas que ça va aider. Quelqu'un peut-il simplement me dire ce qu'il se passe? Je veux aller au lit. J'ai École demain.
Voir [ici] (http://stackoverflow.com/questions/132988/is-there-a-difference -between-and-is-in-python) - c'est une mauvaise idée d'utiliser 'is' pour comparer avec autre chose que des singletons comme' None'. Utilisez '=='.Très similaire à ce qui se passe en Java avec '==' et '.equals()'. – yeputons
@yeputons Est-ce mon problème?!?! Que devrais-je faire? –
C'est, vous devriez utiliser '==' en Python pour comparer les objets pour l'égalité. N'utilisez pas 'is' en dehors des comparaisons' is None 'et 'is not None', sauf si vous comprenez clairement ce que vous faites et pourquoi. – yeputons