"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Chaîne et virgule de fin, obtenez un couple et devenez, Tuple (): une erreur de copier-coller vers l'erreur et le concept

Chaîne et virgule de fin, obtenez un couple et devenez, Tuple (): une erreur de copier-coller vers l'erreur et le concept

Publié le 2024-07-30
Parcourir:418

String and Trailing comma, get couple and become, Tuple (): A copy & paste mistake to Error and concept

Aujourd'hui, je vais raconter une histoire sur mon erreur de copier-coller et comment une chaîne avec une virgule finale 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 des chaînes et des tuples en Python.

Chaîne

Définition : Une séquence de caractères utilisée pour stocker et manipuler du texte.
Syntaxe : entouré de guillemets simples ' ', de guillemets doubles " " ou de 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: 

mystring2 =str()
print(type(mystring2))
#Output: 

Tuple

Définition : Une séquence immuable de valeurs.

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:

mytuple2 =tuple()
print(type(mytuple2))
#Output:

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 à l'aide d'un constructeur. Mais mon histoire est différente :).

L'instruction Python n'a 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 pouvez-vous 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.

Chaîne avec virgule finale

Alors, donnons d'abord un exemple de mon histoire.

mymistake = "Ajit Kumar",
print(type(mymistake))
#Output : 

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 à travailler sur la méthode et à essayer de comprendre le Message d'erreur. Par exemple, le message disait que la variable 'name' n'avait pas de méthode lower().

Problèmes

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 contenant uniquement un élément/un é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: 

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:  

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:  

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.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/ajitkumar/string-and-trailing-comma-get-couple-and-become-tuple-a-copy-paste-mistake-to-error-and-concept- 3gfl ? 1 S'il y a une infraction, veuillez contacter [email protected] pour la supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3