Aujourd'hui, je vais raconter une histoire sur mon erreur de copier-coller et comment une chaîne avec une virgule finale s'est couplée et est devenue un Tuple() dans mon programme Python. Bizarrement, je n’étais pas au courant de ce concept avant de commettre cette erreur.
Alors, commençons par un apprentissage rapide de la chaîne et du tuple en Python.
Définition : Une séquence de caractères utilisée pour stocker et manipuler du texte.
Syntaxe : Entre guillemets simples ' ', guillemets doubles " " ou guillemets triples ''' '''/""" """.
Immuabilité : Les chaînes ne peuvent pas être modifiées après la création.
# Example mystring = "Hello, World!" print(type(mystring)) #Output: <class 'str'> mystring2 =str() print(type(mystring2)) #Output: <class 'str'>
Définition : Une séquence de valeurs immuable.
Syntaxe :Défini par des parenthèses ( ), séparées par des virgules.
Immuabilité : Une fois créés, les éléments ne peuvent pas être modifiés.
# Example mytuple = (1,2) print(type(mytuple)) #Output:<class 'tuple'> mytuple2 =tuple() print(type(mytuple2)) #Output:<class 'tuple'>
Maintenant, nous connaissons la chaîne et le tuple et comment obtenir une variable de type chaîne ou tuple en utilisant soit une affectation directe, soit en utilisant une approche de classe en utilisant un constructeur. Mais mon histoire est différente :).
Les instructions Python n'ont pas besoin de point-virgule (;) ou de virgule (,) ou de tout autre symbole de fermeture (l'espacement est utilisé pour gérer le bloc), alors comment terminer une virgule de fin avec une chaîne comme "Ajit Kumar", car souvent, vous copiez un élément de chaîne à partir de la liste du dictionnaire et vous vous retrouvez souvent avec une virgule finale. C'est ce qui m'est arrivé et puis l'histoire est devenue intéressante.
Alors, donnons d'abord un exemple de mon histoire.
mymistake = "Ajit Kumar", print(type(mymistake)) #Output : <class 'tuple'>
Maintenant, il y a deux choses à observer :
1) L'interpréteur Python ne générera aucune erreur en raison de la virgule finale avec la chaîne 'mymistake', sinon l'erreur ne serait pas allée plus loin.
2) Le type de variable est devenu « tuple » par rapport à l'intention initiale de créer une variable de chaîne, mon erreur.
J'ai écrit ici et cela semble très facile et simple, mais il a fallu une heure pour déboguer cette erreur, car je passais la chaîne comme argument à une méthode et les erreurs étaient étranges et je continue de travailler sur la méthode et d'essayer de comprendre le message d'erreur. Par exemple, le message disait que la variable 'name' n'avait pas de méthode lower().
Si vous utilisez une virgule sans parenthèses, Python la traite comme un tuple.
Exemple : mymistake = "Ajit Kumar", crée un tuple ("Ajit Kumar").
Donc, si vous souhaitez créer un tuple n'ayant qu'un seul élément/élément, vous devez être très prudent. Dans l'exemple suivant, démontrez que, dans le premier exemple, même un élément est entre parenthèses (1), Python le traite comme un entier et non comme un tuple.
singleitem = (1) print(type(singleitem)) #Output: <class 'int'>
Donc, pour créer un tuple avec un seul élément, vous devez utiliser une virgule de fin, comme suit :
singleitemtuple = (1,) print(singleitemtuple) #output: (1,) print(type(singleitemtuple)) #output: <class 'tuple'>
Et, je pense, c'est la raison pour laquelle, lorsque la chaîne a une virgule finale, Python la prend comme tuple et crée la variable comme tuple et non comme chaîne.
Cependant, la documentation Python l'a clairement mentionné et c'est mon erreur ou ma négligence de ne pas l'avoir remarqué et j'ai toujours utilisé () pour créer un tuple même pour un seul élément avec une virgule d'entraînement. Source
Quoi qu'il en soit, cela m'a donné de nouveaux apprentissages et un raccourci pour créer un tuple avec un seul élément, ou plusieurs éléments sans utiliser (). Oui, j'ai essayé d'utiliser la "virgule de fin" avec plus d'éléments pour créer un tuple et cela a fonctionné. Exemple :
mylearning = "Ajit Kumar","April","python", print(mylearning) #output: ('Ajit Kumar', 'April', 'python') print(type(mymistake)) #output: <class 'tuple'>
C'était beaucoup d'apprentissage ce week-end. J'espère que cela vous sera utile. Mettez votre discussion et votre suggestion dans le commentaire. J'adore entendre parler des raccourcis Python et des fonctionnalités prêtes à l'emploi.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!