Maison > développement back-end > Tutoriel Python > 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

WBOY
Libérer: 2024-07-21 22:43:21
original
873 Les gens l'ont consulté

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 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.

Chaîne

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'>
Copier après la connexion

Tuple

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'>
Copier après la connexion

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.

Chaîne avec virgule finale

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

mymistake = "Ajit Kumar",
print(type(mymistake))
#Output : <class 'tuple'>
Copier après la connexion

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().

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 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'>
Copier après la connexion

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'>
Copier après la connexion

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'>

Copier après la connexion

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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal