Ce qu'on appelle les types natifs, ce sont des types de données préexistants qui vous permettent en programmation de représenter tout ce dont vous avez besoin. Il existe ainsi plusieurs types natifs que nous allons voir dans les prochaines parties, notamment Les chaînes de caractères, qui sont en fait tout simplement du texte, Les nombres et les booléens qui vont nous permettre de travailler par la suite avec des conditions. Il existe d'autres types natifs qui peuvent être construit à partir de ces trois types de base, ce sont les types séquentiels que sont les listes et les tuples qui nous permettent donc de représenter une séquence de différents éléments.
Les types d'ensembles comme les sets et frozenset qui permettent de réaliser des opérations d'union, de différence ou encore d'intersection. Et les types de correspondances, avec les dictionnaires, qui sont un autre moyen d'organiser des données avec un système de clés et de valeurs. Dans les prochaines parties, on va s'intéresser aux types natifs de base, que sont les chaînes de caractères, les nombres et les booléens.
Les autres types natifs que je viens d'énoncer sont un peu plus complexes et disposent de formations qui leur sont entièrement dédiées et ce ne sont finalement que des façons d'organiser et d'agencer dans d'autres structures ces trois types natifs de base. Une chaîne de caractères, c'est ce qu'on appelle communément du texte. Elle peut contenir autant de caractères que nécessaire, on pourrait donc sans problème stocker un livre entier dans une chaîne de caractères.
Il est également possible de créer des chaînes de caractères vides sans que cela ne pose de problèmes à Python. Une chaîne de caractères est délimitée par des guillemets. Ces guillemets peuvent être simples ou doubles.
Le guillemet simple, c'est l'équivalent de ce qu'on appelle en français une apostrophe. Cette chaîne de caractères qui commence et se termine par des guillemets doubles est donc également valide. Personnellement, je vous conseille d'utiliser principalement des guillemets doubles.
Pourquoi ? Eh bien tout simplement parce qu'avec des guillemets simples, c'est embêtant si vous souhaitez mettre des apostrophes dans votre texte. Prenons l'exemple de cette chaîne de caractères délimitée par des guillemets doubles.
L'apostrophe du mot "m'appelle" ne pose ici pas de problèmes car notre chaîne de caractères est définie avec des guillemets doubles. Si par contre, je remplace les guillemets doubles par des guillemets simples, on se retrouve avec un problème, qui est indiqué par la coloration syntaxique. L'apostrophe du mot "m'appelle", met fin à la chaîne de caractères qui est initiée avec le premier guillemet simple.
Si vous essayez de faire ceci dans un interpréteur Python, vous aurez donc une erreur de syntaxe. Une des solutions à ce problème, c'est d'utiliser un antislash. L'antislash permet en effet de faire ce qu'on appelle un 'échappement', c’est-à-dire signifier à un caractère qu'il ne doit pas être utilisée pour sa fonction première, dans ce cas-ci, délimiter une chaîne de caractères, mais qu'il doit tout simplement être utilisé comme un caractère textuel.
Si vous essayez ce code dans un interpréteur Python, vous n'aurez cette fois, plus d'erreur, et vous voyez que l'antislash ne se retrouve pas dans la chaîne de caractères final. On a donc bien l'apostrophe qui se retrouve correctement au milieu de notre chaîne de caractères. Mais la façon la plus simple de procéder reste donc d'utiliser des guillemets doubles.
Vous pourrez ainsi insérer des apostrophes dans votre chaîne de caractères, sans vous soucier de devoir les échapper avec un antislash. Le dernier type de chaînes de caractères que l'on peut créer, c'est une chaîne de caractères qu'on appelle multi-ligne. Pour cela, il suffit d'utiliser trois guillemets au début et à la fin de la chaîne de caractère en question.
À noter que là encore, vous pouvez utiliser des guillemets simples à la place des guillemets doubles, et pour une chaîne de caractères multi-ligne, les apostrophes à l'intérieur de votre texte ne poseront pas de problème. Dernier point important à aborder, certains caractères sont interprétés de façon particulière lorsqu'ils sont précédés d'un antislash. Par exemple ici, "\n" sera interprété comme un retour à la ligne.
Et si vous souhaitez faire un cœur, vous pouvez utiliser "\u", suivi du numéro correspondant au symbole dans la base de donnée des caractères Unicode. Pour éviter que ces caractères soient interprétés par Python, on peut utiliser ce qu'on appelle les 'raw string', que l'on pourrait traduire en français par 'chaîne de caractères brut'. Ça peut être très pratique, par exemple quand vous travaillez avec des chemins de dossier.
Dans le cas du chemin de dossier suivant, on a un antislash t et un antislash n qui par défaut vont être interprétés comme une tabulation et un retour à la ligne. Pour éviter qu'ils soient interprétés, il suffit de rajouter la lettre 'r' devant les guillemets de la chaîne de caractère. Ainsi, la chaîne de caractères sera interprétés de façons 'brut' et l'antislash t et l'antislash n seront insérés tels-quels.
Pour finir, voici donc une liste non exhaustive des caractères qui sont interprétés de façon spéciale par Python lorsqu'ils sont précédés d'un antislash. Il faudra donc porter attention aux chaînes de caractères qui peuvent contenir ces suites de caractères et le cas échéant, envisager d'utiliser une chaîne de caractères brut en la précédant de la lettre 'r'. Avec Python, on fait la distinction entre deux types de nombres, que l'on va voir dans cette partie : les nombres entiers et les nombres décimaux.
Les nombres entiers c'est tout simplement des nombres qui n'ont pas de décimales après la virgules. Ça peu être bien entendu des nombres positifs comme des nombres négatifs. Vous pouvez également représenter grâce aux nombres entiers des nombres immenses, la seule limite vraiment c'est la mémoire de votre ordinateur.
Depuis la version 3. 6 de Python, il est également possible de rendre plus facile la lecture des nombres entiers avec la possibilité d'insérer des tirets du bas dans un nombre, sans que cela ne cause d'erreurs. Vous pouvez placer ces tirets du bas où bon vous semble, mais généralement on s'en sert pour séparer les milliers et ainsi rendre plus rapide l'identification d'un nombre.
Les deuxièmes types de nombre qu'on utilise, ce sont les nombres décimaux que l'on appelle également nombres flottants. Ce sont tous simplement des nombres qui contiennent des décimales après la virgule. Il est très important de noter que pour définir un nombre décimal avec Python, on n'utilise pas la virgule, mais le point.
Si vous utilisez une virgule à la place du point, Python vous retournera une erreur. Là encore les nombres peuvent être positifs comme négatifs, et même si le nombre après la virgule est 0, comme dans le dernier nombre ici 10. 0, ce nombre sera tout de même considéré par Python comme un nombre décimal et ne sera donc pas converti en nombre entier.
Un booléen, c'est un objet qui ne peut prendre que deux valeurs : True et False qui signifient vrai et faux. Les booléens sont des types natifs qui sont une sous-classe des nombres entiers. True est l'équivalent de 1 et False l'équivalent du nombre 0.
Vous pouvez vérifier cette affirmation avec la fonction "issubclass". On voit bien avec cette fonction que le type natif 'bool', qui correspond aux booléens, est une sous-classe du type 'int', qui représente les nombres entiers. On pourrait ainsi sans problème additionner des booléens avec des nombres.
Pour l'instant cela ne vous semble peut-être pas très utile, mais je vous assure que dans certains cas bien précis, ça peut être très intéressant. Il faut savoir également que tous les objets peuvent être vrais ou faux. En anglais on appelle ça des 'Truthy' ou 'Falsy'.
Pour vérifier si un objet est vrai ou faux, on peut utiliser la fonction 'bool'. Vous pouvez lui passer n'importe quel objet, comme ici la chaîne de caractères Bonjour, et la fonction bool vous retournera True ou False. Dans ce cas-ci, la fonction bool retournera True car la chaîne de caractères contient au moins un caractère.
Il faut savoir que tous les objets ont une valeur qui par défaut est considérée comme 'False' et toutes les autres valeurs qui seront considérées comme 'True'. Par exemple, pour les chaînes de caractères, seule une chaîne de caractères vide est considérée comme Fausse. Dès que vous avez au moins un caractère, l'évaluation de la chaîne de caractère avec la fonction bool sera vraie.
Pour les nombres, que ce soit les nombres entiers ou décimaux, c'est la valeur de 0 qui est considérée comme fausse. Toutes les autres valeurs, que ce soit un nombre négatif ou positif, seront considérées comme vraies. Pour les types séquentiels comme les listes ou les dictionnaires, ils seront considérés comme faux s'ils sont vide.
Dès qu'ils contiennent au moins 1 élément, ils seront considérés comme vrais. Les booléens quand on voit ça tout seul, ça ne semble pas avoir beaucoup d'importance. C'est vraiment lorsque vous allez commencer à utiliser des conditions, et à créer des expressions plus complexes qui pourront être évaluées comme vraies ou fausses, que vous verrez leur vraie utilité.
Avec Python, il faut savoir que tous les types natifs de base peuvent être créés directement à partir de leurs classes correspondantes. On a donc la classe "str" pour les chaînes de caractères, "int" pour les nombres entiers, "float" pour les nombres décimaux et "bool" pour les booléens. Ce sont des termes que vous retrouverez très souvent en anglais dans la documentation officielle de Python Le nom des classes est cependant raccourci, les mots entiers en anglais sont 'string' pour chaînes de caractères, 'integer' pour les nombres entiers, 'float' pour les nombres décimaux, et 'boolean' pour les booléens.
On pourrait ainsi créer tous les objets correspondants aux types natifs de base avec ces classes. Cependant, ce n'est pas très utile car Python est suffisamment intelligent pour déterminer le type des objets grâce par exemple aux guillemets pour les chaînes de caractères ou au point de la décimale pour les nombres décimaux. Quand on crée ces objets, on peut donc directement les écrire comme ceci.
Vous verrez également qu'on appelle ces classes des fonctions de conversions. Bien qu'elles puissent ressembler à des fonctions, ce sont dans les fait des classes, mais là où elles ont un vrai intérêt, c'est qu'on peut les utiliser pour convertir des objets d'un type à un autre. Par exemple, vous pouvez convertir un nombre entier en chaîne de caractères en utilisant la classe "str".
Le résultat de l'utilisation de la classe string avec le nombre entier 5 nous donnera la chaîne de caractères 5. On a donc effectué une conversion d'un nombre entier en chaîne de caractères. Si on veut être très précis, en fait ce qu'on fait concrètement ce n'est pas tant une conversion, c'est juste qu'on crée un nouvel objet de type chaîne de caractères, à partir du nombre 5, mais dans les fait, c'est un peu comme si on convertissait un objet d'un type à un autre.
C'est pour ça que vous retrouverez souvent ces classes sous le nom de fonction de conversion. À l'inverse, on peut utiliser la classe int pour convertir une chaîne de caractères qui contient un nombre, ou si vous préférez, pour créer un nouvel objet de type nombre entier, à partir de la chaîne de caractères 2. Il faut cependant faire attention car on peut parfois avoir des erreurs en essayant de créer des objets à partir de données que Python n'arrive pas à convertir.
Si vous essayez par exemple de convertir la chaîne de caractères 'bonjour' en nombre, avec la classe int, vous obtiendrez une erreur, car Python ne sait pas comment convertir ce mot en nombre entier, et c'est assez logique car il est difficile d'exprimer le mot 'bonjour' sous la forme d'un nombre. C'était les types natifs de base avec Python, n'hésite pas à mettre un pouce bleu et à t'abonner à la chaîne et nous on se retrouve bientôt sur www. docstring.
fr.