Maîtriser Python : cours intermédiaire ultime pour 2026 6 | Arno Pretorius | Skillshare

Vitesse de lecture


1.0x


  • 0.5x
  • 0.75x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Maîtriser Python : cours intermédiaire ultime pour 2026 6

teacher avatar Arno Pretorius, IT Freelancer

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Introduction du cours

      2:47

    • 2.

      Processus de réflexion

      3:55

    • 3.

      Ressources du cours

      0:51

    • 4.

      Accès aux ressources du cours en ligne

      1:30

    • 5.

      Python - Installation et configuration - Windows

      4:26

    • 6.

      VS Code - Installation et configuration - Windows

      1:56

    • 7.

      Démarrer notre projet - Windows

      6:27

    • 8.

      Python - Installation et configuration - MacOS

      2:28

    • 9.

      VS Code - Installation et configuration - MacOS

      1:19

    • 10.

      Démarrer notre projet - MacOS

      5:25

    • 11.

      Améliorez votre flux de travail avec Code Runner - [facultatif]

      4:44

    • 12.

      Expressions régulières

      0:57

    • 13.

      Travailler avec des expressions régulières - [Lab]

      10:17

    • 14.

      Imprimer plusieurs valeurs

      3:37

    • 15.

      Travailler avec différentes sorties - [Lab]

      3:35

    • 16.

      Déclarations de cas correspondance

      3:08

    • 17.

      Travailler avec les déclarations de cas de correspondance - [Lab]

      8:26

    • 18.

      Modules aiguille

      1:43

    • 19.

      Parcourir l'index des modules Python

      1:22

    • 20.

      Intégrer des modules personnalisés et intégrés - [Lab]

      9:14

    • 21.

      Packages, Pip et PYPI

      2:03

    • 22.

      Utiliser les emballages externes - [Lab]

      10:55

    • 23.

      Ressources utiles

      1:24

    • 24.

      Générer des nombres aléatoires. numbers

      0:56

    • 25.

      Examen approfondi du module aléatoire - [Lab]

      16:07

    • 26.

      Explorer le module des secrets - [Lab]

      4:01

    • 27.

      Approfondissement du module numpy - [Lab]

      14:20

    • 28.

      Decorators

      2:10

    • 29.

      Créer notre premier décorateur - [Lab]

      8:57

    • 30.

      Travailler avec des décorateurs - [Lab]

      10:32

    • 31.

      File I/O

      6:01

    • 32.

      Effectuer les opérations de fichiers - [Lab]

      11:20

    • 33.

      Obtenir des métadonnées de fichiers

      1:09

    • 34.

      Attributs des métadonnées du fichier de sortie - [Lab]

      4:23

    • 35.

      Paramètres et arguments

      4:51

    • 36.

      Différencier les paramètres et les arguments - [Lab]

      7:13

    • 37.

      Arguments et de mot-clé arguments

      5:37

    • 38.

      Ne vous laissez pas la carte et les arguments de mot-clef - [Lab]

      16:35

    • 39.

      Mixage des types d'arguments - [Laboratoire facultatif]

      10:28

    • 40.

      Arguments par défaut arguments

      4:35

    • 41.

      Travailler avec les arguments par défaut - [Lab]

      11:53

    • 42.

      Variable length arguments

      4:09

    • 43.

      Utilisation d'arguments de longueur variable - [Lab]

      8:50

    • 44.

      Déballage

      5:21

    • 45.

      Déballage d'un récipient - [Lab]

      13:31

    • 46.

      Arguments locaux et globaux

      2:35

    • 47.

      Analyser la portée des arguments - [Lab]

      4:09

    • 48.

      Utiliser le mot-clé global - [Laboratoire facultatif]

      4:29

    • 49.

      Envoyer des variables sous forme d'arguments

      1:48

    • 50.

      Travailler avec des variables sous forme d'arguments - [Lab]

      4:02

    • 51.

      Passer un paramètre par valeur ou référence

      1:48

    • 52.

      Explorer les valeurs de paramètres et les références - [Laboratoire]

      12:01

    • 53.

      L'opérateur astérisque

      1:44

    • 54.

      Appliquer l'opérateur astérisque - Pt. 1 - [Labo]

      16:54

    • 55.

      Appliquer l'opérateur astérisque - Pt. 2 - [Lab]

      6:04

    • 56.

      Fonctions Lambda

      1:58

    • 57.

      Effectuer des opérations avec Lambda - [Lab]

      13:28

    • 58.

      Appliquer des fonctions lambda à d'autres fonctions

      1:38

    • 59.

      Intégrer lambda avec d'autres fonctions - [Lab]

      11:05

    • 60.

      Qu'est-ce que la programmation orientée objet ?

      1:09

    • 61.

      Les classes et les objets ouï

      3:32

    • 62.

      Création de notre premier cours et de notre objet - [Lab]

      7:38

    • 63.

      Approfondissement des cours et des objets - [Laboratoire facultatif]

      6:12

    • 64.

      Méthodes personnalisées

      1:45

    • 65.

      Intégrer des méthodes personnalisées (de l'instance) - [Lab]

      9:33

    • 66.

      Travailler avec des méthodes statiques et de classe - [Lab]

      12:28

    • 67.

      Qu'est-ce que l'héritage ? ou

      1:47

    • 68.

      Utiliser l'héritage - [Lab]

      12:43

    • 69.

      Abstraction

      1:51

    • 70.

      Travailler avec l'abstraction - [Lab]

      17:07

    • 71.

      Collections

      3:06

    • 72.

      Explorer le module collections - [Lab]

      15:38

    • 73.

      Itertools

      1:38

    • 74.

      Travailler avec Itertools - [Lab]

      18:42

    • 75.

      Gestionnaires de contexte

      2:40

    • 76.

      Travailler avec les gestionnaires de contexte - [Lab]

      7:50

    • 77.

      Gestionnaires de contexte intégrés ou personnalisés tout

      1:27

    • 78.

      Créer un gestionnaire de contexte personnalisé - [Lab]

      17:31

    • 79.

      Generators

      4:13

    • 80.

      Travailler avec des générateurs - [Lab]

      7:23

    • 81.

      Efficacité de la mémoire du générateur

      2:47

    • 82.

      Copie superficielle et profonde

      0:55

    • 83.

      Utiliser des textes peu profonds et profonds - [Lab]

      8:41

    • 84.

      Enregistrement

      1:38

    • 85.

      – Mise en œuvre des messages de journalisation - [Lab]

      15:57

    • 86.

      JSON

      0:42

    • 87.

      Travailler avec JSON - [Lab]

      9:19

    • 88.

      fil d'

      2:43

    • 89.

      De requêtes dans les files d'attente : [Labo]

      8:13

    • 90.

      Récursion

      0:41

    • 91.

      Effectuer des appels récursifs - [Lab]

      11:19

    • 92.

      Compréhensions

      1:54

    • 93.

      Utiliser les compréhensions de liste - [Lab]

      13:09

    • 94.

      Utiliser les compréhensions du dictionnaire - [Lab]

      15:33

    • 95.

      Fils et processus d'identification

      4:36

    • 96.

      Multitraitement

      0:28

    • 97.

      Multi-threading

      0:35

    • 98.

      Intégrer le multi-traitement - [Lab]

      6:28

    • 99.

      Intégrer un filage multi-objectif - [Lab]

      6:31

    • 100.

      Tests unités

      0:56

    • 101.

      Réaliser des tests standard sur les unités - [Lab]

      12:14

    • 102.

      Virtual environments

      0:43

    • 103.

      Création d'un environnement virtuel - [Labo]

      7:53

    • 104.

      Creating your own project

      0:46

    • 105.

      Merci !

      0:44

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

73

apprenants

1

projets

À propos de ce cours

Ce dont vous avez besoin :

Ce cours s’adresse à ceux qui ont une compréhension de base de Python et souhaitent passer au niveau supérieur. Vous devriez déjà savoir comment travailler avec des variables, des types de données, des conditions de base, des boucles et des fonctions, etc.

Si vous débutez avec Python, je vous recommande de commencer par suivre mon cours Python : ultime pour débutants 2025 sur Skillshare. Il couvre les bases dont vous aurez besoin avant de vous lancer dans ce cours intermédiaire.

Pour ce cours, vous utiliserez Visual Studio Code (VS Code) comme éditeur de codage. Elle est gratuite, légère et largement utilisée par les développeurs du monde entier. Je vous guiderai tout au long du processus de configuration, y compris comment installer Python et configurer VS Code. Tout ce dont vous avez besoin est un ordinateur de bureau ou de bureau et une connexion Internet.

Ce que vous allez apprendre :

Dans ce cours, vous vous appuierez sur vos connaissances de base en Python pour maîtriser les concepts de programmation intermédiaires dans ce langage polyvalent et puissant. Le cours équilibre la théorie et la pratique pour vous apprendre à écrire du code Python efficace et évolutif tout en se concentrant sur des applications pratiques.

À la fin du cours, vous aurez une solide compréhension des concepts intermédiaires de Python, vous aurez acquis la confiance nécessaire pour développer des applications plus complexes et vous aurez une appréciation de Python pour résoudre des problèmes du monde réel.

Les sujets clés que vous maîtriserez dans ce cours :

  • Expressions régulières
  • Imprimer plusieurs valeurs
  • Étui de correspondance
  • Modules aiguille
  • Packages, PIP et PYPI
  • Générer des nombres aléatoires. numbers
  • Decorators
  • File I/O
  • Obtenir des métadonnées de fichiers
  • Paramètres et arguments
  • Arguments et de mot-clé arguments
  • Mélanger les types d'argument
  • Arguments par défaut arguments
  • Variable length arguments
  • Déballage
  • Arguments locaux et globaux
  • Envoyer des variables sous forme d'arguments
  • Passer un paramètre par valeur ou référence
  • L'opérateur astérisque
  • Fonctions Lambda
  • Appliquer des fonctions lambda à d'autres fonctions
  • Programmation orientée objet
  • Les classes et les objets ouï
  • Méthodes personnalisées
  • Méthodes statiques et de classe
  • Héritage
  • Abstraction
  • Collections
  • Itertools
  • Gestionnaires de contexte
  • Gestionnaires de contexte intégrés ou personnalisés tout
  • Generators
  • Générateurs : efficacité de la mémoire
  • Copie superficielle et profonde
  • Enregistrement
  • JSON
  • fil d'
  • Récursion
  • Compréhensions
  • Fils et processus d'identification
  • Multi-threading et multi-traitement
  • Tests unités
  • Virtual environments

Ce que vous allez faire :

Tout au long du cours, vous commencerez par apprendre les bases théoriques des concepts clés, puis vous allez réaliser des exercices de laboratoire pratiques qui vous permettront d'appliquer ce que vous avez appris. Ces exercices pratiques vous permettront de renforcer votre compréhension et de vous préparer à aborder des tâches plus complexes.

Au fur et à mesure de la progression du cours, vous travaillerez sur quelques mini-projets qui regroupent toutes les connaissances et les compétences que vous avez acquises jusqu'à présent.

Enfin, dans la section « Projets et ressources », vous créerez votre propre projet. C'est ici que vous utiliserez les compétences acquises pour concevoir et construire quelque chose d'utile pour vous-même, en assemblant le tout de manière pratique et personnalisée.


Avantages du cours :

Ce cours comprend :

  • Plus de 10 heures de vidéo à la demande
  • Leçons théoriques pour apprendre les concepts fondamentaux
  • Apprenez à appliquer vos connaissances !
  • Mini-projets de pratiques avec des solutions
  • Plus de 100 leçons au total

À propos de votre instructrice :

Je suis consultant en développement de logiciels et ancien enseignant en sciences informatiques. Je suis passionné par le développement web, le cloud computing et les DevOps. Je me concentre sur l’enseignement de compétences pratiques qui aident les gens à appliquer en toute confiance ce qu’ils apprennent à des projets réels.

Je suis titulaire d’un Bachelor en technologies de l’information et d’un Certificat Postgraduate en éducation (PGCE), ce qui me donne des bases solides à la fois dans les domaines de la technologie et de l’enseignement. J’ai également obtenu l’assurance et le statut d’AWS. Je suis donc architecte et développeur dans tout ce que je fais

Vous voulez en savoir plus ?

Si vous avez apprécié ce cours et que vous souhaitez découvrir d'autres cours possibles à l'avenir, assurez-vous de me suivre sur Skillshare !

Rencontrez votre enseignant·e

Teacher Profile Image

Arno Pretorius

IT Freelancer

Enseignant·e

Arno is an IT freelancer and former computer science teacher specialising in web development, cloud computing, and DevOps. He focuses on practical, hands-on teaching that helps learners turn knowledge into real-world projects.

He holds a BSc in Information Technology and a Postgraduate Certificate in Education (PGCE), and is an AWS Certified Solutions Architect and Developer, bringing real-world cloud and industry experience to his teaching.

To stay up to date with his courses you can follow his Skillshare profile to receive the latest updates and announcements.

Voir le profil complet

Level: Intermediate

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. [NOUVEAU] - Introduction au cours: Bonjour et bienvenue dans le cours intermédiaire Python Mastery Ultimate. Je suis Anna Pretorius, travailleuse indépendante en informatique et professeur d' informatique formel Ce cours est conçu pour les apprenants qui comprennent déjà les bases de Python et sont prêts à approfondir leurs connaissances de manière significative et Si vous connaissez les variables, les types de données, boucles, les fonctions et les conditions, vous êtes prêt pour cette prochaine étape Maintenant, si vous êtes complètement nouveau, ne vous inquiétez pas. Je vous recommande commencer par mon cours pour débutants, puis de revenir ici une fois que vous aurez jeté vos bases et que vous serez aise avec les bases de Pierson Dans ce cours, nous allons maintenant travailler dans Visual Studio Code, un des éditeurs les plus populaires pour le développement professionnel. Je vais vous expliquer comment installer Python, configurer Visual Studio Code et tout configurer correctement afin que vous soyez prêt à commencer à écrire et à exécuter du code en toute confiance. À partir de là, nous allons aborder un large éventail de sujets intermédiaires. Vous allez découvrir des sujets tels que les modules, gestion des fichiers, les décorateurs, les fonctions lambda et des aspects plus avancés de la programmation orientée objet tels que l'héritage et l'abstraction, et nous allons également aborder les packages De plus, de nombreux autres sujets seront abordés, tels que des sujets sur les générateurs, les gestionnaires de contexte, la copie en profondeur, la récursivité, le JSON, les tests unitaires, les environnements virtuels, le multithreading et le multitraitement . Comme vous pouvez le constater, il y a beaucoup de contenu à aborder et beaucoup à étudier, mais ne vous inquiétez pas. Vous êtes entre de bonnes mains, et nous allons nous en sortir ensemble. Maintenant, ce cours est conçu avec un équilibre des explications claires et des exercices pratiques, et vous allez également effectuer des exercices de laboratoire pour écrire du vrai code et vous attaquer à des mini-projets conçus pour stimuler et développer vos compétences. Enfin, vous allez tout réunir dans votre propre projet dans la section des projets et des ressources, créer quelque chose de pratique et de personnalisé. À la fin de ce cours, vous aurez la confiance nécessaire pour créer des applications plus avancées, pour créer des applications plus avancées, écrire du code plus propre et plus évolutif, et pour comprendre comment les fonctionnalités intermédiaires de Python sont utilisées dans des scénarios du monde réel. Maintenant, ce cours comprend plus de 10 heures de leçons structurées, et plus de 100 leçons sont couvertes, et il vous aidera à combler le fossé entre un débutant et un développeur compétent Alors, croyez-moi, vous êtes entre de bonnes mains. 2. Processus de pensée: Bonjour, Eon. Et bienvenue à la prochaine leçon, qui sera axée sur le processus de tri. Dans cette conférence, je vais donc simplement vous donner quelques conseils, que pouvez suivre si vous le souhaitez sur façon de structurer notre procédé au sel lorsque vous suivez ce cours. Alors allons-y et commençons. Donc, processus de tri. Maintenant, avant de nous lancer dans le cours, nous devons structurer notre processus de tri. Je voudrais donc juste vous donner quelques conseils. Alors allons-y et allons-y. Donc, le premier conseil que je voudrais vous donner est de procéder étape par étape. Suivez donc ce cours étape par étape. S'il te plaît, ne te brosse pas les dents, non ? Prends ton temps. S'il vous faut beaucoup de temps pour maîtriser une leçon en particulier , ne perdez pas espoir. Vous le comprendrez avec le temps. Certaines personnes comprennent immédiatement différents concepts dès la première fois. D'autres mettent plus de temps à comprendre certains concepts. Et en tant qu'apprenant certaines matières de ma vie, j'ai, bien entendu, consacré beaucoup de temps à comprendre certains domaines de concepts et à maîtriser presque instantanément d'autres sujets particuliers maîtriser presque instantanément Pour chacun, c'est différent. Tout le monde aura un défi à un moment ou à un autre, alors ne vous découragez pas et allez-y doucement et régulièrement Un autre conseil que j'aimerais vous donner est d'établir un calendrier et de vous y tenir. Maintenant, bien sûr, vous n'avez pas besoin d' être extrêmement rigoureux et détaillé dans votre emploi du temps. Ce que je veux dire par là, c'est que vous n'avez pas besoin de le planifier en fonction des minutes, des heures exactes , du calendrier, etc. Ce que je veux dire par là, c'est avoir un emploi du temps qui ne vous submergera pas, mais qui vous poussera juste assez pour rester constant et discipliné et même motivé pour terminer le Gardez donc cela à l'esprit. D'après mon expérience ici, je vous recommande donc de choisir un horaire plus flexible pour vous. Personnellement, je n'aime pas rester rigoureux. Comment puis-je dire exactement Comment puis-je dire le temps passé, les minutes et les heures passées ? Je n'aime pas suivre cette approche. Ou en ce qui concerne les dates, j'aime rester plus flexible et dire : « D'accord, je veux consacrer un certain montant par mois à travailler sur ce cours, et je veux juste terminer environ cinq à dix leçons. Telle serait donc mon approche et ma façon de procéder. Cela dépend donc de la façon dont vous préférez procéder. Je ne fais que vous donner un exemple. Quoi qu'il en soit, il est bon d'avoir au moins un calendrier de base à suivre. Maintenant, le conseil le plus important que je souhaite partager avec vous ici est le dernier, qui est de rester positif et savoir qu'il ne s'agit pas d'une course pour terminer le parcours, mais plutôt d'un voyage lent et régulier pour acquérir des connaissances à long terme afin d'obtenir les meilleurs résultats ici. C'est ce que je veux dire ici. Vous ne voulez pas suivre ce cours à la hâte, mais plutôt prendre votre temps, même si vous pensez que les concepts sont très faciles à comprendre, prenez plutôt votre temps. Faites-le régulièrement et travaillez-le sur le cours de temps en temps ou régulièrement, selon votre emploi du temps. C'est une chose très importante que je tiens à mentionner ici. Encore une fois, cela lie beaucoup de choses ici à l'objectif de rester positif. Encore une fois, bien sûr, s'il faut du temps pour comprendre certains concepts , travaillez-les , des efforts et vous y arriverez. Restez positif et sachez que cela prendra du temps, mais allez-y doucement, calmement et détendez-vous tout au long du cours. J'ai fait de mon mieux pour que ce soit aussi simple que possible tout au long de ce cours. N'oubliez donc pas de vous détendre, respirer profondément, de suivre calmement le cours et de vous amuser. C'est bon, les gars. C'est donc tout ce que je voulais mentionner ici en termes de processus de réflexion. 3. Ressources du cours: Bonjour, tout le monde. Et bienvenue à la prochaine leçon, qui sera axée sur les ressources du cours. Jetons donc un coup d'œil. Très bien, donc vous vous demandez probablement, d'accord, comment allons-nous coder ? Donc, la première chose que nous devons vérifier est que Python est installé sur notre appareil. Donc, que nous travaillions sur un PC Windows ou sur un appareil macOS. Ensuite, nous allons installer et configurer le code Visual Studio, communément appelé code VS, et il s'agit d'un éditeur de codage qui nous permettra créer et d'exécuter nos programmes PySON Je sais que cela peut sembler un peu stressant et inquiétant, mais ne vous inquiétez pas. Je vais vous le détailler le plus facilement possible, et je vais vous montrer exactement comment nous allons commencer avec tout. Alors ne t'inquiète pas. Vous êtes entre de bonnes mains. 4. Accéder aux ressources du cours en ligne: Bonjour à tous, et bienvenue à la prochaine leçon, qui portera sur l' accès à nos ressources de cours en ligne. Ce que je veux dire par là, c'est que je vais simplement vous montrer comment vous pouvez accéder aux sites Web requis pour télécharger et configurer PySON ainsi que pour configurer le code de Visual Studio Je vais juste vous montrer comment accéder aux sites Web. Dans les leçons suivantes, je vais en fait vous montrer comment les installer et les configurer. Il s'agit simplement d'une leçon sur l'accès à ces outils. Vous pouvez donc vous rendre sur Google et vous pouvez simplement taper PySON Download, puis nous pouvons simplement dire Google Search Et sur ce lien, vous verrez qu'il s' appellera Download PySON et que vous voudrez cliquer dessus Cela vous amène à la page suivante, qui est une barre oblique en Python ou une barre oblique de téléchargement Nous n'allons donc pas installer PySON maintenant. Je veux juste vous aider à accéder au site Web. Ensuite, nous allons également utiliser Visual Studio Code. Donc, ce que vous pouvez faire, c'est aller de l'avant dans Google et taper Visual Studio Code Download. Je regarde la recherche sur Google. Et vous verrez ce lien qui apparaît et qui indique de télécharger Visual Studio Code, Mac Linux et Windows, afin que nous puissions l'ouvrir. Et voici la page dont nous aurons besoin pour continuer et configurer le code Visual Studio comme éditeur de codage. C'est bon, les gars. C'est tout pour cette leçon, c'est très simple. Je veux simplement vous montrer comment vous pouvez accéder à ces sites Web pour vous y référer ultérieurement lors des prochaines leçons. 5. Python - Installation et configuration - Windows: Bonjour, tout le monde. Bienvenue dans la prochaine leçon, qui portera sur l'installation de PySON sur un appareil Windows. Commençons. Maintenant, la première chose à faire est de vous rendre à l'adresse Web suivante, qui se trouve sur python.org, fordslash Après avoir saisi cette adresse Web, vous serez redirigé vers la page suivante , comme vous pouvez le voir ici. Ce que nous allons faire, c'est télécharger PySON pour Windows dès maintenant. Maintenant, en ce qui concerne la version qui vous est donnée lorsque vous vous rendez sur cette page, il n'est pas nécessaire que ce soit exactement la même version, alors ne vous inquiétez pas tant que ce n'est pas trop loin. Bien, ce que nous pouvons faire, c'est aller de l'avant et voir télécharger Pison. Il y a la configuration pour nous ici , que nous pouvons poursuivre et ouvrir. Cela va nous faire passer par l'assistant de configuration. Donc, ce que nous allons faire, c'est nous assurer que nous utilisons les privilèges d' administrateur lors de l' installation de Pit Ex, et nous voulons également ajouter le PysonTex à notre pass Maintenant, c'est très important pour s'assurer que tous les utilisateurs de notre système pourront exécuter PySON dans n'importe quel type d' application permettant d'exécuter Python Y a-t-il des restrictions ? Ensuite, vous voulez dire installation personnalisée. OK, assurez-vous que tout est sélectionné, comme vous pouvez le voir ici. Ensuite, nous verrons la suite. Ensuite, vous voulez dire installer PySON pour tous les utilisateurs ici, dans ce cas, il s'agit de la version 3.13 Assurez-vous donc de sélectionner l'option suivante, et cela permettra simplement à tous les utilisateurs de votre appareil d' utiliser PySON Après cela, vous pouvez continuer et dire Installer. Une invite apparaîtra sur votre écran, et la mienne est actuellement estompée, et vous voulez simplement dire oui à cet avis de sécurité Nous pouvons donc voir que l' installation est en cours. Cela va donc prendre environ un moment avant que PySON ne soit installé sur notre système Nous allons donc devoir être un peu patients jusqu'à ce que tout soit configuré et terminé. Donnons-y donc un moment. C'est bon. Bon retour. Félicitations pour la configuration réussie de PySON sur votre PC Windows. Comme nous pouvons le constater maintenant, le montage a été un succès, bravo. Maintenant, nous pouvons continuer et fermer ceci et je vais juste minimiser cela. Maintenant, pour vous assurer que tout a été correctement installé et qu' il n'y a aucun problème, je vous recommande vivement de redémarrer votre PC. Alors, s'il vous plaît, assurez-vous de le faire. C'est très important. Donc, ce que vous pouvez faire, c'est simplement vous rendre sur votre PC et vous pouvez continuer et dire «   redémarrez ». Et puis, bien sûr, une fois que votre PC aura redémarré, je vous ferai passer le test de confirmation final pour m'assurer que PySON a bien été installé sur votre système et que attentes du système sur votre C'est donc l'essentiel. La variable d'environnement pour PySON doit donc être chargée et configurée Alors allons-y et faisons-le. Redémarrons donc les PC et nous reviendrons dès que nos ordinateurs auront été redémarrés. Très bien, alors bon retour. J'espère donc que vous avez redémarré votre PC. Maintenant, pour confirmer définitivement que PySON a été correctement configuré sur nos systèmes, il vous confirmer définitivement que PySON a été correctement configuré sur suffit de rechercher l'invite de commande Vous pouvez simplement taper CMD pour le trouver rapidement. Voici donc notre invite de commande. Et tout ce que je vais faire maintenant, c'est ajuster cela juste pour votre plus grand plaisir, et je vais juste dire la version PySon Dash Dash Vous pouvez donc continuer et taper ceci également, puis nous pouvons appuyer sur Entrée. Et si tout s'est bien passé, il devrait afficher la version de PySON que vous avez installée sur votre système Et c'est comme une dernière vérification de confirmation pour s' assurer que tout s'est bien passé et que nous sommes prêts à partir. C'est bon. Assurez-vous donc que vous pouvez le voir et que vous avez installé PySON sur votre machine, et c'est tout C'est ainsi que vous pouvez installer PySON sur votre système et vérifier qu' il n'y a pas de problèmes ou de conflits ou quoi que ce soit d'autre et qu' il a été correctement installé. C'est bon, vas-y. Donc, pour cette leçon, voici comment vous pouvez procéder et installer PySON sur un appareil Windows 6. VS Code - Installation et configuration - Windows: Bonjour, tout le monde. Et bienvenue à la prochaine leçon, qui portera sur le téléchargement et la configuration du code Visual Studio sur un appareil Windows. Commençons donc. Maintenant, la première chose à faire est de vous rendre sur l'URL suivante, vous pouvez ajouter sous forme code. Visualstudio.com Flash Download Cela vous mènera à cette page où vous pouvez télécharger le code Visual Studio pour le système d'exploitation que vous avez désigné Maintenant, au cas où, ce sera sous Windows. Nous pouvons sélectionner l'option ici pour Windows 10 et 11, afin de cliquer dessus télécharger le guide d'installation pour nous et l'assistant de configuration. Nous pouvons aller de l'avant et ouvrir cette voie. Soyons patients au fur et à mesure que cela s'ouvre. Nous voulons accepter l'accord. Passons à l'étape suivante. Il va l'enregistrer dans un dossier de destination. Passons à l'étape suivante. Nous pouvons voir que c'est ainsi que nous pouvons y accéder dans le menu Démarrer sous forme de code Visual Studio ensuite. Je vous recommande de simplement créer une icône de bureau pour le moment. Vous pouvez toujours le supprimer. Nous pouvons dire « suivant » et « installer ». Il va maintenant installer le code Visual Studio sur notre ordinateur. Tout ce que nous allons vouloir faire maintenant, c'est être patient pendant que ce processus est terminé. Bien, alors, bon retour. Comme vous pouvez le constater, le code Visual Studio a été installé avec succès sur notre machine et nous pouvons maintenant lancer Visual Studio Code. Donc, si cette option n'a pas été cochée pour vous dans la case à cocher, vous pouvez la cocher, et vous pourrez voir la fin, et cela nous ouvrira le code Visual Studio. Nous pouvons donc dire « terminer ». Et nous y voilà. Nous voici donc dans le code Visual Studio. Alors, bravo. Vous avez correctement téléchargé et configuré code Visual Studio sur votre PC Windows. C'est tellement bien fait. 7. Commencer notre projet - Fenêtres: Bonjour à tous, et bienvenue à la prochaine leçon, qui portera sur la prise en main du code Visual Studio. D'accord. Maintenant, ce que nous allons vouloir faire, c'est créer notre projet, qui hébergera nos fichiers Python. OK, comme vous pouvez le voir, aucun dossier n'est ouvert ou quoi que ce soit d'autre. Donc, ce que nous allons faire , c'est aller sur le bureau, et je vais cliquer avec le bouton droit de la souris, je vais dire « nouveau dossier » et je vais donner à ce dossier un nom qui conviendra. Nous allons donc travailler avec notre code Python. Je pense donc qu'un simple nom ici s'appellerait Mon projet. Nous y voilà. Nous pouvons maintenant revenir au code de Visual Studio, et vous pouvez soit dire « ouvrir le dossier », soit cliquer sur l' icône en haut à gauche, accéder à Fichier, puis ouvrir le dossier. Ensuite, nous pouvons accéder à notre bureau, puis sélectionner mon projet. C'est ici que sera hébergé notre code PyCon. Nous pouvons alors dire sélectionner un dossier. C'est bon. Parfait. Il s'agit donc du dossier avec lequel nous allons travailler pour stocker nos scripts PySON C'est vrai. La prochaine chose que vous voulez faire est de surligner ou de survoler le dossier de votre projet ici et vous verrez quelques icônes Nous voulons cliquer sur Nouveau fichier, et ce sera notre fichier de script PySON C'est donc ici que nous allons ajouter tout notre code PySON, puis nous allons exécuter le code en fonction des commandes définies dans ce fichier Je vais donc simplement l'appeler pour le moment point principal pi. Vous pouvez lui donner le nom que vous voulez, et vous pouvez appuyer sur Entrée. Maintenant, dès que vous aurez appuyé sur Entrée, vous recevrez un message vous demandant : Voulez-vous installer la PySoneTension recommandée par Microsoft pour le langage PySON Microsoft pour le langage Je vous recommande donc de le faire. Il vous offrira des fonctionnalités supplémentaires et autres. Je recommande donc de continuer et de l'installer. Vous pouvez donc dire installer. L'installation de cette extension sur le code Visual Studio va donc prendre quelques instants . Maintenant, il ne vous reste plus qu'à être un peu patient, et une fois qu'il sera installé, nous pourrons continuer à partir de là. Bien, alors bon retour car nous pouvons voir que l'extension Python a été installée dans le code Vision Studio, nous pouvons donc la fermer Et ce que nous pouvons également faire, c'est nous rendre dans Explorer. Et ici, nous pouvons activer l'option suivante pour maximiser notre script, appelé «   main point pie », par exemple Et si nous voulons voir notre répertoire, qui héberge notre projet et les fichiers associés, nous pouvons bien sûr revenir en arrière. C'est bon. Donc, juste quelque chose que je voulais également mentionner à ce sujet. C'est vrai. Maintenant, ce que nous voulons faire, c'est ajouter notre code Python à ce script, puis nous voulons exécuter ce script et voir le résultat de sortie. Maintenant, la première chose à faire est de commencer et de créer un programme simple. Je vais juste définir une variable connue sous le nom, et nous disons égale et lui la valeur non, puis je vais imprimer cette variable et elle va afficher la valeur associée au nom qui est non. Maintenant, il existe deux manières procéder et de commencer. Maintenant, pour ce qui est de la méthode manuelle, je vais d'abord vous montrer que vous pouvez continuer et cliquer sur l'icône fluide en haut à gauche. Ensuite, vous voulez accéder au terminal, et vous voulez ouvrir votre terminal. Très bien, nous l' avons donc ici. Notre terminal se trouve sur le côté gauche. Et avec cette console de débogage, vous pouvez continuer et simplement déplacer cela. Et ce que je vous recommande de faire, c'est maintenant de rouvrir votre terminal La configuration prend parfois un moment. Donc, je dirais toujours : « Tuez le terminal ». Ensuite, je vais le fermer, puis nous retournerons au terminal, puis nous l' ouvrirons à nouveau. Et c'est parti. D'accord, alors maintenant nous pouvons continuer et commencer Maintenant, ce que vous allez vouloir faire, c'est exécuter votre fichier de script PySON en fonction de son nom Cela s'appelle donc Min Dot Pie, et nous pouvons voir le répertoire que nous avons configuré ici. Donc, actuellement, notre terminal regarde l'utilisateur ici, qui est Ono, sur le bureau dans le dossier My Project, qui est le dossier que nous avons créé ici appelé My Project. Et comme vous pouvez le voir, il est également disponible ici, Mon projet, et nous avons Min Dot Pi, qui se trouve dans ce dossier My Project. Pour exécuter tout code contenu dans ce fichier point py principal, nous allons procéder comme suit. Vous voulez simplement taper Python. Ensuite, vous pouvez simplement vous référer au nom du fichier, qui est le point principal py. Mais tout ce que vous voulez faire est de dire PySon main point pi, puis d'entrer, et vous pouvez voir qu'il affiche notre code pour nous C'est donc le moyen le plus simple exécuter votre code PySON dans le code Visual Studio et en utilisant ce terminal. C'est vrai. Nous pouvons également taper en clair, ce qui aidera également à vider le terminal. C'est donc la première façon d'exécuter du code. C'est donc une sorte de méthode manuelle, pourrait-on dire. Maintenant, le moyen le plus simple est de masquer ce panneau. Vous allez maintenant voir si vous avez installé l'extension Python, vous avez maintenant la possibilité de survoler l'icône suivante et d' exécuter votre fichier Python Cela le fait automatiquement pour vous, en soi. Nous pouvons simplement cliquer sur Exécuter PysonFle en cliquant sur cette icône, et cela ouvrira le terminal pour nous et vous verrez qu'il va exécuter le fichier PysonFle en cliquant sur cette icône, et cela ouvrira le terminal pour nous et vous verrez qu'il va exécuter le Ici, nous avons le diagramme à points principal, qui a été exécuté et affiché ici, qui se trouve dessus. C'est une autre façon procéder. Il y a deux moyens. C'est bon. C'est ça, les gars. C'est ainsi que nous pouvons commencer à utiliser le code Visual Studio et établir les bases de notre projet PySON Nous pouvons donc aller de l'avant maintenant et voir ici. C'est bon. C'est ainsi que nous pouvons aller de l' avant, démarrer et tout mettre en place. 8. Python - Installation et configuration - MacOS: Bonjour, tout le monde. Bienvenue dans la prochaine leçon, qui portera sur l'installation de PySON sur un appareil macOS La première chose à faire est de vous rendre sur l'URL suivante, qui se trouve sur python.org forwardslash Downloads forwardlas Vous devez vous assurer que vous vous rendez sur cette URL. Après l' avoir saisi, vous serez redirigé vers la page suivante, qui se trouve sur la page des téléchargements de Python. Ensuite, vous souhaitez télécharger PySON afin de pouvoir cliquer sur ce bouton ici Cela va télécharger l'assistant de configuration pour nous et nous pouvons l' ouvrir comme suit. Voici un assistant de configuration. Nous voulons simplement continuer, terminer et accepter les termes. Ensuite, vous devez dire installer, saisir votre mot de passe et installer ce logiciel sur votre système. C'est bon. Allons-y. Nous pouvons clore ce qui suit ici. Nous y voilà. PySON a été installé avec succès sur notre appareil Nous pouvons simplement dire « proche ». Nous pouvons simplement dire « Keep », c'est bon. Maintenant, ce que je vous recommande de faire, c'est de vous rendre sur votre icône Apple et de simplement redémarrer votre appareil macOS. C'est juste pour s'assurer que tout est correctement configuré PySON en termes de variables d'environnement, etc. Après cela, vous pouvez vous rendre sur votre barre de lancement et rechercher votre terminal Vous pouvez simplement taper le terminal et l'ouvrir. Il s'agit de l' équivalent CMD sous Windows pour confirmer que PySON a été installé et que la version désignée en particulier que vous avez installée, vous pouvez simplement dire PySON trois, space, Dash Dash version Voilà, nous pouvons voir que la version que nous voulions installer et l'installation de PySON ont été un succès, comme nous pouvons le constater, le résultat est le suivant C'est juste une confirmation pour montrer que PySON a été installé sur notre système. OK, c'est tout pour cette vidéo, est ainsi que vous pouvez vous assurer que Python est installé sur votre appareil macOS. 9. VS Code - Installation et configuration - MacOS: Bonjour, tout le monde. Bienvenue à la prochaine leçon, qui portera sur le téléchargement et l'installation du code Visual Studio sur nos appareils macOS. Tout d'abord, vous devez vous assurer que vous êtes sur la page suivante, qui est accessible si vous vous rendez sur URL et que vous tapez le code visualstudio.com pour slash Download your URL, sur laquelle vous serez redirigé vers la page suivante ici qui est accessible si vous vous rendez sur URL et que vous tapez le code visualstudio.com pour slash Download your URL, sur laquelle vous serez redirigé vers la Ensuite, ce que vous voulez faire, c'est continuer et l'installer pour un Mac, afin que nous puissions continuer et cliquer sur l'icône suivante. Cela va télécharger l'assistant de configuration dont nous avons besoin pour accéder au code Visual Studio. Nous avons juste besoin de lui accorder quelques instants. Si, pour une raison ou une autre, le téléchargement ne démarre pas pour vous, vous pouvez continuer et cliquer sur le lien de téléchargement direct à la place. Donnez-lui un moment et nous verrons que c'est fait et nous pourrons ouvrir le code Visual Studio. Après avoir cliqué dessus, vous verrez cette invite ici et il ne vous reste plus qu' à l'ouvrir. Le code Visual Studio est une application téléchargée sur Internet et nous voulons l'ouvrir. Nous y voilà. Nous l'avons ici. Il s'agit du code Visual Studio. C'est ainsi que vous pouvez facilement configurer cet éditeur de codage. 10. Commencer notre projet - MacOS: Bonjour à tous. Bienvenue dans la prochaine leçon qui portera sur la prise en du code Visual Studio afin que nous puissions configurer notre PysonPject La première chose que je veux que nous fassions est de minimiser le code de Visual Studio pour le moment. Ce que nous allons faire, c'est créer un nouveau dossier sur notre bureau, qui hébergera notre fichier PySON en temps voulu Faisons un clic droit et nous pouvons alors dire nouveau dossier. J'ai créé ce dossier. Je vais cliquer dessus et le renommer Je vais l'appeler MP Check. Vous pouvez lui donner le nom que vous souhaitez, nous avons ce dossier et nous voulons ouvrir ce dossier dans le code Visual Studio. Il s'agit d'ouvrir le code de Visual Studio, de le maximiser. Ensuite, nous pouvons cliquer sur Fichier. Accédez au dossier ouvert. Ensuite, nous voulons aller sur le bureau car c'est là que nous avons créé ce dossier. Nous pouvons ensuite sélectionner le dossier appelé mon projet et dire « ouvert Nous pouvons fermer cette invite et nous pouvons voir que nous avons maintenant accès à ce dossier. Parfait. Bravo. Nous voulons maintenant créer notre fichier PysonScripting, pourrait-on C'est ici que nous allons ajouter tout notre code PySON et nous allons également exécuter notre code en fonction du contenu du fichier S. Cela se trouvera dans notre dossier de projet ici. Vous pouvez le survoler, puis vous verrez une icône qui vous permettra de créer un nouveau fichier Vous voulez cliquer dessus. Donnez un nom à votre fichier ici. Je vais l'appeler main point py, par exemple. Je dois être un dotpi pour que code Visual Studio sache que ce sera un fichier basé sur Python et que nous puissions appuyer sur Entrée Voilà, le fichier point Pi principal. Maintenant que c'est la première fois que nous utilisons PySON dans du code Visual Studio, nous allons avoir un prompteur qui va nous suggérer d'installer l'extension Python recommandée par Microsoft pour le langage Python Cette extension ne nous donne que quelques fonctionnalités supplémentaires que nous pouvons utiliser et rend globalement notre expérience du codage Python dans code Visual Studio beaucoup plus efficace et agréable Nous pouvons dire installer. Cela va installer l'extension. Nous y voilà. Il a été installé, nous pouvons donc fermer la page suivante ici et accéder à l'icône ici, qui est Explorer. Cela va juste afficher notre répertoire, c'est-à-dire, bien sûr, nos fichiers dans notre répertoire. Nous pouvons également fermer Explorer ici pour maximiser le fichier que nous avons déjà ouvert ici. C'est en fait quelque chose que je voulais également mentionner. C'est bon. Allons-y, exécutons du code et effectuons quelques tests. Maintenant, la première chose que je veux, bien sûr, faire est de créer un programme simple. Je vais dire nom égal, et je vais juste dire honneur. Je crée un nom de variable et je l'attribue à la valeur d'honneur Dans la diapositive suivante, je vais dire imprimer et je veux afficher cette valeur. Allons-y et faisons-le. Dans la déclaration d'impression, je vais mettre un nom. Maintenant, vous pouvez enregistrer votre code ici, puis nous pouvons l'exécuter en cliquant sur l'icône suivante ici pour exécuter le PisonFle Nous y voilà. Nous pouvons voir qu'il a exécuté le fichier en conséquence ici. Je peux également minimiser ce terminal ici juste pour vous donner plus de place. Nous pouvons y voir le résultat, qui n'était pas le cas et qui a été exécuté avec succès. Nous pouvons également voir qu' il a automatiquement configuré notre passé pour nous. Nous exécutons dans le répertoire Mon projet, et il exécute le fichier point pi principal ici spécifiquement pour afficher le code qui a été envoyé ici. Et vous pouvez également effacer votre terminal ici en tapant clair et cela l' efface pour vous Vous pouvez également continuer et le fermer. C'est maintenant la méthode automatisée pour exécuter vos programmes dans le code Visual Studio. Ce que vous pouvez également faire, c'est cliquer sur le répertoire du terminal ici et dire nouveau terminal, et cela l'ouvrira ici comme suit. Ce que nous pouvons faire, c'est, bien sûr, nous pouvons simplement nous donner de l'espace ici et vous pouvez également exécuter les commandes ici . C'est une autre façon de procéder. Si vous voulez continuer et l'exécuter dans le terminal ici au lieu de lancer le fichier Python, vous devez le faire manuellement en fonction du nom du fichier. Mais vous allez vouloir dire PySon trois, espace, puis le nom de votre fichier Ici, je vais dire point principal pi, et Enter. Là, il va sortir en conséquence comme suit. vrai, c'est ainsi que vous pouvez utiliser le terminal et le code de Visual Studio. Et nous pouvons taper clairement ici et cela effacera le terminal pour nous. Maintenant, je vous recommande au moins de simplement cliquer sur l'option Exécuter PysonFle ici pour qu'elle s'exécute pour vous, puis de saisir le nom du fichier de façon automatique , puis de l' Cela ne fera que vous faire gagner du temps et ainsi de suite. C'est bon, les gars. C'est ainsi que nous pouvons démarrer avec PySON et comment nous pouvons démarrer plus spécifiquement avec PySON dans le code Visual Studio 11. Améliorez votre flux de travail avec Code Runner - [Facultatif]: Bonjour, tout le monde. Bienvenue à la prochaine leçon, qui portera sur l'amélioration notre flux de travail en utilisant l'extension Code Runner. Maintenant, ce sera une leçon facultative. Tu n'es pas obligée de le faire si tu ne le veux pas. Mais disons par exemple que vous travaillez avec votre terminal et que vous souhaitez obtenir un résultat plus propre. Au lieu de voir ces fichiers désordonnés à chaque fois, puis le résultat du code que vous attendez réellement, Code Runner peut vraiment vous aider à rendre choses beaucoup plus faciles et plus agréables à regarder, devrais-je dire Au lieu de voir tous ces fichiers transmis et noms inclus dans la sortie et de vouloir nettoyer la sortie, vous pouvez utiliser Code Runner. Alors allons-y et commençons. OK, nous devons donc accéder à l'extension Vous serez donc désigné par l'icône fluide. Maintenant, nous pouvons simplement cliquer sur ce champ de saisie, et je vais simplement supprimer ce qu'il contient. Et nous voulons rechercher Code Runner. Je vais juste taper, bien sûr, le code fluide. Coureur. Et nous allons voir celui-ci ici. Vous verrez donc que ce logo sera affiché par un point, donc code runner, et vous souhaitez installer cette extension en particulier. OK. Donnons-lui donc un moment ou deux pour qu'il soit installé, et c'est parti. Nous pouvons voir qu'il a bien été installé sur notre système. Bien, nous pouvons donc fermer cette extension maintenant, tête sur dos, et nous l'avons mise en place. Maintenant, il y a quelques paramètres que nous devons confirmer et nous assurer que nous avons mis en place pour obtenir une sortie propre. Alors allons-y et faisons-le. Vous souhaitez donc accéder à l'icône suivante. Ensuite, vous voulez aller dans Fichier, puis vous pouvez faire défiler la page vers le bas jusqu'à ce que vous voyiez les préférences. Ensuite, vous devez survoler les préférences, puis cliquer sur les paramètres. Alors allez-y et cliquez dessus. Cela vous mènera à la zone suivante ici. Ensuite, ici, par les paramètres de recherche, nous pouvons simplement saisir du code. OK. Et nous pouvons simplement ajouter Runner. C'est bon, allons-y. OK, nous avons donc quelques réglages ici. Donc, tout d'abord, nous avons Code Runner Effacer la sortie précédente. Nous voulons donc nous assurer que cela a été vérifié. Cela permettra simplement de s' assurer qu'il affiche le résultat le plus récent chaque fois que nous exécutons un code Très bien, alors allons-y et continuons. Nous voulons donc simplement y rechercher les principales options. D'accord ? Nous pouvons donc tout laisser tel quel. Vous voulez simplement vous concentrer sur ceux que j'ai mentionnés. Ici, nous avons également du code exécuté et exécuté dans le terminal. D'accord ? Vous voulez vous assurer que cela n'a pas été coché, qu'il n'est pas coché, afin que nous puissions simplement le laisser vide tel quel C'est donc un autre point que vous voulez vérifier. D'accord, et bien sûr, nous pouvons voir que nous avons également un fichier de sauvegarde avant de l'exécuter. Cela va donc garantir que nous voulons enregistrer le fichier actuel avant de l'exécuter. Et ce que vous voulez faire pour celui-ci ici, c'est vous assurer qu'il reste vrai. Et puis nous avons le message d'exécution de l'émission, d'accord ? Nous ne voulons donc pas voir quelque chose comme courir, tomber ou quoi que ce soit de ce genre. Nous voulons que ce soit clair, propre et simple. Assurez-vous donc que cela n'a pas été vérifié. Vous voulez donc simplement vérifier les quatre options que j'ai détaillées maintenant, juste pour vous assurer que tout est clair et organisé pour que Code Runner puisse fonctionner en place. Bien, alors allons-y et fermons ça maintenant. avez notre code ici, mais maintenant, pour exécuter Code Runner, ce que vous pouvez faire, c'est très simple. Nous allons également cliquer sur Exécuter, mais vous devez cliquer sur cette flèche déroulante ici, et vous verrez maintenant que nous avons la possibilité de dire exécuter le code au lieu d' exécuter Pis et le fichier Vous voulez donc cliquer sur Exécuter le code, et c'est parti. Nous avons ce résultat propre et simple. Vous ne voyez plus d'encombrement. Il est beaucoup plus facile à utiliser et il est désormais en place comme il se doit. Bien, ce que je vais faire maintenant, c'est simplement changer cette valeur, et je vais juste dire John. Et maintenant, si je continue et que je clique manuellement sur l'option ici, vous verrez que le code par défaut sera exécuté maintenant, et il y aura Ha. Très bien, alors allons-y. C'est ainsi que vous pouvez utiliser Code Runner. Vous pouvez donc voir que cela nous donne un résultat propre, beaucoup plus agréable à regarder et, dans l' ensemble, beaucoup mieux pour que nous utiliser de cette manière. C'est bon, les gars. 12. Les expressions régulières: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur les expressions régulières. Jetons donc un coup d'œil. accord, donc des expressions régulières, communément appelées rejexs. expressions régulières en Python sont donc essentiellement utilisées pour identifier des modèles dans le texte, tels que des chiffres, des mots ou même une adresse e-mail, par exemple. Désormais, au lieu de rechercher des correspondances exactes, rejec suit des règles spécifiques pour détecter des modèles spécifiques en tant que tels. Maintenant, PySON nous fournit déjà un module intégré appelé RE pour travailler avec des expressions régulières, wrench Cela suffit donc pour l'aperçu théorique. Allons-y et appliquons nos connaissances l'utilisation d' expressions régulières dans PySON 13. Travailler avec des expressions régulières - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique, qui sera axé sur l'utilisation d'expressions régulières communément appelées rejec en Python Allons-y et commençons. Supprimons ce que nous avons ici et je vais juste effectuer un zoom arrière d'un onglet. C'est vrai. OK, donc la première chose que nous allons vouloir faire est passer en revue le type d' exemples que nous allons examiner avec les expressions régulières. Donc, afin de mieux comprendre les expressions régulières, je vais passer en revue quelques exemples et exercices avec Z notamment les suivants. Je vais vous montrer comment vous pouvez trouver tous les chiffres, en d'autres termes, nombres dans un ensemble de texte donné, comment remplacer des chiffres par certains caractères, et aussi comment vérifier si une chaîne commence par le chiffre. Cela vous aidera à mieux comprendre comment vous pouvez utiliser les fonctions fournies avec le module RE, etc. Quoi qu'il en soit, allons-y et commençons. Donc, dans tous les exemples, nous devons d'abord importer le module RE, qui est livré avec de nombreuses fonctions intégrées. Nous pouvons donc voir Import RE. C'est vrai. Nous devons maintenant ajouter du texte, et le premier exercice va se concentrer sur la recherche de tous les nombres ou chiffres d'un jeu de chèques donné. Je vais donc dire ext, égal, et ici, entre guillemets, je vais dire que j' ai trois pommes. Et deux paires. C'est mon exemple. Et comme vous pouvez le voir, j'ai deux chiffres. J'en ai trois et j'en ai deux. Donc, bien sûr, nous voulons extraire ces valeurs, techniquement. Ensuite, nous devons spécifier un modèle. Maintenant, le nom de la variable ici, vous pouvez donner le nom que vous souhaitez. Cependant, je l'appelle modèle parce que c'est essentiellement le modèle sous lequel je vais le configurer. Maintenant, vous voudrez toujours commencer par R pour votre expression ici, le R avant une chaîne donnée garantira que la chaîne est une chaîne brute, ce qui signifie que toutes les barres obliques inverses sont traitées normalement plutôt que comme des séquences d'échappement Nous allons donc ajouter nos guillemets, puis la barre oblique inverse D. Ce sera la partie importante que nous devrons ajouter ici Maintenant, cette barre oblique inverse D ici sera, bien entendu, une expression régulière qui correspondra à n'importe quel chiffre de 0 à 9 C'est ce que nous devons d'abord, spécifier la prochaine chose que nous voulons faire est spécifier une autre variable, nous pouvons appeler ces nombres et nous allons utiliser le module R E maintenant, puis nous allons invoquer la recherche ou la fonction intégrée au module RE, et nous allons entrer deux paramètres. Il y aura d'abord le motif, puis le texte. Donc, pour réitérer cette ligne ici sur le modèle, il s'agit de trouver tous les chiffres d'un ensemble de texte donné, qui sera ce texte ici. Et ce que nous faisons, c'est utiliser la fonction find ou la fonction pour faire exactement cela. La recherche ou la fonction va donc vouloir connaître le modèle , puis les vérifications pour l' appliquer également. Le modèle sera donc basé sur les chiffres, cette barre oblique inverse D pour trouver et faire correspondre les chiffres, et nous voulons trouver tous les chiffres de ce texte qui dit que j'ai trois pommes et deux paires Vous pouvez vous contenter, bien sûr, en produire trois et deux. Confirmons-le. Ensuite, vous pouvez dire « imprimer les numéros » et exécuter votre code. Ici, vous pouvez voir qu' il produit trois et deux. Voilà, nous l'avons. C'est ainsi que nous pouvons trouver des chiffres dans un ensemble de texte donné. Maintenant, ajustons cela maintenant et je vais l'allonger. Je dois dire que j' ai trois pommes, deux paires et quatre oranges. Enregistrez le code. Courez. Maintenant, vous pouvez voir qu'il produit trois, deux et quatre. D'accord. Vous pouvez donc voir qu'il va récupérer et vérifier où il peut récupérer tous les nombres donnés en utilisant la fonction « Tout rechercher ». Maintenant, disons que pour les besoins de l' argumentation, nous voulons faire quelque chose de différent. Supposons que nous voulions remplacer des chiffres par un caractère spécifique. Disons avec un hashtag. Nous ne voulons pas que le numéro ou le numéro de téléphone de quelqu'un soit divulgué. Nous voulons juste qu'il soit, pourrait-on dire, masqué par des hashtags. Alors allons-y et faisons-le. Nous pouvons donc supprimer ce code pour le moment. Je vais le supprimer , et je vais répéter le texto. Et ici, je vais dire que mon numéro est, et je vais dire un, deux, trois, quatre, cinq, par exemple. Ensuite, le schéma que nous allons définir. Donc, guillemets, barre oblique inverse D. Nous allons donc rechercher modèle qui correspond Ensuite, nous pouvons ajouter un nouveau texte de soulignement car nous allons modifier ce texte pour indiquer que mon numéro est, puis nous allons ajouter un caractère spécifique pour masquer ces chiffres, par exemple D'accord. Ensuite, nous allons dire RE, en utilisant le point du module. La fonction que nous allons utiliser cette fois s'appelle sub. Donc, sub est une fonction , communément appelée substitution ou substitution, mais le nom réel de la fonction est sub. Nous voulons donc essentiellement remplacer une valeur alternative pour remplacer un chiffre en soi. Nous devons donc appliquer le modèle que nous voulons utiliser pour faire correspondre les chiffres. Et lorsque nous voyons des chiffres, nous voulons les remplacer ou les modifier par une balise de hachage sur le texte donné Comme vous pouvez vous y attendre maintenant, ce qui va se passer, c'est qu'il indiquera que mon numéro est , et qu'il affichera hashtag, hashtag, hashtag et hashtag. Si nous devions dire imprimer puis nouveau texte souligné et exécuter ce code, nous pouvons voir ici, dans les sorties, que nous pouvons voir ici, dans les sorties, mon numéro est hashtag, hashtag, hash, hasta Maintenant, disons que je n'en ai inscrit qu'un et deux. Et on recommence, je ne montre que les deux premiers hashtags. OK, c'est donc un très bon moyen si vous souhaitez remplacer ou remplacer des chiffres ou des chiffres dans un ensemble de texte donné. Vous utiliseriez la sous-fonction ou la fonction de substitution. Maintenant, je peux aussi l' allonger et l'exécuter, et vous pouvez voir que cela va juste faire ce qui suit. Maintenant, je peux aussi le remplacer par, disons, le symbole $1, afin que je puisse le remplacer par cela et mettre à l'original, et il fera la même chose. C'est ainsi que vous pouvez remplacer en conséquence. Très bien, c'est ainsi que nous pouvons remplacer les chiffres. Maintenant, la dernière chose que je veux vous montrer, c'est comment vérifier si une chaîne commence par un chiffre, donc si elle commence par un chiffre. Alors faisons-le. Supprimons cela. OK, texto. Et ce que je vais faire maintenant, c'est dire trois paires dans le panier. D'accord. Nous pouvons donc déjà voir ici que la chaîne commence par un chiffre. C'est bon. Donc, le schéma. OK, nous allons avoir R, et nous allons devoir mettre un caractère spécial ici, donc ce sera une flèche pointant vers le haut ou un symbole du type Power Two. Et cela signifiera le début de la chaîne. Donc, au début de la chaîne, je veux rechercher les chiffres correspondants, d'où la barre oblique inversée et D. C' est ainsi que vous pouvez appliquer ces caractères ensemble en termes d'expressions Donc, en gros, cette ligne de code va maintenant correspondre si la chaîne commence par le chiffre et nous allons l'appliquer maintenant. Une déclaration « if ». Je vais donc dire que je fais correspondre les points, donc nous utilisons la fonction de correspondance, le modèle et le check. Nous allons donc vérifier si ce modèle particulier correspond à ce texte. En d'autres termes, si ce texte commence par un chiffre, selon le modèle , nous allons produire une réponse spécifique. Donc, comme il s'agit d'une instruction if, vais ajouter un noyau à la fin, puis je peux dire imprimer, oui, elle commence par un chiffre Si, pour une raison ou une autre, ce n'est pas le cas, je peux dire autre chose et imprimer. Non, il ne commence pas par un chiffre. OK, alors allons-y et voyons voir. Donc, dans ce cas, nous pouvons voir qu'il commence par un chiffre, il devrait donc renvoyer la déclaration ici. Oui, cela commence par un chiffre puisque c'est vrai. Alors, exécutons-le et nous verrons ici. Ça dit, oui, ça commence par un chiffre. Maintenant, permettez-moi de changer et de supprimer les trois et de dire simplement «  paires dans un panier et courez ». Il va y avoir la déclaration qui, bien sûr, dit non, elle ne commence pas par un chiffre. D'accord. C'est ainsi que nous pouvons également utiliser la fonction match. Maintenant, lorsque nous travaillons avec des expressions régulières, de nombreuses fonctions sont fournies avec R E, mais il ne s'agit que d'un petit effort pour que vous puissiez comprendre expressions régulières et savoir comment les appliquer en fonction d' un modèle donné que vous décidez définir dans votre code lui-même. C'est bon, les gars. pour cet exercice pratique en particulier. 14. Imprimer plusieurs valeurs: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur l'impression plusieurs valeurs. Jetons un coup d'œil. C'est vrai. vous pouvez utiliser la concaténation de chaînes. La concaténation chaînes consiste essentiellement à combiner plusieurs chaînes en une seule Maintenant, lorsque nous imprimons plusieurs valeurs, vous pouvez utiliser la concaténation de chaînes. La concaténation de chaînes consiste essentiellement à combiner plusieurs chaînes en une seule. Désormais, la méthode la plus courante pour concaténer des chaînes consiste à utiliser l' opérateur plus, puis à ajouter espaces entre vos chaînes Maintenant, vous pouvez également utiliser une virgule à la place dans votre fonction d'impression, et vous pouvez ensuite afficher plusieurs valeurs, ce qui ajoutera automatiquement ces espaces pour vous, ce qui peut la rendre beaucoup plus lisible et vous faire gagner du temps Permettez-moi donc de vous montrer graphiquement ce que je veux dire par là. Supposons, par exemple, que nous ayons ce programme. C'est très simple. Nous avons défini deux variables ici, prénom et le nom de famille, en prenant en compte vos prénom et nom de famille, bien sûr, John et Doe. Ensuite, ce que vous devez faire est généralement de créer une autre variable. Dans ce cas, le nom complet serait approprié. Ensuite, pour combiner le prénom et le nom de famille, vous devez dire le prénom, puis plus, puis ajouter l'espace entre guillemets, puis encore plus, puis le nom de famille. Cela va combiner John et do et laisser un espace entre eux puisque vous avez ajouté ces deux guillemets. Comme vous pouvez le voir, vous ajoutez l'opérateur plus ici pour la concaténation de chaînes Lorsque vous imprimez le nom complet, John Space Do sera imprimé dans un format agréable. Cependant, cela peut s'avérer un peu fastidieux selon la situation et le contexte Un moyen plus simple serait simplement de continuer et ajouter votre fonction d'impression, puis ajouter directement votre prénom et votre nom de famille, les séparer par une virgule Cela permettra également d'imprimer exactement le même résultat avec moins de code en place C'est donc juste quelque chose que je voulais mentionner ici : si vous imprimez vos valeurs et qu'elles sont sorties, vous pouvez également vous faciliter en ajoutant simplement une virgule en fonction de certaines circonstances Maintenant, il y en a d'autres que je voudrais mentionner sur ce sujet. Donc, pour que vous soyez plus l' aise avec les deux options, je vais utiliser à la fois l'opérateur plus pour la concaténation de chaînes et la virgule tout au long virgule D'accord. Maintenant, la raison pour laquelle je fais cela est simplement pour vous aider à renforcer vos compétences en apprenant de nouvelles choses, et pour tout appliquer afin que vous puissiez apprendre de manière plus approfondie Donc je veux juste, vous savez, vous mettre un peu au défi de vous concentrer vraiment sur les leçons à suivre et d'être à l' aise non seulement avec l'utilisation d'un type de méthode, mais aussi avec le fait de suivre d'autres méthodes également. Donc dans ce cas, pour suivre la concaténation de chaînes, pour la reconnaître, pour l'appliquer Et puis, dans un autre contexte, pour dire : « OK, dans ce cas, je dois utiliser une virgule ou j'ai envie d'utiliser une virgule, mais je le comprends aussi Ce n'est donc qu'un petit aperçu de mon point de vue sur la façon dont vous devriez vous y prendre pour imprimer vos valeurs, etc. Une leçon très simple, devrais-je dire ? Je vais également poursuivre avec un petit exercice pratique. C'est très facile, mais je veux juste que nous nous entraînions et que nous nous habituions à travailler sur d'autres méthodes et techniques. 15. Travailler avec différentes sorties - [Lab]: Bonjour, tout le monde. Bienvenue au prochain exercice pratique en laboratoire, qui sera axé sur l'impression de plusieurs valeurs. Nous allons juste nous entraîner un peu sur la cocnation des chaînes et sur la façon dont nous pouvons utiliser une virgule dans le contexte approprié, juste pour nous faire économiser quelques lignes de code, etc. et aussi pour améliorer la lisibilité de notre code Commençons. Nous allons faire en sorte que les choses restent simples pour commencer. Je vais dire le nom du premier soulignement, égal à, je dirais honneur, et je dirai le nom du dernier soulignement, et je dirai OK, donc avec la concaténation de chaînes, il serait préférable dans ce cas de définir une autre variable, que j'appellerai nom complet égal à, puis je dirai le nom du premier trait de soulignement J'utilise donc l' opérateur plus, puis j'ajoute à nouveau un espace avec les guillemets désignés plus, et je veux y ajouter un nom de famille, afin qu'il n'affiche aucun espace Pretoris Alors je peux dire imprimer. Et je vais inclure le nom complet ici dans le paren ss et cela sera imprimé sur un Pretorius dans Voilà. Comme nous pouvons le voir, il imprime ce qui suit et mon nom complet. Maintenant, disons que je ne veux pas ajouter de concaténation de chaînes et que je veux que cela soit beaucoup plus simple avec moins de lignes Je peux simplement supprimer ce qui suit et simplement dire dans la fonction d'impression dans Princes, abord soulignée suivie d'une virgule, puis dire last UnderScun et exécuter le code. Il imprime exactement le même résultat et le même résultat dans le terminal Vous pouvez voir à quel point c'est facile et cela vous fait gagner beaucoup de temps. Mais bien sûr, cela dépend aussi de la situation. Allons-y et retirons-le. Passons à un autre exemple. Disons que nous avons Siti et ici je vais dire Capetown Et nous aurons un pays, et je dirais l'Afrique du Sud. J'ai donc défini deux variables. Je l'ai donc mis en place. Maintenant, la prochaine chose que je vais vouloir faire est de spécifier une variable ici. Je peux donc simplement dire lieu, égal à égal, et je peux simplement dire ville plus, ajouter l'espace, plus, et j'aurai le pays. Ensuite, je peux dire lieu d'impression. Exécutez le code, Cape Town, Afrique du Sud. C'est bon. Voyons maintenant si nous pouvons simplifier cela en utilisant simplement une virgule, afin que nous puissions simplement supprimer qui suit et nous pouvons simplement dire imprimer Ville suivie par pays. Exécutez le code, et nous avons Kick Towns of Africa. Nous y voilà donc. Nous y avons également enregistré quelques lignes de code. Très bien, vous pouvez donc voir que c'est très lisible dans cet exemple lorsque nous utilisons une virgule Bien, c'est bon, vas-y. pour cet exercice pratique en laboratoire. C'est assez court, mais je voulais juste vous donner un peu de pratique. Gardez donc à l'esprit que vous examinez le programme sur lequel vous travaillez et les contextes, puis décidez ce qui vous semble approprié. Très bien, vas-y. Voilà pour cet exercice pratique en laboratoire. 16. Déclarations de cas de correspondance: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur les déclarations de cas de match. Jetons donc un coup d'œil. Donc vous vous demandez probablement, OK, qu'est-ce qu'une boîte d'allumettes Une instruction match ka fonctionne donc comme une instruction switch en Java et en C si vous avez de l'expérience avec ces langages de programmation. Donc, essentiellement, cette instruction MatchK va vérifier une valeur par rapport à plusieurs cas, puis exécuter le bloc correspondant qu'elle trouve dans les cas où elle a fait correspondre Maintenant, contrairement à l'instruction I ELF que nous avons dans PySON, elle offrira une correspondance de modèles plus propre et plus lisible C'est donc très similaire aux conditionnels I, on pourrait dire, dans une certaine mesure, bien sûr, maintenant, qu'il peut également faire correspondre des listes, des tuples et des objets, et pas seulement des nombres et des chaînes aléatoires. Nous pouvons donc constater qu'il existe une très large fourchette lorsque vous utilisez une déclaration Match Case. Maintenant, permettez-moi de vous expliquer cela dans un format visuel, afin que cela soit plus logique à comprendre. Voici donc un exemple pratique. Disons que nous voulons créer un programme de vérification des couleurs très simple. Nous voulons donc vérifier à quelle couleur est attribuée, etc. Ici, dans ce programme, nous pouvons voir que la couleur qui a été attribuée est le rouge. Ensuite, nous allons utiliser la déclaration de match ici. Nous allons donc faire correspondre en fonction de la valeur de la couleur. Maintenant, la couleur est rouge. Nous allons donc avoir des cas individuels. Donc, d'abord, nous allons trouver notre correspondance de couleur. Ensuite, nous allons avoir une affaire et cette affaire peut être n'importe quoi. Donc, dans ce cas, le boîtier va être rouge. Et si la couleur correspond au cas du rouge en fonction de sa valeur associée, il va alors imprimer que la couleur est rouge. Nous pouvons avoir ici un autre cas bleu pour vérifier si la couleur désignée est le bleu, et nous avons également un type spécial de phrase-clé ici où nous avons un majuscule puis un soulignement Le soulignement est très similaire à une déclaration dans if conditionals Si le cas est ci-dessus, ne pas appliquer, alors une autre option sera imprimée ici, dont la couleur sera inconnue. Dans ce cas, nous avons du rouge, et nous allons placer deux cases distinctes pour vérifier si la couleur est rouge ou bleue. Maintenant, si, par exemple, la couleur est le vert, le violet, le gris, etc., le bloc associé au soulignement majuscule sera exécuté et il imprimera le bloc associé au soulignement majuscule sera exécuté associé au soulignement majuscule une couleur inconnue Essayez de voir les similitudes avec les instructions I Elef et L en Python pour avoir une idée approximative du fonctionnement de ce cas de correspondance C'est bon. C'est bon, les gars. C'est tout pour cette leçon théorique sur les instructions match K. Nous allons faire un exercice pratique en laboratoire, nous allons approfondir et apprendre par la pratique. 17. Travailler avec des déclarations de cas de correspondance - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique de laboratoire, qui sera axé sur l'utilisation des déclarations de cas de match dans Hyson Commençons donc. Restons très simples pour notre premier programme. Je vais définir une variable, j'appellerai cette couleur, et je l'attribuerai à la couleur rouge. Ensuite, je veux configurer mon étui d'allumettes. Donc je vais dire match. Et je veux que cela soit basé sur la couleur. Je vais donc faire correspondre les couleurs. Ensuite, je veux préciser les cas. Les cas seront les valeurs explicites qui peuvent être associées à la variable qui correspond ici, dans ce cas, la couleur. Nous pouvons donc dire cas, par exemple, rouge, deux-points. Ensuite, si la valeur de la couleur correspond au cas du rouge, nous pouvons imprimer une déclaration ici et dire «  imprimer la couleur est rouge ». Maintenant, disons, par exemple, la couleur est bleue. Je vais donc parler d'affaire, et nous nous occuperons si elle est bleue. Ensuite, nous dirions imprimer, la couleur est le bleu. Maintenant, disons que pour les besoins de l' argumentation, la valeur associée n' est ni rouge ni bleue, et nous voulons prendre en compte tout le reste. C'est donc un peu comme une déclaration. Nous pouvons dire majuscule, soulignement , deux-points, puis imprimer La couleur n'est ni rouge ni bleue. C'est ce que nous pouvons dire. Très bien, nous avons donc cette configuration. Maintenant, si nous regardons notre code, nous pouvons voir que le résultat ici, c'est correct, sera la couleur rouge parce que le cas ici est défini sur rouge, et cela correspond à la valeur de la valeur associée à laquelle nous faisons correspondre. Donc, si j'exécute ce code, nous pouvons voir ici que le résultat final est de couleur rouge. Maintenant, permettez-moi de le changer en bleu. Enregistrez mon code et exécutez-le. Maintenant, il est dit que la couleur est bleue. Maintenant, permettez-moi de mettre une couleur différente qui n' est ni rouge ni bleue. Essentiellement, ce qui se passera alors est le cas ici avec ce trait de soulignement spécial, il déclenchera et affichera l'instruction suivante, à et affichera l'instruction suivante, que la couleur n' est ni rouge ni bleue Permettez-moi de passer au vert, par exemple, et d'exécuter le code, et il indiquera que la couleur n'est ni rouge ni bleue. OK. C'est ainsi que nous pouvons implémenter une déclaration de cas de match très simple et comment nous pouvons l'intégrer. C'est bon. C'est ainsi que nous pouvons procéder et le configurer en conséquence. Ce que je veux que nous fassions maintenant, c'est que nous allions un peu plus loin et nous créions un programme qui prendra une valeur d'entrée. Nous allons donc saisir une valeur spécifique , puis le cas sera affiché en fonction de la valeur que nous avons saisie par les cas que nous avons définis dans l'instruction match. Bien, continuons et créons un programme qui vérifiera d' où vient quelqu'un. Où est basée la nationalité. Je vais donc créer une déclaration imprimée simple, tout d'abord, donc je vais dire imprimer, et je vais poser une question. Je vais donc dire, d'où venez-vous ? OK, c'est très simple. Ensuite, nous voulons utiliser une fonction de saisie qui sera affectée à une variable connue sous le nom de pays, et nous allons faire correspondre pays dans nos déclarations de cas de correspondance. Je vais donc dire que le pays est égal, et je vais dire contribution, juste comme ça. Ensuite, nous pouvons continuer et configurer nos déclarations de cas de match. Je vais donc aller de l'avant et dire match country. Ensuite, je vais ajouter quelques étuis. Je vais donc parler de cas, et je prédis que nous aurons l'Afrique du Sud, par exemple, alors le résultat d'impression sera que vous venez d'Afrique du Sud. Je vais être un peu insolente, et je ne veux pas continuer à avoir des affaires différentes Je vais juste avoir une sorte de cas sexuel. Je vais donc dire majuscule, soulignement, deux-points, et je vais dire imprimer ici Vous n'êtes pas originaire d' Afrique du Sud. C'est très simple. Comme vous pouvez le constater, nous allons avoir une requête dans la sortie qui indiquera où venez-vous lorsque nous exécuterons notre code. Ensuite, nous devrons saisir le pays d'où nous venons, et la valeur que nous saisissons sera attribuée à la variable country. Ensuite, nous allons appliquer cela à notre match case ici. Nous allons dire match country. Ensuite, le premier cas que nous allons vérifier est si l'utilisateur a saisi l'Afrique du Sud. S'ils l'ont fait et que cela correspond aux données saisies, nous allons imprimer que vous venez d'Afrique du Sud et si cet utilisateur a saisi autre chose, cela indiquera que vous n'êtes pas originaire d'Afrique du Sud. OK, maintenant, ce que nous allons vouloir faire dans ce cas, c'est exécuter le PysonFle et non exécuter Maintenant, avec Run code ici avec le code runner, d'accord ? Cela ne fonctionnera pas très bien parce que le code d'exécution ne nous donne que des résultats, mais comme nous avons une entrée mais comme nous avons une entrée dans laquelle nous voulons saisir certaines données, nous n'avons pas d'autre choix que d'exécuter le fichier PySON, mais nous le modifierons à nouveau vers la fin. D'accord ? Je vais donc dire qu'il faut exécuter PysonFle pour afficher cette console de débogage ici Et là, il est écrit : d' où venez-vous ? OK, donc ici, je vais juste dire, en Afrique du Sud, il est écrit : «  Vous venez d'Afrique du Sud ». Il imprime donc ce que nous avons configuré ici. Bien, alors allons-y et relançons le programme et cette fois, je vais proposer quelque chose de différent de celui de l'Afrique du Sud. Je vais donc relancer le programme. Et il indique, bien sûr, où venez-vous. Donc ici, cette fois, je vais parler des États-Unis. Entrez et il est écrit : « Vous n'êtes pas d'Afrique du Sud ». Il évalue donc ce résultat ici en disant que vous n'êtes pas originaire d' Afrique du Sud dans ce cas, parce que ce cas de l'Afrique du Sud est faux D'accord. C'est ainsi que nous pouvons essentiellement faire une couverture et intégrer cette fonctionnalité, afin de pouvoir également tester en fonction des valeurs d' entrée et utiliser nos cas en conséquence. Très bien, les gars. C'est donc ça. Tout ce que je veux faire maintenant, c'est passer à l'exécution du code, et nous pouvons simplement arrêter cela pour le moment. Nous y voilà. OK, nous allons maintenant exécuter le code, et nous pouvons simplement effectuer un test simple pour nous assurer que tout va bien. Je vais juste dire le nom Sano. Faisons donc un dernier test ici, et nous allons dire match name case, nous pouvons dire John. Je pourrais dire imprimer. Bonjour, John, puis je vais parler du cas ici et ce sera un honneur et je dirai un honneur de l'impression. Alors si ce n'est ni l'un ni l'autre, on peut simplement dire «   Imprimer bonjour, mon ami ». Bien, alors allons-y et assurons-nous que nous exécutons le code, et voilà. Le résultat ici est élevé non, car c'est ce que nous avons défini ici comme valeur associée. C'est bon, les gars. C'est donc tout pour cet exercice de laboratoire sur la façon dont vous pouvez utiliser les instructions match K. Comme vous pouvez le constater, cela ressemble beaucoup à nos déclarations I ELF et s. Cependant, il y a une petite différence, mais c'est très utile, et je vous recommande vivement utiliser dans vos programmes si vous le pouvez. Très bien, c'est tout pour cet exercice pratique en laboratoire. 18. Modules: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur les modules. Maintenant, avec les modules ici, ce sera une sorte de leçon rafraîchissante, accord, puisqu'elle est plutôt d' accord, puisqu'elle est plutôt adaptée aux débutants, mais je voudrais me pencher un peu plus les exercices pratiques de laboratoire lorsque je vais me concentrer sur la création de vos propres modules, puis sur l'utilisation des modules intégrés de Pierson Je veux donc juste mentionner le point initial pour que vous soyez au courant OK, donc des modules. Donc, pour me rafraîchir, je veux juste passer en revue les bases Un module est donc essentiellement une extension PYS à point PysonFle unique qui stocke des fonctions, variables et des classes à réutiliser dans d'autres fichiers, est très similaire à une boîte à outils, pourrait-on dire, en termes d' analogie Désormais, au lieu de répéter le code, vous pouvez le définir dans un module et y accéder chaque fois que vous en avez besoin. Maintenant, vous pouvez également créer vos propres modules ou saisir ceux qui sont intégrés par défaut à PySON Maintenant, sur cette note, une liste complète de tous les modules PySON intégrés se trouve à l'URL suivante, et c'est quelque chose que je vais aborder brièvement dans la prochaine leçon Mais je voulais juste te faire prendre conscience. Donc, la principale chose à prendre en compte, autre que la définition d' un module, est que vous pouvez soit créer vos propres modules, soit utiliser les modules intégrés fournis avec PySON seuls Très bien, c'est tout ce que je veux mentionner sur les modules d'un point de vue théorique. 19. Naviguer dans l'index des modules Python: Bonjour, tout le monde. Bienvenue à la prochaine leçon, qui sera une très courte leçon destinée à vous donner un aperçu de l'index du module PySON Maintenant, c'est quelque chose que j'ai mentionné dans la leçon précédente vers la fin lorsque vous souhaitez examiner de plus près tous les modules intégrés fournis avec PySON prêts à l'emploi Voici l'index du module PySON. Ici, vous pouvez lire tout ce qui concerne le module PySON intégré. Je tiens également à vous donner quelques précisions dans une leçon précédente que nous avons abordée où nous avons utilisé un module spécifique. Si vous vous souvenez que dans la leçon sur les expressions régulières et plus particulièrement dans l' exercice pratique de laboratoire sur ce sujet, nous avons utilisé le module RE pour les expressions régulières. Techniquement, si vous deviez continuer et taper RE, vous pouvez dire « go », puis vous pouvez faire défiler ce glossaire vers le bas et vous pouvez voir que nous avons ce module RE PySON ici, l'opération d'expression régulière, et vous pouvez bien sûr cliquer dessus Vous pouvez en savoir plus sur le module que nous utilisons, qui est un module Python intégré et non un module personnalisé. Juste une petite information que je voulais partager avec vous. C'est ainsi que vous pouvez également en lire un peu plus pour ceux qui sont intéressés parcourant un peu certains des concepts et modules disponibles. 20. Intégrer des modules personnalisés et intégrés - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique en laboratoire, qui sera axé sur le travail avec des méthodes personnalisées et également des méthodes intégrées. Alors allons-y et commençons. Maintenant, la première chose que vous voulez faire pour créer votre tout premier module en Python est de vous rendre dans Explorer, puis vous pouvez voir sur le côté gauche que vous avez vos projets. Donc, mon projet, et dans celui-ci, nous avons notre fichier point py principal. Nous voulons maintenant stocker les fonctionnalités de notre module dans un autre fichier. Maintenant, selon la logique que vous avez dans le fichier Said, il serait préférable de le garder adapté à ce que vous prévoyez de mettre dans le fichier Said. Je vais donc passer la souris sur mon projet ici et dire nouveau fichier, et je vais appeler ce point d'accueil pi Vous pouvez maintenant voir que j'ai une pile de points d'accueil et un fichier principal de points py dans mon projet. Commençons donc. C'est bon. Maintenant, la première chose que vous allez vouloir faire est de définir une certaine logique. Je souhaite créer une fonction qui dit bonjour. Je vais dire sourd et dire, dire soulignement, bonjour, puis ajouter un codon C'est ainsi que nous allons définir une fonction, puis nous pouvons simplement dire return et dire bonjour, non, par exemple. Ensuite, définissons également une variable ici dans ce fichier pendant que nous ajoutons Ici, je vais dire mon mot de soulignement préféré, et ici je vais dire «   bienvenue ». C'est très simple. Ici, nous avons défini notre fichier de points d'accueil pi, que vous pourriez considérer comme votre module. Puisqu'un module, bien sûr, sera un PysonFle existant qui aura, par exemple, des fonctions, des classes, etc., des méthodes, le tout dans le module S Nous voulons maintenant utiliser notre module ici et les fonctionnalités que nous avons définies dans Greetings point pi Vous pouvez donc accéder à votre fichier dotp principal, et il vous suffit de dire Importer, puis référer au nom exact du fichier Donc, ici, cela s'appelle salutation. Je vais donc vous saluer, et c'est parti. Nous avons importé avec succès notre propre module personnalisé dans pyson Nous voulons maintenant le rendre utilisable. Nous pouvons donc utiliser notre déclaration d'impression et dire imprimer. Ensuite, vous voulez vous référer au modèle. Point, puis vous pouvez vous référer à la fonction que vous avez définie, qui dans notre cas dira soulignement, bonjour Vous pouvez dire point, souligner, bonjour. Si entre parenthèses, vous allez le laisser tel quel parce que nous n'avons défini aucun paramètre ou quoi que ce soit d'autre, et cela vous renverra hello o. Supposons que je veuille obtenir la valeur de la sortie de bienvenue Il suffit de faire référence au nom de la variable ici, qui est le message d' accueil préféré. Vous pouvez simplement dire imprimer et vous pouvez dire message d'accueil, point, puis vous pouvez dire message de soulignement préféré Cela va générer la valeur associée à cette variable. Maintenant, si nous exécutons le code, nous verrons qu'il indique «   non » et « bienvenue ». Il renvoie ce que j'ai défini dans ma fonction et il va également imprimer la valeur de la variable associée qui a été définie précédemment. Très bien, c'est donc une façon très simple d' aller sur une haie et de tout installer. Mais disons que nous voulons entrer un peu plus dans les détails, nous voulons que cela soit un peu plus complexe. Nous pouvons donc supprimer ces lignes. Revenons au message d'accueil, et modifions-le un peu. Je peux l'enlever. Ce que je veux faire, c'est conserver la même fonction, dire bonjour, mais je veux passer un paramètre ici. Je vais dire le nom , puis avec l' instruction return ici, je vais utiliser des chaînes F. Je vais dire F et je vais dire bonjour, puis je vais ajouter un espace réservé qui sera le nom Nous allons passer en revue l'argument dans notre fichier Pi principal, qui prendra ensuite le nom ici, qui sera ensuite transmis à cet espace réservé pour le nom OK. Ensuite, nous pouvons avoir une autre fonction pour dire au revoir, afin que je puisse dire sourd, dire, souligner, bien Au revoir. Nous allons répéter le nom. Revenez, et nous aurons une chaîne F qui dit au revoir, ajoutez votre espace réservé et nous aurons le nom. Juste comme ça. Alors maintenant, si nous passons à notre principal point par fichier, ce que nous pouvons faire est très similaire à ce qu'il était avant. On peut dire imprimer. Et encore une fois, nous allons nous référer à notre module personnalisé qui est Greeting Dot. Et bien sûr, le nom de notre fonction indiquera «  underscore hello », « say, underscore Maintenant, nous allons passer par un argument, qui va remplacer notre paramètre ici, puis il va passer dans cette instruction return dans cette instruction return dans l'espace réservé pour ce que nous avons défini Nous allons donc définir l'argument maintenant, et ici je vais dire Jack. Ensuite, je vais passer à diapositive suivante et dire « imprimer le message d'accueil », «   point », « dire », et le nom de la fonction était « dire soulignement, au revoir Je vais dire «   Souligner », bien, « Au revoir ». Et voilà, je vais juste dire, Katie. Encore une fois, le même processus va se produire. Nous allons invoquer cette fonction, transmettre l'argument et le remplacer par le nom ici, le paramètre name, puis le transmettre dans l'instruction return dans l'espace réservé pour dire au revoir, Katie Alors allons-y maintenant, pour qu'il dise bonjour Jack et au revoir Katie puisque nous avons passé les arguments ici. Exécutons ce code. Et comme nous pouvons le voir, il est écrit «  Bonjour Jack et au revoir Katie ». C'est bon. C'est ainsi que nous pouvons contourner le problème et ajouter nos propres modules. Ch. C'est ainsi que nous pouvons procéder et mettre cela en place. Nous pouvons simplement le déplacer et supprimer ce fichier Nous pouvons donc simplement cliquer avec le bouton droit sur Greeting point pie et dire Supprimer. Et maintenant, nous travaillons à nouveau avec notre fichier point Pi principal. D'accord, ce sont donc des modules personnalisés. Supposons que vous puissiez créer vos propres modules personnalisés. Supposons maintenant que nous voulions travailler avec des modules intégrés. Vous l'avez donc déjà appris lorsque nous utilisions le module RE lorsque nous travaillions avec des expressions régulières. Maintenant, je vais juste vous en montrer un peu plus, juste pour vous donner une petite idée. Python est donc intégré aux modules. Nous pouvons utiliser le module de masse. Je vais donc dire importer en masse. Supposons que je veuille obtenir la racine carrée d' une valeur particulière. Donc, ici, je vais dire que le nombre est égal à 16. Ensuite, je peux dire imprimer, référer au module de masse, et je veux utiliser la fonction racine carrée, et je veux obtenir la racine carrée du nombre que je viens de configurer ici. Je veux essentiellement obtenir la racine carrée de 16. Donc maintenant, si je lance ceci, ça va dire quatre, 4.0. Nous avons donc bien compris. D'accord, c'est ainsi que nous pouvons utiliser le module de masse, par exemple. Disons que nous voulons produire un nombre aléatoire de 1 à 10. Donc, ce que nous pouvons faire pour cela, essentiellement, c'est continuer et utiliser le module aléatoire. Je vais donc dire importer au hasard, puis je vais dire imprimer. Ensuite, nous allons faire référence au module random, puis random a une fonction rand int. Générez donc un entier aléatoire entre, bien sûr, les paramètres que nous avons définis. Nous pouvons donc dire rand int, la fonction rand int, puis nous voulons dire between. Je veux donc produire un nombre aléatoire compris entre, disons, un et dix. Donc, le minimum peut être un et le maximum, il peut être dix. Vous n'en aurez pas 11, 12, 13 ou quoi que ce soit d'autre. Si je lance ça, ça va dire six. Maintenant, disons que je l'exécute à nouveau, cela indique deux. C'est ainsi que nous pouvons voir que cela va générer un nombre aléatoire de 1 à 10 C'est bon. l'exemple des modules intégrés . C'est bon. C'est tout pour cet exercice pratique à la lampe. J'espère que vous savez maintenant comment créer vos propres modules et utiliser les modules intégrés dans Pyson 21. Paquets, Pip et PYPI: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur les packages, PIP et le PY PI. Jetons donc un coup d'œil. D'accord, donc des colis. Désormais, dans PySON, un package est un dossier qui regroupe plusieurs modules PySON pour une meilleure organisation Maintenant, ce que les développeurs peuvent faire, et ce qu'ils font souvent, c'est d'installer des packages en utilisant le PIP de PYPI, communément appelé index PysonPackage, pour ajouter des fonctionnalités supplémentaires à leurs packages en utilisant le PIP de PYPI, communément appelé index PysonPackage, pour ajouter des fonctionnalités supplémentaires à ajouter des fonctionnalités supplémentaires Aujourd'hui, cela est très permanent dans les domaines de développement Web où les développeurs utilisent frameworks Web basés sur PySON tels que Jango ou FLASK lorsqu' ils se dirigent vers PYPI pour installer un package spécifique afin d'ajouter un petit ajustement des fonctionnalités à un petit ajustement Vous pouvez également l'utiliser dans programme pyson normal, y compris très petits programmes avec un script Python Très bien, donc PIP et PYPI. Maintenant, PIP est essentiellement un outil d' installation et de gestion des packages PySON Cela permet de télécharger et de mettre à jour facilement toutes les bibliothèques externes au lieu de tout coder à partir de zéro avec de nombreux modules regroupés. Maintenant, PYPI, qui est le PysonPackage Index, est essentiellement un dépôt en ligne qui bloque des milliers de packages PySON, que nous pouvons télécharger et est essentiellement un dépôt en ligne qui bloque des milliers de packages PySON, que nous pouvons télécharger et utiliser dans nos programmes PySON. Maintenant, PIP récupère les packages depuis PYPI afin que vous puissiez les utiliser OK. Très bien, les gars, c'est tout pour les packages, PYPI et pour tout configurer conformément au PIP également En ce qui concerne l'accise pratique en laboratoire, nous allons approfondir notre sujet et nous allons travailler quelques exemples pour améliorer notre programme. 22. Utilisation de paquets externes - [Lab]: Bonjour à tous. Bienvenue au prochain exercice pratique en laboratoire, qui sera axé sur l'utilisation des packages. Maintenant, c'est le site Web de PI que vous pouvez consulter sur pypi.org et qui vous mènera à ce C'est ici que vous pouvez parcourir des milliers de projets et comment vous pouvez implémenter une petite application ou une bibliothèque dans votre PySONpject Il s'agit de l'index PysonPackage. Nous pouvons également rechercher des projets ici, puis les intégrer dans nos applications PySON C'est vrai. La première que je vais examiner va être simple. Je veux que nous ajoutions des emojis à notre code. C'est du moins ce que nous voyons dans notre fenêtre de sortie. Ce que je vais faire, c'est rechercher une image et la rechercher. OK. Et en voici une. Donc emoji, qui est l'emoji de PySon. Et vous pouvez voir que nous pouvons l'installer en disant perp stallimogi C'est vrai. Nous allons donc vouloir saisir quelques commandes. Maintenant, ce que nous allons devoir faire pour le moment, c'est passer à la version supérieure pour exécuter le fichier PySON juste pour le moment OK. Et ici, nous avons tout ce qu'il faut. Clarifions-le. OK, allons-y. Et ce que je vais aussi faire, c'est fermer certains de ces terminaux ici et les rouvrir. Ensuite, nous partirons. Voilà. Voici notre terminal maintenant. Maintenant, nous pouvons continuer et exécuter quelques commandes. Supposons que nous voulions installer ce package d'emoji. Nous pouvons simplement copier ce qui suit, nous rendre sur notre terminal, et nous pouvons bien sûr cliquer avec le bouton droit de coller automatiquement pour vous. On peut dire que Pep installe Emoji. OK. Comme vous pouvez le constater, nous avons installé des packages de tarification dans l'environnement mondial, ce qui peut provoquer des conflits. Vous pouvez créer un environnement virtuel pour isoler votre dépendance. C'est donc un sujet que nous aborderons en détail plus tard dans ce cours. Ne vous inquiétez donc pas, nous y reviendrons dans un instant. Nous pouvons donc simplement dire que pour le moment, ne réapparaissez pas. Bien, comme nous pouvons le voir maintenant en arrière-plan, nous avons installé ce package Emoji Nous y voilà. Alors nous pouvons clarifier cela maintenant. C'est bon, parfait. Nous l'avons donc installé. Maintenant, allons-y et intégrons cela. Nous avons donc ici notre code. Maintenant, ce que je vais faire, c'est importer ces bibliothèques en particulier. Je vais dire importmoji , puis nous voulons ajouter un emoji à Par exemple, j'ai ici une déclaration qui dit imprimer, et je vais faire référence à ce module emoji, et je vais dire point Et il a une fonction appelée emojis. C'est donc EMO J, I Z E. Et dans cette fonction, nous allons ajouter ce que nous voulons ajouter aux chèques que nous voulons afficher, ainsi que des emotes ou des emoji que nous voulons également afficher Ici, par exemple, je dirais que votre mot de passe est prêt. C'est vrai. Maintenant, la prochaine chose que vous devez faire est d'ajouter vos résultats. Vous pouvez ajouter un espace, puis les Imoges dans Pyson sont déterminés en ajoutant deux points, puis le nom de votre emoji. Je vais ajouter une clé puis le fermer avec Maintenant, il existe un site Web que vous pouvez utiliser ici à copy dm point kitp point IO Je ferai référence à cette ressource particulière dans la prochaine leçon, afin que vous puissiez consulter ici tous les émoges individuels. Mais comme vous pouvez le voir, ils sont dictés par les deux-points chaque côté et le nom de valeur S juste au milieu. C'est bon. C'est donc exactement ce que je fais ici et je le configure pour une clé. Allons-y et exécutons notre code. Et ici, vous pouvez voir que votre mot de passe est prêt. Nous pouvons donc voir qu'il est beau et propre qu'il possède également cette clé. Je peux donc également clarifier ce point. Et laissez-moi le configurer maintenant pour cocher le trait de soulignement, enregistrez le fichier Et je vais l'exécuter manuellement cette fois. Je vais dire Python. Tarte à points principaux. Et là, vous pouvez le voir sortir, votre mot de passe est prêt. Donc très propre et très astucieux, pourrait-on dire. Et nous y voilà. C'est ainsi que nous pouvons utiliser les images dans PySON. Maintenant, allons-y et ajoutons couleurs à notre terminal ici, à notre texte et à notre texte de sortie. Nous pouvons donc repartir. Et nous voulons rechercher quelque chose connu sous le nom de ColorRama Vous pouvez donc entrer ici, ColorRama, puis continuer et appuyer sur S'il vous plaît, nous l'avons ici, un texte de terminal couleur multiplateforme. Et nous voulons copier ce qui suit, accéder à notre terminal, cliquer avec le bouton droit de la souris et dire Pep et enregistrer ColorRama C'est juste une installation, et voilà. Il a été installé. Clarifions-le. Et ce que nous pouvons faire, c'est aller sur une haie et supprimer ce code. Très bien, nous voulons donc nous lancer dans une haie et récupérer le module Clama pour pouvoir dire de Carlo Rama que c'est le module, et nous voulons importer les quatre classes Cela fonctionne donc comme une classe. Et ce que nous allons faire c'est utiliser l'instruction print, et nous allons continuer en disant quatre, qui est la classe, puis nous allons spécifier l' attribut en quelque sorte. Supposons donc que nous voulions que notre texte soit rouge, nous allons simplement dire rouge. Ensuite, nous pouvons dire plus, puis ici, dans nos citations de travail, nous pouvons dire que c'est du texte rouge. OK, alors allons-y et exécutons notre code pySNmin point pi. Et vous pouvez voir maintenant que tout est en rouge. Les chèques que nous avons imprimés ici sont donc en rouge, et la couleur du terminal est également en rouge. Donc, si je devais clarifier les choses, vous verrez que c'est maintenant en rouge. Supposons que je veuille changer cela en vert, par exemple, je peux simplement changer l' attribut ici en vert. Enregistrez mon fichier, et je peux simplement dire Python main point pi. Et voilà, nous pouvons continuer et voir maintenant qu' il passe au vert. J'ai juste besoin de changer le texte en vert, et voilà, c'est du texte vert. OK, donc on peut voir que c'est vert. Réglons cela sur bleu, bleu, et nous allons dire que c'est bleu. Texte, zone de points principaux de MSN, et voici du texte bleu OK, nous pouvons donc voir que c'est ainsi que nous pouvons changer ces couleurs. Vous pouvez voir à quel point il est efficace d' utiliser des packages dans vos programmes. Revenons à la valeur par défaut, qui est bien sûr le blanc. Je vais donc dire que c'est du texte blanc. Et vous pouvez appuyer sur la flèche supérieure votre clavier pour rechercher rapidement les commandes d'un PySMminPI, puis nous revenons sur Nous pouvons donc simplement le supprimer . Nous y voilà. Utilisons un autre package qui va nous permettre de générer un mot de passe. Donc, un mot de passe sécurisé, et nous allons déterminer les caractères que nous voulons dans le mot de passe. Cela peut donc être utile si vous souhaitez donner une liste de mots de passe à votre ami s'il a du mal à choisir un mot de passe sécurisé. Nous pouvons donc rechercher le package et ensuite c'est PWN, donc password Gen est le terme abrégé Nous l'avons ici, PWGen, et nous pouvons copier ce qui suit, l' ajouter à votre terminal, cliquer avec le bouton droit de la souris, le coller et entrer N'oubliez pas que le temps d' installation varie d'une personne à l'autre, alors ne vous inquiétez pas si l' installation prend un certain temps et tout le reste pour obtenir la notification suivante. Il a été installé, et allons-y et configurons-le. Nous voulons importer le module PWGen. Ensuite, nous voulons définir une variable, que je vais définir comme mot de passe, puis je vais récupérer le module PWGen, puis nous allons faire référence à la fonction PWGen qui porte d'ailleurs également le même nom Et ici, nous allons définir la longueur de notre mot de passe. Je vais donc le mettre à dix caractères. Ensuite, je vais passer à la ligne suivante et dire « imprimer ». Je vais dire mot de passe généré, deux points, puis j'ajouterai une virgule, puis je ferai référence au mot de passe que je vois PWG me générera un mot de passe aléatoire associé à sortie variable et cette sortie variable et ce texte sera juste à côté Alors maintenant, allons-y et disons pysonmin point pi. Et ici, nous pouvons voir le mot de passe généré. C'est donc un mot de passe généré aléatoirement qui a été configuré. Il s'agit donc également de dix caractères, donc un, deux , trois, quatre, cinq, six, sept, huit, neuf, dix. Fixons-le, par exemple, à cinq. Exécutons Python main point pi. Et nous pouvons voir que nous avons un mot de passe de cinq caractères seulement. Vous pouvez donc voir comment vous pouvez l'ajuster et le modifier à votre guise. Avec ce package, vous allez apprendre comment générer un mot de passe aléatoire. C'est bon. C' est ainsi que nous pouvons aller l'avant et configurer les choses en conséquence. Bien, ce que je veux faire maintenant, c'est clore le sujet, et je veux utiliser ce que nous faisions auparavant pour cliquer ici sur l'icône et exécuter le code, et nous voulons simplement le ramener à ce nous étions avant avec notre lanceur de code, puisque nous ne saisissons rien ni n'installons quoi que ce soit C'est vrai, les gars. C'est ça. C'est tout pour cet exercice pratique en laboratoire sur la façon dont nous pouvons utiliser les packages et comment nous pouvons les installer et comment nous pouvons les utiliser pour intégrer leur propre ensemble de fonctionnalités personnalisées à nos projets et au lodge. 23. Ressources utiles: Bonjour à tous. Bienvenue à la prochaine leçon, qui aura pour objectif de vous fournir les liens spécifiés que j'ai mentionnés dans la leçon précédente. Maintenant, la première sera de savoir comment accéder à PyPI. C'est très simple. vous suffit de taper pypi.org dans votre URL pour accéder à l'index PysonPackage, qui vous montrera une liste de tous les packages de bibliothèques tierces mis à votre disposition, tels que dans votre URL pour accéder à l'index PysonPackage, qui vous à l'index PysonPackage, montrera une liste de tous les packages de bibliothèques tierces mis à bibliothèques tierces ceux que nous avons utilisés précédemment, tels que PW Jen, Color Rama et En ce qui concerne les Imoges que j'ai utilisés, bien sûr, il semblait que je les mémorisais, mais il existe en fait un site où vous pouvez voir comment les intégrer en utilisant la commande Pip in store Vous pouvez maintenant accéder à l'URL suivante ici, comme vous pouvez le voir, copier puis envoyer un DM, puis 20 dossiers du IOSMOGFDSlash C'est ainsi que vous pouvez également accéder à ce site Web. Je voulais juste vous donner un peu de clarté en ce qui concerne les ressources et les liens. Si vous voulez expérimenter davantage et ajouter quelques résultats, et si vous voulez simplement vous entraîner un peu, examiner quelques-uns des packages mis à votre disposition et simplement expérimenter un peu, c'est ainsi que vous pouvez procéder. 24. Générez des nombres aléatoires: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur la génération de nombres aléatoires. Commençons donc. Alors, comment générer des nombres aléatoires ? Maintenant, PySON, comme vous le savez, est livré avec de nombreux modules différents pour générer des nombres aléatoires. Nous allons maintenant explorer trois modules. Maintenant, le premier module que nous avons déjà parcouru, c'est le module aléatoire. Et avec ce module, nous pouvons générer des nombres pseudo-aléatoires. Nous avons également un module de secrets qui crée des nombres aléatoires sécurisés cryptographiquement Et nous avons également le module numpit Random, qui génère des nombres aléatoires dans des tableaux Donc, ce que nous allons faire, c'est appliquer nos connaissances de manière à apprendre par la pratique. Allons-y donc et commençons par les exercices pratiques de laboratoire. 25. Approfondissement sur le module aléatoire - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique en laboratoire, qui sera axé sur la génération nombres aléatoires en utilisant trois types de modules différents. Nous allons donc utiliser le module aléatoire. Le module secrets ainsi que le module Num Pi , que nous allons installer sur notre appareil en temps voulu. Mais allons-y et commençons avec le module aléatoire, allons-y et exploitons-le autant que possible. Maintenant, la première chose que nous devons faire, bien sûr, est de dire importer au hasard afin que nous puissions accéder aux fonctions nécessaires. Et nous allons tout d'abord vouloir produire des nombres flottants de 0 à 1 Nous pouvons donc dire imprimer. Point aléatoire. Et essentiellement, ce que nous faisons ici c'est que nous appelons le module aléatoire, qui a une fonction qui va imprimer des flottants Donc, si je devais exécuter le code ici, il imprimerait des nombres flottants ici 0-1, donc nous aurions des nombres décimaux à la suite de cette fonction aléatoire qui fait partie du module aléatoire lui-même Nous pouvons voir qu'il change à chaque fois en un numéro différent. Supposons maintenant que nous voulions générer un flottant aléatoire de 1 à 10. Au lieu d'utiliser cette fonction aléatoire, nous dirions que le point est uniforme et vous voudrez mettre les limites, disons 1 Et vous pouvez exécuter ce code. Maintenant, cela va imprimer des nombres à virgule flottante. flottants sont donc essentiellement des nombres au format décimal, et ce sera de 1 à 10 Maintenant, il va pouvoir exécuter la version 1.0, mais il n'en exécutera jamais dix. Donc, en gros, ce sera tout ce qui est 1 à 9 en fait, en termes d'ordre décimal C'est vrai. Maintenant, allons-y et imprimons des entiers aléatoires Nous venons d'expérimenter avec des nombres aléatoires à virgule flottante ou des flottants, comme vous diriez, en utilisant la fonction aléatoire des points puis la fonction uniforme Supposons maintenant que nous voulions imprimer des nombres entiers aléatoires. Nous pouvons utiliser la fonction rand int, et disons que nous voulons imprimer les nombres de 1 à 10 OK, donc cela va inclure à la fois un et dix. Ainsi, avec le rand en fonction, il tiendra compte de la limite inférieure et de la limite supérieure. Exécutons ça. Nous avons donc trois, six, et nous pouvons voir que c'est un entier parce que c'est le nombre entier qui est produit neuf, six, un, huit, trois, dix. C'est vrai. Supposons maintenant que nous voulions à nouveau imprimer des nombres entiers aléatoires, mais que nous voulions qu'ils se situent dans une plage spécifique Maintenant, disons que nous voulons imprimer de 1 à 9, ce qui signifie que je veux également en produire neuf Vous pourriez le remplacer par rand int, vous le définiriez comme rand range. Maintenant, la différence ici, c'est qu'il va en exclure dix. Maintenant, Rand It en incluait dix auparavant, mais dans ce cas, avec Rand range qui va imprimer à partir de la limite inférieure, choisissez la limite supérieure moins un. Allons-y et exécutons ce code. Allons-y et exécutons-le. Nous y voilà. Vous remarquerez que si vous l'exécutez plusieurs fois, vous remarquerez qu'il n' en produira jamais dix. Cependant, si vous voulez en afficher dix, vous devez techniquement définir ce paramètre sur 11. Ensuite, lorsque vous exécuterez ce code, il vous donnera au moins une chance d'en imprimer dix. Juste quelque chose à expérimenter. N'oubliez pas que la fonction rand in inclut la fois les valeurs des limites inférieure et supérieure et que la plage limites inclut uniquement le nombre de la limite inférieure , puis le nombre de la limite supérieure moins un. C'est ainsi que cela va fonctionner. Nous avons examiné les nombres à virgule flottante et les nombres entiers aléatoires Maintenant, allons-y et examinons la distribution normale pour les statistiques, par exemple. Si vous êtes intéressé par les statistiques ou vous travaillez dans cette optique, nous pouvons utiliser le module aléatoire et utiliser la fonction variable normale et nous pouvons passer par zéro et un Maintenant, cela va prendre une moyenne et c'est l'écart type qui va se produire. Dans ce cas, la moyenne sera nulle et l'écart type sera de un. Si nous l'exécutons , nous verrons quelle la variation standard normale sera la variation standard normale à chaque exécution. Ce sera toujours aléatoire car c'est un module aléatoire. Mais comme nous pouvons le constater, c'est ainsi que nous pouvons aller de l'avant et utiliser distribution normale avec une moyenne et un écart type. C'est vrai. Maintenant, allons-y et appliquons-le lorsque nous travaillons avec des listes. Nous pouvons donc le supprimer. Je vais créer une liste ici et je vais dire voitures, égales, et je vais établir une liste de voitures. Je vais dire BMW, je vais dire Tesla. Je vais dire Ford, et pour terminer, je peux configurer Nissan. J'ai mes cartes en place. Maintenant, la première chose que je veux vous montrer est comment vous pouvez choisir un élément ou un élément aléatoire dans cette liste. Pour ce faire, vous pouvez dire imprimer et nous voulons utiliser le module random et il existe une fonction appelée choice. Nous allons appliquer le choix à cette liste ici. Et en gros, ce qui va se passer ici, c'est imprimer un élément aléatoire de cette liste. La fonction de choix des points vous permettra de choisir un élément aléatoire dans la liste que vous avez définie. Donc si je lance le code, vous verrez Tesla, Tesla, BMW, BMW, Tesla, Nissa, ce sera complètement aléatoire à chaque fois que vous cliquerez dessus D'accord, c'est ainsi que vous pouvez utiliser cette fonction particulière. Supposons maintenant que vous souhaitiez continuer et choisir deux éléments uniques. Vous ne voulez donc pas continuer à sélectionner un seul choix à chaque fois. Vous souhaitez sélectionner deux éléments uniques à chaque fois. Vous pouvez donc ajuster cela, et au lieu de dire « choix du point », vous utiliserez la fonction d'échantillonnage. Je vais insérer la liste, puis deux. Alors maintenant, vous allez choisir deux éléments uniques dans cette liste. Donc, si nous devions exécuter le code, nous pouvons voir que nous avons Ford Tesla. Nous avons BMW Tesla, Ford Nissan, Tesla Nissan, et vous allez voir ici, il va simplement continuer et produire deux éléments aléatoires ou éléments de la liste donnée. C'est donc tout l'objectif de la fonction d'exemple. Si je voulais en sélectionner trois, par exemple, chaque itération, je peux simplement les remplacer, enregistrer mon code et l'exécuter. Maintenant, il apparaîtra en trois en choisissant aléatoirement éléments à sortir et à échantillonner Maintenant, une chose intéressante que vous voudrez peut-être examiner ici est le fait que vous utilisez la fonction d'échantillonnage par points et vous en envoyez trois ou disons, par exemple, deux, cela n'affichera jamais d'éléments dupliqués. Donc, comme nous pouvons le voir ici, si j'en mets deux, cela montre Nissan et Ford. Cela ne montrera pas, par exemple, Nissan Nissan, Ford Ford, Tesla, Tesla, BMW, BMW, cela ne montrera pas qu'elle va toujours aller de l'avant et montrer quelque chose d'unique. Donc, si je devais simplement réexécuter le code ici, il affichera toujours quelque chose d'unique à chaque fois que vous exécuterez votre code OK. Donc, c'est juste quelque chose que je voulais mentionner à ce sujet. Une autre chose que vous pouvez faire est mélanger votre liste également Maintenant, si je devais continuer et publier ma liste, si je disais simplement imprimer des voitures et courir, choisissez BMW, Tess, une Ford et Nissan OK, donc si je l'exécute à nouveau, cela se fera dans le même ordre, mais disons que je veux mélanger cette liste Donc, ce que vous pouvez faire est le suivant. Vous pouvez dire imprimer, et ici dans la fonction, vous pouvez dire mélange de points aléatoire, et vous pouvez placer cette liste comme suit Cette fonction va donc modifier l' ordre de ce qui est inclus dans la liste Ce ne sera donc pas le cas à chaque fois que vous conduisez une BMW, Tesla, une Ford Nissan, donc si je la fais fonctionner , d' accord, vous allez voir qu'elle fonctionnera dans un pays non étatique. Maintenant, la raison en est que vous devez mélanger la liste avant d' exécuter votre fonction d'impression Donc quelque chose que je voulais mentionner ici. Vous devez donc le faire séparément. Tel quel, laissez-le mélanger, puis imprimez-le. Cette fonction particulière fonctionne donc un peu différemment. Tu vas devoir le laisser tout seul. heure, lorsque je vous le montrais, vous pouvez inclure toutes les fonctions et tous les modules dans l'instruction d'impression et imprimer le résultat. Cependant, en mélangeant la fonction shuffle, elle fonctionne Il faudrait donc dire explicitement « voitures » par la suite. Donc, quand je le lancerai, il sera écrit BMW Nissan Forte, et vous pouvez voir qu'il mélange les éléments comme nous pouvons le Bien que vous ne puissiez pas le faire dans le cadre d'une fonction d'impression. C'est donc un point très important à noter. Et comme vous l'avez vu tout à l'heure, vous n'aurez aucun résultat. C'est donc quelque chose d' important que vous devez garder à l'esprit. Ainsi, avec la plupart des modules et fonctions que vous souhaitez utiliser, vous pouvez les ajouter dans une fonction d'impression, mais si vous mélangez, cela doit être explicitement autonome avec la fonction de mixage elle-même, puis vous pouvez imprimer ensuite pour elle-même, puis vous pouvez imprimer ensuite qu'elle mélange la liste, puis vous pouvez imprimer le résultat puis vous OK, donc juste quelque chose d' important à retenir. Cela va donc modifier le lieu. OK. Génial. Maintenant, passons à autre chose et examinons d' autres fonctions. Maintenant, disons, par exemple, que je veux que des éléments aléatoires apparaissent, et je veux aussi que cela soit répété. Je ne veux donc pas que ce soit dans une situation particulière où nous avons des doublons, mais je veux aussi permettre que cela se répète Alors allons-y et faisons-le. Nous avons donc notre nid, et nous pouvons retirer ce que nous avons ici, et nous pouvons simplement dire «   imprimer un point aléatoire », et nous allons parler de choix cette fois. Souvenez-vous qu'auparavant, nous avions le choix, c' est-à-dire des choix uniques. Nous pouvons avoir plusieurs choix, et nous dirons voitures, et ce sera la liste qui sera ajoutée, et nous allons dire que K est égal, et nous pouvons le mettre à deux. Alr. C'est donc ce que nous voulons ajouter. Et cela peut renvoyer des valeurs dupliquées. Donc, contrairement à avant, lorsque nous avons fait une couverture et que nous avons configuré notre échantillon avec une fonction d'exemple, vous ne pouvez pas avoir de doublons, mais avec la fonction de choix, vous pouvez avoir des doublons ici Donc, par K égal à deux, nous spécifions le nombre d' éléments que nous voulons afficher. Donc, si je devais dire « courez », «   Nissan », « Tesla », « Tesla ». Ici, vous pouvez voir que deux éléments de la liste seront affichés, mais cela peut être répété, afin que vous puissiez voir deux éléments identiques. C'est ainsi que vous pouvez avoir une sorte de répétition. C'est vrai. Maintenant, la prochaine chose que je veux vous montrer est comment vous pouvez utiliser la fonction triangulaire. Maintenant, la fonction triangulaire est assez unique car elle renvoie un flottant entre bas, haut et mode. OK ? Et le mode est le pic de l' endroit où la sortie sera probablement la plus proche. C'est donc très similaire à arrondir, pourrait-on dire. Je vais donc vous montrer comment nous pouvons le faire. Nous pouvons donc aller sur une haie et retirer ce que nous avons ici. Et nous pouvons ajouter notre déclaration imprimée. Et je vais dire point aléatoire, triangulaire, ce sera la fonction. Et d'abord, nous allons avoir un flottant que nous voulons ramener au point le plus bas. Le point le plus bas sera un. Le point culminant peut être dix, et le mode ou le pic peut être cinq. Donc, si je devais l'exécuter, vais voir que le résultat ici, bien sûr, est un float, mais vous pouvez voir que ce sera le plus proche du mode. L'un d'eux est donc le point le plus bas. Dix est le point le plus élevé et cinq est le mode, en d'autres termes, le point le plus probable quant à l'endroit où la valeur de sortie sera la plus proche. Donc 6,0 le plus proche de cinq, 5,1, essentiellement cinq, 4,7 le plus proche de cinq, 5,4, le plus proche de cinq, 5,2, le plus proche de cinq, 5,6, près de cinq. Vous pouvez donc voir comment cela fonctionne. C'est vrai. Maintenant, la prochaine chose que je veux vous montrer est assez similaire à la fonction normale que nous utilisions auparavant. Supposons maintenant que nous travaillions avec des simulations et que nous voulions simuler des mesures du monde réel avec des variations naturelles. Nous pouvons utiliser la fonction gaze. Il va donc également prendre en compte, comment puis-je dire une moyenne et un sigma pour l' écart type Donc, ce que vous feriez, c'est simplement remplacer Gauze triangulaire, puis nous pouvons passer par zéro et un comme moyenne et Sigma, cela valeur normalement distribuée autour de zéro. Vous pourriez dire que si je l'exécute, nous pouvons voir qu'il va y avoir une sortie de distribution associée en utilisant la fonction Cela repose en grande partie sur des statistiques La jauge triangulaire et les fonctions variables normales sont principalement utilisées dans le secteur des statistiques , devrais-je dire Mais c'est juste quelque chose que je voulais vous montrer afin que vous puissiez au moins vous faire une idée du résultat et de ce à quoi vous attendre. C'est vrai. Alors voilà. chose la plus importante que je tiens à vous rappeler ici, lorsque vous utilisez vos fonctions d'impression, que vous pouvez utiliser vos fonctions et vos modules dans la même fonction d'impression. Cependant, vous ne pouvez pas le faire pour le shuffle, alors gardez cela à D'accord, d'accord, vas-y. Voilà pour le module aléatoire. Ensuite, nous allons continuer et nous concentrer sur le module des secrets. 26. Explorer le module des secrets - [Lab]: Bien, nous allons donc continuer avec le module Secrets. OK, donc ce que je veux faire, tout d'abord, c'est importer le module Secrets. Et la première chose que nous voulons faire est de renvoyer un entier aléatoire inférieur à un nombre donné. Donc, ce que je peux faire ici, c' est dire imprimer, et je vais utiliser le module secrets. Je vais ensuite utiliser la fonction range below, et je veux imprimer un nombre aléatoire de 0 à 9 Et pour ce faire, il me suffirait d'en inscrire dix. Il va donc tout imprimer de 0 à 9, et il n'en inclura pas dix Donc, si nous devions exécuter le code ici, nous pouvons voir que nous en avons huit, trois , un, huit, vous remarquerez qu'il n' en imprimera pas dix, il fera tout le reste. Une autre chose que nous pouvons faire est de faire une couverture et de proposer un choix spécifique en utilisant également le module secrets. Maintenant, disons pour les besoins de l' argumentation que nous avons ici une liste de codes sensibles. Je vais parler de codes et dans une liste, je vais mettre Alpha, Beta, Gamma. Je veux récupérer un choix aléatoire sécurisé, en soi. Je peux dire « imprimer » et me référer au module des secrets. Ensuite, la fonction que j'utiliserais est le choix, et je vais mettre des codes. Je vais donc retrouver un choix secret. Tu pourrais dire ou coder. Donc, si je lance ça, je peux voir que j'ai Alpha. Chaque fois que je cours, je reçois un nouveau code, donc Gamma, Alpha, Beta. C'est bon. C'est ainsi que vous pouvez choisir un choix aléatoire dans une séquence donnée. OK. Maintenant, la prochaine chose que je veux vous montrer est tout à fait unique au module secrets, et c'est ainsi que vous pouvez générer un jeton hexadécimal sécurisé Et cela va bien sûr compter 16 caractères. Alors allons-y et faisons-le. Maintenant, la valeur que vous entrez va, bien entendu, être configurée en octets. Donc, bien sûr, ce sera le double dans notre cas. OK, alors allons-y et faisons-le. Donc, ce que nous pouvons faire, c'est simplement dire imprimer, utiliser le module secrets, et nous pouvons utiliser le jeton, la fonction hexadécimale de soulignement, et nous allons dire huit, ce qui générera un jeton hexadécimal sécurisé de 16 Exécutons ceci et nous pouvons voir ici que nous avons BA ED et ce nombre entier, et cela va faire 16 caractères. Maintenant, bien sûr, si je devais seulement définir ce 24 caractères et l'exécuter, il n' imprimerait que huit caractères. Parce que n'oubliez pas que nous définissons les octets ici, et en gros, cela va permettre de les doubler. Donc, si je devais en mettre quatre ici, l'exécuter, cela ne me donnerait qu' une sortie à quatre jetons hexadécimaux Cela peut être très utile si vous avez besoin de jetons d'une manière ou d'une autre. C'est ainsi que vous pouvez générer un jeton hexadécimal sécurisé. C'est ainsi que nous pouvons utiliser le module Secrets, n'est-ce pas ? Il s'agit du module Secrets. La prochaine chose que nous allons examiner est le module NumPi et c'est quelque chose que nous allons vouloir installer en premier dans notre projet Nous utilisons généralement le module Numpi pour des opérations aléatoires rapides, mais plus que cela assez tôt 27. Approfondissement sur le module numpy - [Lab]: Très bien, alors continuons. Maintenant, nous allons nous concentrer sur le module Num Pi. Et c'est également très utile pour travailler avec des tableaux. Mais nous y reviendrons bientôt. Donc, la première chose que nous voulons faire est de passer à PYPI et de voir Pep installer NumPie Nous pouvons donc continuer et copier ceci, ou vous pouvez le taper dans votre terminal et dans le code Visual Studio. Et ce que je vais faire maintenant, c'est que je vais juste changer 30 Bug pour exécuter PysonFle juste pour le moment Nous pouvons effacer cette sortie. Et vous voulez juste dire Pep install num Pi, et vous pouvez appuyer sur Entrée. OK. Et ça va juste l'installer pour nous. OK. Soyons patients et accordons un moment, puis nous pourrons continuer à utiliser le module Num Pi. OK, alors laissons-lui juste un peu de temps. Bien, nous pouvons donc voir qu'il a été installé. Nous pouvons éclaircir ce point. Et nous n'en avons plus besoin. Passons à l'exécution du code, et c'est parti. C'est vrai. Maintenant que le package NumPi est installé, nous pouvons accéder à ses modules particuliers Je peux donc voir Importer. Numéro Pi. Maintenant, selon la norme, Num Pi est généralement assez long pour un nom de module. Et comme il est utilisé assez souvent, les utilisateurs ont l' habitude de configurer un alias en termes de nom de module. Vous pouvez donc dire a, puis nous pouvons définir l' alias comme N P. En d'autres termes, chaque fois que nous définissons MP, cela signifie que nous invoquons essentiellement le module Num Pi lui-même C'est donc une petite astuce si vous souhaitez configurer des alias avec vos modules Dans ce cas, c'est toujours suivi 99 % du temps lorsque vous utilisez NumPi OK. Maintenant, la première chose que je veux vous montrer, c'est comment vous pouvez continuer et configurer des tableaux de base OK. Nous allons donc dire imprimer, et nous allons faire référence à NP. Et nous allons utiliser des sous-modules. NumPi a donc un sous-module, appelé random, qui a une fonction appelée Gardez donc cela à l'esprit. Nous utilisons donc ici random comme sous-module. NumPi est donc notre module. Random est notre sous-module, et Rand est notre fonction. Alors gardez cela à l'esprit au cas où vous seriez un peu confus. Il y a donc une petite différence à cet égard. Et avec la fonction rand maintenant, cela va nous permettre de générer un tableau en un D, et il nous suffit de spécifier le nombre de flottants aléatoires que nous voulons 0-1 Donc je veux avoir. Donc, si je le gère, nous devrons peut-être y aller. il va maintenant imprimer Comme nous pouvons le voir, il va maintenant imprimer un tableau unidimensionnel, et il va avoir trois flottants aléatoires, car n'oubliez pas que rand va se concentrer sur la sortie des flottants Donc, tout ce qui a une décimale sera composé de trois nombres flottants aléatoires compris entre zéro et sera composé de trois nombres flottants aléatoires un, donc nous pouvons voir ici 0,16, 0,93, 0,7, le tout se situe entre cette Disons que je veux générer un tableau trois par trois, pas seulement un tableau, trois par trois. Je peux juste dire virgule puis trois, et maintenant nous pouvons dire exécuter le code Voilà, nous avons maintenant un tableau trois par trois. Cela ressemble beaucoup à ce que vous obtenez en mathématiques lorsque vous obtenez une matrice ou quelque chose du genre, très similaire d'une certaine manière. Dans ce cas, nous renvoyons à nouveau un tableau trois par trois avec des flottants aléatoires de 0 à 1, comme vous pouvez R. C'est ce que nous avons mis en place ici. C'est ainsi que vous pouvez configurer vos tableaux. Maintenant, une autre chose que vous pouvez faire est de configurer également un tableau avec des entiers Ici, nous configurons un tableau avec des flottants. Allons-y et changeons cela. Je vais maintenant changer la fonction en rand int. Ici, nous allons simplement le fermer et nous allons le mettre dedans. Nous allons saisir trois valeurs ici Dans ce cas, nous allons avoir un faible, un haut et une taille. Dans ce cas, nous allons avoir zéro, qui est faible, dix, qui est haut, puis la taille, nous allons définir comme trois. OK. Maintenant, dans ce cas, les valeurs ici vont être de 0 à 10, sauf dix, elles vont être de zéro à neuf et nous allons avoir des entiers aléatoires, trois entiers aléatoires de 0 à trois entiers aléatoires 9 dans un Si je devais le lancer, nous verrons que vous avez ce qui suit. Nous avons un tableau unidimensionnel. Les valeurs sont de 0 à 10, à l'exclusion de dix, et nous avons trois valeurs Donc, si nous devions recommencer, vous pouvez voir maintenant que cela va se poursuivre et produire ce résultat. C'est ainsi que vous pouvez générer un tableau unidimensionnel de trois entiers aléatoires compris entre 0 et 9 OK. La partie la plus basse est donc, bien sûr, la base sur laquelle vous commencez. La partie haute est, bien entendu, la limite supérieure, que vous excluez. Vous êtes juste dans la limite supérieure moins un. N'oubliez donc pas que chaque fois que vous entendez parler de valeurs limites supérieures ou de quelque chose du genre, vous allez toujours atteindre moins un. C'est donc juste une astuce astucieuse que je vous conseillerais chaque fois que vous avez affaire à des valeurs limites supérieures qui excluent. Toujours moins un. C'est là que le véritable décompte augmentera au maximum. D'accord, voici comment vous pouvez travailler avec des tableaux de base en utilisant le module NumPi OK, donc ce que je veux faire maintenant, c'est vous montrer quelques autres fonctions utiles que vous pouvez utiliser. Maintenant, la prochaine chose que je veux vous montrer est comment générer un ensemble de nombres aléatoires à partir d'une distribution normale standard où nous aurons la moyenne de zéro et l' écart type de un. Donc, ce que nous pouvons dire, c'est imprimer, et vous pouvez voir aucun point aléatoire Rand, et nous aurons N parce que ce sera pour une distribution normale. Et ici, nous allons indiquer le nombre de nombres aléatoires que nous voulons obtenir à partir d'une distribution normale. Cela peut être très utile si nous simulons, par exemple, les fluctuations un marché boursier ou des sommets ou quoi que ce soit d'autre Exécutez ça, on y est. Vous pouvez voir maintenant que nous avons généré trois nombres aléatoires à partir d'une distribution normale. OK. Nous avons donc cette configuration. La prochaine chose que je veux vous montrer, c'est ce que vous pouvez faire si vous voulez choisir des éléments aléatoires ou des articles avec ou sans remplacement. OK. Maintenant, ce que je veux dire par là, c'est que le remplacement déterminera si vous avez des doublons ou non C'est très similaire à ce que j'ai expliqué précédemment avec la fonction d'échantillonnage par points et la fonction de choix de points où vous ajoutez K égal à deux, par exemple, très similaire à ce que nous avions précédemment avec le module aléatoire, mais voici comment vous allez l'appliquer au module Num Pi lui-même. C' est ce que nous allons faire. Nous allons d'abord définir une liste. Cette liste va, allons-y et nettoyons tout cela. Nous aurons une liste, et nous allons dire les fruits sont égaux et nous pouvons dire associer des pommes et des oranges. Nous avons une liste de fruits, définissons une liste, puis nous pouvons dire print et Np point random en tant que sous-module, et nous allons dire point choice Donc, cette fois, nous allons utiliser le choix, et nous allons ajouter trois options. Maintenant, disons que je veux continuer et choisir deux éléments uniques dans cette liste. Nous allons d'abord définir à partir de quelle liste. Donc dans ce cas, ce seront des fruits. Ensuite, il y en aura deux, puis nous voulons dire que remplacer est égal à faux. Cela nous permettra essentiellement de sélectionner deux articles uniques et en disant que remplacer est égal à faux, nous allons nous assurer qu'il n'y a pas de doublons En d'autres termes, lorsque nous sélectionnons deux articles dans cette liste de fruits, nous ne voulons pas sélectionner deux fois une pomme, comme Apple et Apple ou un raisin et un raisin ou orange et une orange ou une poire et une poire. Laissez-moi vous le démontrer. Le remplacement permet d'éviter la duplication. Allons-y et exécutons le code. Nous avons des pommes, des poires, des raisins oranges , des pommes, raisins oranges, des poires oranges. Vous allez voir qu'il n'y aura pas de doublons de ce type Mais si je devais définir replace sur true, cela autoriserait les doublons Donc, si je dis que remplacer est égal à vrai, enregistrez ceci et exécutez orange apple, orange grape. Papa. Nous y voilà. Nous avons maintenant un duplicata en place. Nous pouvons donc maintenant avoir des valeurs dupliquées qui sont sélectionnées. Il est donc possible de sélectionner deux valeurs identiques. Ensuite, vous aurez à remplacer égal à vrai. OK, c'est ainsi que nous pouvons mettre cela en place. OK, donc très similaire, comme je l'ai dit, à ce que nous avions auparavant avec le module random the random. C'est bon. Nous l'avons donc. Parfait. OK, alors allons-y et voyons où nous pouvons aller plus loin. Supposons, pour les besoins de l' argumentation, vous vouliez vous lancer dans une haie et renvoyer une série de flottants avec des valeurs basses et hautes OK ? Donc, ce que vous pouvez faire, c'est continuer et dire « imprimer ». Point N P aléatoire. Et vous voulez dire le point uniforme. N'oubliez donc pas qu'avec la fonction dot uniform, vous allez avoir affaire à des flottants, donc la sortie sera sous forme de flottants Et nous allons prendre trois valeurs ici. Nous allons donc d'abord avoir un haut, un bas et une taille. Donc, d'abord, le maximum, nous allons dire un à dix. Ensuite, nous voulons avoir cinq flottants aléatoires, donc nous pouvons dire cinq OK. Alors allons-y et exécutons-le. OK. Nous y voilà. Nous allons voir que nous en avons un, deux, trois, quatre, cinq, ce sera entre, comme nous pouvons le voir ici, le plus bas et le plus haut, donc un à dix, souvenez-vous que ce ne sera jamais dix. Ce ne sera pas le 10. Si nous l'exécutons, nous pouvons voir qu'il n'y en aura pas dix en tout cas. C'est ce que nous pouvons faire si nous voulons renvoyer à nouveau un tableau de flottants en haut et en bas C'est bon. OK, parfait. Nous y sommes donc, vous pouvez voir ici que le maximum qu'il peut atteindre est 9,74 et même de 2,29, mais pas du tout au-dessus de dix Supposons maintenant que nous voulions renvoyer un tableau de nombres normalement distribués. Nous allons donc utiliser ce que l' on appelle la fonction normale. Donc, ce que nous pouvons faire, c'est dire mp point random point normal. Et on peut juste le fermer. Nous allons prendre trois valeurs. Nous aurons donc zéro, par exemple, un, et nous pouvons dire cinq. Maintenant, la première valeur ici va être pour MU. Ensuite, nous aurons Sigma, puis nous aurons la taille Et nous allons renvoyer cinq de ces nombres normalement distribués dans un tableau. Et là, nous pouvons voir que nous avons obtenu cette sortie en conséquence, n'est-ce pas ? Parfait. Et c' est ainsi que nous pouvons continuer et configurer également le fonctionnement normal. Très bien, nous y voilà. Il y a la manière dont nous pouvons utiliser ces trois modules. Et je voulais juste vous donner un petit aperçu de la façon dont vous pouvez utiliser toutes ces fonctionnalités, ainsi que certaines des fonctions les plus populaires. Maintenant, je sais que certains d' entre eux étaient peut-être un peu exagérés et un peu hors de portée. Comme je l'ai mentionné, cela en partie sur les statistiques, mais il est important d' en être au moins conscient et d' avoir un peu de contexte, pour ne pas dire que vous les utiliserez un jour, mais il est tout simplement bon d'avoir des connaissances de base, afin de savoir qu'elles existent, et vous n'êtes pas limité à l'utilisation une ou deux fonctions disponibles. Dans tous les cas, c'est sur Num Pi en termes de fonctions aléatoires de num Pi, etc. Et oui, c'est ce qui conclut cet ensemble d'exercices pratiques de laboratoire en trois parties. 28. Décorateurs: Bonjour à tous, et bienvenue à la prochaine leçon, qui portera sur les décorateurs Alors, qu'est-ce qu'un décorateur ? C'est probablement ce que tu penses en ce moment. Donc, en termes simples, un décorateur dans PySon est une fonction ou une classe spéciale qui améliore une autre fonction ou méthode sans modifier son code d'origine Permettez-moi donc de vous donner une analogie très simple. Disons que vous vous préparez pour Noël et que vous voulez devenir festif et décoratif. La première chose à faire est de vous procurer un sapin de Noël. Cela fait donc partie de la décoration. Cependant, ce que les gens font, c'est qu'ils décorent le sapin, alors ils vont encore plus loin et ils y mettent beaucoup de belles choses. Essayez donc de voir un décorateur dans ce sens littéral de son Vous pouvez considérer le sapin de Noël comme une fonction et les décorateurs supplémentaires que vous installez comme une fonction spéciale C'est juste une façon d'aller avant et d'essayer de savoir comment je peux dire, mettre les choses en perspective. Maintenant, dans PySON, comme je l'ai mentionné, un décorateur peut être une fonction ou une classe spéciale Cependant, le décorateur le plus courant est, bien entendu, le décorateur de fonctions 99,9 % du temps, lorsque vous travaillez avec Pyson dans n'importe quel environnement ou écosystème, vous allez voir les décorateurs comme avaient une fonction . Maintenant, une autre chose que je voudrais mentionner en termes de décorateurs est qu'il permet des modifications dynamiques Vous pouvez donc ajouter ou modifier des fonctionnalités pour vos fonctions et méthodes de classe ensemble de vos fonctions et méthodes de classe. C'est bon, les gars. Voilà pour l'aperçu théorique. Dans la leçon suivante, nous allons travailler sur quelques exercices pour approfondir nos connaissances sur les décorateurs en 29. Créer notre premier décorateur - [Lab]: Bonjour à tous. Et bienvenue au prochain exercice pratique en laboratoire, qui portera sur le travail avec des décorateurs dans PySON Nous allons donc rester très simples pour commencer, puis nous pourrons poursuivre avec quelques exemples. Commençons donc. OK, donc la première chose que nous devons est de savoir comment définir une fonction simple dans PySON et ensuite nous pouvons continuer à partir de là C'est vrai. Donc, la première chose que je vais faire est de définir une fonction. Je vais dire Def et je vais dire ici souligner Hello Et je vais laisser les parenses vides et je ne vais rien laisser passer par le curlon Ensuite, ce que je vais faire ici, c'est dire imprimer, et c'était dans la déclaration imprimée ici, je vais dire bonjour à tout le monde. Parfait. Maintenant, ce que je veux faire, c'est appeler cette fonction, et je vais dire, souligner, bonjour. Nous y voilà. Ce qui va essentiellement se passer, c'est que nous allons définir cette fonction. Il exécutera ensuite print hello world une fois appelé. Ici, nous appelons cette fonction particulière et elle exécutera tout ce qui se trouve dans cette fonction elle-même. Allons-y, exécutons le code et nous pouvons voir qu'il affiche Hello World. C'est la manière la plus simple d'utiliser une fonction. Génial. Parfait. Maintenant que tout cela est terminé, allons-y et poursuivons sur cette lancée Nous avons donc cette fonction, et disons que nous voulons faire une couverture et modifier les résultats que nous allons obtenir avec cette fonction. OK, supposons que nous voulions intégrer tout cela dans un décorateur et que nous voulions avoir une sortie plus complète, pas seulement Hello World Nous voulons avoir un peu plus que cela. Donc, ce que je vais faire, c'est définir un décorateur Maintenant, un décorateur, bien sûr, comme je l'ai mentionné, peut être une fonction ou une classe maintenant une classe fonctionnelle spéciale pour être plus spécifique Ce que je vais faire, c'est juste un peu dézoomer ici et nous allons définir une fonction spéciale maintenant Je vais dire ef et cette fonction ici, je vais l'appeler M underscore decorator OK. Ensuite, ce que nous allons faire, c'est passer par le funk OK. Maintenant, vous pouvez traiter le funk ici comme paramètre, d' accord, pour une autre fonction que nous allons utiliser, comment puis-je dire absorber Maintenant, cette fonction qu' il absorbe va être absorbée lorsque nous ajouterons le décorateur au-dessus de la fonction Supposons donc que je veuille continuer et modifier cette fonction ici. Ce que je devrais faire, c'est ajouter le décorateur at et celui-ci fera référence à cette fonction appelée ici My decorator référence à cette fonction appelée ici My Mon décorateur de soulignement et maintenant mon funk sont le paramètre, et celui-ci va maintenant intégrer cette fonction particulière que nous avons ici et celui-ci va maintenant intégrer cette fonction particulière que nous avons Parce que nous avons du funk ici, et la raison pour laquelle il sait que ce sera cette fonction, c'est parce que nous y attachons le décorateur Avec ce décorateur, il va saisir cette fonction et la transmettre automatiquement ici car le décorateur que nous avons ajouté ici était le symbole at, il va la transmettre ici. C'est maintenant essentiellement la fonction de décorateur et c'est notre fonction d'origine Nous pouvons y ajouter deux points. Ensuite, la prochaine chose que nous devons faire est d'emballer. Nous devons intégrer cette fonction originale à notre décorateur. Vous pourriez le dire dans notre nouvelle fonction. Il faudrait dire « mort ». Enveloppez, ouvrez et fermez les parenthèses et fermez les deux points Ce sera la nouvelle fonction qui va maintenant compléter la fonction d'origine. La prochaine chose que nous allons vouloir faire est de faire un test simple et simplement exécuter du code ici. Je vais donc simplement exécuter une simple instruction d'impression qui indiquera la fonction est sur le point de s'exécuter. OK ? Cette instruction va donc s' exécuter avant que nous n'exécutions cette fonction ici, qui a été transmise par funk Donc, pour appeler cette fonction, il faudrait continuer et dire funk, non ? Et cela va ensuite exécuter cette fonction ici, qui va dire bonjour à tout le monde. Une fois que cela a été exécuté, nous pouvons alors configurer une autre instruction d'impression ici indiquant que la fonction a fini de s'exécuter. Cela s'exécute donc après l'appel de la fonction. Maintenant, la dernière chose à faire est de renvoyer cette sortie via la nouvelle fonction encapsulée. Pour ce faire, nous pouvons écrire ici indent et dire return wrapper, et cela exécutera tout en conséquence pour nous tout en conséquence pour OK. C'est ainsi que nous pouvons simplement créer un décorateur. OK ? Bien, alors laissez-moi continuer et vous montrer ce qui va se passer maintenant Ce qui va se passer est donc le suivant. Donc, la première chose qui va arriver, c'est cette instruction d'impression sera exécutée. Ensuite, le décorateur va prendre cette fonction originale que nous avions, et comme vous pouvez le voir, il la modifie Cela ne modifie rien de ce qui y a été défini. Il va le transmettre ici en tant que paramètre, puis nous allons l' appeler dans le wrapper, puis nous allons imprimer une instruction de sortie indiquant qu'il a fini d'exécuter des erreurs et nous allons renvoyer ce wrapper pour nous assurer qu'il a été ajusté Donc maintenant, si je devais exécuter mon code, je peux maintenant voir que ma sortie indiquera que la fonction est sur le point de s'exécuter, bonjour tout le monde, et que la fonction a fini de s'exécuter. Et vous pouvez voir que tout a été exécuté comme il se doit. OK. C'est ainsi que nous pouvons aller de l' avant et faire en sorte que tout fonctionne comme il se doit. Bien, alors laissez-moi vous donner un peu plus de détails pour que vous compreniez parfaitement tout. Voici donc M underscore decorator funk. Encore une fois, le funk sera la fonction qui sera décorée Dans ce cas, ce sera Say Hello, qui sera décoré par le décorateur at my underscore Voilà comment on décore une fonction. Vous avez mis le symbole arobase, suivi de la fonction décorée, dois-je dire ? OK. Et mon décorateur, Frank, va recevoir la fonction et elle va l'entourer de code supplémentaire, ce qu' il fait avec cet emballage Il va donc ajouter cette instruction de sortie ici qui indique que la fonction est sur le point de s'exécuter, et celle-ci ici qui indique que la fonction est terminée. Nous avons donc cet emballage ici, d'accord ? Et il s'agit d'une nouvelle fonction au sein de notre décorateur. Et comme vous pouvez le constater, cela ajoute un comportement supplémentaire, à savoir ici et ici. Donc avant d'exécuter la fonction originale définie par funk. OK. Maintenant, l'emballage va s'appeler Funk Inside. La fonction d'origine sera donc toujours en cours d'exécution. Ensuite, nous avons l'emballage de retour. Donc au lieu de rendre le funk lui-même, d'accord, nous allons retourner l'emballage, Maintenant, chaque fois que nous appellerons pour dire bonjour, nous appellerons le retour. En fait, nous allons appeler Wrapper. C'est essentiellement ce que nous allons faire. C'est bon. Voilà. Il existe le moyen le plus simple d' intégrer un décorateur dans Python Nous allons travailler sur quelques exercices pratiques supplémentaires, mais ce sont les bases pour configurer votre tout premier décorateur et comment vous pouvez l'appliquer à un concept donné Bien, ce que nous pouvons faire, c'est simplement aller de l'avant et nous continuerons dans un instant. 30. Travailler avec des décorateurs - [Lab]: C'est bon. Continuons donc et travaillons sur quelques exercices pratiques. Maintenant, la prochaine chose que nous voulons faire est de travailler sur un programme qui va convertir la sortie de la fonction en majuscules. Allons-y donc et appliquons-le. OK, donc la première chose à faire est d'abord, allons-y et configurons une fonction simple. Nous allons donc dire def, race, puis ici nous allons dire retour, et je vais dire bonjour. C'est très simple. Alors je vais dire imprimer. Saluer. Et si j'exécute ce code, il dira bonjour. Voilà, c'est très simple. Dans ce cas, j'ai donc supprimé l'instruction d'impression de la fonction. Je l'ai déplacé vers l'extérieur, et je renvoie juste le texte donné, c'est-à-dire bonjour, puis j'appelle la fonction ici en conséquence, elle figurait dans l' instruction print pour exécuter valeur Wister qui a été renvoyée dans la fonction Maintenant, souvenez-vous de notre cas d'utilisation. Nous voulons convertir la sortie de la fonction en majuscules. Ici, lorsque nous imprimons et exécutons cette fonction, nous voulons qu'elle soit en majuscules Allons-y et faisons en sorte que cela se produise. Nous aurions donc besoin d'un décorateur en majuscules pour cela. Ce serait un bon cas d'utilisation, disons la mort ici et nous pouvons dire décorateur de soulignement en majuscules Ensuite, nous allons passer au funk. Maintenant, pour absorber cette fonction, nous devons ajouter le décorateur, qui se trouvera à, et ce sera le décorateur de soulignement en majuscules ici, puis il passera par cette fonction telle qu' elle est cette fonction telle qu' elle Ensuite, nous devons définir le wrapper IO, nous pouvons dire def wrapper. Ensuite, nous voulons appeler la fonction d'origine, et nous allons l'affecter à une variable. Je vais dire ici que le résultat est égal, et ça va être génial Je stocke cette fonction particulière, qui va être transmise ici sous le nom de funk et je vais la stocker dans cette variable appelée result C'est ici que j'appelle la fonction d'origine. Ensuite, la prochaine chose que je veux faire est convertir la sortie en majuscules. Donc, quel que soit le résultat de funk, qui est essentiellement un bonjour, je veux le convertir en majuscules Je peux donc dire renvoyer le résultat point en haut. Je vais donc appliquer cette méthode particulière ici, la méthode des majuscules, et cela va convertir la sortie en majuscules. Et puis tout ce que je dois faire maintenant pour renvoyer la nouvelle fonction est de renvoyer le wrapper. Je peux juste dire ici, emballage de retour. Et voilà. Maintenant, ce que nous pouvons faire, c'est aller sur une couverture et exécuter le code. Passons à Zach et nous pouvons voir que le résultat indique maintenant bonjour et c'est en fait en majuscules Nous pouvons voir que c'est maintenant beaucoup plus clair et concis maintenant que nous avons ajouté ce décorateur C'est vrai. C'est ainsi que nous pouvons créer un programme simple qui convertit la sortie de la fonction en case uproot Nous pouvons donc voir où c'est utile. Il met donc automatiquement en forme le texte sans modifier la fonction d'origine elle-même. Vous pouvez donc voir que cette fonction n'a pas du tout été modifiée. Et comme nous pouvons le constater, cela peut également être très utile si nous affichons des titres, des messages ou toute sorte d'entrée utilisateur de manière standard, devrais-je dire ? OK. C'est ainsi que nous pouvons aller de l'avant et le faire. Bord. C'est un exemple que nous pouvons suivre en suivant une haie . C'est bon. Allons-y et examinons un autre exemple. Maintenant, allons-y et créons un autre programme. Dans ce programme, le cas d'utilisation visera à garantir que nos mots de passe comportent au moins huit caractères. Définissons maintenant une fonction simple pour commencer. Je vais dire, D, générer un mot de passe de soulignement comme fonction de base entre deux points, et ici je vais dire return, ABC C'est très simple. Cela serait donc considéré comme un mot de passe très faible au départ. Non seulement c'est générique parce que c'est ABC, mais c'est aussi savoir comment dire « bas  » en termes de personnages. OK. Ensuite, nous allons dire imprimer, et nous allons simplement imprimer ces fonctions particulières. Je dirais générer, souligner le mot de passe, ouvrir et fermer les parenthèses Et si nous l'exécutons, cela produira ABC, puisque c'est ce que nous renvoyons dans cette fonction. C'est vrai. C'est ainsi que nous pouvons procéder et démarrer cette fonction. Maintenant, allons-y et compliquons un peu les choses. Maintenant, afin de vérifier si un mot de passe est trop précis et de s' assurer que le texte analysé comporte au moins huit caractères, nous allons avoir besoin de quelques modules Nous allons donc utiliser le module random et le module string. Donc, jusqu'à ce stade, il devrait bien connaître les modules et être assez à l'aise avec ceux-ci. Allons-y donc et commençons. Je dirais import random, puis nous pouvons dire Importer une chaîne. Riche. OK. Maintenant, ce que nous pouvons faire, c'est définir notre fonction de décorateur pour commencer Je vais donc dire mot de passe sourd et fort souligné. Je vais passer par le funk. Et avant de pouvoir réellement utiliser cette fonction, nous devons ajouter notre décorateur et dire at, et ce sera un mot de passe fort. Juste comme ça. Riche. La prochaine chose que nous voulons faire est de définir notre wrapper. Nous allons donc dire « sourd wrapper et nous pouvons simplement l' ajuster comme ça Ensuite, nous voulons appeler notre fonction d'origine, qui se trouve ici, pour générer un mot de passe. Pour ce faire, nous pouvons simplement dire que password est égal à funk, et nous allons l'attribuer à la variable password Donc, tout ce qui sera renvoyé dans le résultat sera ABC, qui sera défini sur le mot de passe, qui est actuellement ABC. Ensuite, nous voulons configurer un WLLoop pour vérifier si le mot de passe est trop court, puis nous voulons effectuer une action Donc, ce que nous pouvons faire ici, c'est dire pendant la durée. Nous allons donc utiliser la fonction ng pour vérifier la longueur du mot de passe, et s'il est inférieur à huit. Ce que je veux faire, c'est récupérer mon mot de passe. Et puis je veux l'incrémenter d' un chiffre aléatoire à chaque fois. Je vais utiliser le module random et dire point choice. N'oubliez pas que le choix des points est un, et nous allons parler ici de chiffres à points de chaîne. Maintenant, les chiffres à points de chaîne ici vont essentiellement placés sur une couverture et ils vont à cette valeur, dois-je dire que les chiffres à points de chaîne seront compris entre 0 et 9 dans les chaînes Les chiffres à points de chaîne sont, bien entendu, les chiffres de zéro à neuf dans une chaîne entière. Et cette fonction de choix de points aléatoires va choisir un chiffre aléatoire de 0 à 9 sous forme de chaîne et l' ajouter au mot de passe Nous aurons ABC, puis nous pourrons avoir ABC deux. Cela va s' incrémenter et s'exécuter à nouveau. Ça va être ABC Seven. Cela va s'incrémenter et fonctionner à nouveau. Ce sera AB 274 comme ça, et cela ajoutera un autre chiffre La prochaine chose que nous voudrons faire , c'est une fois que cela aura été fait et que nous aurons atteint la limite supérieure ici. Tant que c'est le cas, comment puis-je dire plus de huit ? Bien qu'il ne soit plus que huit, cela va alors interrompre la boucle while, puis nous pouvons dire return password, puis il va renvoyer le mot de passe final, et après cela, nous voulons renvoyer la fonction modifiée que nous avons. Pour ce faire, nous devrions dire à la fin, return wrapper OK, nous avons donc tout défini maintenant Donc, ce que nous allons faire maintenant, c'est exécuter le code. Et comme nous pouvons le voir maintenant, nous avons cette sortie, et elle indique ABC 66507 Donc, si nous pouvons compter cela, nous en avons quatre, et nous en avons quatre. Il s'agit donc, bien sûr, de huit caractères. Notre mot de passe est donc désormais un peu plus sûr. Ce n'est pas parfaitement sûr, mais c'est bien mieux qu'avant. Comme vous pouvez le constater, nous avons ajouté une fonctionnalité permettant de modifier notre fonction afin de nous assurer que nos mots de passe comportent au moins huit caractères et qu'ils fonctionnent correctement comme il se doit. Nous pouvons voir que nous avons intégré tout cela dans cette fonction. Donc, si je devais simplement effectuer un zoom arrière un peu plus pour que vous puissiez voir le résultat global que nous avons ici et le résultat que nous avons. C'est bon. C'est tout pour les exercices sur les décorateurs. J'espère que vous êtes un peu plus confiant et que vous l'intégrez bien. Nous avons examiné quelques exemples. Nous pouvons le supprimer et voilà, les décorateurs de Bison 31. I/O de fichier: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur les E/S de fichiers. Commençons donc. Vous vous demandez donc probablement ce que signifie l'IO dans le fichier IO ? IO est donc simplement synonyme d'entrée et de sortie. D'où la partie IO. E/S de fichiers fait donc référence au processus de lecture et d' écriture dans des fichiers. Cela permet à votre programme de fonctionner sous forme de fichiers sur votre ordinateur, ce qui nous permet d' ouvrir, d'écrire pour lire, puis de fermer ces fichiers selon les besoins. En termes simples, il vous permet de travailler avec des fichiers, comme lire textes à partir d'un fichier ou enregistrer des données dans un fichier. OK, je vais donc vous montrer quelques extraits de code certaines des actions les plus populaires en matière de gestion de fichiers dans Supposons donc que nous voulions ouvrir un fichier. Supposons donc que nous ayons un fichier appelé person point TXT. Donc, ce que nous pouvons faire, c'est définir une variable, par exemple, un fichier de personne à appeler, puis nous allons dire égal, puis nous allons ouvrir le fichier TXT à points de personne, et nous allons l' associer au nom de variable du fichier de personne. Supposons que nous ayons ouvert ce fichier et que nous voulions maintenant le lire. Nous pouvons donc définir une autre variable appelée text, puis nous voulons l'associer au fichier person. Bien entendu, comment puis-je dire qu'elle a accès au fichier person point txt puisque nous l' avons ouvert précédemment dans la commande open file. Ce que nous allons faire maintenant, c'est utiliser la méthode Red pour lire les cent premiers caractères du fichier TXT à points personnels, et nous allons afficher ces cent premiers caractères dans la fenêtre de sortie en disant « imprimer le texte ». Maintenant, ne vous inquiétez pas si cela n'a pas encore de sens, nous allons le mettre en pratique, mais je veux juste vous donner un aperçu afin que vous puissiez mieux comprendre les méthodes utilisées, etc. OK, maintenant, disons que nous voulons créer notre propre fichier. Le processus pour ce faire serait donc, bien sûr, de définir une variable A, afin que nous puissions dire que fichier voiture est égal à ouvert, puis vous voulez spécifier le point de voiture TXT, puis vous voulez spécifier une autre valeur qui est W. Donc cela va signifier écrire. Et cela peut également être interprété comme une forme de création. Donc, écrivez un fichier, créez-en un, et ce doit être du format car point TXT. Supposons maintenant que nous ayons créé ce fichier et que nous voulions réellement écrire dans le fichier. Nous utiliserions donc la méthode d'écriture. Nous ferions donc référence à cette variable que nous avons définie précédemment pour créer le fichier, le fichier voiture. Ensuite, nous dirons de ne pas écrire, et là, nous pouvons dire, par exemple, mes voitures préférées sont une Ford et un Hessla et que cela sera écrit dans le fichier Et il est très important de garder à l'esprit que chaque fois que vous écrivez dans un fichier dans PySON, vous devez toujours vous assurer de le fermer après avoir écrit dans un fichier D'accord ? Vous devez donc dire « car file point close » à la fin, moins dans cet exemple. La méthode de fermeture par points est donc la méthode dont vous avez besoin. Maintenant, il existe dans PySON un outil connu sous le nom de gestionnaires de contexte dans lequel cela est automatiquement fait pour vous, mais c'est un sujet que nous aborderons plus loin dans le cours Mais pour l'instant, nous devons dire manuellement point close. Supposons maintenant que nous voulions ajouter des éléments à ce fichier. Nous ne pouvons pas réécrire car cela remplacera le contenu du fichier Nous voulons ajouter au fichier, et ce sera le prochain problème que nous devrons résoudre. Pour le résoudre, nous pouvons le résoudre en l' ajoutant à un fichier Nous allons essentiellement ouvrir le fichier, comme vous pouvez le voir ici, nous définissons notre variable. Nous allons utiliser la fonction d'ouverture. Ensuite, nous allons ouvrir le fichier set, qui sera cart txt est le premier, vous pouvez dire paramètre, puis virgule, puis A. Cela signifiera ajouter Nous allons l' ajouter à ce fichier. Nous ouvrons le fichier Set afin de pouvoir y ajouter des éléments Ensuite, vous pouvez continuer et dire « point carfle » à droite. Ensuite, comme vous pouvez le voir, j' ajoute un espace et je dis que j'aime aussi Honda. Cela va être ajouté à ce fichier en particulier avec le code que je vous ai montré plus tôt, où nous routerons vers le fichier. Lorsque nous écrivons lorsque nous ajoutons ou que nous effectuons toute autre action, nous devons indiquer « car file close » à la fin N'oubliez donc pas de mettre l'accent sur la méthode de fermeture par points. Supposons maintenant que nous ayons un surplus de fichiers et que nous devions commencer à les supprimer. Maintenant, pour ce faire, vous pouvez utiliser le module OS fourni avec Python. Et le module du système d'exploitation possède une fonction appelée supprimer, et il vous suffit de le placer dans le fichier que vous souhaitez supprimer. Dans ce cas, nous pouvons, par exemple, supprimer le fichier TXT à points de carte en l'insérant simplement entre guillemets dans la fonction de suppression C'est donc aussi simple que cela, c'est ainsi que vous pouvez également supprimer un fichier. C'est bon, les gars. C'est tout qui est de l'aperçu théorique de l'examen des entrées et sorties de fichiers dans PySON Dans la leçon suivante, nous allons nous concentrer sur l'exercice pratique en laboratoire, et nous allons travailler sur utilisation de fichiers dans PySON C'est bon, les gars. C'est tout pour l'aperçu théorique. 32. Effectuer des opérations sur les fichiers - [Lab]: Tout le monde, et bienvenue au prochain exercice pratique de laboratoire, qui sera axé sur l'E/S de fichiers et PySON Commençons. Maintenant, la première chose que je veux que vous fassiez est de naviguer pour explorer ici. Dans notre répertoire, nous voulons créer un fichier TXT à points simples. Je vais naviguer ici et dire nouveau fichier, je vais appeler cette personne point TXT. Voici mon fichier TXT. Ce que je peux faire, c'est ajouter des données. Je vais aller de l'avant et simplement dire, John, Smith, et je vais inscrire une date de naissance, par exemple, disons 12 h 2-1990 Deux. Juste un peu d'information. Certaines données sont au moins en personne (point TXT). Passons maintenant au diagramme à points principal et ce que nous allons faire , c'est ouvrir Person Dot TXT. Nous pouvons dire person file, qui sera une variable, par exemple, et nous allons utiliser la fonction open pour ouvrir ce fichier. Le nom de ce fichier est donc person point TXT. Je vais donc dire person point TXT, et cela ouvrira le fichier pour nous. Maintenant que le fichier est ouvert, théoriquement parlant, nous devons effectuer certaines actions Supposons que nous voulions lire un extrait de ce fichier. Nous pouvons ensuite définir une variable appelée text, et nous voulons faire référence au fichier person car selon cette variable, la valeur ici sera le fichier ouvert. Et que voulons-nous faire avec ce fichier maintenant qu'il est ouvert ? Nous voulons le lire, afin d' utiliser la méthode de lecture, puis vous souhaitez spécifier le nombre de caractères du fichier que vous souhaitez lire. J'aime toujours le faire un peu plus haut, donc je vais dire 100 , ce qui correspond à peu près à tout le contenu ce fichier, donc vous pouvez voir qu'il s'agit simplement de tout englober. Et comme ce qui a été lu en caractères est maintenant associé à ext et y est stocké, nous pouvons imprimer du texte pour voir le résultat. Je vais donc dire « imprimer le texte ». Donc maintenant, si je lance le code, il va afficher les 100 premiers caractères de ce fichier. Maintenant, supposons que je change le compte arc ici pour qu'il ne reste que cinq caractères et que je lance ceci. Je vais juste imprimer John. Bien entendu, nous pouvons voir qu'il y a un espace là lorsque je le souligne. Si je devais dire 12, par exemple, et courir, cela signifierait le tiret de John Smith. On n'en arrive qu'à ce point. Vous pouvez voir que vous pouvez limiter le nombre de caractères que vous souhaitez lire dans votre programme lui-même. OK, parfait. C'est ainsi que nous pouvons aller de l'avant et sécuriser les choses. C'est donc la méthode de base pour ouvrir un fichier qui existe déjà et comment vous pouvez le lire à partir d'un fichier lui-même. Nous avons donc maîtrisé l'ouverture d' un fichier existant et sa lecture Supposons maintenant que nous voulions aller plus loin et que nous voulions créer un fichier et y écrire. Ce que je vais faire maintenant, c'est que nous pouvons supprimer ce code, et je veux créer un fichier. Pour ce faire, je vais dire car car ma variable est égale, et je vais dire ouvert, je vais dire car point TXT, puis entre virgules et je vais dire W. Parce que je veux créer un fichier, je vais dire W. Maintenant, avant que ce fichier n'existe et ne soit créé réellement, nous devons y écrire, donc nous devons écrire quelque chose, mais c' est la première étape pour est la première étape créer votre fichier, théoriquement parlant. La prochaine chose que nous devons faire est d'écrire dans ce fichier, puis il sera créé et il apparaîtra ici dans notre répertoire ici dans notre répertoire de base. Ce que vous allez vouloir faire, c'est dire fichier de voiture, chien, ici, entre parenthèses, nous pouvons dire que mes voitures préférées sont une forge et un jeu d'échecs Ensuite, nous voulons dire fichier voiture, fermer, et cela fermera le fichier pour nous. Maintenant, si nous devions exécuter notre code, nous pouvons voir que rien ne sera affiché, mais si nous allons dans notre répertoire, vous devriez voir que nous avons un fichier TXT de panier qui a été créé et que nous avons du texte dedans parce que nous avons écrit dans le fichier. Nous pouvons y voir que nous sommes allés de l'avant et que nous avons écrit que mes cartes préférées sont une Ford et une Tesla et nous pouvons voir que cela a été écrit, et bien sûr, que ce fichier a été créé lui-même. Nous ne nous attendions à aucune instruction de sortie d'impression. C'est pourquoi il n'y avait rien ici, mais nous devions exécuter notre code afin pouvoir exécuter les lignes de code suivantes. Mais nous pouvons voir qu'il a été créé. Cart TXT existe maintenant. C'est vrai, parfait. Maintenant, disons que vous voulez et lire maintenant à partir du point de voiture TXT. Vous voulez lire un extrait de ce fichier. Nous allons donc revenir à ce que nous avons fait plus tôt. Alors laissez-moi continuer et juste ceci. Nous voulons donc revenir en arrière pour lire un fichier. Je vais donc dire que le texte est égal à, et je vais dire car file point Red. Et je vais lire un petit extrait de ce dossier. Je vais donc dire 15 personnages. Et je dirais d'imprimer des chèques. Alors maintenant, si je lance la sortie, cela me donnera du code ici pour que vous puissiez voir que l'opération d'E/S était sur un fichier fermé. N'oubliez donc pas que chaque fois que vous fermez un fichier, vous devez le rouvrir. Il est donc très important de garder cela à l'esprit lorsque vous travaillez avec vos fichiers. Donc, ce que vous devez faire maintenant c' est l'ouvrir avant de continuer. Vous pouvez donc définir à nouveau votre variable ici, fichier voiture. Égal à open, et vous voulez ouvrir le point de carte TXT, et maintenant vous l'ouvrez. Et maintenant, si vous exécutez votre code, vous verrez qu'il est écrit « mon autorité de certification préférée ». OK ? Parce que nous ne le limitons que de 15 caractères, mais si je l'allonge un peu pour le porter à 100, par exemple, il affichera la ligne complète disant «   Mes voitures préférées sont Ford » et un test, souvenez-vous de cela. Très important. C'est pourquoi les gestionnaires de contexte seront plus utiles plus tard, je peux en dire beaucoup plus. C'est donc juste quelque chose que je voulais mentionner pour que vous soyez au courant de l'ensemble de ce processus. N'oubliez donc pas qu'une fois que vous l'avez fermée, vous ne pouvez pas effectuer d'action tant que vous pas ouverte à nouveau. Très important. Je voulais le démontrer afin que vous puissiez voir ce qui se passera si vous ne le faites pas. Vous allez rencontrer une erreur comme je l'ai mentionné. Une fois que vous avez fermé, vous devez l'ouvrir à nouveau. C'est vrai. La prochaine chose que je veux vous montrer, c'est comment ajouter à un fichier Maintenant, disons que nous avons déjà le texte au format car point TXT. Mes voitures préférées sont Ford et Chess et nous voulons les ajouter à ce fichier. Nous pouvons utiliser append. Ce que vous allez vouloir faire, c'est simplement restructurer un peu votre code ici, afin que nous puissions simplement supprimer une partie de l'ancien code ici Et bien sûr, nous devons ouvrir le fichier, mais nous devons l' ouvrir en annexe. Pour ce faire, nous devons ajouter une virgule ici et dire « A », car nous disons à Pyson que nous voulons ouvrir ce fichier et y ajouter un ajout. Maintenant, pour y ajouter, bien sûr, nous devons à nouveau utiliser la bonne méthode, mais notre objectif est de l'ajouter et non de l'écrire Si je dis dossier de voiture, écrivez : OK. Entre guillemets, je dois ajouter un espace et dire : « J'aime aussi Honda, par exemple. Ensuite, je peux simplement dire «   car file point close ». Donc, chaque fois que vous écrivez, vous devez fermer. C'est donc une bonne mesure. Alors maintenant si je lance ce code, bien sûr, rien n' en sortira. Mais si je vais chez Car Dox, vous verrez qu'il ajoute cette texture supplémentaire qui dit : «  J'aime aussi Honda C'est ainsi que vous pouvez l'ajouter à un fichier que vous possédez déjà OK, parfait. C'est ainsi vous pouvez procéder et configurer cela en conséquence. Maintenant, vous ne pouvez pas continuer en disant simplement écrire un fichier, sinon cela supprimera tout ce qui se trouve dans votre fichier et recommencera depuis le début. Laissez-moi vous le démontrer. Si je devais simplement le remplacer par W et dire, je vais juste écrire dans le fichier. Disons que j'aime aussi Honda, elle va remplacer tout cela et montrer que j'aime aussi Honda. Parce que lorsque vous écrivez, ce sera une rupture nette. Un stylo va être ajouté à un fichier. Nous, ça va repartir de zéro. Alors laisse-moi te montrer. Si je le lance maintenant et que je passe chez Cardo Txty, cela montrera juste que j'aime aussi Honda C'est pourquoi vous devez vous assurer que le symbole A est activé lorsque vous ouvrez votre fichier pour indiquer le mode que vous souhaitez utiliser. C'est ce qu'on appelle le mode. O W est en mode écriture. A est le mode appenda, souvenez-vous de cela. Nous avons deux fichiers ici, mais je ne veux en garder qu'un. Je veux garder le point de personne TXT, afin de pouvoir supprimer le point de voiture TXT. Vous vous demandez probablement comment faire cela ? C'est très simple. Il suffit de dire importer le système d'exploitation et le module du système d'exploitation dispose d'une fonction de suppression et cela s'applique aux fichiers. Vous pouvez dire Os point remove, puis il vous suffit de saisir le nom exact du fichier, et dans notre cas, c'est car point TXT, que nous pouvons voir ici. Vous pouvez dire car point TXT. Et je recommande de fermer ce dossier pour le moment. Et si vous exécutez ce code, vous pouvez accéder à votre explorateur et vous pouvez voir que le texte du point de carte a en fait été supprimé. Il n'existe plus. Misérable. Voilà, nous l'avons. C'est ainsi que vous pouvez faire une couverture et effectuer des E/S de fichiers de base, en d'autres termes, des entrées et sorties de fichiers. Vous savez maintenant comment ouvrir des fichiers, lire des fichiers, créer des fichiers, écrire dans des fichiers, ajouter à un fichier et supprimer un fichier Nous allons bientôt entrer un peu plus en détail en termes d' obtention des métadonnées des fichiers. C'est donc quelque chose que nous aborderons très bientôt. C'est vrai. Maintenant, en ce qui concerne ce fichier TXT à points individuels, nous nettoyons généralement tout après chaque taille pratique suivante, mais nous allons faire un suivi dans ce cas, pour la première fois. Je recommande donc de tout garder tel quel. Nous allons avoir quelques aperçus théoriques dans la prochaine série de leçons, puis nous reviendrons pour approfondir un peu plus la gestion des fichiers C'est bon, c'est tout pour le moment. 33. Obtenir des métadonnées de fichiers: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur l'obtention de métadonnées de fichiers. Jetons donc un coup d'œil. OK. Maintenant, lorsque nous effectuons opérations d'entrée et de sortie de fichiers comme nous l'avons déjà fait dans ce cours, nous pouvons également avoir besoin d'en savoir plus sur le traitement et les détails plus fins d'un fichier , également appelés métadonnées Désormais, ces métadonnées peuvent inclure le nom du fichier, état, s'il est ouvert ou fermé, et le mode dans lequel le fichier est ouvert. S'il est actuellement en mode écriture, s'il est en mode stylo, donc A pour le mode stylo, W pour le mode écriture, il se peut que nous ayons besoin de connaître, pas nécessairement, mais juste quelque chose qui peut être important. Donc, dans tous les cas, il ne s'agit que d'un aperçu théorique. Nous allons examiner certaines des options que nous pouvons explorer pour obtenir ces informations. Nous y reviendrons donc dans un instant. 34. Attributs des métadonnées de sortie du fichier - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique en laboratoire, qui sera axé sur l'obtention de métadonnées de fichiers. Maintenant, nous reprenons là où nous nous sommes arrêtés Nous avons donc toujours notre fichier person point TXT que nous avions auparavant et nous avons notre fichier point pi principal. Ce que je veux que nous fassions, c'est d'aller de l'avant et d'ouvrir notre fichier en mode, par exemple. Je vais dire personne, fichier est égal à ouvert, et je vais ouvrir person point TXT. Et nous allons définir cela pour le moment en mode écriture, donc le mode sera W. Super. Récupérons quelques informations et je vais également les publier. Je vais dire imprimer et ajouter quelques textures, je vais dire le nom. Ce que je veux faire, c'est obtenir le nom de mon fichier. Pour ce faire, je peux simplement dire fichier personnel. Puisque nous avons attribué cette variable à la valeur ici du contenu du fichier, je peux alors dire le nom du point. Maintenant, le nom du point ici va être un attribut que nous utiliserons. D'accord. La prochaine chose que je veux faire est vérifier si le fichier est en état d'ouverture ou de fermeture, et cela renverra une valeur booléenne ou booléenne Je vais donc dire imprimer, et je vais vérifier s'il est fermé. Je vais dire que c'est fermé. OK, donc à la virgule. Encore une fois, nous devons référencer le fichier, donc je vais dire person file point, et l' attribut correspondant sera fermé. Nous allons donc vérifier s'il est fermé. Et s'il est fermé, si le fichier est fermé ici, il redeviendra vrai. S'il n'est pas fermé, il renverra la valeur false. Nous vérifions donc s'il est fermé, ce qui n'est pas le cas. Il est ouvert. La prochaine chose que nous voulons faire est de vérifier le mode. Je vais donc dire imprimer, et ici, je vais dire mode actuel. Espace, et nous devons faire référence au fichier, personne, au point, et nous allons dire mode. Allons-y donc et prédisons ce que nous aurons. Le nom du fichier ici fait référence à l' attribut du fichier, qui sera person point TXT. Et nous allons vérifier s'il est fermé. Nous pouvons voir que la dernière chose que nous avons faite a été de l'ouvrir. En disant que c'est fermé, cela se traduira par un faux, donc ce ne sera pas vrai. Ensuite, nous avons ici le mode person file point. Le mode actuel est W pour right. Allons-y et exécutons ce code ici, nous pouvons voir que le nom est person et non TXT. Ces statuts fermés, nous pouvons voir qu'ils sont faux et que le mode actuel est W. Mais allons-y et changeons cela. Réglons le mode sur A. Très bien. Et ce que nous voulons faire maintenant, c'est fermer le dossier. Je vais donc dire person file point, fermer. Exécutons donc le code. Et nous pouvons voir que le nom ici est person Dtxty is closed, c'est vrai parce que j' ai fermé le fichier en utilisant le message de fermeture Et le mode actuel est A pour ajouter et le nom, bien sûr, est toujours resté le même C'est donc très utile si vous souhaitez obtenir des métadonnées à partir de vos fichiers. C'est donc encore assez superficiel, mais c'est ainsi que vous pouvez procéder à des références en fonction des différents attributs mis à votre disposition pour simplement obtenir des métadonnées sur vos fichiers. Voilà pour cet exercice de laboratoire, très simple et précis. Allons-y et supprimons simplement ce fichier pour que je puisse cliquer avec le bouton droit de la souris. Et supprimez. Allons-y. Assurez-vous que votre fichier point pi principal est toujours intact et c'est tout ce dont nous avons besoin pour le moment. C'est tout pour cet exercice. 35. Paramètres et arguments: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur les paramètres et les arguments. Alors allons-y et commençons. C'est vrai, donc paramètres et arguments. Désormais, un paramètre peut être considéré comme un espace réservé qui définira les entrées attendues par une fonction. Maintenant, d'autre part, les arguments sont les valeurs réelles que vous transmettez à une fonction lorsque vous l'appelez. Allons-y et examinons une analogie simple afin pouvoir différencier un paramètre d'un argument de manière plus cohérente Bien, alors jetons un coup d' œil. Maintenant, disons que vous êtes dans un restaurant et le serveur ou le serveur vient vous voir et vous pose quelques questions sur ce que vous aimeriez avoir au restaurant Il peut donc vous poser quelques questions, par exemple, que souhaitez-vous pour commencer. Ensuite, il peut vous demander ce que vous souhaitez pour votre plat principal et si vous souhaitez un dessert après votre plat principal. Supposons, par exemple, que vous ayez très faim et que vous disiez au serveur ou au serveur que oui, j'aimerais que mon entrée soit composée de pain à l'ail Pour mon plat principal, je veux une pizza, et pour le dessert, je voudrais une glace. Allons-y et plongeons plus profondément. Maintenant, dans cet exemple particulier, en examinant les paramètres et les arguments, vous pouvez traiter les paramètres comme dans ce cas, les blancs d'un formulaire de commande, I E, l'entrée, le plat principal, le dessert Dans ce cas, ils définissent ce qui peut être commandé mais n'ont pas encore de valeurs spécifiques. autre côté, selon nos arguments, il s'agit des choix réels que fait le client. En d'autres termes, du pain à l'ail, de la pizza , de la crème glacée, etc., remplissent les blancs lors de la commande C'est ainsi que vous pouvez faire la différence entre vos paramètres et vos arguments. Hein ? Appliquons donc cela dans un simple programme Python, par exemple. Donc, en utilisant exactement le même exemple ici, par exemple, comme vous pouvez le voir, nous avons une fonction et nos paramètres placés dans cette fonction entre les parenthèses incluent l'entrée, plat principal et le dessert Et cela va définir les entrées attendues par la fonction. Voici donc les paramètres. Ensuite, comme vous pouvez le constater, nous avons ici une instruction d'impression qui indiquera « ordonné », puis qui prendra en compte les valeurs qui seront liées au paramètre de départ, au paramètre du cours principal et au paramètre du désert. Cela va produire un résultat spécifique. Maintenant, pour appeler cette fonction, nous allons faire référence au nom de la fonction qui est passer commande. Ensuite, entre parenthèses, nous allons appeler la fonction avec un argument Ce sont les valeurs qui seront essentiellement liées aux paramètres dont nous disposons. Ici, vous pouvez voir que nous avons du pain à l'ail , de la pizza et de la crème glacée. Essentiellement, ce qui va se passer maintenant c'est que nous allons saisir des valeurs, ces valeurs d'arguments, là où se trouvent nos paramètres. Du pain à l' ail remplacera l'entrée. La pizza remplacera le plat principal et notre dessert Dans ce cas, nous allons avoir de la crème glacée en accompagnement du dessert. Alors, bien sûr, puisque nous appelons la fonction, elle exécutera alors tout ce que nous avons défini dans la fonction. Dans ce cas, le relevé imprimé s'affichera à la fin, vous avez commandé du pain à l'ail. Pizza et crème glacée pour le dessert. C'est ainsi que nous pouvons rationaliser par analogie, comment nous pouvons utiliser des paramètres et des arguments avec nos fonctions dans pyson Maintenant, nous allons approfondir cette question avec la façon dont vous pouvez utiliser les fonctions et comment vous pouvez utiliser plus spécifiquement arguments. Le paramètre, devrais-je dire, était dans PySON Quoi qu'il en soit, c'est l'essentiel pour que vous ayez une idée générale de la différence entre un paramètre et un argument et dans un contexte 36. Faire la différence entre les paramètres et les arguments - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique de laboratoire, qui sera axé sur les paramètres et les arguments. Dans cet exercice de laboratoire, je vais simplement vous enseigner les principes fondamentaux des paramètres et des arguments afin que vous puissiez au moins en comprendre l'idée générale avant d' approfondir les paramètres et les arguments dans la prochaine série de leçons Commençons donc. D'accord, disons, par exemple, que je souhaite créer une fonction simple, qui sera axée sur quelqu'un qui commandera un ensemble particulier d' aliments dans un restaurant. Disons qu'ils veulent déjeuner et qu'ils décident que je veux une entrée, un plat principal et un dessert. Allons-y et voyons où nous pouvons aller à partir de là. Donc, la première chose que nous ferions généralement est de définir notre fonction. Je vais donc dire Dev et je vais dire placer le soulignement dans l'ordre, et ce sera le nom de ma fonction Et dans le cadre de ma fonction au sein de ParenessT, pour être plus précis, je dois définir mes paramètres Dans ce cas, étant donné que nous avons une entrée, un plat principal et un dessert, cela serait approprié pour les paramètres. Cela va définir les entrées attendues notre fonction. Alors allons-y et faisons-le. Nous allons avoir un démarreur. Nous aurons un plat principal et un dessert C'est vrai. Maintenant, une fois que nous avons intégré les valeurs associées à entrée, au plat principal et au dessert, nous voulons créer une sorte de fonctionnalité Donc dans ce cas, ici, je veux juste imprimer la commande elle-même. Ici, je vais dire imprimer, et je vais dire espace ordonné, et je vais utiliser des concaténations de chaînes, je vais dire plus, et je vais ajouter Ensuite, je vais ajouter une virgule et un espace, puis nous ajouterons le plat principal, non ? Et ce que je vais faire, c'est juste un peu dézoomer ici pour plus de clarté, puis ajouter ma virgule, dire et un espace, et ensuite je mangerai un dessert C'est très simple. J' allais juste dire commandé, c'est-à-dire le dessert, le plat principal et, bien sûr, ce que nous avons en conséquence ici. Génial. Maintenant, en dehors de cette fonction, nous voulons bien sûr l'appeler et exécuter cette ligne de code. Donc, ce que nous allons vouloir faire, c'est appeler cette fonction, et pour ce faire, vous devez vous référer au nom de la fonction elle-même, qui est place order. Et c' est entre parenthèses que vous allez appeler la fonction en insérant les arguments Essentiellement, les arguments ici seront substitués là où vous avez défini vos paramètres. Permettez-moi d'aller de l'avant et de vous donner un exemple. Maintenant, si je mets de la purée d'ail, je mets de la pizza Et j'ai mis de la glace. Tels seront mes arguments et ils seront intégrés en conséquence Du pain à l'ail remplacera l'entrée, pizza remplacera le plat principal. Le dessert sera remplacé par de la crème glacée. Vous pouvez alors le voir, car ce qui suit indiquera les valeurs du pain à l'ail, pizza et de la crème glacée, qui seront ramenées à ce qui se trouve dans la fonction ici. entrée deviendra alors du pain à l'ail, plat principal deviendra une pizza et la crème glacée un dessert. Ces valeurs seront transmises à notre fonction. Et le résultat final sera que vous aurez commandé du pain à l'ail, de la pizza et de la crème glacée. OK, alors allons-y et exécutons ce code. OK. Et là, vous pouvez voir le résultat. Vous avez donc commandé du pain à l'ail, pizza et de la crème glacée. Très bien, c' est un moyen simple qui vous permet de voir pratiquement la différence entre les paramètres et les arguments et comment ils fonctionnent ensemble. C'est bon. Voilà, nous l'avons. Maintenant, disons que nous voulons aller un peu plus loin dans GitL. Le meilleur moyen est donc de s'entraîner un peu plus, et examinons un autre exemple. Alors laissez-moi zoomer. Et allons-y et travaillons sur un deuxième exemple. Très bien, alors allons-y et travaillons avec notre deuxième exemple. Encore une fois, je vais définir une fonction, vais définir appelée mort et localisation. C'est très simple. Ensuite, je vais placer deux paramètres. Donc, à savoir, j'aurai la ville, puis le pays comme paramètres. Et ici, dans ma déclaration imprimée, je vais dire imprimer. Je vais dire que vous devez ajouter l'espace entre deux points, ajouter, bien sûr, un plus pour la concaténation de chaînes, je dirais ville plus, puis je vais ajouter un ensemble de guillemets, puis j' ajouterai deux points ici, puis j'ajouterai espace puis la concaténation de chaînes pour le puis la concaténation de chaînes Maintenant, j'aurais besoin d' appeler la fonction, donc je dirais location. Et avec les déductions, j' ajouterai les arguments. Ici, je vais dire que le premier paramètre serait dans le premier type de comment puis-je le dire dans la première définition que nous faisons ici. Je vais dire Capetown, et entre ma virgule, le deuxième argument portera sur le pays et sera lié à l' Afrique du Sud Maintenant, je peux continuer et exécuter ce code. Comme vous pouvez le constater, il est indiqué que vous venez maintenant du Cap, en Afrique du Sud Ce que je peux faire en fait, c'est simplement bouger. OK, allons-y. Ça a l'air un peu plus propre. Oh, vous pourriez aussi le faire, peut-être qu' une virgule serait plus jolie. Je ne m'en tiens donc qu'aux petites choses. Alors, excuse-moi. Tu viens de la cuisine. Allons-y. Beaucoup plus propre. C'est bon. C'est ainsi que nous pouvons intégrer des paramètres et des arguments de manière très simple. Encore une fois, je vais répéter ce que nous définissons ici entre parenthèses OK ? Ce seront nos paramètres. Ensuite, nos paramètres, nous pouvons également les appeler dans la fonction elle-même. Cependant, ce que nous devrions alors faire est ajouter les arguments ici qui vous permettront de remplacer nos paramètres dans nos fonctions penses, qui seront ensuite transmis à n'importe quelle logique que nous avons dans la fonction désignée. Bien, les gars, c'est tout pour cet exercice pratique de laboratoire sur les paramètres et les arguments. 37. Arguments positionnels et mots-clés: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur les arguments positionnels et par mots clés. Jetons donc un coup d'œil. OK, alors faisons la différence entre les deux. Les arguments positionnels sont transmis dans un ordre spécifique leur position déterminant le paramètre auquel ils sont affectés Maintenant, si vous deviez modifier l'ordre, cela en changerait le sens. Maintenant, nous obtenons également des arguments de mots clés, et les arguments de mots clés utilisent des noms pour attribuer des valeurs, sorte que l'ordre n'a pas d'importance. Alors allons-y et examinons une autre analogie à titre d'exemple, puis je vais vous montrer comment appliquer à la fois des arguments positionnels et des arguments de mots clés Jetons donc un coup d'œil. C'est bon. Supposons donc que nous voulions acheter une voiture, nous allions chez un concessionnaire automobile, et que nous voulions acheter, je ne sais pas, une Ford, une Tesla ou une Mercedes Nous nous rendons donc chez le concessionnaire automobile, nous y rencontrons un concessionnaire automobile et nous nous renseignons sur l'achat d'une nouvelle Maintenant, après avoir rencontré les personnes, bien sûr, je vais nous poser quelques questions. Il va nous demander quelle marque souhaitez-vous ? Quel modèle aimeriez-vous également et de quelle couleur ? Nous disons : je voudrais une Mercedes. Je veux acheter la classe S et elle doit être noire. Voyons comment appliquer cela dans un programme PySON de manière très simple Ainsi, en appliquant ce scénario particulier, nous pouvons créer un programme comme suit en utilisant un argument positionnel Comme vous pouvez le voir ici, nous sommes en train de définir notre fonction en voiture. Nous avons les paramètres, marque, le modèle et la couleur. Ensuite, notre instruction d'impression pour exécuter la fonction indiquera que vous avez acheté A, puis nous ajouterons les valeurs de sage qui y sont associées. Maintenant, comme nous pouvons le voir ici, arguments positionnels, ce que j'ai déjà mentionné, l'ordre sont importants. Comme nous pouvons le voir ici, nous avons une Mercedes, une classe S et une voiture noire. Maintenant, Mercedes va être remplacée par la marque, la classe S, par le modèle et le noir par la couleur. Donc, à la fin, ça va dire que vous avez acheté et ça va dire que vous avez acheté une Mercedes Classe S noire. D'accord, c'est ainsi que cela va fonctionner dans le processus. Vous pouvez donc voir ici des arguments de position, l'ordre est important parce que si vous deviez remplacer la Mercedes par une classe S, et que vous remplaciez les deux, vous obtiendrez alors la marque en classe S, et vous obtiendrez, par exemple, comment puis-je dire que le modèle est Mercedes ? Il peut y avoir une certaine confusion. Donc, les arguments positionnels, la position compte. Mercedes passe donc, bien sûr, à la marque, à la classe S au modèle et au noir à la couleur. OK. Ce que vous définissez ici est concaténation de chaînes, c'est complètement différent C'est un autre type de cas d'utilisation. Donc ça n'a pas vraiment d'importance. Mais les arguments positionnels, les valeurs que vous mettez ici sont importants car ils correspondront à l'ordre dans lequel vous définissez vos paramètres OK. Permettez-moi donc de vous montrer un autre exemple pour consolider ces connaissances Si nous devions changer cela, utiliser le même scénario et utiliser des arguments par mots clés, vous remarquerez ici que nous avons une petite différence. Le modèle est réglé sur la classe S, la marque est définie sur Mercedes et la couleur est réglée sur le noir. Maintenant, dans ce cas, vous pouvez voir que j'ai changé l'ordre des paramètres, il est indiqué marque, modèle et couleur. Avec les arguments que vous pouvez voir, l'ordre n'a pas d'importance parce que dans ce que je fais ici, je définis explicitement l'argument du mot-clé en disant : OK, le modèle va être une classe S, la marque va être Mercedes et la couleur va être noire. Il va automatiquement assumer les paramètres. Comment puis-je le dire d'une manière très progressive et dynamique ? La marque va automatiquement savoir qu'il s'agit d'une Mercedes. La couleur sera automatiquement définie sur le noir et le modèle sera automatiquement défini sur la classe S. Vous pouvez le voir ici, techniquement, l'ordre est différent d'une certaine manière, mais cela n'a pas d'importance car nous attribuons explicitement les paramètres, comme nous pouvons le voir ici, en fonction des étiquettes Cela serait donc considéré comme arguments de mots clés où l'ordre n'a pas d'importance. Contrairement à avant, si nous revenons en arrière, nous avions des arguments positionnels selon lesquels les valeurs que vous pouviez indiquer en dur ou l'ordre dans le modèle importaient N'oubliez donc pas que nous avons des arguments positionnels et des arguments par mots clés. OK. C'est donc juste quelque chose que je voulais mentionner et passer revue avec vous en termes d'aperçu théorique. Nous allons pratiquer cela dans le cadre d'exercices pratiques en laboratoire, alors restez à l'affût. 38. Positionnement de la carte et arguments de mots-clés - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique de laboratoire, qui sera axé sur la différenciation entre les arguments positionnels et les arguments liés aux mots clés d'un point de vue pratique Dans l'exercice de laboratoire précédent, nous nous sommes concentrés sur la compréhension du concept de base des paramètres et des arguments. Maintenant, indirectement, vous aurez remarqué que nous utilisons des arguments positionnels si vous pouvez vous faire une idée de la leçon précédente, qui portait sur l' obtention une vue d'ensemble sériale des arguments positionnels et des arguments par positionnels et Ainsi, avec les arguments positionnels, vous insérez les arguments directement lorsque vous appelez la fonction S. C'est bon. La première partie de cet exercice ressemblera donc en cet exercice quelque sorte à une activité de révision car vous allez comprendre la manière par défaut dont nous avons traité les arguments positionnels plus tôt Quoi qu'il en soit, allons-y et commençons. Je vais créer une fonction et je veux dire « Informations de soulignement pour les personnes sourdes Le nom de ma fonction sera « information personnelle ». Ensuite, je veux passer en revue quelques paramètres. Je vais dire le nom, j'aurai la ville, et je vais avoir le pays. Tels seront mes paramètres. Ensuite, je voudrais définir une instruction d'impression et je vais dire imprimer, et je vais commencer par dire, je suis et je vais dire, je vais dire IM, puis j'utiliserai la concaténation de chaînes et je dirai Ensuite, bien sûr, entre guillemets, je vais ajouter un espace et dire, donc vous allez dire « messagerie instantanée » et «  non » et « je viens de ». Ensuite, je peux continuer et dire plus, puis nous pouvons dire Siti plus, puis nous pouvons passer à autre chose, ajouter une virgule et une virgule Allons-y. Ce sera donc la déclaration. Maintenant, nous devons passer en revue certains arguments. Mais tout d'abord, nous devons appeler notre fonction La première chose à faire est de dire «  person underscore info », et c'est, bien sûr, la fonction que nous avons définie ici, le nom de la fonction, puis nous pouvons passer en revue nos arguments OK, donc d'abord, je vais avoir le nom, donc ce sera l'honneur, la ville je peux dire Le Cap, et ensuite le pays, je vais dire l'Afrique du Sud Ils sont considérés comme mes arguments de position. Le nom, la ville et le pays, comme nous le savons, sont nos paramètres. Maintenant, avec les arguments positionnels, la position de vos arguments doit correspondre à l'ordre ou à la position de vos paramètres En d'autres termes, le nom sera, bien entendu, remplacé par un nom d'honneur. Ce ne sera pas non plus un nom, Capetown sera une ville L'Afrique du Sud sera un pays, puis il sera utilisé tel que le programme en termes de fonctionnalités, où il prendra en compte les valeurs qui lui seront transmises. Maintenant, la chose importante que je veux que vous voyiez dans toutes ces structures d' arguments positionnels est que si vous définissez vos arguments positionnels ici et que vous les codez en dur, ils seront liés à vos paramètres Voyez-le donc de cette façon. L'argument 1 appartient au paramètre 1. Argument deux, paramètre deux, argument trois, paramètre trois. Permettez-moi donc de continuer maintenant et d'exécuter cette fonction. Je vais appeler cette fonction. Ça va dire, je suis Ono, je viens du Cap en Afrique du Sud. Comme vous pouvez le constater, cela va donner le résultat suivant. Ce que je vais faire en fait, c'est aller sur une haie et simplement mettre un point final et nous pouvons y mettre un point final de l'espace à partir du Cap Juste la ponctuation change ici. C'est bon, allons-y. Maintenant, permettez-moi, par exemple, de changer quelque chose. Si je devais changer, la première valeur serait Cape Town et la seconde valeur. Donc, mon deuxième argument, dois-je dire non, et je lance celui-ci. Ça va dire que je suis Capetown, je viens d'Anno So Africa Vous pouvez donc voir le problème ici. C'est pourquoi les arguments positionnels sont importants, accord, parce que vous pouvez voir, bien sûr, Capetown est le premier argument, et qu'il appartient et est maintenant attaché au premier paramètre qui est le Arno, qui est le deuxième argument positionnel appartient désormais à la ville, et bien sûr, l'Afrique et le pays sont donc toujours les mêmes Mais dans notre déclaration imprimée, vous pouvez voir ici la différence qu' il est dit maintenant que je suis Cap, je viens d' Arno parce qu'Arno est techniquement lié à la ville. Vous pouvez voir le problème ici et pourquoi il est important que l'ordre soit important lorsque vous définissez vos arguments positionnels L'ordre de vos arguments doit correspondre à l'ordre de vos paramètres dans votre fonction. Il s'agit d'une analyse plus approfondie des arguments positionnels. Maintenant, je veux le reculer. Et c'est ce que nous pouvons faire. Allons-y. Je m'appelle Ano. Je viens du Cap, en Afrique du Sud Parfait. Arguments positionnels Supposons maintenant que nous voulions utiliser l'argument du mot clé. Contrairement aux arguments positionnels où l'ordre est important, les arguments liés aux mots clés ne le sont pas Ce que vous feriez essentiellement ici, c'est que lorsque vous définissez vos arguments, vous pouvez les affecter directement à vos paramètres ici. Nous avons donc le nom, la ville et le pays, mais nous pouvons les attribuer ici directement. Et dans ce cas, l'ordre n'aura pas d'importance. Donc, peu importe si je changeais le premier argument avec, par exemple, Cape Down, le second Anno, et que je quittais le *** de l'Afrique, cela n'aura pas d'importance car vous allez attribuer les paramètres ici à l'avance L'ordre ici n'aura donc aucune conséquence. Laissez-moi vous montrer ce que je veux dire par là. Si je devais simplement effectuer un zoom arrière pour le moment et me laisser le configurer comme suit. Anno sera, bien sûr, le nom. Je peux dire que nom est égal, puis Arno. Ensuite, bien sûr, nous allons avoir le Cap. Nous devons dire que la ville est égale au Cap et à l'Afrique du Sud. On peut dire que le pays est égal à l'Afrique du Sud. OK. Maintenant, si je devais exécuter ce code maintenant et l'exécuter, comme nous pouvons le voir ici, il dirait « non », je viens du Cap en Afrique du Sud. Cela fonctionne exactement comme il se doit. C'est ainsi que vous pouvez le remplacer par des arguments par mots clés, mais nous ne voyons pas vraiment de différence ici en ce qui concerne l'ordre, peu importe car techniquement, on pourrait dire qu'Ono est là et que c'est le nom, Capetown est le deuxième argument, et donc l'Afrique troisième et qu'elle est séparée par le commerce C'est ce que l'on pourrait argumenter. Mais laisse-moi te montrer quelque chose. Permettez-moi maintenant de changer de ville en premier lieu de l' argumentation. Laisse-moi faire ça. OK, permettez-moi de le supprimer et de l'inverser. Techniquement parlant, on pourrait penser que Cap est le premier endroit qui devrait porter le nom. La seconde est non et elle devrait se situer sur le plateau. Techniquement, les positions étaient en ordre. Mais dans ce cas, cela fonctionnera toujours comme il se doit. Si j'exécute le code, il indiquera toujours que je suis Arno. Je viens du Cap en Afrique du Sud. Même si techniquement nous avons changé de commande, vous pouvez voir que la commande n'a pas d'importance du tout. Nous définissons donc les valeurs des paramètres eux-mêmes. Au lieu de substituer directement dans les paramètres définis dans la fonction, nous indiquons la valeur à l'avance Le paramètre recherchera donc automatiquement ce qui a été défini ici dans cet argument dans cet appel d'arguments que nous sommes en train de définir. C'est ainsi que nous pouvons continuer et définir les arguments de vos mots clés. L'ordre n' aura donc pas d'importance. OK. Comme je ne l'ai pas mentionné détail dans les cours théoriques, vous vous demandez probablement : d'accord, nous avons un pays égal, nom égal et une ville égale. Alors, comment appelle-t-on cela dans Payson  ? Parce que nous savons que l'argument est essentiellement basé sur l'Afrique du Sud, Arno et le Cap , mais comment appelle-t-on le reste Maintenant, il n'y a pas de terme réel dans Pyson pour désigner ces formes de déclarations OK, il n'y a donc pas de véritable nom pour cela. Mais le nom le plus proche qui serait le plus précis serait saisi avec les noms de vos paramètres Nous avons donc une ville égale, nom égal, un pays égal. Vous pouvez donc appeler ces noms de paramètres, d'accord, ce qui est essentiellement le cas ici pour les noms de paramètres. C'est donc en quelque sorte ainsi que vous pouvez vraiment l'appeler directement. Vous pouvez également y faire référence sous le nom d'étiquettes de paramètres. C'est un autre terme que j'ai déjà entendu. C'est donc à nous de décider comment vous voulez le reformuler Mais les noms de paramètres sont assez clairs ici. Et tout ce que vous pouvez vraiment voir ici, c'est que vous associez strictement votre paramètre à vos arguments. C'est ainsi que vous pouvez voir ce que vous faites ici avec les arguments par mots clés. OK. Donc oui, c'est ainsi que nous pouvons utiliser les arguments positionnels et par mots clés OK. Donc, ce que je vais faire, c'est aussi inverser la tendance. Je vais déplacer le pays ici et je vais le placer au premier plan maintenant, juste pour vous montrer la différence ici. Donc, si j'exécute le code, je vais toujours exécuter le même. Mais maintenant, permettez-moi de changer cela, et nous n'allons plus le configurer comme argument par mot clé. D'accord ? Nous allons maintenant le définir comme arguments positionnels Souvenez-vous donc du format dans ce format ici, ceux-ci sont considérés comme des arguments de mots clés. Si nous devions simplement ajouter les valeurs telles quelles, cela serait considéré comme des arguments positionnels Souvenez-vous donc de la structure entre les deux. Donc maintenant, si je lance mon code ici, ça va devenir complètement fou parce que l' Afrique du Sud porte le nom de l'Afrique du Sud, Cap est une ville et Nu est le pays. OK, donc des arguments de position et de mots clés. Maintenant, ce que je veux que nous fassions, c'est d'aller de l'avant et de travailler sur un autre exemple juste pour nous entraîner afin que nous puissions avoir une meilleure idée des arguments positionnels et des arguments par mots clés Bien, alors continuons et pratiquons un peu plus. OK. Commençons donc par la fonction qui se concentrera sur les arguments positionnels, puis nous travaillerons sur les arguments des mots clés OK. Je vais donc dire Def, et ce sera une fonction appelée Watch Underscore Movie. C'est très simple. Cela va prendre en compte deux paramètres. Nous allons d'abord avoir le nom du film. Donc je vais dire film, puis je vais dire la personne. Alors, avec qui suis-je en train de regarder le film dans mon côlon, et ensuite je vais dire Imprimer. Je suis allée regarder puis espace, et je vais ajouter le plus, puis je vais avoir le film, l'espace, puis je vais dire whiz et plus, puis nous aurons une personne OK. Voilà, donc je vais avoir une telle intelligence Je pourrais l'ajuster. Je suis allée voir You can say, par exemple, Star Wars with Jane. C'est tout simplement très simple. Ensuite, je vais appeler cette fonction, et je vais dire « regardez film de soulignement » et les arguments positionnels Tout d'abord, je vais avoir le titre du film. Donc, ici, je vais dire Star Wars. Deuxième argument, je vais dire Jane. C'est très simple. Donc ça devrait continuer et faire passer les stars au cinéma, Jane en personne. Il va donc être imprimé. Je suis allée voir Star Wars avec Jane. Allons-y et exécutons ce code. Parfois, nous avons juste besoin de le relancer. Allons-y. Je suis allée voir Star Wars avec Jane. Et cela va le produire pour vous en conséquence, comme ça. OK, ce sont donc des arguments positionnels. Maintenant, disons que je devais changer de position, disons Jane, Star Balls, et que je commets accidentellement une erreur et que je lance ce programme. Je dois dire que je suis allée voir Jane with Stars. Cela n'a aucun sens. Alors, comment l'argument par mot clé peut-il résoudre ce problème pour nous ? Maintenant, si nous le codons de cette façon, nous n'avons pas besoin de le modifier. Nous pouvons simplement utiliser un argument de type mot-clé. Reportez-vous donc au nom du paramètre. Alors dites explicitement, OK, la personne est Jane. Et le cinéma est égal à Star Wars. Maintenant, de cette façon, si j'exécute le code, laissez-moi enregistrer si je l'exécute, je me suis dirigée vers Starwars avec Jane De cette façon, cela vous aidera à résoudre tout type de problème que vous pourriez rencontrer avec l'argument positionnel, et vous pourrez simplement l'ajuster sans avoir à apporter un changement radical ici Cet ajustement va donc être effectué. Nous l'avons donc maintenant remplacé par des arguments sous forme de mots clés. Maintenant, même si j'ai déjà mentionné que nous pouvons les appeler nos noms de paramètres, une autre raison que je souhaite également ajouter à ce processus , connue sous le nom d' arguments de mots clés, est que vous pouvez également traiter ces noms de paramètres ici qui sont déclarés comme des mots clés. C'est aussi pourquoi en Python, ils l'appellent arguments de mots clés. N'oubliez donc pas que si je ne veux pas trop me concentrer sur l'utilisation de ces mots clés, c'est parce qu'ils sont essentiellement nos paramètres ici. OK, donc je veux juste que vous gardiez un esprit ouvert et une bonne esprit ouvert et une perspective sur la logique et le formatage ici. La meilleure façon de vraiment consolider vos connaissances ici est donc d'examiner le format Si vous définissez nom de vos paramètres et que vous dites « égal » à un argument, cela signifie que cela est considéré comme un argument de mot clé. Si vous ajoutez directement des arguments pour coder en dur des valeurs, ce seront des arguments positionnels. C'est bon, les gars Je sais que c'était un peu détaillé, mais je voulais juste approfondir un peu la question afin que vous compreniez le processus. Maintenant, je vais faire un exercice de laboratoire supplémentaire, mais elle va se concentrer sur le mélange des types d'arguments. Cela va donc être purement pratique. Nous n'allons pas nous intéresser à l'aspect théorique car nous l'avons abordé sur le plan technique. Je pense donc qu'il est préférable que vous appreniez visuellement à mélanger les types d' arguments. Ce sera donc un prochain exercice optionnel que nous allons faire. Je ne vais donc pas encore supprimer le code ou quoi que ce soit d'autre. Cela doit être poursuivi. Mais si vous voulez continuer et passer à la prochaine leçon officielle, qui portera sur les arguments par défaut, vous pouvez le faire. C'est donc juste quelque chose que je voulais mentionner pour que vous en soyez conscient. Donc, pour ceux qui veulent en savoir plus sur le mélange des types d'arguments, ce sera une leçon unique, mais elle ne sera pas aussi formelle. Tu peux juste rester avec moi tel quel. Si ce n'est pas le cas, vous pouvez simplement supprimer le code que vous avez , puis passer à la prochaine leçon officielle. 39. Mélanger les types d'arguments - [Laboratoire facultatif]: Bonjour, tout le monde. Bienvenue au prochain exercice pratique de laboratoire, qui sera une leçon bonus optionnelle que vous pourriez voir, et nous allons essentiellement apprendre à mélanger les types d' arguments. Dans cet exemple, nous allons mélanger nos arguments positionnels et nos arguments mots clés lorsque nous appelons une fonction particulière Là où nous nous sommes arrêtés, c'est comment mapper les arguments positionnels et les arguments par mots clés Cette fois, je vais vous montrer comment mélanger et assortir les deux. Cependant, il existe un ensemble de règles que vous devrez suivre, etc. Bien, commençons donc l'exemple précédent et là où nous nous sommes arrêtés pour la dernière fois. Comme vous pouvez le voir ici, j'ai cette fonction qui dit «  je suis allé regarder », puis «   le film » et « la personne ». Maintenant, si je dirige ce cody, cela dira que je suis partie vers les étoiles avec Jane Maintenant, les positions ici. Comme nous pouvons le voir, nous avons Jane et Starwars, et le paramètre est d' attendre une personne, abord un film, puis une personne Ce code fonctionne parce que nous utilisons des arguments de mots clés et que nous indiquons explicitement le nom du paramètre et lui attribuons la valeur associée Il s'agit de l'utilisation d'arguments de mots clés dans le format des objets. Maintenant, si je devais supprimer ces arguments de mots clés et les remplacer par les arguments positionnels bruts, en d'autres termes, si je devais dire stones et disons Jane, et exécuter le code Je suis allée voir Jane with Sows, ce qui n'a aucun sens car la fonctionnalité d'arguments positionnels par défaut est désormais la fonctionnalité d'arguments positionnels par défaut en place Jane va donc au cinéma et Stows va en personne. OK, c'est la raison pour laquelle nous sommes allés de l'avant et utilisé nos arguments de mots clés pour le modifier aller de l'avant et avons envoyé la personne Okay, sous le nom de Jane, puis le film sous le nom de Star Wars. Et puis, lorsque nous l'exécuterons, cela corrigera pour nous, car arguments du mot-clé s'ajustent et nous attribuent la valeur directement ici Il va donc s'ajuster correctement et rechercher le nom du paramètre là où il a été défini comme argument dans cet appel de fonction, où nous spécifions les arguments Maintenant, nous pouvons également mélanger les temps de discussion, ce que je ne vous recommande pas de faire. Je vous recommande de vous en tenir aux positionnels ou aux arguments de mots clés tels quels Mais il est également bon d'avoir une meilleure idée des fonctionnalités supplémentaires. OK. Malheureusement, il y a des règles à ce sujet. Maintenant, l'idée de l'ensemble de l'argument positionnel et des arguments des mots clés est que vous ne pouvez le faire que de certaines manières Si, par exemple, je devais changer l'une des options ici, l'un de ces arguments de mots clés en argument positionnel, cela fonctionnera dans certains cas, dans d'autres cas, cela ne fonctionnera pas Comme nous le savons maintenant, la personne est liée au deuxième paramètre ici et le film est lié au premier paramètre. Si je devais supprimer l'argument du mot clé. Dans le second, comment puis-je dire « état » dans le deuxième set ? Vous pouvez voir qu'il y aura une erreur indiquant que l' positionnel ne peut pas apparaître après l'argument du mot clé Maintenant, nous avons cet argument de mot clé ici, et nous avons cet argument positionnel, vous ne pouvez donc jamais avoir d'argument positionnel après un argument de mot clé Vous devrez toujours au moins avoir d' abord vos arguments positionnels, puis plus tard, vous pourrez avoir vos arguments de mots clés OK. Maintenant, une autre chose que je voudrais mentionner, c'est que si vous l'avez fait dans l' autre sens et disons que je l'ai remplacé par, bien sûr, c' est un film, c' est égal à la télé, c'est très bien Maintenant, laissez-moi faire ce qui a été dit tout à l'heure. Maintenant, je vais prendre Jane, par exemple, qui est mon argument positionnel, puis j'ai mon argument par mot clé Maintenant, techniquement parlant, vous diriez cela fonctionne parfaitement bien. C'est ce que l'on pourrait supposer. Mais si nous enregistrons et exécutons ce code, nous allons obtenir un message d'erreur indiquant que Watch movie a plusieurs valeurs pour l' argument movie. C'est le problème que nous rencontrons. Maintenant, en voici la raison. Ici, Jane et Jane suit, bien sûr, la règle de l'argumentation positionnelle, qui sera attribuée au film, mais nous avons également un film ici Nous devons attribuer quelque chose à une personne. C'est là que commence tout le truc dans ce domaine. OK. Donc, pour que vous puissiez combiner efficacement ces temps de dispute, vous devez faire quelques manœuvres ici Donc, la première règle que j'ai mentionnée est que vos arguments positionnels, d'accord, doivent toujours être les premiers, puis vous pouvez utiliser un argument par mot-clé Et deuxièmement, vous devez faire attention à ce que vous avez assigné ici Ce que nous allons devoir faire dans cette situation, c'est changer ce que nous avions avant et lui donner du sens. Il faudrait donc dire Star Wars, pour que cela satisfasse d'abord le film Et puis ici, nous allons vouloir remplacer par le nom de la personne. Et nous devons définir ce paramètre sur person afin qu'il soit ajusté ici en conséquence. Alors maintenant, si je devais le sauvegarder et exécuter mon code, il serait écrit : « Je me suis dirigé vers des stands avec J. D'accord ? Maintenant, voici comment intégrer vos deux types d'arguments. Donc, les stands vont au cinéma et quelqu'un va voir J. Et c'est ainsi que ce processus fonctionnerait OK ? Maintenant, ce que je tiens à mentionner ici dans le résultat c'est que vous devrez toujours suivre vos arguments de cette façon si vous voulez intégrer les deux. Alors allons-y et travaillons sur un autre exemple complètement différent. Permettez-moi de supprimer ce code. C'est vrai. Allons-y et passons à l'exemple suivant. OK, supposons que je définisse une fonction appelée séquence. Je dis De sequence. J'ai A, B et C. Je peux alors simplement imprimer les valeurs associées dans l'instruction d'impression et dire, A, B, C. Ensuite, je veux appeler la séquence de fonctions, afin de pouvoir dire séquence. Ensuite, je pourrai traverser une vallée. Faisons une simple vérification ici. Je veux dire un, deux, trois. Ici, j'utilise des arguments positionnels. Laissez-moi enregistrer et exécuter ce code. Sorties un, deux et trois. Maintenant, permettez-moi de continuer et de remplacer cela par les arguments par mots clés maintenant. Je vais juste changer de position. Je vais continuer et dire, disons, que A est égal à deux, C égal à trois et B égal à un. Sauvez Zach, Runach. J'en ai deux, un, trois parce que nous pouvons voir que A sera, bien sûr, B sera un et C égal à trois, et l'ordre ici est A, B et C, ce sera deux, comme vous pouvez le voir, un et trois. Nous avons là les arguments des mots clés. Allons-y et remettons-le en position un, deux, trois. Voyons comment combiner ces temps d'argumentation. Avec les règles que j'ai mentionnées précédemment, n'oubliez vous ne pouvez pas avoir un argument de mot-clé devant un argument positionnel Si je mets ce paramètre sur A égal à un, nous verrons deux et trois auront un problème car positionnels ne peuvent pas apparaître après les arguments des mots clés N'oubliez pas que vous ne pouvez pas avoir ces arguments de mots clés en premier, toujours en position, toujours en position Nous devons donc en avoir un comme argument positionnel. Ensuite, ce que nous pouvons faire, c'est que nous pouvons techniquement définir B égal à deux, mais ensuite nous devons faire en sorte que C soit égal à trois, car nous ne pouvons pas avoir l' argument positionnel seul Donc, si je devais le lancer, il fonctionnerait de la même manière et c' est une façon mélanger nos temps de discussion. Mais vous remarquerez ici qu' en faisant cela c'est un peu, comment puis-je dire inutile ? Parce que vous ajoutez du code supplémentaire pour quelque chose que vous pouvez réaliser avec des arguments positionnels Parce que techniquement, un, deux et trois correspondaient déjà à la commande. Si vous les supprimiez simplement, vous auriez obtenu le résultat souhaité. Vous ajoutez simplement du code supplémentaire ici où cela ne vous aide pas vraiment. Donc, si vous mettez B et C, c'est juste du code supplémentaire, et c'est techniquement dans le même ordre. La seule utilité de la phase d'argument des mots clés est de les inverser. Vous pouvez donc techniquement aller de l'avant et changer la valeur. Nous savons que C est égal à trois et B égal à deux. Techniquement, vous pouvez simplement inverser la commande . Juste comme ça. Ensuite, si vous le lancez, bien sûr, vous en aurez encore un, deux et trois. Vous suivez donc toujours les mêmes règles que celles mentionnées. OK ? C'est vrai, les gars. C' est donc cet exercice de laboratoire très pratique sur la façon dont vous pouvez aller de l'avant et mélanger vos types d'arguments. C'est vrai, les gars. Alors c'est tout. 40. Arguments par défaut: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur l'argument par défaut. Jetons donc un coup d'œil. Très bien, donc vous vous demandez probablement, d'accord, quel est l'argument par défaut ? Un argument par défaut est donc un paramètre avec une valeur prédéfinie dans une définition de fonction qui est utilisé lorsqu'aucune valeur n'est fournie lors de l'appel de fonction. Maintenant, je sais que cela semble un peu confus, mais ne vous inquiétez pas. Je te promets que cela aura du sens. Maintenant, il est important de savoir que les arguments par défaut doivent être placés à la fin de la liste des paramètres, ce qui signifie que vous ne pouvez pas avoir un argument par défaut et avoir vos paramètres habituels juste après. Cela doit toujours être conforme à vos paramètres habituels. En d'autres termes, votre liste de paramètres. Maintenant, cela aura plus de sens lorsque nous travaillerons sur les exercices pratiques, alors ne vous inquiétez pas pour l'instant. OK, alors allons-y et jetons un coup d'œil à un exemple simple. Encore une fois, nous allons nous référer à un exemple typique de quelqu'un qui achète une voiture. Nous aurons ici une fonction qui dit « acheter une voiture » et qui prendra en compte les paramètres suivants. Nous avons la marque, le modèle, puis nous avons un argument par défaut, connu sous le nom de couleur égale au noir. OK. Maintenant, si vous regardez la fonction qui est Cladie, nous appelons la fonction et nous ne deux arguments au lieu de trois Nous ajoutons donc Mercedes, qui remplacera le paramètre de marque, et la classe S, qui remplacera le paramètre du modèle. Et au lieu d'ajouter un argument SRD pour référencer directement la couleur, nous utilisons un argument par défaut que nous attribuons, qui définit la couleur sur le noir Maintenant, ce résultat va générer la déclaration suivante avec la déclaration imprimée à ce sujet qui dit : Vous avez acheté une Mercedes Classe S noire. C'est donc une façon d' utiliser un argument par défaut en omettant l' argument direct que vous définissez dans la fonction que vous appelez et en le configurant simplement au niveau du paramètre que vous pouvez dire Vous le définissez donc comme argument par défaut. OK. C'est vrai. Maintenant, quelque chose que je tiens également à mentionner, c'est très similaire à un argument de mot clé. C'est un peu à l' envers, pourrait-on dire. Ainsi, au lieu de l'avoir dans l'appel de fonction, vous l'avez dans votre liste de paramètres habituelle entre parenthèses de votre fonction elle-même. Donc, juste un moyen rapide de le référencer de manière à essayer de mieux le comprendre. C'est ce qu'on appelle un argument par défaut lui-même. heure actuelle, une autre situation que je veux vous montrer est ce qui se passe si, par exemple, vous avez votre argument par défaut comme avant, mais que vous modifiez votre appel de fonction pour inclure la liste des arguments. Vous avez donc une Mercedes, une classe S et une voiture rouge. Donc, techniquement parlant, vous n'auriez pas vraiment besoin cet argument par défaut, qui est la couleur égale au noir, car vous avez un ensemble complet d'arguments dans votre fonction d'appel ici, et vous avez vos paramètres tels quels. Vous allez probablement vous demander : OK, que va-t-il se passer maintenant ? Est-ce qu'il va y avoir un conflit ? Est-ce qu'il va y avoir une erreur ? Eh bien, le résultat est le suivant, allez sortir dans le code, vous avez acheté une Mercedes rouge de classe A. Maintenant, l'argument que vous définissez se trouvait dans votre fonction d'appel va essentiellement remplacer ou remplacer l' argument par défaut que vous spécifiez avec vos paramètres dans la liste des paramètres très important de garder Lorsque vous travaillez avec vos arguments par défaut, il est très important de garder à l' esprit qu'il existe une préférence qui sera utilisée ici . C'est bon, les gars. Disons qu'en ce qui concerne le côté théorique des arguments par défaut, nous allons entrer plus en détail, et il y a quelques autres points que je voudrais mentionner en termes de paramètre, sauf ceux où vous pouvez définir des arguments par défaut et s'il y a un ordre ou une préférence que vous devez suivre. Mais c'est la partie principale que je viens de passer en revue en termes de base en termes de théorie pour les arguments par défaut. 41. Travailler avec les arguments par défaut - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique de laboratoire, qui sera axé sur les arguments par défaut. Commençons donc. Définissons donc nos fonctions. Je vais dire Df par soulignement. Ensuite, je veux passer en revue mes paramètres. Je vais donc dire marque, modèle. Et pour l'instant, je vais juste rester simple. Je ne vais pas encore utiliser d'argument par défaut . Je vais dire couleur. Ensuite, ce que je vais faire, c' est dire imprimer, puis je vais dire ou A, puis je vais dire plus. Cela ajoute de la couleur ici et dans les guillemets en plus. Ensuite, je veux ajouter une branche plus un espace, et nous pouvons ensuite ajouter le modèle à la fin. Nous y voilà. Ensuite, je veux appeler la fonction. Je vais dire par trait de soulignement, et je voudrais passer en revue l'argument suivant J'aurai une Mercedes, puis une classe S, puis une noire. Nous avons ce set. Exécutons notre code maintenant. Il est écrit : « Vous avez acheté une Mercedes Classe S noire. Mercedes est passée à la marque, à la classe S au modèle, au noir à la couleur, puis nous les avons incluses dans notre déclaration imprimée. OK. Parfait. Nous avons donc une fonction par défaut avec les arguments et paramètres positionnels habituels Voyons maintenant où un argument par défaut peut être utile. Supposons donc que vous ne souhaitiez pas énoncer explicitement un argument ici. C'est dans le cadre de votre fonction que vous appelez. Vous pouvez simplement le supprimer. Ce que vous pouvez ensuite utiliser est un argument par défaut place et vous pouvez simplement dire que la couleur est égale, et entre guillemets, vous pouvez dire noir. Maintenant, si vous deviez exécuter votre code, il indiquera tout de même que vous avez acheté une Mercedes classe A noire. C'est ainsi que vous pouvez utiliser un argument par défaut. Vous pouvez simplement continuer et configurer ce qui suit, comme vous pouvez le voir. Tout ce que vous faites ici est essentiellement de spécifier explicitement votre paramètre ici dans votre liste de paramètres de cette fonction. Maintenant, cela peut être utile, par exemple, si vous n'avez pas d'argument particulier à faire passer par votre fonction gesto et que vous êtes d'accord avec une valeur par défaut dans l'intervalle OK. Maintenant, la chose utile que vous devez garder à l'esprit ici est que si vous fournissez ensuite un argument lui-même dans l'appel de fonction, vous pouvez toujours conserver votre argument par défaut ici sans qu'aucun conflit ne survienne. Donc, si je devais explicitement indiquer l'argument pour le troisième paramètre, qui est techniquement la couleur, bien que le noir lui ait déjà été attribué. Si je devais le lancer, il y aurait une Mercedes Classe S rouge. Maintenant, la raison en est que tout argument défini dans la fonction qual remplacera tout argument par défaut défini ici dans cette liste de paramètres, devrais-je dire C'est donc quelque chose d' important que vous devez garder à l'esprit lorsque vous travaillez avec cela. Maintenant, une autre chose que je veux également mentionner concerne les règles de placement des arguments par défaut à la fin de la liste des paramètres. C'est donc un peu ce que je veux dire par là. Si je devais continuer, disons que je mets ce paramètre sur noir et que je supprime cet argument par défaut, je ne peux pas, par exemple, au début de la liste des paramètres, continuer en disant marque, et si je devais dire, disons, plus de SD Il va donc se heurter à un problème. Vous pouvez donc voir si je survole le paramètre ici sur le modèle ici, il indique des arguments autres que par défaut, non par défaut suit l'argument par défaut Donc, ce que vous pouvez voir ici, c'est que vous avez un paramètre normal ou un argument autre que celui par défaut qui suit un argument par défaut. Vous ne pouvez donc pas l'avoir dans la commande, même si nous devions exécuter ce code, d' accord, il indiquera toujours Mercedes ici. Et si je devais mettre ce ford, par exemple, comme simple test pour l'argument par défaut, il ne va pas être exagéré et comment puis-je dire « persister » à dire Mercedes, même si nous avons défini un argument par défaut, comme je l'ai déjà mentionné, vous ne pouvez pas avoir cet argument par défaut devant un autre argument « comment puis-je dire » en place ici. Je vais vous montrer comment cela fonctionnera. C'est donc très similaire à si vous regardiez l'exercice pratique de laboratoire et que vous continuiez à mélanger les types d'arguments, vous pouvez avoir quelque chose de similaire ici avec vos paramètres. Je vais donc vous montrer ce que je veux dire par là. Si je devais simplement revenir à la marque, nous avons la couleur et nous nous occupons de tout. OK ? C'est très bien. Ce que vous pouvez faire, c'est définir des arguments par défaut. OK ? Si vous travaillez avec, comment puis-je dire quoi que ce soit après votre paramètre initial ? Vous devez donc vous assurer que vous avez toujours votre premier paramètre pour bonne mesure n'ait pas d'argument par défaut. Vous ne devez pas commencer par un argument par défaut lorsque vous configurez vos paramètres. Comment puis-je dire vos paramètres ? À moins que vous ne travailliez qu' avec un seul paramètre. Mais si vous travaillez avec plusieurs d'entre eux, cela ne fonctionnera pas très bien. C'est bon. Alors laissez-moi vous montrer ce que je veux dire. Nous pouvons donc définir les valeurs par défaut ici, afin que je puisse définir la couleur sur la crête et le modèle sur la classe F. Et je peux supprimer ces arguments, enregistrer le code, et je peux l'exécuter. Je dirais que vous avez acheté une Mercedes Classe F rouge. Donc, ici, il utilise des arguments par défaut, comme vous pouvez le voir, et il les remplace simplement comme vous pouvez le voir ici et récupérer toutes les valeurs nécessaires D'accord, c'est ainsi que nous pouvons utiliser les arguments par défaut. Maintenant, je veux juste vous montrer quelques autres choses supplémentaires. Alors allons-y et faisons-le. Supposons que je définisse une autre fonction, je vais dire mort et je vais dire personne, et elle va juste prendre en compte un paramètre qui est le nom. Je vais juste dire le nom d'impression. Je veux appeler la fonction et elle dit non. C'est donc très simple pour la fonction, exécutons le code. Il produit non. Maintenant, ce que je peux faire, c'est définir un argument par défaut ici pour dire, je vais juste dire John. Et avant de pouvoir mettre le mien , je vais mettre John Dove, en fait Et disons que je n'ajoute aucun argument particulier ici dans l'appel. Il va produire John Doe. Donc, dans ce cas, cela fonctionnera d'avoir un argument par défaut ici en place. OK ? Mais cela ne peut pas être le début de votre liste de paramètres. Lorsque vous avez d'autres paramètres, comme vous l'avez vu précédemment, cela ne peut pas suivre une situation dans laquelle vous aurez un argument autre que celui par défaut par la suite. Cela ne fonctionnera donc que si vous avez, devrais-je dire, une situation où vous n'avez qu' un seul paramètre, mais ce n'est généralement pas le cas en Python, travaillerez généralement avec la majorité vous travaillerez généralement avec la majorité des paramètres. C'est pourquoi j'ai mentionné dans cet exemple endroits où cela peut être autorisé. Continuons. Ce que je vais faire, c'est vous donner un autre exemple. Créons une fonction simple. Je dirais que les informations sur les personnes sourdes souligneront, qui prendront en compte deux paramètres Je vais dire le nom et le pays. Je vais dire imprimer et je vais dire que je le suis et ce sera pour le nom. Ensuite, je vais dire, et je viens de, puis je vais dire pays. C'est très simple. Ensuite, je voudrais appeler cette personne fonctionnelle sous Square Info, et nous pourrons passer par l'honneur et nous pourrons dire Afrique du Sud, très simplement. Sauvegardons cela et exécutons notre code. C'est très simple : « Je suis un honneur et je viens d' Afrique du Sud ». OK, parfait. Nous l' avons donc mis en place. Utilisons maintenant un argument par défaut. Nous pouvons donc définir la valeur par défaut ici, par exemple, et je dirais que le pays est l'Afrique du Sud, et je peux exécuter le code, et il va s' exécuter Je viens Afrique du Sud en utilisant cet argument par défaut. Maintenant, disons que ce n'est pas le cas, et je viens en fait du Royaume-Uni. Et là, je voudrais juste m'adapter. En fait, cela n'aurait pas vraiment de sens. Disons, l'Angleterre. Allons-y. Gardez ça et fuyez, et ça dit : «  Je suis un honneur et je viens d'Angleterre ». Il prend donc maintenant en compte l'argument explicitement défini qui est utilisé dans l'appel. Maintenant, disons que je ne veux pas ajouter d' arguments de manière explicite. Donc, ce que je peux faire, c'est tout supprimer ici. Je peux simplement appeler la fonction, et je la réglerai sur Honor. Et je peux exécuter le code, et il dit : « J'y suis, et je viens d'Afrique ». Techniquement, vous n'avez donc même pas besoin de présenter d'arguments spécifiquement ici. Vous pouvez simplement utiliser les arguments par défaut à la place. C'est donc quelque chose que vous pouvez faire et ajouter cette valeur prédéfinie. Et encore une fois, souvenez-vous simplement de ce que j'ai déjà dit à propos de la règle selon laquelle les arguments par défaut sont placés. Donc, si je voulais me lancer dans une couverture, le définir différemment et le définir comme contenant mon argument, si je devais définir l'argument d'une manière différente et commencer par l'argument par défaut, vous allez voir si je le supprime. OK, nous allons avoir une sorte d'erreur. OK. Alors n'oubliez pas, les arguments autres que ceux par défaut, d'accord ? Ils ne peuvent pas suivre les arguments par défaut. Encore une fois, souvenez-vous simplement de cette règle. C'est bon, les gars. C'est donc tout pour l'argument par défaut. J'espère que cet exercice de laboratoire vous a été utile et que vous avez beaucoup appris. OK, alors c'est ça. 42. Arguments de longueur variable: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur les arguments de longueur variable. Commençons donc. Bien, alors, que sont les arguments de longueur variable ? C'est bon. Les arguments de longueur variable permettent à une fonction d'exclure un plus grand nombre d'arguments que ceux qui sont explicitement définis, ce qui permet une plus grande flexibilité dans le nombre une plus grande flexibilité dans le nombre d'entrées transmises. Maintenant, il existe deux types d' arguments de longueur variable que nous obtenons dans Pierson, à savoir les arcs Il s'agit donc d'un astérisque, puis désigné par Cela vous permet de transmettre un nombre variable d' arguments positionnels sans en spécifier le nombre exact Nous arrivons ensuite aux quarks, définis par deux astérisques au préalable, puis par deux astérisques au préalable, puis Cela vous permet de transmettre un dictionnaire d'arguments de mots clés sous forme de paire clé-valeur sans limite fixe. Très bien, simplifions les arcs et les quarks. Args est utilisé lorsque vous ne savez pas combien d'arguments positionnels peuvent être transmis à la fonction, ce qui permet de collecter des arguments positionnels supplémentaires dans Ensuite, nous avons les quarks, qui sont utilisés lorsque vous ne savez pas combien d'arguments de mots clés peuvent être transmis, et qui collectent des arguments de mots clés supplémentaires dans un dictionnaire N'oubliez pas les points essentiels. Lorsque vous voyez des arcs, ils collectent des arguments positionnels supplémentaires dans un tuple et Quark collecte des arguments de mots clés supplémentaires dans Souvenez-vous de la différence entre les deux. Allez-y, faites une analogie. Supposons, par exemple, que nous configurions des ingrédients. Nous pouvons créer une fonction appelée ingrédients. Nous pouvons ensuite transmettre plusieurs arguments positionnels tels que la farine, le sucre et le beurre, tels que nous les appelons dans notre appel de fonction ici Et nous pouvons simplement, au lieu d'entrer des paramètres particuliers, ajouter l' astérisque suivi d' arcs, puis le transmettre à la fonction dans laquelle nous voulons l'utiliser, comme dans l' instruction print et say args Notez que lorsque nous traversons des arcs ou des quarks, nous n'ajoutons pas d'astérisques Nous n'ajoutons les astérisques que lorsque nous les transmettons en paramètre dans notre fonction, ce qu' il est important de savoir Les modifications examinent comment nous pouvons le faire avec les quarks. Maintenant, je veux juste vous montrer à l'avance le résultat afin que vous puissiez voir les ingrédients ici. l'ai déjà mentionné, il sera produit sous forme de tuple, ai déjà mentionné, il sera produit sous forme nous puissions voir de la farine, du sucre et du beurre OK. Ce serait donc votre résultat. Vous verrez donc les ingrédients, puis vous vous souviendrez que ce sera dans un tuple Maintenant, l'autre exemple est si nous travaillons en termes d'utilisation de quarks. Nous voulons donc passer ici plusieurs arguments de mots clés. Nous avons donc ici une boisson, c'est du café, la taille est grande, le lait est de l'amande. D'accord ? Et ce que nous ferions alors, c'est dans la liste des paramètres, nous ajouterons simplement les astérisques doubles, puis nous passerons par les quarks Après quoi, nous imprimerons les détails de la commande, puis passerons en revue les quarks sans les astérisques dans le résultat suivant, qui sera le détail de la commande, sous forme de dictionnaire Cela va donc être en corrélation avec ce que j'ai mentionné précédemment, si vous voulez simplifier l'idée d' utiliser les arguments et les quargs Très bien, les gars, c' est tout pour ce qui est des explications théoriques de l' utilisation d' arguments de longueur variable Rappelez-vous donc encore une fois que si vous utilisez des arguments de longueur variable, vous allez utiliser astérix et des quarks astérix doubles 43. Utiliser des arguments de longueur variable - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique de laboratoire, qui sera axé sur l'argument de longueur variable. Commençons donc. D'accord. Créons donc une fonction simple. Je vais donc dire sourd et ça s' appellera « ingrédients ». Alors ce que vous allez vouloir faire, c'est que si vous voulez tout afficher dans un tuple, vous devez utiliser les arguments d'Asterix D'accord ? Cela produira donc toutes les données que vous transmettez aux arcs sous forme de tuple Ensuite, vous devez ajouter vos deux points, Demican dit print. Et je vais dire, par exemple, si ajoutez Y deux points, puis vous devrez ajouter votre virgule, puis vous pourrez dire args Maintenant, si vous voulez générer et utiliser des arguments dans votre fonction, vous pouvez simplement supprimer cet astérisque, mais vous devez le conserver dans cette liste de paramètres D'accord. Maintenant, nous voulons transmettre plusieurs arguments positionnels Permettez-moi d'appeler la fonction pour que je puisse dire « ingrédients », et là, je puisse passer à la farine, par exemple. N'oubliez pas que vous pouvez le mettre entre guillemets simples ou entre guillemets doubles , peu importe, sucre et beurre de mer. Vous pouvez même en mettre une variété. Nous pouvons aller de l'avant et exécuter le code, et nous pouvons voir que le résultat sera sous forme de farine, sucre et de beurre, et tout cela se trouve dans un tuple Et l'avantage d' utiliser des arguments est que vous pouvez transmettre autant d'arguments que vous le souhaitez, autant d'arguments positionnels Dois-je être clair sur cette note comme vous le souhaitez ? Donc, si je ne devais évoquer qu'un seul argument en particulier, c'est exactement ce que je ferai. Et si je devais en mettre plusieurs, du sucre, du beurre, du lait, j'économiserais et je courrais. Il affichera tout cela dans un tuple. Prenons un autre exemple. Disons la mort et je vais dire les informations personnelles. Je vais faire imprimer des arcs. Je vais dire deux points d'information, ajouter une virgule, puis je vais dire des arcs Appelons ces fonctions. Je vais dire des informations personnelles. Et ici, je peux tout transmettre. J'ai envie de dire John Doe. Disons DOB. Ensuite, par exemple, je vais dire 140295, par exemple, sous forme de chaîne, puis je vais simplement dire Afrique du Sud titre d'exemple, exécutons ce code, et nous pouvons voir ici qu'il imprime les informations à John Doe, date de naissance, 140295 Afrique du Sud Et tout cela, encore une fois, comme vous pouvez le voir, est affiché sous forme de tuple et ce sont tous des arguments positionnels Pensez donc aux arguments positionnels, aux arcs, aux arguments du clavier, aux quarks Passons maintenant à cette note, jetons un coup d'œil aux quarks. D'accord. Donc, un autre exemple, et ce sera sur les quarks. Je vais donc dire, Jeff, et laissez-moi passer à l'ordre, je vais noter les détails, et je vais passer par un double astérisque pour les quarks Imprimé à deux points. Et ici, nous pouvons dire détails de la commande, colon quark. Nous allons donc maintenant utiliser quarks et simplement omettre l'astérisque, puisque nous ne l'utilisons que dans le cadre de la définition ici, puis nous pouvons appeler notre fonction Nous allons maintenant utiliser des arguments de mots clés, et nous pouvons transmettre autant d' arguments de mots clés que nous le souhaitons. Je vais dire que boire est égal, et entre guillemets, je vais dire café. Taille large et amande au lait. Allons-y, enregistrons et publions ceci. Nous pouvons donc voir ici que la sortie sera dans un dictionnaire, et nous utilisons les multiples arguments de mots clés pour utiliser les quarks afin de tout afficher dans un dictionnaire D'accord. C'est ainsi que nous pouvons le faire. Et encore une fois, peu importe le nombre que nous avons. Maintenant, il est très utile que cela soit publié dans un dictionnaire et cela joue également un rôle plus étroit ici avec ce que vous définissez. Ici, lorsque nous définissons, vous pouvez dire les noms des paramètres, nous avons des signes relatifs aux boissons et au lait. Cela se présente sous forme de clés dans votre dictionnaire où les valeurs sont les arguments eux-mêmes Comme vous pouvez le voir, cela est affiché ici. Si vous pouvez vous référer à leçons de dictionnaires adaptées aux débutants, vous pouvez voir la combinaison ici et comment tout cela est lié au référencement Si je devais changer de boisson ici en boisson, gardez-la et faites-la fonctionner. Vous allez voir que la clé présente dans la sortie de ce dictionnaire va changer. Souvenez-vous simplement de cette structure. Génial. Ce sont des quarks. Prenons un autre exemple pour les quags. Allons-y et configurons-le pour l'achat d'une voiture, encore une fois, disons que sourd et acheter une voiture est la fonction. Nous allons ensuite passer par les quarks, et cela se trouvera dans un dictionnaire C'est pourquoi nous disons quarks et je veux dire imprimer Nous n'avons pas pu donner les détails de la commande. Nous pouvons dire cela aussi, en ce qui concerne les détails de la commande, et nous voulons passer naturellement en revue les quargs Ensuite, nous pouvons appeler la fonction, et nous pouvons spécifier ce qui suit. Tout d'abord, disons que je dirais Branch, et ce sera égal à Ford. Et nous pouvons alors dire modèle de classe F, puis nous pouvons dire que ce sera donc une Ford classe F, et nous pouvons dire couleur. Ça va être bleu. Allons-y. Allons-y sauvegardons et exécutons ce programme. Nous pouvons donc voir ici qu'il va renvoyer un dictionnaire parce que nous avons affaire à des quarks. Nous avons ajouté les arguments par mots clés et plusieurs arguments par mot clé, et comme nous pouvons le voir, le résultat sera le suivant. Donc, la marque, la forge, le modèle de classe F, sont de couleur bleue. Encore une fois, si je devais n'ajouter qu' un seul argument et exécuter le code, c'est exactement ce que je ferai. N'oubliez pas qu'il n'y a aucune limite ici, vous pouvez donc transmettre plusieurs arguments de mots clés. Ch. Voilà, nous l'avons. C'est ainsi que vous pouvez essentiellement utiliser une haie et travailler avec des types de longueur variable. Encore une fois, je vais le répéter juste pour que vous soyez au courant. N'oubliez pas qu'avec les arguments, vous travaillez avec des arguments positionnels qui se transforment en quarks de tuple, vous travaillez avec des arguments de mots clés qui se transforment en dictionnaire après leur sortie Et vous définissez l'astérisque avec des arcs et le double astérisque avec des quarks uniquement lorsque vous êtes dans la définition de votre fonction dans la Lorsque vous le saisissez dans la fonctionnalité des fonctions, par exemple, il dans la fonctionnalité des fonctions, par exemple, vous suffit de supprimer ces astérisques C'est vrai, les gars. pour cet exercice pratique en laboratoire. 44. Déballage des conteneurs: Bonjour à tous, et bienvenue à la prochaine leçon, qui portera sur le déballage des conteneurs Commençons donc. D'accord, vous vous demandez probablement ce qu'est le déballage de conteneurs En termes simples, le déballage des conteneurs vous permet de transmettre des éléments d'un tuple de liste ou d'un dictionnaire sous forme d' arguments distincts à une fonction en utilisant un astérisque pour les listes et les tuples ou un double astérisque pour tuples ou un double Jetons donc un coup d'œil ici, encore plus simplement. Astérix décompresse donc une liste ou deux en arguments positionnels et double Astérix déballe un dictionnaire en arguments de mots clés un OK, donc c'est juste quelque chose que vous devrez peut-être revoir pour plus de clarté. Mais dans tous les cas, allons-y et voyons comment nous pouvons visualiser l'ensemble de ce processus. Bien, disons que je suis moi-même, par exemple, et que je devais créer un programme pour me décrire à titre d'exemple simple J'aurais donc ma fonction qui dirait de décrire une personne. J'aurais trois paramètres, tels que le nom, l'âge et la ville. J'aurais une déclaration imprimée indiquant le nom puis l'âge. Et puis, bien sûr, toutes les années suivantes et vit dans la ville. Maintenant, ce que je peux faire, c'est ajouter toutes ces données et les stocker dans un tuple, puis je peux déballer le tuple en Donc, techniquement, ce que je ferais alors serait d' utiliser le seul astérisque, puis de me référer au tuple, qui est une information sur la personne Et cela va déballer, pourrait-on dire, tous ces arguments en termes de nom, âge et de ville, à condition qu' ils soient dans le même ordre Nous pouvons donc voir ici les arguments réels, et c'est ainsi que nous appellerions essentiellement la fonction et ajouterions ces arguments. Et cela nous donnera le résultat de Non il a 29 ans et vit Donc, en gros, tant que tout est dans cet ordre particulier, comme le numéro 29 Capetown, et que cela fait référence à l'ordre des paramètres ici, qui est name agent city, elle sera appelée dans cette fonction de description de la personne et elle sera considérée comme une information de soulignement de la personne d' Astérix puisqu'elle se trouve dans Et l'ordre dans lequel il se trouvait dans le tuple reflétera l'ordre que nous allons remplacer dans les paramètres de cette fonction Donc, une fois que nous l'aurons déballé ici à l'aide des informations personnelles d'Astérix, l'ordre que nous avions dans le tuple l'ordre que nous avions dans le tuple sera transféré aux paramètres Donc, non c'est le premier, puis 29 ans, puis le certificat Capetown est SRT Donc, non serait un nom. Comme il se trouve dans la même position, 29 ans atteindraient l'âge et le Cap irait en ville. OK. C'est ainsi que nous pouvons le voir. D'accord. Supposons maintenant que nous nous concentrions sur lié à l'éducation ou un programme lié à l'éducation ou à l'université, par exemple. Donc quelqu'un qui est allé à l'université ou qui a obtenu son diplôme. Notre programme serait un peu différent. Donc, dans ce cas, comme vous pouvez le voir, nous avons une fonction qui indique diplôme ou les informations sur le diplôme. Il prend en compte les paramètres du nom, du diplôme, de l'université et de l'année d'obtention du diplôme. Ensuite, nous avons une déclaration imprimée qui mentionne simplement une personne et indique qu'elle obtient un diplôme dans quelle université au cours de l'année de fin d'études, et les données seront ensuite stockées dans un dictionnaire. Vous pouvez voir les détails de la formation. Ici, ils seront exprimés en paires clé-valeur, car n'oubliez pas qu' un dictionnaire fonctionne par paires clé-valeur. Nous aurons donc le nom, le diplôme, l' année d'obtention du diplôme universitaire comme clés, puis les valeurs du BSC en technologie de l' information, Université du Cap, 2019 Ensuite, nous allons décompresser le dictionnaire en arguments de fonction Essentiellement, nous allons ensuite nous assurer d' ajouter un double astérisque cette fois parce que nous travaillons avec un dictionnaire, comme vous pouvez le voir ici, puis toutes les valeurs seront insérées dans les paramètres, comme vous pouvez le Le nom, le diplôme, l'université et l' année de fin d'études seront donc ajoutés. OK. C'est donc ainsi que nous procéderions. Et vous verrez, bien sûr, que vous obtiendrez un BSE en technologie de l' information à l'université du Cap, 2019 Maintenant, vous remarquerez également que le nom va coïncider avec le paramètre nom, diplôme par diplôme, paramètre universitaire, année de fin d' études, année de fin d'études, défini avec ce paramètre, puis les valeurs ici seront connectées aux paramètres associés que nous avons définis ici Guy. Je sais que cela peut être un peu à assimiler, mais ne vous inquiétez pas, nous allons beaucoup nous entraîner dans les exercices pratiques de laboratoire. Alors allons-y. 45. Effectuer le déballage des conteneurs - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique en laboratoire, qui sera axé sur le déballage des conteneurs. Commençons. Définissons notre fonction. Je dirais sourde et je veux appeler cela une personne soulignée Ce sera ma fonction. Ensuite, je veux transmettre trois paramètres. Je vais avoir un nom. Âge et ville, ajoutez deux points. Ensuite, j'ajouterai mon relevé imprimé, et je vais juste dire le nom cette fois, je vais juste utiliser de simples virgules Je ne vais pas utiliser la concaténation de chaînes juste pour varier un bit, ajouter une virgule, puis je dirai « âge », puis «   ans » et « habite Nous avons tout adopté en conséquence. Maintenant, allons-y et définissons un tuple et nous voulons stocker toutes nos données que nous voulons remplacer par le nom, l'âge et la ville Allons-y et définissons un tuple. Je dirais que les informations de soulignement de la personne en dehors de la fonction égales et tuple. Je vais dire RNO qui va remplacer le nom 29 qui va remplacer H et Capetown, qui va remplacer City Ensuite, nous devons appeler notre fonction pour pouvoir dire « describe underscore person », qui sera notre fonction, puis nous voulons déballer les données du tuple qui se trouve ici dans les la fonction ici Nous pouvons donc simplement dire, souvenez-vous, puisqu'il s'agit d'un tuple, nous pouvons ajouter un astérisque, et nous pouvons dire que la personne souligne les informations qui sont corrélées ici OK, c'est ainsi que nous pouvons procéder et définir ce qui suit. Le résultat final devrait donc être Non ». Il a 29 ans et vit au Cap Allons-y et lançons ce programme. Voilà, nous l'avons. Anu a 29 ans et vit au Cap Nous pouvons donc voir que nous avons maintenant obtenu le résultat escompté. OK, parfait. Très bien, c'est ainsi que nous pouvons procéder comme suit. Alors allons-y et pratiquons encore un peu. C'est bon. Et laissez-moi aller de l'avant et supprimer tout cela. Pensons à un autre exemple. Supposons que nous nous concentrions sur un déjeuner, par exemple dans un restaurant. Je vais donc dire lieu du décès, souligner l'ordre, et nous allons passer en revue certains paramètres Je vais dire « starter ». Plat principal et dessert. Je peux alors simplement dire imprimer, et je vais dire ici, je vais juste passer à travers pour ce soit simple à dire « démarrer ». Je vais utiliser la concaténation de chaînes, plat principal. Et un dessert. D'accord, on peut peut-être juste renforcer ça. Génial. Il nous faudrait donc maintenant saisir les informations. Supposons donc que les informations sur les aliments soulignent, et ce sera dans un tuple Je vais donc présenter les arguments ici. Donc, pour commencer, disons que nous avons un pont à l'ail. Le plat principal serait une pizza et un dessert. On peut juste dire crème glacée. Nous voulons maintenant décompresser ce tuple en argument de fonction. Je vais appeler la fonction, qui est placer le soulignement dans l'ordre Ensuite, entre parenthèses, nous ajouterons l'étoile, puis nous dirons « nourriture », soulignerons les informations, et cela les intégrera dans ces paramètres et les affichera dans cette déclaration d'impression Maintenant, nous pouvons exécuter notre code, et il est écrit pain à l'ail, pizza et crème glacée. Parfait. Ce que nous pouvons faire pour nettoyer tout cela, c'est simplement ajouter une virgule entre eux. Nous y voilà. Cette sortie nécessaire. Très bien, c'est ainsi que nous pouvons continuer et utiliser le déballage des conteneurs lorsque nous utilisons un seul astérisque pour déballer une liste ou un tuple utilisions donc ici un tuple. OK, c'est donc la première partie. Ensuite, nous pouvons décompresser un dictionnaire en arguments de mots clés Maintenant, avant de continuer , une dernière chose que je voudrais mentionner, souvenez-vous que lorsque nous utilisons cette étoile singulière ici astérix, le fait qu'elle déballe le tuple listal, souvenez-vous de l'essentiel qu' elle le transforme en argument positionnel Vous devez donc être conscient du fait que ce que vous mettez ici, valeurs ou les arguments que vous mettez ici, une fois que nous aurons ajouté l'astérisque au tuple ici lorsque nous le définirons, ils seront placés dans l'ordre que vous avez spécifié à l'origine dans votre tuple, ce qui en fait un Nous devons maintenant le faire pour les arguments des mots clés. Nous pouvons donc aller de l'avant et supprimer cela. Très bien, alors continuons. Définissons donc notre prochaine fonction pour continuer le déballage des conteneurs Nous voulons donc transformer nos données d'un dictionnaire en arguments de mots clés. Je vais donc définir ma fonction comme la mort et je vais dire « informations de soulignement du degré », puis je vais passer en revue différents paramètres J'aurai le nom, le diplôme, université, et je dirai « , année par année de fin d'études Ensuite, nous voulons avoir la déclaration imprimée, et je vais simplement rester simple. Je vais littéralement afficher le nom, et je vais dire plus et ajouter le coma, puis j'aurai un diplôme, j'aurai UNI et un diplôme Perfect. Nous avons tout mis en place. Maintenant, stockons nos données dans un dictionnaire. Je vais appeler mon enseignement du dictionnaire Underscore Details, et ce sera entre mes bretelles bouclées Maintenant, c'est là que les arguments des mots clés entrent en jeu. Les clés du dictionnaire seront les noms de vos paramètres, qui seront les mêmes que le nom, le diplôme, l'université et l'année du diplôme universitaire. Nous allons vouloir dire ici le nom. Pour commencer, et cela équivaudra à ce que vous puissiez dire la valeur ou, dans notre cas, l'argument Donc je vais dire non, virgule. Ensuite, nous aurons un diplôme, puisque c'est ce que nous avons ensuite dans la liste ici, et qu'il sera défini sur BC in IT, nous pouvons le dire. Ensuite, le paramètre suivant sera l'université Nous pouvons donc dire que l'université sera égale à celle de la ville du Cap, et enfin, nous avons le score de soulignement des diplômés, qui sera équivalent à 2019 C'est vrai. Maintenant que 2019 est un entier et que nous utilisons la concaténation de chaînes, la règle est que nous devons le convertir en Vous devez dire plus STR, donc vous devrez peut-être faire un peu de casting, juste comme ça. Nous allons pouvoir gérer cet entier. Juste un petit ajustement que vous devez effectuer. Je vais juste zoomer dessus pour toi. Rappelez-vous quand j'ai dit que cela se concentrerait sur les arguments liés aux mots clés. Nom dans le dictionnaire, cela serait considéré comme nos clés et ce que nous avons associé sont nos valeurs, comme vous pouvez le voir ici. Maintenant, lorsque nous travaillons avec des arguments de mots clés, ils seront traités comme le nom, le degré, interface utilisateur et le grade par année carrée seront les paramètres. Ce seront des noms de paramètres et ils seront égaux aux arguments « comment puis-je dire », qui seraient Ano Bety University of Cape Town 2019 Essayez de visualiser le processus en cours. OK. Donc, une fois que vous êtes satisfait de tout cela, vous pouvez appeler votre fonction. Donc, à la fin, nous pouvons aller de l'avant et faire exactement cela. La fonction ici est donc le degré sous le carré d'informations. Je vais donc dire degree under square info, puis nous voudrons l'appeler. N'oubliez pas que pour déballer le dictionnaire, vous devez ajouter deux astérisques, puis vous référer au nom du dictionnaire, qui est Éducation sous Détails de Square Comme ça. Et une fois que vous êtes satisfait de tout, vous pouvez continuer à exécuter ce code. Voilà, nous l'avons. Nous pouvons voir qu'il est écrit Honor BSE and IT University of Capetown, 2019. Bravo. C'est ainsi que vous pouvez utiliser une couverture et décompresser un dictionnaire en arguments de mots clés Prenons un autre exemple. Nous pouvons aller de l'avant et supprimer tout cela. Une autre façon de faire une couverture et de démarrer tout cela est de configurer quelque chose pour les détails de la commande, par exemple. Je vais régler ce qui suit. Je dirais que DF Order souligne les détails. Et nous pouvons dire, allons-y et ajoutons que je vais prendre un verre. Taille et lait. Nous pouvons avoir un type de lait, par exemple. Nous pouvons avoir du lait de vache, du lait d'amande, etc. Parfait. Maintenant, la déclaration imprimée. Ce que je vais faire ici, c'est juste donner les détails de la commande, et nous pourrons continuer et transmettre ce dont nous avons besoin. Ici, je vais dire boire Ajoutez les guillemets, je vais avoir des guillemets et du lait. Génial. Maintenant, ce que nous pouvons faire, c'est continuer et définir notre dictionnaire. Je vais donc aller de l'avant et dire, disons que disons cette boisson est un produit à boire. OK, allons-y. Appelle ça comme ça. Donc, d'abord, n'oubliez pas que nous utilisons des arguments par mots clés , à savoir boisson, taille et lait. Nous devons donc nous référer aux noms des paramètres. Nous allons donc boire du colon, et ce sera disons du café. Taille, grande et lait. Je dirais amande. Nous y voilà. Nous avons donc des boissons. Nous pouvons également simplement supprimer de l'espace de chaque côté. OK, maintenant nous devons appeler notre fonction, afin que je puisse dire ordre, souligner les détails Et entre parenthèses, d'accord, tu vas dire Astérix Astérix, boire du roi, souligner Cela va aller de l' avant et l'attribuer comme suit : boisson = café, taille = gros, lait = amande. OK, donc c'est comme ça que tout cela s' intégrera et nous pourrons exécuter le programme. On peut voir ici tous les détails, café, grands ormes. Vous devrez donc peut-être remuer cet espace. Nous y voilà. Et voilà. Nous pouvons donc également rendre ce bit plus propre. C'est bon, nous y voilà. Nous pouvons donc voir maintenant que c'est un peu plus clair. C'est bon, les gars. C'est donc essentiellement cela. C'est ainsi que nous pouvons déballer notre conteneur. Vous pouvez donc voir que c'est un moyen très utile si vous souhaitez simplifier la gestion de vos arguments et les transmettre à votre fonction, etc. C'est bon, les gars. pour ces exercices pratiques en laboratoire. 46. Arguments locaux et mondiaux: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur les arguments locaux et mondiaux. Jetons donc un coup d'œil. C'est vrai. Ainsi, les arguments globaux font référence à l'endroit où une variable est accessible dans un programme. Maintenant, examinons d'abord les arguments locaux. Maintenant, il s'agit essentiellement de variables créées à l'intérieur d'une fonction. Ils ne peuvent être utilisés que dans le cadre de cette fonction particulière et nulle part ailleurs, et ils disparaissent une fois la fonction a fini de s'exécuter ou de s'exécuter. Les arguments globaux, en revanche, sont des variables créées en dehors de la fonction ou d'une fonction. Ils peuvent être utilisés à l'intérieur et à l'extérieur des fonctions et ils persistent tout au long du programme. Nous pouvons constater que les bien plus d'avantages arguments globaux présentent bien plus d'avantages, comme nous pouvons le voir ici. Cependant, tout dépendra des exigences et des besoins de votre projet. Maintenant, examinons l'analogie pour nous simplifier davantage les choses. Maintenant, je veux que vous considériez une ville comme une envergure locale et un pays comme une envergure mondiale. Supposons que nous choisissions la ville du Cap comme exemple de portée locale et le pays Afrique du Sud comme envergure mondiale. Le Cap, en général, qui est une ville, peut donc recevoir ses propres fonds locaux de la part du maire, ce qui peut être considéré comme un argument fonctionnel. Maintenant, ces fonds n'appartiennent qu'à cette ville, et d'accord, cela n'affecte pas le budget national. Maintenant, si nous examinons un pays, par exemple, nous pouvons imaginer qu'il fournit un budget national à toutes les villes et que chaque ville a accès à ce budget, mais si une ville le modifie, cela affecte l'ensemble du pays en conséquence J'espère donc que cette analogie vous aidera à mieux comprendre les arguments locaux et mondiaux. Nous allons nous concentrer sur l'exercice pratique à ce sujet. C'est un concept assez simple à comprendre. Je pourrais également y ajouter un exercice pratique supplémentaire, mais c' est juste quelque chose que je voulais mentionner en termes d'analogies 47. Analyser la portée des arguments - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique en laboratoire, qui sera axé sur des arguments locaux et mondiaux. Commençons donc. Tout d'abord, nous voulons commencer par le niveau mondial. OK. Désormais, les arguments globaux et locaux font essentiellement partie de l' utilisation des variables. Nous définirions donc ce que l'on appelle une variable globale en termes d'arguments globaux. Donc, si je devais définir une variable et dire que le nom est égal, je voudrais dire que cela peut être considéré comme une variable globale. Si nous l'appelons dans le cadre de notre fonction. Donc, si je définis maintenant une fonction, très simple, qui est définie par def Grit. La fonction est donc Grit. Je peux dire imprimer. Je peux te dire bonjour. Ensuite, je peux simplement utiliser la concaténation de chaînes et dire plus nom, et cela va aller de l'avant et récupérer cette variable qui est le nom et utiliser directement dans Et c'est ainsi que nous pouvons accéder à une variable globale. Ensuite, lorsque nous appelons la fonction, simplement en disant bonjour, elle dit bonjour puis RNO Maintenant, si je lance ce code, il dira bonjour RNO C'est ainsi que nous pouvons faire une couverture et définir une variable globale. La variable globale est donc accessible dans une fonction moins qu'elle ne soit modifiée d'une manière ou d'une autre. Maintenant, laissez-moi vous montrer comment une variable locale est exécutée. Vous allez donc simplement le supprimer ici, et nous allons faire quelques ajustements. OK. Nous pouvons conserver notre fonction Greet pour le moment. Et c'était dans notre fonction, nous pouvons dire que message est égal à bonjour aro. Et je peux dire « imprimer le message ». Le message ici, il y a une variable, était dans ma fonction qui dit message et la valeur est hello honor et nous disons imprimer le message. Donc, quand je salue, cela va afficher bonjour ou parce que l'impression, comment puis-je dire que la fonctionnalité d'impression se trouve dans la fonction, et nous utilisons cette variable localement dans la fonction. Ce n'est pas à l'extérieur. Donc, si je devais exécuter ce programme, il donnerait le même résultat. Mais pour plus de clarté, je peux simplement modifier cela pour que vous puissiez réellement voir le changement. Bonjour, John, il va dire bonjour, John. Mais si je voulais afficher ce message et y accéder en dehors de ma fonction, si je devais dire imprimer, message. Vous allez voir ici quand je le soulignerai, il est écrit que le message n'est pas défini. C'est donc ce que j'entends par local et mondial. Il s'agit désormais d'une variable locale. Les variables locales n' existent qu'à l'intérieur de la fonction et ne sont pas accessibles à l'extérieur. Si nous obtenons une zone ici en disant « imprimer le message , c'est parce que la variable du message est, bien entendu, locale. C'est vrai. C'est ainsi que nous pouvons aller de l' avant et voir les différences en termes d'arguments locaux et mondiaux. Ils font référence à l' endroit où une variable est accessible dans un programme particulier. Vous pouvez voir la différence, nous avons une approche mondiale et une approche locale. N'oubliez pas que tout ce que vous définissez dans cette fonction en tant que variable reste dans la fonction. Tout ce qui est en dehors de ce qui est, par exemple, variable sera accessible partout. N'oubliez pas qu'il existe une marge de manœuvre quant à endroit où il peut être utilisé, etc. C'est vrai. C'est tout pour cet exercice pratique en laboratoire. Je sais que c'était assez court et bref, mais c'est un sujet assez simple à comprendre. Quoi qu'il en soit, je voulais en parler, donc c'est ainsi. 48. Utiliser le mot-clé global - [laboratoire facultatif]: Bonjour à tous, et bienvenue au prochain exercice pratique, qui sera axé sur l' utilisation du mot clé global dans les fonctions. Maintenant, c'est un bonus, devrais-je dire un exercice pratique à la lampe. Vous n'êtes pas obligé de le faire , mais c'est quelque chose de plus auquel je pensais et j'ai pensé qu'il pourrait être utile de l'ajouter, mais c'est certainement quelque chose qui revient parfois dans PySON sur un spectre intermédiaire Jetons donc un coup d'œil. Donc, le mot clé global. Permettez-moi donc de vous montrer par défaut si nous voulons simplement utiliser une variable globale juste pour la lecture. D'accord ? Ce que je veux dire par là est donc le suivant. Si je devais dire que le nombre est égal à cinq, un nombre, par exemple. Ensuite, je devais définir une fonction et dire « show », « underscore count Dans mon côlon. Supposons que j'ai une instruction d'impression et que je dis que count is, que j'y ajoute simplement count, puis j'appelle la fonction en disant show count. Il va exécuter cette ligne, qui va dire que le nombre est égal à cinq et que nous verrons cela lorsque nous appellerons cette fonction. D'accord. Bien entendu, cela utilise une variable globale car nous référençons à l'extérieur et nous pouvons l'utiliser dans cette fonction Permettez-moi d'exécuter ce code. Et il est dit que le compte est cinq. D'accord. C'est vrai. Voilà donc cette partie. Maintenant, le mot clé global est utilisé si vous souhaitez modifier votre variable. Donc, si nous devions modifier ce code, disons que je souhaite ajuster cette valeur attachée à cette variable. Ce que je peux faire, c'est dans le cadre de la fonction ici, je peux dire, globale. Et c'est le mot clé dont nous avons besoin. Et je vais associer cela au nombre parce que le nombre est traité comme une variable globale, donc nous disons décompte global, et cela est nécessaire parce que nous modifions le nombre de manière explicite. Et ce que nous voulons faire, c'est augmenter. Nous voulons juste y ajouter un, donc je peux dire count, et espace plus égal à un. Il va donc prendre la valeur actuelle et y ajouter une valeur pour l'ajouter Il y en aura donc, bien sûr, comment puis-je dire qu'il y en aura alors six. D'accord. Donc, ce que nous pouvons faire alors, c'est afficher le nombre maintenant, puis il en sortira six ici. D'accord ? Ce sera donc le nombre que nous avons ajusté ici dans cette fonction. Donc, si je devais exécuter ce code, nous pouvons maintenant voir que cette fonction compte six. Nous avons donc saisi cette variable particulière, y avons ajouté une variable et avons imprimé le résultat en reportant cette variable globale et en l'ajustant. Donc, si nous voulons modifier une variable globale dans une fonction et pas seulement la lire, nous devons spécifier explicitement ce mot clé global, et c'est tout l'intérêt de modifier une variable globale dans une fonction, et cela est généralement restreint si nous ne l'avons pas. Donc, si, par exemple, je décide de le faire sans dire Global, et que je le retire simplement. Et disons que count plus est égal à un puis count, vous verrez, si je lance ceci, cela affichera une erreur ici. Erreur locale non liée. Il traite maintenant cela comme une variable locale dans un sens, parce que c' est ce que l'on suppose, car nous apportons un ajustement ici en jeu. Nous disons simplement que le nombre plus plus est égal à un et il ne peut pas lire d'où vient ce nombre. C'est pourquoi vous devez continuer et indiquer explicitement le nombre global, ce qui vous permettra d'obtenir la sortie désignée. C'est bon, les gars. C'est tout qui est de cet exercice de bonus. Il s'agit donc d'un petit la perspective globale et locale. Alors allez-y et abordez-le. C'est bon. 49. Envoyer des variables en tant qu'arguments: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur l' envoi de variables sous forme d'arguments. Jetons donc un coup d'œil. C'est bon. Désormais, il n'est pas toujours nécessaire de définir une valeur codée en dur avec nos appels de fonction. Nous pouvons également passer par des variables à la place, c'est donc un concept très simple. Jetons donc un coup d'œil à ce que nous avons fait plus tôt dans le cours. Donc, auparavant, nous avons défini nos fonctions, défini un paramètre. Par exemple, nommez, puis ajoutez l' argument directement à la fonction que nous appelons. Dans ce cas, par exemple, salutation. Nous transmettons non par une valeur codée en dur pour ensuite remplacer le paramètre name , puis nous nous retrouvons dans l'instruction print où nous disons bonjour dans le nom, qui sera nu. Vous pouvez également définir une variable à l'extérieur. Vous pouvez donc créer un programme comme celui-ci dans lequel il vous suffit de définir une variable en dehors de votre fonction, puis de définir cette valeur. Et au lieu de saisir non directement comme nous pouvons le voir ici, nous passons simplement par cette variable particulière, qui est la première sur le nom du carré, qui va remplacer le nom ici par rno C'est pourquoi j'ai fait ce commentaire, et il va imprimer exactement les mêmes résultats. C'est donc juste quelque chose que je veux mentionner pour que vous soyez au courant. Vous pouvez simplement passer des variables à condition de les avoir attribuées au préalable. Il exécutera les mêmes programmes, le même résultat, exactement comme celui que je vous ai montré ici sur le côté gauche, qui a été codé en dur. Juste une chose à mentionner, c'est une chose très facile et simple à apprendre et à comprendre. C'est juste quelque chose important que je pense que vous devriez savoir, et c'est ainsi que nous pouvons envoyer des variables en tant qu'arguments. 50. Travailler avec des variables comme arguments - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique de laboratoire, qui sera axé sur l'envoi variables sous forme d'arguments dans des fonctions. Commençons donc. Ce sera donc un exercice assez simple, donc il ne sera pas si long. Alors allons-y et entraînons-nous un peu. Définissons donc une fonction simple. Je vais dire bonjour aux sourds. Je souhaite définir le nom de mon paramètre comme nom. Ensuite, je veux afficher la déclaration suivante qui dit bonjour, puis nous pouvons ajouter une virgule et transmettre le nom Maintenant, ce que nous avons l' habitude de faire, c'est appeler la fonction puis d'ajouter directement la valeur. Nous pouvons, par exemple, simplement saisir, disons, Katie exécute le code et celui-ci dit bonjour Katie. Supposons maintenant que nous ne voulions pas ajouter les valeurs directement, mais que nous voulions d' abord les affecter à une variable. Ce que vous pouvez faire, c'est dire, par exemple , le prénom, et nous pouvons le définir comme Katie, par exemple. Ensuite, là où vous soulevez votre argument, il vous suffit de saisir votre prénom, encore une fois, je veux juste configurer cela. Maintenant, si vous exécutez votre code, il affichera exactement les mêmes résultats. Supposons que vous puissiez continuer et envoyer vos variables sous forme d'arguments. Prenons un autre exemple. Dites sourd et je vais dire ici, préférez la boisson, je vais passer par ici, buvez, imprimez la déclaration, et je vais dire que j'aime boire. Et on va y mettre un verre. Ensuite, à l'extérieur, je peux ajouter mon verre préféré, appeler la fonction, et je peux m'y connecter, par exemple, exécuter le code Ça dit : « J'aime bien boire. » Allons-y et changeons les choses. Définissons une variable extérieure et définissons-la, car nous pouvons même dire qu'une boisson est égale à une boisson. Nous le définissons juste ici, puis nous pouvons passer à la boisson elle-même. Cela va faire une couverture et remplacer ce que nous avons ici dans le paramètre et si nous devions exécuter le code, j'aime bien boire aussi. OK. C'est donc une autre façon d'aller de l'avant et de le faire. Donc, même si les noms sont définis ici, donc drink here va prendre en compte la variable ici, remplacer drink here, qui est un paramètre, et c'est très important parce que parfois vous tombez du code et divers programmes et sur des échecs où ils restent les mêmes, juste pour tester vos connaissances. N'oubliez pas que la boisson ici est un paramètre, o, qui produira cette valeur. Boire ici est une variable. N'oubliez pas que si vous surlignez, vous pouvez voir la variable et le paramètre. Gardez cela à l'esprit. Mais ce que vous pouvez faire pour vous aider à faire la distinction, surtout si vous commencez, vous pouvez clairement différencier les deux afin de savoir que ce sont mes variables, ce sont mes paramètres. Encore une fois, bien sûr, si je cours, j'aime boire du thé. C'est juste un peu plus d'entraînement envoyer des arguments comme arguments. Ça fait partie de cet exercice. 51. Paramètre passant par une valeur ou une référence: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur le passage de paramètres par valeur ou par référence. Jetons donc un coup d'œil. C'est bon. Désormais, lorsque vous transmettez une variable à une fonction, Pyson la gère de deux manières Passez par valeur ou par référence. Examinons maintenant chacun d' entre eux en commençant par la valeur de transfert. Désormais, avec le transfert par valeur, la fonction obtient une copie de la variable d'origine, et les modifications apportées à la fonction n' affectent pas la variable d'origine. Maintenant, cela fonctionne pour les types de données immuables, et pour cela, nous avons int, donc integer, float, SDR, pour string et tuple donc très important de se rappeler que lorsque vous transmettez une valeur, cela fonctionnera pour les types de données immuables et nécessairement pour ces quatre types de données Ensuite, nous avons passé par référence. Maintenant, dans ce cas, la fonction obtient une référence ou une adresse mémoire de cette variable, et toute modification apportée à la fonction affectera la variable d'origine qui a été définie. Cela fonctionne maintenant pour les types de données immuables, non pas immuables, mais mutables, qui incluront une liste, un dict et un ensemble Ce serait une question de laissez-passer par référence. Les gars. Voilà pour l'aperçu théorique. Allons-y et passons à l'aspect pratique. 52. Explorer les valeurs et les références des paramètres - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique de laboratoire, qui sera axé sur le passage de paramètres par valeur ou par référence. Donc, la première chose que nous allons faire est de nous concentrer sur le passage par valeur, concentrant sur les types de données immuables, tels que les entiers et les chaînes Donc immuable, ce qui signifie qu'il ne peut pas changer la valeur une fois qu'elle a été configurée, transmise et assignée OK, alors commençons. Donc, ce que je veux faire, c'est définir une fonction. Je vais dire Def, changer le trait de soulignement. Ce sera le nom de ma fonction. Ensuite, je veux passer par X ou définir X comme paramètre. Alors je vais dire imprimer. Et je vais ajouter du texte pour dire à l'intérieur de la fonction, deux points. Ensuite, j'ajouterai un espace, une virgule, puis X. Ensuite , je veux appeler ma fonction et dire « changer le numéro de soulignement Et ce que je vais faire, c'est transmettre des valeurs codées en dur. Je vais dire cinq, par exemple. Ensuite, quand je lancerai ce code, il sera écrit dans la fonction 5. Nous pouvons donc voir que cet argument a été transmis et qu'il a remplacé X, puis X a été collecté et ajouté à la fonction d'impression ici, et j'en ai sorti cinq à la fin. Génial. Maintenant, allons-y et définissons-le comme variable pour le moment. Définissez num égal à cinq, et maintenant je vais passer je vais passer une variable ici dans une variable ici dans une variable tant qu'argument pour remplacer le paramètre. Maintenant, ce que je peux faire, c'est exécuter le code dans la fonction 5 et nous pouvons voir qu'il a été transmis comme il aurait dû l'être. Parfait. C'est là que la partie intéressante entre en jeu. Maintenant, disons, par exemple, je passe à ma fonction et que je dis que X va maintenant être dix. Réfléchissez à ce qui va se passer. Souvenez-vous de ce que j'ai dit : immuable, pas de changement. Donc, si je devais continuer à configurer et à exécuter le code, ça dirait dix. Maintenant, ce qui se passe ici, c'est que la valeur numérique qui est définie est la suivante : comment puis-je dire qu'elle est transmise au paramètre X, puis nous redéfinissons X et le fixons à dix Ainsi, la valeur qui sera conservée dans la fonction locale sera toujours dix. Maintenant, ce que je vais mentionner dans immuable, c'est que l'original restera inchangé Donc, ce que je veux dire par là, c'est que si je dis «   imprimer » et que je passe à la fonction et que je passe « non », vous verrez que la fonction extérieure ne change pas. Cela va donc être immuable, donc cela ne changera pas à l'extérieur, peu importe ce que nous faisons ici c'est dans la fonction elle-même localement Cela n' apportera aucun changement. Il n'y a donc aucun effet sur num en dehors de la fonction. C'est donc immuable. Maintenant, si nous devions le configurer telle sorte qu'il devienne mutable, les modifications seraient affectées de l'extérieur Ce que nous pouvons faire, c'est tester cela, par exemple, avec une liste. Alors maintenant, je vais vous montrer comment nous pouvons passer par référence au type mutable Alors faisons-le maintenant. La remarque principale à voir ici est qu'elle n'a pas changé en dehors de la valeur num, quel que soit réglage que nous avons apporté à la fonction, elle n'a pas changé Permettez-moi donc de vous montrer où cela va changer selon un type mutable tel qu'une liste Les modifications affecteront donc le résultat initial. Permettez-moi de définir une nouvelle fonction, def ad sur l'élément de score, et je vais définir le paramètre comme liste. OK, ce que je vais faire pour le moment, c'est juste dire «   imprime à l'intérieur de la fonction ». Alors je vais avoir ma liste de scores, et nous voulons juste ajouter cette virgule Ensuite, nous voulons appeler cette fonction particulière, mais nous devons ajouter des informations à une liste. Je vais donc dire des nombres, égaux, et je vais dire un, deux, trois. Ensuite, nous pouvons voir ajouter sous un élément carré, et nous allons dire des chiffres. Nous allons donc passer cette liste particulière ici à la mienne ici, puis il ne restera plus qu' à afficher ce qui est exécuté dans la fonction. Nous pouvons donc continuer et exécuter ceci maintenant, il est indiqué dans les fonctions un, deux, trois. C'est exactement ce que nous adoptons. Je veux aussi vous montrer ce que cela montre à l'extérieur. Donc, si je dis impression, fonction extérieure. Et si je devais dire des chiffres, fonction intérieure un, deux, trois, fonction extérieure un, deux, trois. Permettez-moi donc de continuer et modifier la liste d'origine dans la fonction. Donc, ce que je peux faire, c'est récupérer ma liste, je récupère ici à partir du paramètre, qui a attribué une valeur définie en nombres comme un, deux, trois, et je peux l'ajouter à cette liste, par exemple, je peux utiliser la méthode du stylo, donc je peux dire stylo à point et passer par quatre Cela signifie donc que la fonction va maintenant passer à un, deux, trois, quatre, mais nous voulons voir si elle change à l'extérieur. Si je lance ceci, G à trois maintenant que la fonction interne est maintenant 1234 et la fonction externe est 1234. Donc, même si nous configurons cette liste dans la fonction, cela aura également des conséquences extérieures. En d'autres termes, comme vous pouvez le constater, la liste est modifiée en dehors de la fonction. Comme c'était également le cas dans la fonction. Cela le rend donc mutable. Les modifications affectent donc l'original. L'original était donc les numéros un, deux, trois. Comme nous l'avons déjà dit et vu la fin, vous ne pouviez pas le modifier car il est immuable. C'est bon. J'espère donc que cela vous permettra de bien comprendre ce que j'entends par mutable, immuable en termes de changements et comment ils vont tous entrer en jeu C'est vrai. Passons maintenant à d'autres exemples. OK, maintenant le prochain que je veux faire sera un type immuable cette fois Cela signifie donc qu'il n'y a aucun changement, et ce sera une chaîne de caractères. Je vais donc dire sourd, modifier, souligner le texte, juste une fonction Je vais passer par le texte. Et je vais dire pour l' instant la fonction d'impression latérale. Texte. Ensuite, je peux dire «   modifier », souligner le texte Et ce que je vais faire pour le moment, c'est juste dire bonjour. OK, allons-y. C'est l'essentiel. Attribuons maintenant une variable. Je vais dire un message. Bonjour Maintenant, je vais passer par une variable par l'argument. Exécute-le maintenant. Bonjour Bien. Je le fais progressivement afin que vous puissiez simplement apprendre de chaque partie comment je configure tout cela Maintenant, la fonction extérieure fonctionne, donc je vais d'abord dire imprimer, fonction extérieure. Et ce sera le message. Maintenant, ce que je veux faire, c'est faire une mise à jour dans la fonction, mais avant cela, permettez-moi de réexécuter ce code. Vous pouvez donc voir la fonction intérieure, bonjour, la fonction extérieure, bonjour. Maintenant, si je devais apporter une modification, c' était dans la fonction locale et dire : « OK, le texte va maintenant être au revoir ». Il va donc maintenant aller sur une haie et dire au revoir. Ce sera donc le changement, et je continue à exécuter ce code. Vous allez voir que ce sera adieu dans la fonction intérieure, et qu'à l'extérieur, ce sera un bonjour. Vous pouvez donc voir que la modification du texte dans la fonction et que l'original que nous avions ici reste bien sûr inchangé et qu'il n'y a aucun impact ou changement sur celui-ci. Vous pouvez donc voir ici qu'il y a une différence dans le genre. Gretch. Riche. Maintenant, allons-y et reprenons par référence. Type donc mutable, et l'un d'eux est un dictionnaire. C'est un type mutable. Allons-y et définissons nos fonctions. Je dirais Def, mise à jour sous School Dict. Et nous pouvons simplement continuer et définir les parenthèses et nous pouvons les mettre ici, nous pouvons aller de l'avant et inscrire le primètre de M dict pour mon dictionnaire Ensuite, nous pouvons dire print pour le moment, et je veux dire inside function, deux-points, et nous allons passer en revue mon dict. Maintenant, ce que je veux faire, c'est me référer à update dict et continuer , en gardant cela ouvert pour le moment les parenthèses, puis je pourrai définir un dictionnaire Je dirais que personne est égale, et je vais définir la valeur clé ici, les paires clé-valeur, au singulier. Je vais dire le nom de Colon Alice. Est-ce que je voulais faire passer ça ? Je vais donc dire personne, et personne va remplacer mon dict, et il va dire inside function, puis mon dicta sera person, qui affichera le nom Alice dans la fonction Exécutons ça. Dans la fonction, nommez Alice. Parfait. Bien, alors faisons nos ajustements. Donc fonction extérieure, je vais dire impression, fonction extérieure. C sur l'espace. J'ai une personne. Vous voyez, c'est pareil à l'intérieur et à l'extérieur car nous n'avons fait aucun ajustement. La fonctionnalité de l'instruction d'impression consiste simplement à lire depuis l'extérieur de mon code. Permettez-moi de faire la différence au sein de la fonction elle-même et de dire mon underscoreject. Ici, je vais ajouter une nouvelle paire clé-valeur Je vais fixer l'âge et je vais le fixer à 28 ans. Nous allons maintenant ajouter une nouvelle paire clé-valeur nommée Alice. Nous aurons également 28 ans et cela va ajuster et modifier la fonction intérieure et ce résultat affectera également ce que nous voyons sur la fonction extérieure. Alors laissez-moi exécuter le code. Et voilà, nous pouvons voir que ce changement est, comme vous pouvez le voir, modifiable, des modifications une fois que les modifications ont affecté l'original Donc personne, la liste des personnes a été modifiée. Comme nous pouvons le voir en dehors de la fonction, elle a également changé. Très bien, nous y voilà. C'est ainsi que vous pouvez transmettre par valeur et par référence et faire la différence entre les types mutables et mutables N'oubliez pas que les modifications modifiables affectent l'original et que les modifications immuables n'affectent pas l' C'est bon. Voilà, nous l'avons. 53. L'opérateur astérisque: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera consacrée à l'opérateur Astérix Alors allons-y et jetons un coup d'œil. Bien, opérateur Astérix. Maintenant, l' opérateur astérix, comme nous pouvons le voir, désigné par un astérix est un opérateur spécial qui a utilisations différentes selon l' endroit et la manière dont il est Bien entendu, dans ce cours, et si vous avez déjà suivi un cours PySON adapté aux débutants, vous avez peut-être déjà vu cet opérateur lorsque vous multipliez, par exemple, et nous avons également appris un peu plus en termes d'arcs et de quarks sur la façon dont nous pouvons utiliser Mais je veux juste vous donner quelques autres cas d'utilisation et les scénarios indiquant où il est utilisé et comment il est utilisé, etc. Alors allons-y et plongeons-nous. Maintenant, je vais juste vous donner une liste des méthodes les plus courantes. Voici donc les plus courants de manière simple. Nous pouvons donc utiliser un astérisque pour la multiplication, donc en mathématiques, nous pouvons l'utiliser avec des listes et des tuples, par exemple Peut utiliser des arcs Astérix pour plusieurs arguments de fonction. Nous pouvons utiliser des quarks à double astérisque pour les arguments nommés dans les fonctions et nous pouvons utiliser un astérisque simple et un double astérisque pour transmettre des listes et Comme vous pouvez le constater, il existe de nombreux cas d' utilisation dans lesquels nous pouvons utiliser des astérisques. C'est vrai. Je voulais juste vous donner un petit aperçu, afin que vous ayez une vue d'ensemble Nous allons faire un exercice sur l'opérateur astérix, qui sera un peu plus diversifié et intégré, juste pour un peu de pratique, etc. Mais c'est tout ce que je voulais mentionner à propos l'opérateur astérix 54. Appliquer l'opérateur astérisque - Pt. 1 - [Labo]: Bonjour à tous. Et bienvenue au prochain exercice pratique en laboratoire, qui sera axé sur l'application de l'opérateur Astérix à de multiples cas d'utilisation dans Pyson Maintenant, bien sûr, il existe une infinité de cas d'utilisation disponibles. Cependant, je vais aborder la plupart des problèmes courants auxquels vous serez confrontés, et je vais également en ajouter un ou deux supplémentaires en termes de contenu bonus un peu disponible. Commençons donc. Tout d'abord, le cas d'utilisation le plus courant en mathématiques est la multiplication. Nous pouvons donc dire, par exemple, que le résultat est égal, et je peux dire que quatre multiplié ou que c'est l'astérisque par deux En mathématiques, le symbole astérix signifie multiplicateur. Je peux dire imprimer, résultat. Et j'en ai huit. Génial. Maintenant, allons un peu plus loin. Disons que j'ai un nombre égal, disons quatre, deux, cinq. Alors je peux simplement dire que le résultat final est égal au numéro un, multiplié par le chiffre deux. Et allons-y et imprimons le résultat final. Et c'est Run this 20. OK, c'est une autre façon de procéder. Ce que nous pouvons également faire, c'est le faire en fonction des résultats pour obtenir un résultat final. Donc, ce que je peux dire ici, c'est le résultat 1, et cela impliquera quatre multiplié par quatre. Le résultat deux va impliquer trois multiplié par trois, puis le résultat final sera essentiellement le résultat un, puis encore une fois, multipliez-le par le résultat deux. Nous allons donc obtenir ce résultat, stocker dans ce résultat variable. Nous allons obtenir ce résultat, le stocker dans le résultat variable 2. Ensuite, nous obtenons une autre variable et multiplions les résultats à partir de ce que nous avons là. Enregistrez ceci et exécutez le code. Oh, je dois dire imprimer, excusez-moi. Impression, résultat final. Et nous en avons 144. C'est ainsi que nous pouvons utiliser les mathématiques pour multiplier les nombres. Ce que nous pouvons également faire, c'est répéter des chaînes et des listes. Donc, par exemple, si je dis que le texte est égal à haut, John. Dehors, je peux ajouter l' astérisque et dire trois. Ensuite, je peux dire « Imprimer le texte ». Alors maintenant, si je lance ce code, il dira : « Bonjour, John, bonjour, John ». Bonjour, John. OK. C'est donc ce que nous pouvons faire à cet égard. Maintenant, ce que je veux faire, c'est y ajouter un espace. Allons-y. Bonjour John, Hijohn est un peu plus clair à voir maintenant. Et il va juste le multiplier par trois. Maintenant, puisque nous travaillons avec des chaînes, il va juste le répéter trois fois. C'est ainsi que cet astérisque s' applique aux chaînes. Contrairement aux nombres, il exécutera en fait la fonctionnalité elle-même en termes de multiplication brute. Maintenant, nous pouvons réellement ajuster cela. Le texte 1 est donc haut. Le deuxième est John Doe. Et on peut dire que le résultat final est égal. Et ce que je vais faire ici, c'est dire deux fois deux fois deux. Et puis je vais dire texto un plus ext deux. Nous utilisons donc la concaténation de chaînes ici, et cela fonctionnera bien car nous avons actuellement affaire Donc, le texte 1 aura le résultat de deux fois plus élevés, puis John Doe, John Doe multiplié par deux. Ensuite, nous les combinons tous les deux. Et nous pouvons simplement l'imprimer, donc je peux dire « imprimer le résultat final » et exécuter ce code. Haut, haut, Jon Do, Jon. C'est ainsi que nous pouvons gérer les chaînes répétées. C'est vrai. Maintenant, nous pouvons également travailler avec des listes répétées. Donc, si je dis que les nombres sont égaux, et que dans ma liste, j'ai un, deux, je peux dire trois fois, puis imprimez la liste et vous remarquerez que si nous la lançons, elle contient un, deux, un, deux, un, deux. Ainsi, au lieu de créer , disons, trois listes distinctes, cela modifiera le contenu de la liste trois fois tout en le conservant dans une liste unique, comme nous pouvons le voir ici. C'est donc ce que la multiplication fera pour vous. Maintenant, nous pouvons rendre les choses un peu plus complexes, dois-je dire ? Nous pouvons avoir des chiffres deux, et mettons simplement ici, par exemple, quatre, cinq fois deux. Ensuite, nous pouvons à nouveau dire que le résultat final est égal. Et comme nous avons affaire à une liste, nous devons d'abord la convertir en chaîne, afin de pouvoir dire SDR, nombres, plus. Nous faisons donc une afin de pouvoir dire SDR, nombres, plus. Nous concaténation de chaînes, transtypons une chaîne, chiffres deux Et maintenant, si nous devions imprimer le résultat final, nous obtiendrions un, deux , un, deux, quatre, cinq, quatre, quatre, cinq. Maintenant, nous pouvons voir que tout est réuni, mais dans ce cas, c'est distinct. Ainsi, lorsque vous utilisez la concaténation de chaînes entre les deux listes, vous remarquerez que dans ce cas, elles seront séparées Donc, contrairement à ce que vous faites seul. Donc, si je devais imprimer des nombres comme vous avez vu plus tôt et que j'ai ce résultat, cela va se multiplier et ajouter Eh bien, dans ce cas, multipliez par trois, donc ça va afficher un, deux, un, deux, et un, deux, trois fois. Si nous devions effectuer une concaténation de chaînes dessus, ce qui se passerait, c'est qu'il se séparerait en deux entités et qu'il exécuterait ses fonctionnalités distinctes dans sa C'est vrai. Voilà. Donc, multipliez et massez, répétez les chaînes et moins encore. Ensuite, déballer les listes et les tuples. C'est donc une question assez simple. Donc, beaucoup de choses que nous allons également voir maintenant, nous les avons également abordées Ce sera donc une bonne révision pour vous aussi. Disons que j'ai quelques chiffres et que j'ai un, deux, un, trois et quatre. OK. Disons que je dis imprimer, et que nous pouvons ajouter l'astérisque, et cela nous permettra de déballer notre liste pour Je vais donc parler de chiffres. N'oubliez donc pas que lorsque vous décompressez votre liste, vous ajouterez un astérisque unique Et nous pouvons continuer et dire exécuter le code, et nous en avons un, trois et quatre. Maintenant, cela s'applique également si vous travaillez également avec des tuples. Donc, si je passe progressivement à des tuples, ajoute le singulier, l'astérisque singulier, excusez-moi et dites exécuter Il va également renvoyer la même chose. C'est ainsi que vous décompresseriez vos listes et vos tuples. Donc, étendre les éléments de votre liste , qu'il s'agisse de les imprimer ou de les passer à des fonctions, c'est là que cela sera vraiment utile. Supposons maintenant que je souhaite collecter plusieurs arguments en utilisant la notation Astérix args. Donc, ce que nous pouvons faire pour atteindre cet objectif, c'est créer une fonction Je veux donc dire que la mort indique les nombres, puis je vais passer deux points Rx et imprimer des arcs Ensuite, je veux appeler ma fonction, et je vais simplement les transmettre en un, deux et trois. Et tout cela va être rassemblé dans le paramètre args et il sera affiché ici dans args sans cet astérisque C'est ainsi que nous pouvons également utiliser dans une perspective fonctionnelle avec des arcs. Nous pouvons donc continuer et exécuter le code. Nous en avons un, deux, trois, et cette fois c'est au format tuple, comme vous pouvez voir comment cela a été produit. C'est vrai. C'est ainsi que nous pouvons le faire. C'est ainsi que nous pouvons prendre les multiples arguments et les stocker sous forme de tuple Maintenant, nous pouvons également collecter des arguments de mots clés, et nous pouvons les stocker sous forme de dictionnaire en utilisant des quarks. Nous pouvons donc le supprimer et dire sourd, afficher, souligner les informations Et ici, je peux juste dire quarks, ajouter dans les deux-points, et me souvenir quand je dis imprimer, quarks, puis nous voulons appeler notre fonction Nous allons donc dire afficher et souligner les informations, et entre parenthèses, nous pouvons passer à autre chose N'oubliez pas que les arguments liés aux mots clés cette fois-ci, puisque vous travaillez avec Car Quarks, je vais dire que le nom est égal, non, et nous pouvons dire que l'âge est égal et nous pouvons continuer et dire, allons-y pour 29, et nous pouvons continuer et exécuter ce code Nous y voyons la sortie du dictionnaire. Nous avons donc le nom, la clé d'honneur et la clé d'âge de 29 ans. Voilà, nous l'avons. C'est ainsi que nous pouvons également l'utiliser avec les quarks. Nous avons donc ici des astérisques doubles que nous devons appliquer. Génial. Maintenant, la prochaine chose est quelque chose de tout à fait nouveau que nous n'avons pas examiné. C'est ainsi que nous pouvons déballer avec le symbole astérisque. Et par exemple, si nous voulons ignorer les valeurs intermédiaires de la liste, par exemple. Donc, si je devais dire en premier et que je peux ajouter mon astérisque pour le milieu, alors je pourrais ajouter en dernier Je peux l'attribuer à une liste qui en contient un, deux, trois, quatre et cinq. Maintenant, si je devais imprimer chacune de ces variables, premier, au milieu et en dernier, vous verrez ce qui en sortira. Si je dis imprimer, d'abord, imprimer, et je veux dire «   milieu », « imprimer », en dernier. C'est Run this. Nous allons voir ici que nous en avons un, puis deux, trois, quatre et cinq. Cet astérisque appliqué ici au milieu collectera toutes les valeurs du milieu Si vous regardez ici, un est le premier s, cinq est à la fin, deux, trois et quatre seront au milieu. Il collectera toutes les valeurs du milieu de la liste, laissant la première et la dernière sous forme de variables distinctes, puis, comme nous pouvons le voir lorsque nous l' imprimons, elles figureront dans une liste elle-même et les nombres séparés ici, dans ce cas, ne seront que des entiers à eux seuls C'est ainsi que nous pouvons déballer avec l'astérisque dans un contexte donné comme celui-ci C'est vrai. Maintenant, allons-y et appliquons cela pour la fin. Et c'est nous qui gérons ça. Nous pouvons maintenant voir la première valeur ici, un et le milieu, qui s'étend sur deux. La dernière option ici va maintenant dicter qu' il y en aura trois, quatre et cinq Ce sera un peu différent ici si vous définissez cette option pour la dernière option ici. Cela va changer un peu. Cela va aller avec les dernières valeurs et cela prendra une fois que les deux premières auront été attribuées, pourrait-on dire. Tout d'abord, techniquement, vous diriez il sera jumelé à un. milieu, bien sûr, serait associé au suivant et le dernier, bien sûr, serait le dernier ensemble de valeurs d'une liste. C'est vrai. Passons ensuite à la fusion des listes, et nous allons nous assurer de les déballer également dans une liste Je vais donc, par exemple, dire que la liste un est égale, et dans la liste, j'aurai un, deux, la liste deux, nous allons en avoir trois, quatre, puis nous pouvons les fusionner. Je vais donc dire que fusionner est égal, et nous créerions une sorte de liste ici, vous diriez, ajoutez votre opérateur arithmétique, et vous pouvez dire Liste un, puis ajouter un opérateur arithmétique et dire liste deux Et puis, lorsque vous procéderez à l'impression fusionnée, vous verrez maintenant que tout a été fusionné dans une seule liste. Ainsi, comme vous pouvez le voir, cet astérisque devant la liste , séparé par une virgule dans une liste ici, les fusionnera en une seule liste pour C'est ainsi que vous pouvez fusionner votre liste, puis, à la fin, les déballer dans une liste ici, afin que tout soit en un OK. C'est ainsi que vous pouvez facilement combiner votre liste. Supposons que vous souhaitiez fusionner des dictionnaires. Bien entendu, vous devez également suivre le même processus Cependant, c'est légèrement différent. vous devrez ajouter deux astérisques Cette fois, vous devrez ajouter deux astérisques au lieu d'un pour fusionner les dictionnaires Alors laissez-moi aller de l'avant et dire « Dict One ». Et ici, je vais attribuer, bien sûr, une clé, donc A sera, bien sûr, un, mort deux. Nous allons avoir B, et nous pouvons le définir comme deux. Ensuite, nous pouvons dire des égaux fusionnés, et dans les parenthèses, nous pouvons simplement mettre des astérisques doubles et dire jct un, virgule, dict Et maintenant, si nous disions imprimer et que vous dites fusionné, nous obtenons A un, B deux. Nous pouvons donc voir que tout cela a fusionné dans un seul dictionnaire Nous avons donc deux paires clé-valeur ici. Donc deux instances. Ainsi, A un et B deux ont été produits. C'est ainsi que nous pouvons fusionner les dictionnaires. Alors, n'oubliez pas. Si vous souhaitez fusionner une liste, sauf si la liste est entre crochets, vous ne ferez qu'un astérisque pour la fusion avec un dictionnaire, vous aurez deux Souvenez-vous donc de cette distinction essentielle lorsque vous travaillez avec sagesse. H. La prochaine chose que nous voulons faire est de transmettre, par exemple, nos listes ou tuples à des fonctions C'est quelque chose que nous voulons examiner maintenant. Supposons que nous voulions aller de l'avant et ajouter des valeurs, par exemple, dans nos fonctions. Si je dis D, ajoutez, et nous attendons A et B, et nous allons dire return A plus B. Ce que nous pouvons faire, c'est définir les valeurs dans un tuple Je vais donc dire que les nombres sont égaux, et en un clin d'œil, je vais dire trois et cinq Alors je vais dire imprimer. Et dans ce cas, je vais faire référence à je vais appeler cette fonction ajouter ici. J'ai l'instruction d'impression à l'extérieur au lieu d'utiliser la déclaration de retour à l'intérieur. Je peux ensuite continuer et simplement passer et dire des nombres, et cela va automatiquement être associé à A étant trois, et B à cinq, puisqu'il fonctionne sur un argument positionnel puisque nous travaillons avec un astérisque singulier Alors maintenant, nous pouvons continuer et dire « exécuter le code », et cela renvoie huit. Mais ce que je peux faire ici par souci de simplicité, je peux simplement dire ajouter des nombres. Et nous ne voulons pas y retourner. Nous pouvons simplement dire imprimer, et je vais en fait dire A plus, disons que le résultat final est égal à A plus B, puis je veux imprimer, le résultat final. OK, donc tu peux aussi le faire de cette façon. Il va donc aller de l'avant et obtenir le même résultat sur place. Donc c'est juste une autre façon de le faire. C'est ainsi que nous pouvons passer, par exemple, à une liste ou un tuple à une fonction Maintenant, disons que nous allons de l'avant et que nous le fassions avec un tuple. Allons-y donc et définissons-le de cette façon. Mais cette fois, ce que je vais faire c'est ne pas le faire avec la messe ici. Je vais juste procéder à quelques adhésions d'une manière particulière, alors fermons-le et concentrons-nous sur la liste. 55. Appliquer l'opérateur astérisque - Pt. 2 - [Lab]: C'est vrai. Donc, ce que nous pouvons faire, c'est définir notre fonction, disons def ad et nous aurons A et B. Ensuite, je veux dire imprimer, A et B. Je définis ensuite mes dictionnaires, je vais dire des mots Et ici, dans la liste, je vais dire bonjour, ajouter une annonce entre virgules, puis une virgule pour la partie suivante, qui sera World Ensuite, je peux appeler la fonction, qui est Ajouter, puis nous devons ajouter un astérisque singulier ici et nous pouvons dire des mots Nous allons donc passer les paires clé-valeur du dictionnaire à AB, puis nous allons imprimer AB. Ensuite, si nous exécutons ce code, nous devons obtenir Hello World. C'est ainsi que nous pouvons procéder et transmettre la liste à nos fonctions. Nous voulons maintenant savoir comment transmettre des dictionnaires à des fonctions, alors allons-y Ou réviser, devrais-je dire ? Je vais donc dire DF, créer. Le nom et l'âge comme paramètres. Alors je vais dire imprimer. Cette fois, je vais utiliser des chaînes F et utiliser des espaces réservés ici Je vais avoir un nom, puis nous dirons qu'il a 6 ans. Je peux ensuite spécifier mes données pour le dictionnaire. Ici, je vais simplement dire le nom. Deux points, non, puis une virgule, puis un âge, deux points, puis 29 Ensuite, je peux appeler la fonction GET et passer par ce qui suit, qui sera un double astérisque pour le dictionnaire ici Maintenant, nous pouvons exécuter ce code, et nous avons maintenant 29 ans J'ai donc défini ma fonction ici. J'utilise une chaîne F pour servir d'espace réservé aux valeurs entrantes Les données ici sont donc un dictionnaire. Nous transmettons le dictionnaire ici aux paramètres, au nom et à l'âge, et en gros, nous imprimons simplement les valeurs définies, telles que le nom et l'âge. Ensuite, pour transférer ces données du dictionnaire vers notre fonction, nous ajoutons des astérisques doubles pour les remplacer en conséquence Riche. C'est ainsi que nous pouvons également aller l' avant et démarrer. Parfait. C'est vrai. C'est ainsi que nous pouvons commencer et configurer tout cela. Maintenant, une autre chose que je veux également vous montrer est comment vous pouvez utiliser l'astérisque pour ignorer des valeurs, ou si vous souhaitez également ignorer plusieurs valeurs, et cela peut également fonctionner en tangente avec un trait de soulignement Bien, disons que nous voulons extraire uniquement le premier élément de la liste. Ce que nous pouvons faire, par exemple, c'est dire A, puis ajouter l'astérisque avec le trait de soulignement et dire Et dans la liste, disons que nous en avons dix, 20, 30 et 40. Nous dirions imprimer A, et il en produit dix. Ce qui se passe ici, c'est que A sera associé au premier élément de la liste, et l'utilisation combinée de l'astérisque et du trait de soulignement ignorera toutes les valeurs supplémentaires disponibles OK. Ce que nous pouvons également faire, c'est peut-être extraire les deux premiers éléments. Ce que nous pouvons faire pour y parvenir, c'est simplement ajouter B maintenant et nous pouvons dire imprimer A, B. Donc, A sera associé à dix. B sera associé à 20, et la sortie sera de dix et, bien sûr, de 20. Et le soulignement d'Astérix aidera à ignorer 30 et 40. Donc, si je gère ça, on en a dix, et on en a 20. Supposons que vous puissiez extraire les deux premiers éléments. Disons que nous voulons obtenir le dernier élément, qui est 40 ici. Allons-y, changeons ce que nous définissons ici et ignorons tout au début, puis nous pouvons dire, ajoutez une variable qui est la dernière et ajoutons l'année dernière, ce qui signifie que l'astérisque et le trait de soulignement ignoreront 1020 et seti et que 40 seulement seront conservés pour la dernière variable et en sortiront Si je lance ça, on en aura 40. Supposons que vous puissiez extraire le dernier élément. Supposons que nous voulions aller sur une haie et extraire le premier et le dernier élément. Dans ce cas, nous pouvons donc dire abord d'ajouter votre astérisque, de souligner et de dire que le dernier Et ici, disons que nous en avons un, deux, trois et quatre. Nous pouvons alors dire imprimer en premier et en dernier. Nous n'en obtenons donc qu'un et quatre avec toutes les valeurs du milieu ignorées par l'astérisque suivi du trait de soulignement Maintenant, permettez-moi de donner plus d'informations sur l' astérisque et le soulignement Le trait de soulignement est donc essentiellement un espace réservé, accord, et vous pourriez voir comme une sorte de variable ignorée L'astérix que nous avons ici, non ? Cela oblige le soulignement à collecter plusieurs valeurs ou éléments ignorés , pourrait-on dire, dans la liste Et si nous n'avons pas l'astérisque, d'accord, ce trait de soulignement ne contiendra une seule valeur au lieu d'une liste elle-même C'est donc juste une chose supplémentaire que nous pouvons faire lorsque nous voulons ignorer des valeurs, etc. Nous pouvons combiner l' opérateur astérisque avec le trait de soulignement. Très bien, nous y voilà. Il existe de nombreux cas d' utilisation auxquels vous pouvez désormais postuler avec l'opérateur Astérix 56. Fonctions Lambda: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur les fonctions Lambda. Jetons donc un coup d'œil. Vous vous demandez donc probablement : OK, qu'est-ce que la fonction Lambda Une fonction Lambda est donc une fonction courte anonyme qui accepte plusieurs arguments, mais ne contient qu'une seule expression, ce qui signifie que vous allez définir votre fonction Lambda sur une seule ligne Contrairement aux fonctions classiques, où, bien sûr, vous auriez au moins besoin quelques lignes pour que tout démarre et fonctionne. Mais avec une fonction Lambda, elle ne contiendra une seule expression en termes d'ordre et de modèle Et une fonction lambda est souvent utilisée pour courtes opérations simples où il n' est pas nécessaire de définir une fonction complète Donc, si vous vous dites, d'accord, je dois créer une fonction, mais ce sera une fonction assez courte. C'est là que la valeur de l'utilisation d'une fonction Lambda entre utilisation d'une fonction Lambda Si, toutefois, vous avez une fonction assez longue avec de nombreuses exigences, un grand nombre d'arguments, de paramètres et de fonctionnalités à mettre en place ou une fonction qui est généralement plus complexe dans votre cas d'utilisation général, alors tenez-vous-en aux fonctions. Mais comme je l'ai dit, tout ce qui est court et rapide ou qui n'a tout simplement pas besoin de beaucoup de fonctionnalités, alors les fonctions sont la meilleure solution, et je vous recommande vivement de les utiliser car elles peuvent être très utiles dans certaines situations. Oui, en tout cas, c'est tout ce que j'ai à mentionner sur plan théorique en termes de fonctions Lambda Nous allons ensuite nous concentrer sur les exercices pratiques de laboratoire où je vais commencer doucement, vous aider à comprendre et simplement vous apprendre la différence entre une fonction et une fonction Lambda, en particulier et principalement, devrais-je dire dans sa syntaxe Mais nous y reviendrons dans les exercices de laboratoire. Quoi qu'il en soit, c'est pour l'aperçu théorique. 57. Effectuer des opérations avec Lambda - [Lab]: Bonjour à tous. Bienvenue dans le prochain exercice pratique de laboratoire qui sera axé sur l' utilisation des fonctions Lambda dans PySON Maintenant, bien sûr, pour que cela reste très simple au début, je vais vous montrer comment comparer fonctions ordinaires aux fonctions Lambda afin comprendre la syntaxe et comment utiliser les fonctions Lambda correctement et dès le départ Commençons. Tout d'abord, définissons une fonction normale. Je vais juste ajouter un commentaire et dire fonction normale. Vous devriez donc, bien sûr, commencer par votre mot clé, qui est Jeff. Ensuite, vous devez définir le nom de votre fonction, qui serait, par exemple, souligner «   hello Ensuite, sur la ligne suivante, nous pouvons simplement dire imprimer et nous pouvons dire bonjour à tout le monde par exemple. sera donc Ce sera donc ce que la fonction affichera une fois appelée. Ensuite, nous pouvons appeler notre fonction, qui dit « underscore hello », qui appellera cette fonction et affichera « hello world » dans le terminal Donc, si je le sauvegarde et que je lance le code, il dira bonjour à tout le monde. Parfait. Voyons maintenant comment appliquer cela lorsque nous travaillons avec une fonction Lambda Ce que je vais faire, c'est ne pas supprimer ce code, mais simplement le commenter afin que vous puissiez mieux comprendre la syntaxe et la logique. Je vais ajouter un commentaire ici qui parle de la fonction Lam D. Et la première chose à faire est définir le nom de votre fonction. Maintenant, avec les fonctions Lambda, vous devez le définir comme égal à Lambda Ainsi, par exemple, dans ce cas, vous pouvez dire «   souligner bonjour », et c'est le nom de votre fonction dans Lambda, très similaire à celui que nous avions dans la fonction normale où nous disons « bonjour souligné  ». Même chose. C'est ainsi que vous définissez une fonction dans Lambda, puis vous dites égal et vous la définissez sur Lambda Et puis je veux savoir que Lambda ici égal est l'expression pour configurer une fonction Lambda très similaire à celle de dire mort pour une fonction normale Essaie de voir ça comme la même chose. Ensuite, nous pouvons ajouter deux points, et nous voulons définir ce que nous voulons faire. Donc, dans cette fonction say hello, nous avons défini que nous voulions imprimer hello world. Mais nous l'avons fait dans le cadre de la fonction. Avec la fonction Lambda avec la fonction Lambda, nous le faisons sur la même ligne Ce monde print lo sera donc juste là sur la même ligne que la fonction Lambda C'est ce que je voulais dire dans les cours théoriques lorsque j'ai mentionné qu'avec Lambda, ce sera une expression unique Nous pouvons donc simplement dire imprimer et dire bonjour à tout le monde. Nous y voilà. Ensuite, nous voulons appeler notre fonction, sera exactement comme notre fonction normale que nous avions ici et nous aurons également les parenthèses, donc nous pouvons simplement dire soulignement, bonjour Maintenant, nous pouvons exécuter ce code, et nous pouvons voir ici qu'il affiche Hello World. Bravo, c'est ainsi que vous pouvez utiliser une fonction Lambda, et j'espère que cela a du sens avec la synchronisation et l'utilisation par rapport à une Mais ne vous inquiétez pas, nous allons passer en revue quelques exemples ici et nous allons procéder à une autre comparaison directe entre une fonction normale et une fonction Lambda C'est vrai. Supprimons donc tout ici sauf le commentaire ci-dessus, et nous voulons maintenant ajouter deux chiffres. Donc une fonction normale pour le faire et une fonction Lambda. Maintenant, je tiens à mentionner que lorsque vous travaillez avec des fonctions Lambda, cela n'est généralement pas adapté à définition de variables dans une fonction Lambda Maintenant, je sais que dans les fonctions normales, vous pouvez le faire avec des variables locales, mais ce n'est pas vraiment intéressant dans Lambda Ainsi, si vous voulez renvoyer un résultat, vous devriez souvent dire return au lieu de définir une variable puis de l'imprimer. Donc, juste quelque chose que je voudrais mentionner à l'avance. OK, ce sont les dernières fonctions régulières. Je dirais que Def ajoute des traits de soulignement. Nous allons travailler avec des paramètres cette fois. Je vais avoir X et Y, par exemple, puis je vais avoir une instruction de retour simple qui dit return X plus Y. Ensuite, je veux utiliser l'instruction print à l'extérieur et dire print, puis je veux enrouler le nom de la fonction qui est ajouter les nombres carrés, puis nous devons entrer les arguments que nous voulons envoyer aux paramètres de et Y afin que nous puissions renvoyer le résultat via la fonction d'impression de ce que sont X plus Y. Ici, je vais juste dire cinq et sept. Il va renvoyer cinq plus sept, et cela va être imprimé en sortie, cela devrait être 12. Allons-y et exécutons ce code. Nous pouvons donc en voir 12. Nous y voilà donc. C'est ainsi que nous pouvons définir une fonction régulière simple pour ajouter des nombres. Maintenant, appliquons cette fonction ici en tant que fonction Lambda ou transformons-la Je vais donc ajouter un commentaire et dire fonction Lambda. ne vous reste donc qu'à vous souvenir que vous devez vous référer au nom de votre fonction Lambda Nous utilisons donc ici des nombres d'addition pour la fonction normale. Nous pouvons faire de même. Vous devez ensuite dire égal à et Lambda. Maintenant, ce que vous voulez faire se trouve juste à côté de Lambda, vous devez vous assurer d'ajouter vos paramètres Ici, nous avons X et Y, et tout ce que nous avons à faire est d'ajouter un espace à côté de Lambda et de dire X, Y, et ce sont vos paramètres Ensuite, vous devez ajouter vos deux points. C'est donc très similaire à ce que nous avons ici. Nous avons donc X, Y, mais ici nous n' avons pas de parenthèses et nous ajoutons deux points à la fin, et nous faisons la même chose avec notre fonction Lambda Vous souhaitez définir ce que vous voulez réellement faire dans votre fonction Lambda Donc, dans notre fonction normale, nous disons return X plus Y. Donc, ici, tout ce que nous avons à faire est de dire directement ce que nous voulons réellement faire Je vais dire X plus Y, juste comme ça. Ensuite, nous allons dire imprimer comme nous l'avons fait auparavant, puis vous voudrez transmettre le nom de votre fonction. Donc, dans notre cas, il ajoute des traits de soulignement. Et tout comme lorsque vous envoyez vos arguments, le style sera exactement le même que celui des fonctions normales. Vous allez avoir vos parenthèses et dans la position ou les mots clés, vous allez inscrire ce que vous voulez renvoyer Je vais dire cinq et sept. Nous l'avons donc mis en place. Donc maintenant, si nous exécutons notre code, nous obtenons 12. C'est vrai, parfait. Nous y voilà. C'est ainsi que vous pouvez utiliser une fonction Lambda, et surtout, comment vous pouvez utiliser la syntaxe d' fonction normale pour vous aider à apprendre rapidement fonctions Lambda et à les utiliser par rapport au fonctionnement d'une fonction normale. C'est vrai. Parfait. Nous pouvons donc retirer ce stylo. D'accord, c' est donc la première partie de l' utilisation des fonctions Lambda Nous allons travailler sur quelques autres types supplémentaires d' activités et d'exercices. Alors ne t'inquiète pas. Nous en avons d'autres à venir. C'est bon. Travaillons maintenant avec Lambda, car nous sommes maintenant assez confiants pour comprendre la définition de la façon dont nous utilisons une syntaxe et tout Je vais donc travailler à la création de quelques programmes. Alors, d'abord, remarquons : OK, comment puis-je créer un petit programme qui sera utile et rapide à résoudre avec une fonction Lambda qui pourrait être fastidieuse avec une fonction être fastidieuse avec Supposons donc que nous voulions quadriller un nombre. Nous devons définir les noms des fonctions. Je vais dire que le carré est égal. Ensuite, nous devons dire que ce sera une fonction Lambda Nous devons décider, je vais saisir toutes les valeurs. Je vais mettre une valeur que cela soit égal à un paramètre. Je peux simplement définir le paramètre, disons Num. Qu'est-ce que je veux faire ? Est-ce que je veux retourner un article ? Ce que je veux faire, c'est renvoyer le nombre multiplié par NUM. Ensuite, je vais m' assurer d' imprimer les résultats. Je vais dire print et je veux insérer le nom de la fonction qui est carré, puis mettre l'argument qui sera passé au paramètre ici en tant que NUM, puis je vais prendre ce nombre associé et le multiplier par lui-même. Donc quatre fois quatre. Maintenant, si nous exécutons le code, nous pouvons voir si nous obtenons 16, et c'est exactement ainsi que nous pouvons quadriller un nombre avec une fonction Lambda Bien, faisons-en un autre. Disons que nous voulons doubler un nombre. Nous créerions donc une fonction et nous pouvons l'appeler double, par exemple, et ce sera une fonction Lambda, nous devons donc la définir en conséquence Nous allons prendre en compte un paramètre ici. Je vais donc le définir comme X, par exemple. Et qu'est-ce que je veux faire ? Je veux revenir, quel que soit le résultat de X multiplié par deux. OK. Ensuite, je veux imprimer ceci, je vais dire imprimer et je veux imprimer quel que soit le résultat de la fonction. Je dois donc appeler la fonction pour que cela se produise, puis passer par l'argument, qui remplacera X, puis X va passer au code suivant dans la fonction Lambda et dire X fois deux Dans ce cas, six fois deux. Nous pouvons maintenant exécuter ce code. Et nous en avons 12. Parfait. Cela double un chiffre. Changeons-le. Passons à la liste. Supposons maintenant que nous voulions obtenir le premier élément d'une liste. Allons-y et définissons nom de notre fonction, pourrait-on dire. Je vais le définir comme, je dirais d'abord égal, ce sera le nom de ma fonction. Ce sera une fonction Lambda. Nous allons nous attendre à un paramètre, je peux donc simplement appeler cette liste LST, par exemple, entre deux Et qu'est-ce que je veux vraiment faire ? Qu'est-ce que je souhaite réellement retourner ? Je souhaite donc renvoyer le premier élément de la liste. Et maintenant, souvenez-vous que dans la liste PySON, commencez à zéro. Je vais donc dire : OK, la liste est là, et je veux regarder zéro. OK. Ensuite, ce que je veux faire, c'est dire imprimer, me référer au nom de la première fonction, et dans les parenthèses, définir une liste telle Dans la liste, je vais dire dix , 20, 30. Maintenant, ce qui va se passer, c'est que je vais passer en revue cette liste ici, qui est définie ici dans mon excuse, elle est définie ici dans l'argument ici. J'en ai dix, 20 et 30, le premier, je vais héberger tout ça. Cela va être transmis au paramètre. Toute cette liste que j'ai définie dans un premier temps. Ensuite, ce qui va se passer, c'est que nous allons appeler la liste et chercher le premier élément, qui sera dix, et il sera affiché. Si j'exécute ce code, nous verrons qu' il en produira dix. Nous ne faisons que passer cette liste en tant qu' argument lui-même dans la première fonction. OK, c'est ainsi que nous pouvons faire exactement cela. Supposons maintenant que nous voulions obtenir le deuxième élément d'une liste. En d'autres termes, ce sera zéro, un. Nous pouvons donc dire que second est égal à Lambda, et nous pouvons dire liste à nouveau, deux points, puis nous pouvons dire liste, et le résultat que nous voulons renvoyer est le premier C'est le deuxième élément, techniquement de la liste, mais désigné par un Nous pouvons dire imprimer, passer revue la fonction et les arguments de la fonction, nous allons définir sous forme de liste unique avec des éléments de 15, 21, 87. Il devrait donc maintenant imprimer 21 Nous allons donc passer cette liste ici, dans la liste ici en tant que paramètre, puis nous allons l'interroger dans le traitement et rechercher le deuxième élément, qui sera 21. Alors, gérons ça. Et puis on en a 21. Parfait. Très bien, les gars C'est donc essentiellement tout pour nous présenter les fonctions Lambda comment nous pouvons les utiliser et, surtout, comment nous pouvons les distinguer d'une fonction normale Maintenant, nous n'en avons pas fini avec les fonctions Lambda, il y a quelques autres fonctions intégrées que je souhaite utiliser avec les fonctions Lambda qui sont très populaires auprès de nombreux développeurs, et je voudrais me plonger davantage dans les fonctions Lambda Nous allons donc nous idée générale des fonctions Lambda et sur la manière dont vous pouvez Vous pouvez maintenant vous entraîner et l'utiliser au moins jusqu'à l'essentiel afin savoir comment passer les paramètres, comment vous pouvez générer des données, etc. C'est tout pour cet exercice pratique en laboratoire. 58. Appliquer des fonctions lambda à d'autres fonctions: Bonjour à tous, et bienvenue à la prochaine leçon qui portera sur l'application fonctions Lambda à d'autres fonctions Nous pouvons donc intégrer des fonctions dans nos fonctions Lambda en fonction ce que nous aimerions faire. Mais jetons un coup d'œil. Les fonctions Lambda fonctionnent donc bien avec les fonctions intégrées telles que la fonction map, applique essentiellement une fonction à chaque élément d'un itérable, renvoyant ainsi un nouvel itérable avec Nous avons également la fonction de filtre sélectionne les éléments d'un itérable en fonction d'une fonction qui renvoie vrai ou faux Nous pouvons donc voir une situation en gras de deux états Enfin, une fonction très populaire à utiliser avec Lambda est la fonction de réduction Cela applique à plusieurs reprises une fonction pour combiner tous les éléments d'un itérable en une seule valeur. Voilà, vous l'avez. Les fonctions Lambda peuvent donc également fonctionner avec d' autres types de fonctions intégrées. Cependant, ce sont les plus courantes que plupart des développeurs utilisent lorsqu'ils travaillent avec Pison, la fonction de carte, la fonction de filtre et la fonction réduite associée à une fonction Lambda Elles y sont généralement intégrées pour exécuter une certaine requête de code ajoutée en place C'est bon, les gars. Voilà pour l'aperçu théorique. Nous allons maintenant nous concentrer sur l'intégration ces fonctions au sein de nos fonctions Lambda et sur le tout assembler 59. Intégrer du lambda à d'autres fonctions - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique de laboratoire, qui sera axé sur l'utilisation du filtre cartographique et la réduction fonctions au sein de la fonction elle-même. Nous allons tout intégrer. Allons-y et commençons avec la fonction cartographique. C'est la première chose avec laquelle nous allons vouloir aller de l'avant et commencer. Allons-y et faisons-le. Maintenant, la première chose que nous allons vouloir faire est de définir une liste de nombres. Je vais parler de chiffres. C'est égal, et je vais dire un, deux, trois, quatre et cinq. L'intérêt d' la fonction map dans ce cas d'utilisation est que nous voulons modifier chaque élément d'une liste, puis renvoyer une liste modifiée qui exécutera certaines fonctionnalités. Donc, ce que nous pouvons faire ensuite, c'est aller sur une haie et mettre en place ce qui suit. Nous allons donc faire une couverture et définir une variable ici. Je vais donc dire que le résultat est égal, et nous allons définir cela sur notre fonction cartographique. Et nous allons utiliser la carte pour appliquer une fonction à chaque élément de notre liste, à savoir un, deux, trois, quatre et cinq indépendamment à chaque fois. Et dans notre fonction cartographique, nous allons ajouter la fonction Lambda Nous allons donc dire « am D » et nous allons passer par un paramètre. Je vais prendre X, par exemple. Et puis l'action que je veux effectuer, je veux multiplier chaque élément par deux dans la liste. Je vais dire X astérisque deux ou le multiplier par deux. Et pour ce faire, nous allons utiliser la liste des numéros. Nous allons donc continuer et nous référer aux nombres variables. OK, donc nous l'avons mis en place. Parfait. Permettez-moi donc de vous donner une visualisation de ce qui va se passer. Nous en avons donc un, deux, trois, quatre, cinq. Nous allons maintenant appliquer des nombres ici à cette fonction Lambft, et essentiellement, vous devriez la voir comme si elle provenait de nombres. Donc, un substituera X, puis une fois deux , cela fera deux, et cela sera stocké et traité selon notre logique que nous avons mise en place avec la carte et la fonction Lambda, et cela sera stocké jusqu'à ce que nous puissions le sortir ultérieurement dans une liste Ensuite, nous allons passer au point suivant de la liste, qui sera deux, deux proviendront de chiffres, puis nous allons remplacer X deux, puis dire deux fois deux, et ce sera quatre. Nous faisons la même chose pour le reste des nombres afin qu'ils soient finalement le résultat de deux, quatre, six, huit et dix. Ensuite, ce que nous voulons faire, c'est aller sur une haie et convertir notre objet cartographique. Ce sera notre objet cartographique, que nous stockerons dans la variable result. Nous pouvons maintenant créer une variable appelée nombres doublés, et nous allons convertir la liste du résultat final que nous obtenons ici. Le résultat du processus de sortie que nous obtenons de cette fonctionnalité. Dans ce cas, le résultat n'est pas une fonction Lambda comme nous l'avons démontré ou référencé comme lors précédentes activités pratiques sur les fonctions Lambda car lorsque vous avez affaire des fonctions intégrées à Lambda, telles que map, reduce et filter, la variable que vous lui avez attribuée, comme dans ce cas, résultat ici ne sera pas la fonction Ce sera essentiellement une variable qui sera stockée. La valeur qui a été traitée puisque tout est exécuté ici et non dans une fonction Lambda distincte Dans tous les cas, nous stockerons ensuite les résultats ici dans la liste afin de pouvoir convertir l' objet cartographique que nous avons maintenant en liste afin de voir les valeurs modifiées. Pour ce faire, nous pouvons maintenant dire imprimer et faire référence à des nombres doublés. C'est bon, parfait. Maintenant, nous pouvons exécuter ce code, et nous pouvons voir si nous obtenons le résultat deux, quatre, 6810. Parfait. C'est ainsi que nous pouvons procéder et mettre tout cela en place comme il se doit. C'est vrai. Maintenant, allons-y et examinons la fonction de filtrage. Encore une fois, nous allons avoir quelques chiffres. J'ajouterai simplement un chiffre supplémentaire, puis nous utiliserons la fonction de filtrage. Nous prévoyons maintenant d'utiliser la fonction de filtre pour ne conserver que les nombres pairs. Allons-y maintenant et définissons une variable, qui sera un résultat, afin que nous puissions stocker ici le résultat que nous avons de notre valeur ici de l'objet filtre. Nous allons donc stocker le résultat de l'objet filtre. Et nous allons dire filtrer et intégrer la fonction Lambda Et encore une fois, nous aurons un paramètre, que nous pouvons appeler X. Ce que nous voulons faire, c'est utiliser une fonction am pour vérifier si chaque nombre ou X est divisible par deux pour, en d'autres termes, ne conserver que certains éléments d'une liste En d'autres termes, nous devrions produire des nombres pairs. Nous pouvons continuer et le faire en disant X, puis nous pouvons ajouter notre symbole de pourcentage, disons deux, équivalent de zéro, et nous allons travailler avec la variable numérique, qui est essentiellement la liste avec laquelle nous allons travailler. Nous allons continuer à nous connecter ici. Nous allons en prendre un. Ensuite, nous allons passer le substitut un à X, puis nous allons vérifier ici si un est divisé par deux. Si, pour une raison ou une autre, le nombre ne doit pas être pair, nous allons simplement l'omettre de la liste que nous allons afficher et ne sauvegarder que ce qui sera pair et divisible OK. Après ce processus, et encore une fois, comme pour la fonction cartographique, nous allons vérifier chaque élément ou élément que vous pourriez dire chaque fois, puis enregistrer les résultats nécessaires au fur et à mesure. Ensuite, nous voulons convertir notre objet de filtre en liste afin de voir nos valeurs filtrées, afin de pouvoir ensuite trouver une variable connue sous le nom de nombres pairs, par exemple, puis utiliser une liste pour convertir les résultats ici, cette variable. Ensuite, ce que nous pouvons faire, c'est imprimer la liste filtrée. Nous pouvons donc dire imprimer et nous pouvons simplement dire même souligner des chiffres. Et que nous en imprimerons 24 et 6, qui est exactement ce que nous voulons comme résultat. C'est ainsi que nous pouvons continuer et nous assurer que nous sommes en mesure de filtrer afin de ne conserver que certains éléments de notre liste. C'est vrai, parfait. Maintenant, la dernière fonction que nous voulons examiner est de savoir comment utiliser la fonction de réduction. Donc, essentiellement, ce que nous voulons faire, c'est combiner tous les éléments que nous avons en une seule valeur Nous allons donc les résumer pour les additionner, pourrait-on dire. Et pour ce faire, nous devons importer la fonction réduite, qui provient du module funk tools Il est donc intégré. Nous pouvons donc dire qu'à partir de funk tools, qui est le module, je souhaite importer la fonction réduite Maintenant, nous voulons également avoir une liste de numéros avec lesquels nous voulons travailler. Je vais donc dire des chiffres, et je vais avoir un, deux, trois, quatre et cinq. Ensuite, je vais m'assurer d' utiliser la fonction Réduire pour additionner tous les nombres. Et encore une fois, nous avons besoin d'une variable pour pouvoir stocker le résultat, bien sûr, il est donc nécessaire de l'appeler résultat. Et nous pouvons ensuite utiliser la fonction de réduction, qui va intégrer Lambda Et encore une fois, nous allons avoir deux paramètres cette fois parce que nous additionnons, nous additionnons des nombres. Nous aurons donc X et Y. Et puis l'action que nous voulons effectuer et que nous voulons renvoyer est le résultat de X et Y ici. Et sur quoi allons-nous nous baser ? allons-nous obtenir les informations que nous voulons ajouter à partir de la variable numérique ici, que nous pouvons simplement associer, comme ça. OK, donc la fonction et, nous allons prendre deux nombres, X et Y à partir de nombres, et il va les ajouter, puis il va continuer à les ajouter jusqu'à ce que nous obtenions le résultat final. Donc, avec les chiffres ici, ce qui va se passer , c'est que nous allons aller de l'avant et additionner les chiffres en conséquence jusqu'à ce que nous obtenions le résultat final. Il va donc en être un. C'était donc X et Y, ce sera un plus deux égal trois. Trois plus trois égale six, six plus quatre égale dix, puis dix plus cinq égale 15. C'est ainsi que nous allons procéder et voir la séquence des opérations au fur et à mesure. Maintenant, le résultat final, bien sûr, devrait être 15, mais allons-y et imprimons le résultat afin que nous puissions le clarifier. Voilà 15 et voilà. C'est ainsi que nous pouvons combiner tous les éléments en une seule valeur à titre d'exemple de somme. C'est bon, les gars. C'est tout pour cet exercice pratique en laboratoire. Je sais que cela a peut-être été un peu difficile, mais c'est ainsi que nous pouvons continuer et avancer si nous voulons combiner différentes fonctions et les utiliser conjointement avec notre fonction Lambda Maintenant, il s'agit d'une chose importante que je tiens également à réitérer. N'oubliez pas que lorsque nous utilisons fonctions avec Lamb, telles que la réduction de carte et le filtre, auparavant, lorsque nous travaillions avec des fonctions, vous pouviez dicter et vous pouvez vous référer à ce que nous associons à la fonction Lambda comme nom de fonction, pourriez-vous dire Mais dans ce cas, il s'agira simplement d' une variable pour stocker le résultat de ce qui se passe. Que ce résultat soit spécifiquement un objet filtre, qu'il renvoie une valeur spécifique ou qu' il renvoie l' objet cartographique, c' est pour cela que nous l'utilisons, non comme nom de fonction. C'est bon. Voilà, nous l'avons. La dernière chose que je voudrais mentionner est de se rappeler également, encore une chose, que lorsque nous travaillons avec l'objet cartographique, nous allons le stocker. Lorsque nous utilisons la fonction de carte, nous stockons l'objet cartographique, lorsque nous travaillons avec la fonction de filtre, nous stockons un objet de filtre et lorsque nous travaillons, bien sûr, sur la réduction et plus précisément dans ce cas, sur la fonction réduite stockons une valeur spécifique nous stockons une valeur spécifique que nous allons bien sûr afficher si nous voulons l' imprimer. OK, vas-y. C'est ça. C'est ainsi nous pouvons intégrer d'autres fonctions à Lambda 60. Qu'est-ce que la programmation orientée objet ?: Bonjour, tout le monde. Bienvenue à la prochaine leçon, qui sera axée sur ce qu'est la programmation orientée objet. Maintenant, cette leçon va faire partie d'une série de leçons, donc tout va être connecté. Il y en aura un peu plus au cours de la prochaine série de leçons, mais pour le moment, tout est réuni et ne fait qu'un. La programmation orientée objet est donc une approche de programmation centrée sur le concept de classes et d'objets. Votre prochaine question est donc probablement de savoir ce que sont les classes et les objets ? C'est donc ce que nous allons aborder en détail dans la prochaine leçon, qui se concentrera sur l'examen des classes et des objets du point de vue de définition et également du point de vue de l'analogie . Je vais faire la différence entre les deux et voir globalement comment cela s'inscrit dans le cadre de la programmation orientée objet dans son ensemble. Restez donc à l'affût pour la prochaine leçon, nous allons aborder les classes et les objets. 61. Classes et objets: Bonjour, tout le monde. Bienvenue à la prochaine leçon, qui portera sur les classes et les objets. Jetons un coup d'œil. Qu'est-ce qu'une classe et un objet ? En termes simples, une classe est un modèle pour créer un objet, tandis qu'un objet est une instance spécifique de cette classe particulière Maintenant, je sais que cela peut être un peu confus au début, mais examinons une analogie pour mieux illustrer cela. Disons donc que nous avons une personne. On peut appeler une personne une classe. Maintenant, une personne possède un ensemble d'attributs. Ainsi, une personne aura, par exemple, un prénom. Ils auront un nom de famille. Ils auront leur âge, leur nationalité. Ils sont donc considérés comme des attributs dans PySon où la personne elle-même, comme la structure, est la classe Nous pouvons maintenant aller un peu plus loin et examiner les objets. Maintenant, les objets, comme je l'ai mentionné, sont, bien entendu, les instances elles-mêmes. Nous pouvons, par exemple, avoir un objet qui concerne personne unique et cette personne unique, par exemple, peut s'appeler Lucy Johnston, âgée de 22 ans et de nationalité allemande Elle vient d'Allemagne. Disons que nous avons un autre objet, une autre instance spécifique. Nous avons donc une autre personne unique. Cette personne est Mark Smith. Il a 21 ans et il vient d'Autriche. C'est ainsi que tout est lié à la classe, au plan, aux attributs nécessaires pour décrire cette classe ici, puis aux objets qui sont les instances spécifiques Jetons un coup d'œil à une autre analogie pour renforcer notre compréhension des classes et des objets Disons que nous avons une voiture. Désormais, la voiture peut être considérée comme une classe et comme un modèle. Maintenant, une voiture va avoir plusieurs attributs tels que la marque, la couleur, le modèle, l'année modèle, par exemple, et elle va avoir un ensemble d' instances uniques en termes d'objets. Nous pouvons avoir une voiture unique en particulier qui est la marque GMC La couleur Sage, c'est le modèle GMC E two et le modèle Y date de 2007 Ensuite, nous avons également un autre exemple spécifique, qui sera celui d'une BMW, par exemple. La couleur est le bleu, c'est le BMWX Three, et le modèle E est 2011. C'est bon. C'est ainsi que je veux que vous compreniez le processus de programmation orientée objet lorsque nous travaillons avec notre classe, les attributs associés à cette classe et les objets qui sont des instances spécifiques corrélées entre Ch. Essayez donc de tout voir dans le rôle de Zach Et ce que je recommanderais également, si cela devient également un peu confus, revenez encore quelques fois aux analogies et à la définition que j'ai donnée et essayez de les relier entre eux Mais ne t'inquiète pas. Une fois que nous aurons en pratique dans les exercices pratiques de laboratoire, mis cela en pratique dans les exercices pratiques de laboratoire, vous verrez avec quelle facilité vous l'assimilerez. C'est ainsi que je veux que vous le voyiez lorsque nous travaillons avec programmation orientée objet et plus particulièrement avec les classes et les objets à portée de main. 62. Création de notre premier cours et de notre premier objet - [Lab]: Bonjour, tout le monde. Bienvenue au prochain exercice pratique de laboratoire, qui sera axé sur les classes et les objets. Commençons. Maintenant, la première chose à faire est de définir notre classe. Maintenant, n'oubliez pas qu'une classe est comme un plan, nous allons créer une classe d'une personne Je vais dire une personne de classe. Ensuite, nous pouvons passer à la ligne suivante et indenter. Et la prochaine chose que nous allons vouloir faire est définir notre méthode innit Maintenant, la méthode innit est essentiellement une méthode spéciale, également connue sous le nom de méthode Dunder, et elle est appelée lorsqu'un nouvel objet est créé, et elle aide à initialiser les attributs de Désormais, les attributs incluent, par exemple, l'identifiant de la personne, son prénom, son nom de famille, son âge , sa nationalité, etc. Donc, ce que nous pouvons faire, c'est continuer et dire D double underscore init Et dans nos parenthèses, nous devons d'abord passer par self, et self représentera l'instance de notre classe, et cela permettra d' accéder aux attributs et aux mésods de l' instance si nous en avions, bien sûr Nous voulons maintenant définir nos paramètres. Maintenant, cela va inclure, par exemple, les informations de la personne, c'est-à-dire son prénom, son nom de famille, sa nationalité asiatique, etc. Et nous allons d'abord le configurer en tant que paramètres, d'accord ? Cela va donc être temporaire, puis il sera assigné en tant que variable permanente avec self, mais nous y reviendrons dans un instant. Nous pouvons donc continuer et définir, par exemple, l'ID. Nous aurons le premier soulignement du nom, nous aurons le nom du dernier soulignement, nous aurons l'âge et C'est bon. Permettez-moi donc de zoomer ici pour plus de clarté. Ensuite, nous voulons simplement ajouter deux points, et nous allons continuer. D'accord. Maintenant, la prochaine chose que nous allons vouloir faire est attribuer nos paramètres à nos attributs d'instance. Donc, ce que nous allons faire, c'est dire self point ID. Identifiant égal. Donc, ce que nous faisons ici c'est essentiellement attribuer, par exemple, le paramètre ID à l'attribut d'instance de self point ID Et il s'agira essentiellement de l'identifiant unique de la personne, et nous faisons de même pour le reste, selon le même type de processus. Nous dirons self point, premier nom de soulignement. Cela sera égal au premier nom de soulignement. Ensuite, nous ferons en sorte que le point automatique, le dernier trait de soulignement, soit égal au dernier nom de soulignement Et vous pouvez le voir configuré en conséquence au fur et à mesure de son utilisation. Ensuite, nous pouvons voir que le point g est égal à l'âge. La nationalité à points multiples équivaut à la nationalité, juste comme ça. Nous avons tout instancié. Maintenant, juste pour clarifier un peu plus situation avec le mot-clé self que nous utilisons. N'oubliez pas qu'il s'agit d'une référence à l'instance actuelle de cette classe et qu'elle nous permettra d'accéder à nos attributs spécifiques à chaque objet que nous possédons et de les modifier nos attributs spécifiques à chaque objet que nous . Souviens-toi juste de ça. Ensuite, quand nous avons ici, identifiant du point automatique, le prénom, le nom de famille, l' âge du point automatique et la nationalité personnelle. Vous pouvez les voir sous forme d'attributs, et chaque attribut est une variable qui stocke des données spécifiques à l'objet. Ici, bien sûr, ce sera le D de la personne, son prénom, son nom de famille, son âge et sa nationalité. C'est donc essentiellement ce que nous faisons là-bas. Maintenant, la prochaine chose que nous devons faire est de créer une instance de notre objet de la classe person. Alors faisons-le. Et nous devons nous assurer d'ajuster notre façon de procéder. Il doit donc être dans la même lignée que notre classe ici. Créons donc un objet de la classe person. Nous pouvons donc donner à cette variable le nom que nous voulons. Je vais dire que personne un est égal, puis nous devons faire référence à la classe de personnes. Et au sein de cette classe, nous allons essentiellement aller de l'avant et ajouter nos valeurs ou arguments, pourrait-on dire, des attributs que nous avons. OK, nous pouvons donc continuer et ajouter la valeur. Donc, d'abord, nous aurons l'identification, prénom, le nom de famille, l'âge et la nationalité. Je vais les transmettre. Je vais en dire un pour la carte d'identité. Ensuite, nous avons le prénom. Je vais dire Ono puis nous aurons le nom de famille, je dirai Pretorius et ensuite nous aurons l'âge, LLC, 29 ans, et ensuite nous aurons la nationalité, dit de l'Afrique, juste comme ça C'est ainsi que nous pouvons créer un objet de la classe person. Ensuite, nous voulons imprimer les attributs de la personne. N'oubliez donc pas que nos attributs sont configurés en conséquence. Donc, identifiant, prénom, nom de famille, âge et nationalité. Maintenant, nous voulons les imprimer, je vais donc vous montrer comment nous pouvons le faire. Nous pouvons alors, par exemple, dire imprimer, puis nous voulons faire référence à la variable que nous avons définie ici et qui est affectée à ce qui suit, et nous pouvons simplement dire personne un et vous pouvez simplement dire point, suivi de l'attribut. Nous pouvons donc dire ID pour le moment, imprimer la personne un point en premier, souligner le nom Et imprime la personne d'un point et le nom du dernier soulignement apparaît. Cela va continuer et imprimer la valeur qui a été attribuée à notre attribut. Nous en avons un, nous avons Arno et Pretors et c' est ce qui sera imprimé dans notre sortie Allons-y, produisons et exécutons ce code. Faisons-le. Voilà, donc on en a un, on honneur et on a Pretorius C'est ainsi que nous pouvons nous protéger et garantir que nous obtenons ce résultat comme il se doit. Rendons cela un peu plus clair pour que vous puissiez voir, nous pouvons voir le résultat idéal, le prénom et le nom de famille. C'est ainsi que nous pouvons essentiellement créer notre classe, définir notre méthode innit, configurer nos paramètres, faire une couverture et mettre le reste en place et comment nos paramètres deviennent essentiellement des attributs C'est bon. C'est tout pour cet exercice pratique de laboratoire. Bravo pour la création de votre toute première classe, Bravo pour la création de votre toute première classe définition de votre tout premier objet ici et la sortie de toutes les données nécessaires en les référençant par point suivi du nom de l'attribut, puis en obtenant toutes les données liées à l'objet S. Alors c'est tout. Je vais ajouter ici un exercice de laboratoire pratique supplémentaire, qui sera davantage axé sur l'explication. Je vais donc juste expliquer un peu plus, et nous pouvons aussi nous entraîner un peu, un peu plus . Vous pouvez donc rester à l'affût pour le prochain exercice ou passer à la leçon suivante. C'est vraiment à vous de décider de ce que vous voulez faire. Mais je dois dire que c'est tout pour cet exercice de laboratoire en particulier. 63. Approfondissement des cours et des objets - [Laboratoire facultatif]: Bonjour, tout le monde. Et bienvenue au prochain exercice pratique de laboratoire, qui sera également essentiellement facultatif. Donc, si vous voulez éviter une haie, vous pouvez le faire et passer à la leçon suivante. Sinon, ce que nous allons faire c'est simplement continuer avec les classes et les objets de manière plus détaillée. Bien, je voudrais donc en dire un peu plus sur les paramètres et les attributs. Nous pouvons ainsi voir les champs importants que nous avons définis que nous voulons utiliser, tels que l'identifiant, le prénom, le nom famille, l'âge, la nationalité. Maintenant, comment puis-je dire, entre parenthèses de la méthode int, qu'ils sont considérés comme nos paramètres, sont considérés comme nos paramètres, et qu'ils n'existent que temporairement dans cette méthode int Ensuite, utilisez Self Dot. Ce que nous faisons ici, c'est essentiellement configurer nos attributs tels que l'identifiant, le prénom, le nom de famille, âge et la nationalité en prononçant point, puis en faisant référence en conséquence à la nationalité, à l'âge , au nom de famille, au prénom et à l'identifiant, qui appartiennent à l'objet et sont accessibles ultérieurement Nos attributs appartiennent à notre objet et sont accessibles ultérieurement. Ensuite, comme nous le savons, nous créons un objet, également appelé création de notre instance. Et ce que nous faisons ici par la suite avec nos instructions imprimées, c'est que nous accédons à nos attributs parce qu'ils sont désormais indiqués dans notre objet. Une autre chose à mentionner ici avec les paramètres que nous avons définis ici est qu'ils n'existent pas en dehors de notre méthode innit Seuls nos attributs, que nous avons définis, resteront et pourront être appelés en dehors de notre classe Donc, juste quelque chose que je voulais mentionner pour que vous soyez au courant de ce que nous sommes en train de mettre en place. OK, et enfin, sachez simplement que nos paramètres ici, encore une fois, sont temporaires et qu'ils n'existent que pendant l'exécution d'innit, et que nos attributs, que nous avons définis à l'aide de self point, sont permanents et qu'ils vivront dans notre objet C'est bon. C'est donc tout ce que je voulais poursuivre et mentionner afin que vous compreniez mieux comment nous pouvons utiliser les deux options. C'est bon. Maintenant, la prochaine chose que nous allons faire est de faire un autre exercice pratique. Je vais donc simplement vous montrer comment créer une autre classe, afin de nous entraîner davantage. Très bien, alors allons-y et entraînons-nous un peu plus. Nous voulons maintenant définir une autre classe, configurer nos attributs, créer notre objet, etc. Je vais donc le supprimer et commençons. Je veux donc dire classe, et nous allons travailler avec une voiture, par exemple. Ensuite, nous voulons aller de l'avant et configurer notre message d'initialisation. Je dirais de double underscore init, pass through self, puis ce avec quoi nous allons travailler et ce que nous voulons finalement comme attributs au Nous aurons donc la marque, l'année modèle et la couleur. Au niveau du côlon. Ensuite, nous avons défini nos paramètres qui sont temporaires. Nous voulons maintenant configurer nos attributs, qui seront stockés dans notre objet. Donc, pour nous aider, nous utiliserons le self et disons que self point marque est égal à marque. Ensuite, nous aurons le modèle à point automatique, le point automatique ici est égal au modèle, point automatique ici est égal à ici et la couleur du point automatique est égale à la couleur. Allons-y. Nous l'avons donc défini en conséquence. Nous voulons maintenant créer notre objet ou notre instance de notre classe de voiture, et nous devons nous assurer de le faire conformément à notre classe, et non dans conformément à notre classe, le cadre de cette méthode d'initialisation Je veux donc m'assurer que je suis en phase avec le cours ici. Ensuite, ce que je vais faire, c'est une voiture, par exemple, définir une variable. Ensuite, je vais créer cet objet de ma classe de voiture. Je veux me référer à la classe, puis je pourrai passer en revue les valeurs. Ici, je vais dire, par exemple, Ty Yota. Ensuite, je vais prendre du Cola et ensuite je pourrai dire 2021. Et on peut voir du bleu. Vous pouvez voir que cela correspond. d'abord, bien sûr, nous pouvons voir que nous avons une marque, donc ce sera Toyota, Corolla, nous aurons le modèle, l'année 2021 et la couleur bleue. Nous avons tout défini. Nous voulons maintenant accéder aux attributs de notre objet. Je vais maintenant faire défiler la page vers le bas et me laisser zoomer ici. Et disons imprimer, et nous voulons faire référence à cette variable. Nous allons donc dire voiture d'un point, et nous pouvons simplement nous référer à l'attribut, qui sera la marque. Ensuite, nous pouvons dire imprimer la voiture d'un point, puis nous pouvons dire modèle, imprimer la voiture un point, et nous aurons, puis imprimer la voiture d'un point, et ce sera de la couleur. Nous finirons donc publier les valeurs que nous avons ici La marque à points sera Toyota, modèle à points sera Corla, point sera 2021 et la couleur des points sera le bleu Allons-y et exécutons ce code. Et ici, nous pouvons voir que nous obtenons le résultat suivant comme prévu. C'est bon. C'est ainsi que nous pouvons continuer à travailler avec nos classes, nos objets, nos paramètres et nos attributs, et comment nous pouvons assembler tout cela. Mais en fin de compte, cela s'est principalement concentré sur les classes et les objets. C'est bon, les gars. Alors c'est tout. J'ai vu que j'allais juste aller un peu plus loin afin que nous puissions nous entraîner un peu plus, mais ce sera tout pour cet exercice de laboratoire en particulier, afin que nous puissions simplement passer à autre chose et c'est tout. 64. Méthodes personnalisées: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur la méthode personnalisée. Jetons un coup d'œil. Le programme Qu' est-ce qu'une méthode personnalisée ? En termes simples, cela implique des méthodes que nous pouvons définir nous-mêmes au sein d'une classe pour déterminer les actions que ses objets peuvent effectuer. Donc, si nous devions faire une analogie, utilisons-en une avec laquelle nous avons travaillé plus tôt. Nous avons donc créé précédemment une classe basée sur le plan de la personne Les attributs que nous avons, bien sûr, incluraient l'identifiant, le prénom, le nom de famille, l'âge, la nationalité, et avec nos objets, par exemple, nous pouvons créer autant d'objets que nous le souhaitons. Mais, par exemple, nous avons ici deux objets, se rapportent à chaque personne unique Ce que nous pouvons également faire, c'est qu'à ces objets, nous pouvons ajouter une méthode. Donc, dans ce cas, les méthodes appropriées incluraient, pour un cours individuel, manger, étudier et dormir. Par exemple, si vous aviez une catégorie de voiture, il serait probablement logique d'avoir recours à des méthodes telles que la voiture de service , la conduite automobile, le kilométrage ou une autre méthode ou action, devrais-je dire Dans tous les cas, vous pouvez traiter le message comme une action que vous pouvez inclure dans le cas d'utilisation la nature de votre classe et des objets associés que vous créez. C'est bon. Voilà pour l'aperçu théorique. Nous allons maintenant passer aux exercices de laboratoire et appliquer cette logique à une classe donnée. 65. Intégrer des méthodes personnalisées (instance) - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique de laboratoire, qui sera axé sur méthodes personnalisées avec nos classes et nos objets. Commençons par les bases définissant d' abord notre classe, en configurant notre structure, puis en créant notre objet. Nous allons choisir un exemple plus familier afin de pouvoir nous familiariser beaucoup plus facilement avec l'idée de méthodes personnalisées. Tout d'abord, définissons notre classe. Nous allons donc à nouveau utiliser person. Ensuite, ce que nous voulons faire, c'est continuer et définir notre méthode d'initialisation ainsi que les paramètres requis Ensuite, nous allons dire defunds init, suivi à nouveau d'un double trait de soulignement Ensuite, nous devons passer par soi, puis par identification. Premier nom souligné, dernier nom souligné, puis nous aurons l'âge et Zoomons simplement ici et sur notre k à la fin. C'est bon. Nous pouvons maintenant utiliser self pour stocker les valeurs dans notre objet. Nous voulons maintenant configurer nos attributs. Je vais donc dire que l'identifiant du point automatique est égal à l'identifiant, le point automatique, premier trait de soulignement est égal au nom du premier trait de soulignement, puis le point automatique, le dernier nom puis le point automatique est égal au nom du dernier trait de soulignement Ensuite, l'âge à point automatique est égal à l'âge et la nationalité à point automatique est égale à la nationalité. Parfait. Nous avons cette configuration. Maintenant, en dehors de notre méthode ici en ligne avec notre classe, nous devons créer notre objet. Je vais dire personne égale, puis faire référence à la classe de personnes. Ensuite, je pourrai transmettre mes valeurs. Je vais en prendre un. John, puis Doe, alors âgé de 28 ans et nationalité, on peut simplement dire USA. OK, nous y voilà. Nous avons donc tout défini. Il y a l'identifiant, le prénom, le nom de famille, l'âge et la nationalité. Maintenant, allons-y et imprimons ces valeurs en fonction des attributs auxquels nous faisons référence. Donc, ce que je vais faire, c'est faire défiler un peu vers le bas et nous pouvons dire imprimer. Référez-vous à la première personne , au point, puis à l'attribut. Bien entendu, nous allons d' abord souligner le nom, puis nous pouvons dire print person one, point, et nous pouvons dire nationalité, par exemple Nous pouvons maintenant exécuter ce code. Nous en arrivons aux sorties, comme nous pouvons le voir John et USA. Nous avons défini notre classe de base. Nous avons également créé un objet et affiché les valeurs que nous voulons en fonction de l' attribut défini, et il récupère les valeurs du prénom et de la nationalité en conséquence. Parfait. Heure du message personnalisée. Assurez-vous que cela est en place et que vous l'avez compris. Nous avions maintenant beaucoup d'entraînement avec les cours et les objets. Appliquons maintenant le message. Pour le moment, nous pouvons simplement supprimer l'instruction d'impression et maintenant, définissons nos méthodes. C'est vrai. Continuons. Maintenant, lorsque vous configurez vos méthodes, elles doivent être conformes à votre méthode initiale. Ce sera au sein de votre classe conformément au message innit Comme vous pouvez le voir ici, il y a une ligne en retrait. Je devrais faire ce qui suit. Respectez votre méthode d'initialisation, puis vous pourrez définir votre méthode Je vais parler de la mort et je vais appeler ça une introduction. Je vais être une introduction, pourrait-on dire. Ensuite, je dois passer self ici en tant que paramètre. Et nous utilisons self pour accéder à nos attributs enregistrés. Nous avons donc, comme vous pouvez le constater, le prénom, le nom famille, l'âge et la nationalité. Et ce que nous voulons faire ensuite, c'est d'aller de l'avant et de mettre en place un simple relevé imprimé qui ne servira qu'à dire bonjour. m'appelle deux-points, puis je vais utiliser la concaténation de chaînes, car nous allons avoir affaire à une valeur de Je vais donc dire le premier soulignement du nom Self Dot. C'est vrai. C'est ainsi que nous pouvons définir une méthode aussi simple que cela. À présent, self point Fn va rechercher l'attribut et la valeur définis pour l'objet lié à cet attribut. Dans ce cas, ce sera John qui finira par sortir. Maintenant, tout ce que nous voulons faire , c'est appeler cette méthode. Maintenant que cette méthode s' appelle introduce, nous allons l'appliquer à la première personne, qui est bien sûr définie sur cette particulière. Elle est définie comme un objet avec la valeur de John comme prénom. C'est ainsi que nous pourrons prononcer le prénom de Seles, et il sera lié à l'attribut de l'objet que nous sommes en train de créer et à l'attribut du prénom de l'objet que nous avons créé, à savoir et il sera lié à l'attribut de objet que nous sommes en train de créer et à l'objet que nous avons créé John Donc, pour ce faire, nous devons l'invoquer, et pour invoquer cette fonction, vous pouvez simplement dire person one. Ajoutez des points et introduisez le jus, ouvrant et en fermant les parenthèse Et ici, ce qui va se passer, c'est que nous allons utiliser l'accès automatique à notre prénom, et cela va imprimer cette déclaration puisque nous l'appelons mesod Et ce que nous pouvons faire maintenant, c'est exécuter le code. Et il est écrit : Bonjour, je m'appelle John. OK, donc c'est aussi simple que ça. C'est ainsi que nous pouvons simplement aller de l'avant et créer une méthode. C'est bon. Maintenant, allons-y et créons une autre méthode. Je veux en créer un qui dit joyeux anniversaire. Nous pouvons voir que John Doe a actuellement 28 ans, donc je dois créer une nouvelle méthode. Laissez-moi faire défiler la page vers le bas. Je vais dire que celui-ci sera DF et qu'il aura un nom pour souligner l'anniversaire, le désordre Je vais passer par self que nous puissions accéder aux attributs, puis nous devons ajouter certaines fonctionnalités. Nous pouvons donc dire que self point age plus est égal à un, ce qui va mettre à jour l'attribut age stocké dans l'objet et y ajouter un attribut. John aura alors 29 ans techniquement. Alors maintenant, allons-y et imprimons ceci . Je vais dire imprimer. Joyeux anniversaire, et je vais dire espace virgule, concaténation de chaînes Je vais dire soi, et je vais dire le premier point de soulignement du nom C'est pour ça qu'on dit joyeux anniversaire. Et je vais également aller de l'avant et dire qu' à la fin, je dirais que vous l'êtes maintenant. Ensuite, ce que je veux faire, c'est passer au casting parce que n'oubliez pas que le g ici est traité comme un entier, donc je dois le convertir en chaîne ici, et c' est parce que nous utilisons une concaténation de chaînes Je veux dire string. Nous devons dire « plus » ici. Et ce sera Self Point H. Et ça veut dire « nous sommes maintenant ». Et si j' ajoute le signe plus ici, c'est parce que nous utilisons concaténation de chaînes et que nous allons convertir en chaîne. OK ? Et ça va marcher. Si je n'ai pas ajouté le signe plus, il y aura une erreur Nous devons donc nous assurer d'avoir ajouté ce qui suit ici. Maintenant, je peux juste appeler ce message pour pouvoir ensuite dire personne d'un point et souligner l'anniversaire, et nous pouvons ouvrir et fermer les parenthèses qui vont dire « joyeux anniversaire, John, tu es maintenant » et il va aller sur une haie et obtenir l'âge et se rappeler que nous l'ajoutons plus un, donc il va obtenir l' âge et en ajouter plus un, donc ce sera il devrait imprimer cette structure complète. Maintenant, si j'exécute le code, nous pouvons maintenant voir que nous l' avons comme suit. Ça a l'air un peu moche parce que je n'ai pas ajouté d'espace. Je peux simplement y ajouter de l'espace. Nous y voilà. Nous y voilà beaucoup plus propres maintenant. Vous pouvez maintenant voir qu'il est écrit : «   Bonjour, je m'appelle John ». Joyeux anniversaire, John, tu as maintenant 29 ans. C'est vrai. C'est ainsi que nous pouvons créer et utiliser des méthodes au sein de nos classes et de nos objets et aussi comment nous pouvons appeler un message. N'oubliez donc pas que cela dépend du cas d'utilisation que vous utilisez. Voici donc le code complet pour que vous puissiez le voir. Cela dépendra donc du cas d'utilisation que vous utilisez et le message serait approprié en fonction de cela. Dans ce cas, nous avons donc présenté et avons fait de l'anniversaire notre message d'anniversaire, car il est approprié pour une personne de présenter une personne et de lui dire joyeux anniversaire également. C'est vrai. C'est tout pour cet exercice de laboratoire en particulier. Je vais ajouter un autre exercice de laboratoire qui sera axé sur les méthodes, mais un peu plus en détail, et nous y reviendrons dans le prochain exercice pratique de laboratoire. Mais ce sont les bases de l' utilisation de méthodes personnalisées. 66. Travailler avec des méthodes statiques et de classe - [Lab]: Bonjour, tout le monde. Bienvenue au prochain exercice pratique en laboratoire, qui continuera à se concentrer sur les méthodes. Maintenant, je tiens à mentionner que plus tôt, nous avons appris à utiliser des méthodes personnalisées. Elles sont également connues dans le domaine des classes et des objets sous le nom de méthodes d'instance, car nous travaillons avec nous-mêmes pour travailler avec les attributs de nos objets. Maintenant, il existe également deux autres méthodes. Elles sont connues sous le nom de méthodes statiques et également de méthodes de classe. Nous allons également travailler et mettre l'accent là-dessus. Bien, commençons donc par les méthodes statiques. OK. Ainsi, une méthode statique n'utilise pas self car elle n' interagit pas avec les attributs de nos objets, et elle se comporte de manière très similaire à une fonction normale, pourrait-on dire, mais elle fait partie de notre classe juste pour être mieux organisée Et nous pouvons l'appeler sans avoir à créer d'objet. Allons-y et créons une méthode statique simple. C'est vrai. OK. Nous avons donc introduit ici nos méthodes personnalisées et avons la date d'anniversaire, communément appelée méthodes d'instance. Définissons une méthode statique et elle comportera également un décorateur Nous devons être intégrés à notre classe, bien sûr, et suivre à nouveau notre méthode d'initialisation, et nous devons nous assurer que c'est le cas Nous devons ajouter de l'espace. Et je vais créer un message statique qui vérifiera si la personne est adulte ou non. Je vais donc dire que la mort est un adulte souligné. Et ce que nous pouvons faire, c'est passer directement par l'attribut lui-même, qui sera l'âge. Nous pouvons donc simplement dire l'âge tel quel. Et n'oubliez pas que nous ne nous servons pas de nous-mêmes, d'accord ? Et cela va garantir que nous aurons accès aux attributs de manière directe. OK. Maintenant, une fois que nous avons défini cela, nous devons ajouter notre Cerlon , puis nous voulons exécuter la fonctionnalité Nous allons donc dire que je vieillis plus est égal à 18 ans, puis nous pouvons dire return true, sinon, return false. Et n'oubliez pas que pour en faire un mesod statique à la fin, vous devez ajouter le décorateur, qui est une méthode statique Nous avons maintenant mis en place notre toute première méthode statique. OK. Maintenant, une autre chose que je voulais mentionner ici à propos la méthode statique que nous avons créée est qu'elle appartient à la classe mais n' accède pas à nos attributs instantanés. OK ? Donc, c'est juste quelque chose que je voudrais mentionner. Et ce que nous faisons simplement ici, c'est passer par l'âge, et nous allons vérifier si la personne est un adulte en fonction de son âge. Alors maintenant, nous pouvons dire que cette méthode est adulte et nous pouvons l' appliquer à une classe particulière. Et dans notre cas, notre classe est individuelle. Nous pouvons donc faire défiler la page vers le bas. OK, ajouter de l'espace. Maintenant, ce que nous voulons faire, c'est dire print et nous allons appeler le mesod statique et nous allons faire référence à la classe person, et vous voulez dire que point est soulignement adulte et que nous appelons le message statique ici comme vous pouvez le voir, puis ici nous pouvons transmettre une valeur particulière Donc ici, je vais dire 25, par exemple, et ça va vérifier si la personne est adulte ou non. Nous pouvons donc exécuter ce code. Et ici, nous pouvons voir que c' est vrai ici en bas. Si je monte ici, nous pouvons voir que le résultat est vrai. OK. Et allons-y et faisons-en un autre. Disons que la personne est adulte, et laissez-moi en indiquer 17. Et nous pouvons voir que nous nous trompons ici en bas, n'est-ce pas ? C'est ainsi que nous pouvons utiliser une haie et appeler notre méthode statique et l'utiliser. C'était donc juste une explication très simple que je vérifie que nous avons utilisée. OK. C'est donc juste quelque chose que je voulais mentionner par souci de clarté. OK. Maintenant, la prochaine chose que nous voulons examiner est une méthode de classe. OK, nous avons donc notre méthode statique. Maintenant, une méthode de classe fonctionne avec la classe elle-même, d'accord, pas avec un objet individuel, pourrait-on dire. Et il utilise CLS au lieu de self pour faire référence à notre classe, et nous pouvons l'utiliser pour créer nos objets d'une manière différente En d'autres termes, ce que nous pouvons réellement faire c'est ajouter des valeurs par défaut. C'est donc très similaire d'une certaine manière si vous suivez les arguments par défaut dans un sens, et vous verrez ce que je veux dire dans un instant. OK ? Définissons donc d'abord une méthode de classe. Je vais le créer juste en dessous d'ici, méthode statique. Et ce que nous allons faire, c'est commencer par le décorateur, et je vais continuer en disant la méthode de classe OK. Et on peut alors parler de mort. Et je suis là. Je vais spécifier le nom de la méthode comme WIS, underscore default, underscore nationality OK. Et ce que nous voulons faire ensuite, c'est passer par CLS, dans un premier temps Et n'oubliez pas que CLS fait référence à l'objet de classe à la classe elle-même, et que nous créons un nouvel objet avec lui. OK. Et essentiellement, ce que nous voulons nous assurer, c'est qu'au lieu de demander une nationalité, il la définira automatiquement à une valeur spécifique qui sera définie comme inconnue. OK. Donc, ce que nous allons ensuite traverser, c'est monter sur une haie et traverser nos champs. Nous aurons donc une pièce d'identité. Nous aurons le premier nom souligné Nous allons avoir le nom de dernier soulignement, et nous indiquerons l'âge en omettant, bien sûr, la nationalité pour Ensuite, ce que nous voulons faire, c'est créer, comme je l'ai dit, une personne dont la nationalité est inconnue. Je peux dire retourner le CLS, puis nous allons renvoyer identifiant, le premier nom de soulignement, nom de dernier soulignement, l'âge, puis pour le bloc de nationalité, nous pouvons saisir inconnu si aucune valeur particulière n' a été Maintenant, ce que nous pouvons faire, c'est créer un objet en utilisant notre message de classe. Cela va donc être très précis. Donc pour l'instant, je vais le supprimer pour le moment, et vous verrez ici, je vais appeler cette personne deux égaux, et nous allons dire point de personne. Et nous allons utiliser ce message de classe. Donc ici, je vais dire que W souligne par défaut la nationalité. OK. Et dans ce cadre, je vais vous faire part de mes valeurs. Ici, je vais définir deux idées, le nom, je vais dire Jane Smith, je vais dire 24. Vous allez voir que je vais omettre la nationalité maintenant. Permettez-moi donc de procéder en conséquence et de vérifier les résultats. Je vais dire imprimer, faire référence à la personne deux, la variable, dire point, puis je vais simplement dire le nom du premier trait de soulignement, et je dis imprimer la personne deux, et c'est exactement ce que c'est ici, point et je vais dire nalité Maintenant, vous pouvez voir que je n'ai pas indiqué de nationalité en particulier, donc je vais revenir à la sortie Maintenant, exécutons-le. Et voici Jane et Unknown. Et comme vous pouvez le voir, c'est le cas lorsque j'ai fait référence à l'attribut de nationalité, mais je n'ai pas défini de valeur ici, alors j'ai changé cette méthode Et comme vous pouvez le voir ici, je renvoie le prénom, le nom de famille, l'âge, la pièce d'identité, mais je laisse la nationalité inconnue ici. OK ? Ce message de classe peut donc être très utile, et dans ce cas, nous voulions une autre façon de créer un objet. Il s'agit donc d'une autre façon de créer un objet. Et par exemple, si vous souhaitez définir une valeur par défaut, si un utilisateur ne fournit pas lui-même une certaine valeur, telle que la nationalité, comme vous pouvez le voir, OK. Et cela est très utile si nous voulons modifier nos attributs de niveau de classe eux-mêmes. C'est bon. Voici donc les moyens simples par lesquels vous pouvez utiliser vos méthodes statiques ainsi vos méthodes de classe elles-mêmes. OK. Maintenant, la dernière chose que je vais faire, bien sûr, c'est que je veux simplement approfondir cet exercice en particulier. Je vais juste passer un peu de temps à expliquer plus en détail la méthode statique et plus en détail la méthode statique et le message de classe, juste pour consolider vos connaissances afin que vous appreniez correctement, dois-je dire ? Nous allons donc aller explorer un peu plus la question. C'est vrai. Donc, la prochaine chose que je veux expliquer, c'est qu'avec notre méthode statique, nous avons l'âge. Maintenant, l'âge agit simplement comme un paramètre normal, et nous le transmettons comme nous le faisions avant cette valeur particulière. Donc, si je devais continuer et répéter, si je dis « imprimer », je vais m'y référer en conséquence en disant que le point d'une personne est un soulignement d'un adulte, et nous allons mettre , par exemple, 19 Pour exécuter le code, et nous avons ici true. Essentiellement, c'est très similaire à la façon dont nous aurions des fonctions, mais vous pourriez traiter la méthode statique comme une fonction au sein d'une classe, vous pourriez dire en termes d'organisation. Nous appelons ici la méthode statique et nous renvoyons simplement l' argument ou la valeur que vous pourriez dire, qui sera transmis ici et remplacé par l'âge ici, qui agit comme le paramètre que nous sommes en train de vérifier. C'est juste quelque chose que je voulais mentionner pour plus de clarté ici. Essayer de voir des méthodes statiques correspond à des fonctions qui sont simplement définies dans une classe. C'est ainsi que je veux que tu le voies. OK. Maintenant, la personne pointe ici. Donc, la personne est en fait genre de touche que j'ai mentionné, c'est parce que c'est une sorte de fonction parce que c'est une fonction au sein d'une classe ici, et nous faisons référence à la classe. C'est ainsi que nous devrions d'abord nous y référer. Nous nous référons d'abord à la classe, puis, bien sûr, au mesodname OK, maintenant, un peu plus de clarté sur la méthode de classe ici. Donc, essentiellement, ce qui se passe ici avec notre méthode de classe, bien sûr, dans ce cas, nous utilisons CLS au lieu de self, c'est ce que nous faisons ici, et cela fait référence à la classe person elle-même Et puis ID, prénom, nom de famille H ne sont essentiellement que les paramètres dont nous avons besoin pour créer une personne. Comme nous pouvons le constater, la nationalité n' est pas transmise car nous voulons la définir inconnue par défaut lorsque nous exécutons la déclaration de retour. OK ? C'est vrai. Comme nous pouvons le voir par la suite, nous renvoyons CLS. Ce que nous faisons essentiellement ici, c'est appeler la classe constructeur, qui est def init ici, et cela nous aidera à créer un nouvel objet personne avec les détails donnés et essentiellement les détails que nous pouvons voir que nous ajoutons ici lorsque nous appelons la classe mesod et dans les fonctionnalités la nationalité sera définie comme inconnue, nous n'avons donc pas à nous soucier de devoir définir une valeur supplémentaire que nous voulons transmettre lorsque nous configurerons les paramètres ici en conséquence. C'est bon, les gars. Juste un peu plus de détails à ce sujet, juste pour expliquer un peu plus. Mais en d'autres termes, les gars, je dirais, c'est ça. Nous avons maintenant appris à utiliser des méthodes personnalisées, en d'autres termes, des méthodes d' instance, des méthodes statiques ainsi qu'à utiliser des méthodes de classe. C'est tout pour cette conférence en particulier, et nous allons ensuite concentrer dans la prochaine leçon sur l'héritage. 67. Qu'est-ce que l'héritage ?: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur l'héritage. Jetons donc un coup d'œil. Riche. L'héritage nous permet de créer une classe enfant qui hérite de tous les attributs et méthodes d'une classe parent Jetons donc un coup d' œil à cela visuellement. Nous avons donc une classe parent, puis deux classes enfants, par exemple, et ces classes enfants vont essentiellement hériter à la fois des attributs et méthodes de cette classe parent Jetons maintenant un coup d' œil à une analogie pour consolider nos connaissances en matière d'héritage. Disons que nous avons un parent. Disons que nous avons une mère et qu'elle a deux enfants. Maintenant, on pourrait dire qu' avec la génétique et avec la reproduction et tout ce dont les enfants hériteront, disons les cheveux blonds et les yeux verts Disons que l'enfant, le mâle hérite des cheveux blonds, et la femelle, la fille, hérite des yeux verts C'est donc un héritage. Supposons que le parent ou la mère leur apprenne également à parler et à marcher. Les enfants héritent donc maintenant de ces méthodes de parole et de marche Et cela consoliderait l'ensemble du concept d' héritage en Python Nous aurions donc la classe pour les parents et nous aurions les cours pour enfants. C'est bon, les gars. C'est donc l' héritage en termes d'aperçu théorique. Nous allons maintenant passer à l'exercice pratique en laboratoire. 68. Utiliser l'héritage - [Lab]: Tout le monde, et bienvenue au prochain exercice pratique de laboratoire, qui sera axé sur l'héritage. Commençons. La première chose que nous devons faire est de créer notre classe parent ou notre classe de base, pourrait-on dire. Allons-y et utilisons un exemple que nous connaissons déjà pour nous aider à comprendre le concept d'héritage dans son ensemble. C'est vrai. Tout d'abord, je vais définir ma classe comme une personne. Ensuite, nous voulons définir notre méthode innit, également connue sous le nom de méthode constructeur, qui sera appelée une fois qu'un nouvel objet personnel sera créé, puis elle sera utilisée pour initialiser les attributs et initialiser les attributs les variables d'instance de Nous pouvons donc dire De underscore init, double underscore. Ensuite, nous allons passer par soulignement IGF, le nom de famille souligné, l'âge et la nationalité. Génial. À l'heure actuelle, nous voulons définir et associer notre attribut. Donc, identifiant, prénom, nom de famille, âge et nationalité avec vous-même. Je peux donc dire que self point ID est égal à ID. Ensuite, je peux dire le nom du premier trait de soulignement à point automatique, et ce sera le nom du premier trait de soulignement, le nom point automatique OK, puis la nationalité du point G et du point d'identité. C'est vrai, parfait. Génial. Maintenant, ce que je veux aussi faire, c'est également créer un message afin que vous sachiez comment vous pouvez également hériter des messages ainsi que des attributs Bien, donc conformément à votre message d'initialisation, je vais dire mort et encore une fois, présenter Je vais passer par l'autodécoupage. Et n'oubliez pas que ces méthodes personnalisées que nous créons sont des messages d' instance. Donc, lorsque nous avons affaire à soi, ce sera une méthode d' instance. Vous pourriez donc techniquement dire méthode personnalisée. C'est vrai. Cette instance mesod va donc permettre à la personne de se présenter, et nous voulons renvoyer une chaîne avec le nom de la personne, avec le nom de la personne, c'est parfaitement correct Nous pouvons donc dire retour. Et nous allons utiliser chaînes F cette fois juste pour changer un peu les choses, et je vais vous dire bonjour. Oui, puis je vais juste mettre mes espaces réservés pour les chaînes du nom du premier trait de soulignement, puis nous aurons le nom du puis nous aurons dernier trait de soulignement du point automatique, comme Et à la fin. Voilà. Notre méthode est également liée à cette classe particulière J'en ai juste envie. Nous y voilà. Rendons-le un peu plus propre. Très bien, nous avons donc ce set. Maintenant, la prochaine chose que nous voulons faire est de définir notre classe enfant. Nous avons donc ici notre classe personnelle, et cette classe enfant sera la classe dérivée essentiellement de la classe individuelle, d'accord. Et il va hériter de tous les attributs existants et de toutes les méthodes existantes Nous pouvons donc voir nos attributs ici, et nous pouvons voir cette méthode introduite. D'accord, donc, lorsque vous travaillez sur l'héritage, vous allez hériter de votre classe parentale, et cela doit avoir du sens Vous ne pouvez donc pas avoir, par exemple, une classe pour enfants qui est une classe automobile, et vous avez une classe pour parents qui est une classe individuelle. Cela n'a aucun sens. Personne et voiture. C'est un peu confus. Un exemple approprié dans ce cas serait donc celui de l'employé. L'employé est donc dérivé de la classe de personnes. C'est logique. Alors allons-y et faisons-le. Maintenant, nous allons devoir définir une autre classe. Donc, conformément à la classe person, nous voulons créer une autre classe. Je vais donc faire défiler la page vers le bas et dire classe. Et cela s' appellera un employé, qui héritera de attributs et de toutes les méthodes d'une personne Et nous pouvons simplement nous référer à la classe person ici entre parenthèses pour effectuer l'héritage Ensuite, nous voulons continuer et fermer une telle méthode, puis nous devons définir notre méthode d' initialisation, cela va étendre la classe person, et nous allons également ajouter de nouveaux attributs Il conservera tous les attributs et méthodes de la classe de personnes, et nous allons également ajouter des attributs supplémentaires Laissez-moi vous montrer ce que je veux dire. Nous pouvons dire Def, et nous pouvons dire double underscore init, double underscore, et nous dirons self Pour faciliter les choses, nous pouvons simplement copier tout ce qui existe déjà ici. Et tu veux le coller dedans. Vous pouvez ensuite ajouter des attributs supplémentaires. Par exemple, ce que je vais faire, c'est souligner le titre du poste et le salaire, sans oublier d'ajouter deux points à la fin. Voici les attributs supplémentaires que nous ajouterons. OK. Génial. Maintenant, nous pouvons entrer et continuer. Et maintenant, ce que nous devons faire, c'est utiliser ce que l'on appelle la super fonction. OK. Maintenant, la super fonction est utilisée pour appeler le constructeur de notre classe parent person Ce sera donc, bien sûr, notre constructeur ici Et ce que nous allons faire , c'est nous assurer de le faire, afin de ne pas avoir à redéfinir les attributs qui existent déjà en personne Nous ne voulons pas redéfinir cela, nous allons appeler le constructeur de notre classe parent, qui sera bien sûr person Ensuite, ce que nous pouvons faire ici, c'est faire une couverture et nous assurer que nous disons « super princes de l' ouverture et de la fermeture », et vous voulez dire «   point, double soulignement dans KIT, « double soulignement Ensuite, ce que vous allez faire ici c'est transmettre votre identifiant, premier soulignement du nom, le nom , l'âge et Ce seront donc les attributs hérités de la personne. C'est ici que vous héritez des attributs. Ensuite, nous voulons définir nos nouveaux attributs spécifiques à la classe d' employés. Et cela va suivre ce que nous avons fait ici auparavant avec self point, self point, etc. Et ce sera, comme vous pouvez le voir, pour le titre du poste et le salaire. Vous pouvez donc voir qu'ils n'ont pas été surlignés. Donc, ce que vous pouvez faire, c'est en dessous de cela, vous pouvez dire « soi », et nous pouvons dire « point », et vous allez dire « titre de soulignement du poste », «   égal au titre de soulignement du poste », puis « point automatique », salaire égal au salaire, juste comme ça Nous sommes donc maintenant allés de l'avant et avons défini les attributs propres à cette catégorie d'employés. heure actuelle, nous pouvons définir une fonction réservée à la classe des employés. Ici, conformément à votre méthode d'initialisation, vous pouvez faire un travail approfondi pour souligner les informations, et vous voulez les transmettre vous-même, et nous allons continuer à fournir cette méthode afin qu'elle puisse nous fournir des informations relatives au poste sur l'employé, et nous allons renvoyer une chaîne indiquant son titre de poste Donc, je vais juste dire return, et nous allons continuer et utiliser une chaîne F, je vais dire F, et je vais dire que je travaille en tant que A, puis pour le paramètre à transmettre, le point automatique, le titre de soulignement et le point là Très bien, nous y voilà. Il y a donc le message qui ne concerne que l'employé C'est vrai. Nous l'avons donc maintenant, nous pouvons créer une instance ou un objet d'employé. Alors faisons-le. Encore une fois, ce sera dans la lignée de la classe ici sur la première ligne. Donc, juste comme ça pour que nous puissions voir que c'est conforme à ce qu'il se doit. Je veux juste ajouter un peu d'espace. OK. Maintenant, nous pouvons simplement créer une variable et appeler cet employé un égal. Nous voulons appeler et utiliser la catégorie des employés. Quelle personne a hérité et tous les attributs. Nous pouvons donc maintenant passer en revue les valeurs, d'accord, qui concernent le prénom, le nom de famille, l'âge et la nationalité, ainsi que l'identifiant, titre du poste et le salaire Donc, ce que je vais faire, c'est ouvrir mes portes et je vais dire que ID en sera une Nommez John Joe, et ensuite nous aurons l'âge. Je dirais 28 ans et je dirais nationalité, ce sera les États-Unis, puis nous aurons le titre du poste. Je vais dire ingénieur logiciel, puis je vais fixer le salaire. Je dirais 80 000. Nous y voilà. Tout est en place. Ainsi, vous pouvez voir les valeurs supplémentaires qui seront définies pour les attributs associés , puis toutes les valeurs qui seront définies pour les attributs définis dans la classe person. OK. Nous avons donc cet objet et nous pouvons voir que nous avons hérité des premiers et que nous avons les derniers qui sont natifs pour hériter de notre classe qui va hériter d'une personne, donc d' Maintenant, ce que nous pouvons faire, c'est dire « imprimer », «  employé » et « prénom », qui proviendra essentiellement de la classe parentale , puis nous pouvons dire « imprimer », «   employé » un point, et ici, nous pouvons dire « souligner le titre du poste Cela va être propre à la catégorie des employés. Bien, alors allons-y et exécutons ce code. Ensuite, nous avons John, et bien sûr, nous avons un ingénieur logiciel. Nous y voilà donc. Bravo si vous en êtes arrivé là, vous avez correctement configuré l'héritage et l'avez bien configuré. Nous voulons maintenant appeler les méthodes que nous avons définies. Donc, la première méthode, qui va être introduite par la personne de la classe, puis la méthode des informations de travail par la classe d'employés. Donc, ce que nous pouvons faire ici, c'est simplement dire imprimer, et vous allez dire employé un point, et vous pouvez dire présenter, et vous pouvez dire présenter puis imprimer un point à l'employé, et vous pouvez dire travail, soulignement, information, ouverture, fermeture des parencs Bon, voilà, et je vais juste commenter les deux premiers pour le moment. Et nous pouvons exécuter le code. Ici, il est écrit : « Bonjour, je suis John Doe ». Je travaille en tant qu'ingénieur logiciel. La première méthode a été appelée. Bonjour, je suis John Doe, puis je travaille en tant qu'ingénieur logiciel , selon la méthode d'information de travail que nous avons définie. Nous pouvons le voir en nous référant à la variable qui crée essentiellement cet objet. Nous pouvons nous y référer puis appeler les méthodes qui sont uniques à chaque classe et nous pouvons voir que nous avons hérité de la méthode de la classe person car nous pouvons y accéder et utiliser cette fonction en conséquence. Très bien, les gars, alors voilà. Comme vous pouvez le constater, cela montre comment vous pouvez utiliser l'héritage, et c'est également très utile. Comme vous pouvez le constater, vous n'avez pas besoin de reconstruire le testament et de définir des classes distinctes. Vous pouvez vraiment gagner beaucoup de temps en utilisant cette super fonction que nous avons ici pour configurer automatiquement les attributs de la classe précédente, puis pour commencer et nous permettre essentiellement d'attribuer nos propres attributs qui dépendent de la nouvelle classe, qui est native de cette classe uniquement. OK. Parfait. C'est bon, les gars. C'est ça. Allons-y et retirons-le. C'est tout pour cet exercice pratique de laboratoire sur l'héritage. 69. Abstraction: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur l'abstraction. Jetons un coup d'œil. Vous vous demandez probablement ce qu' est l'abstraction. L'abstraction est simplement le processus qui consiste à masquer des détails inutiles et à ne montrer que les parties importantes. Cela permet de simplifier les systèmes complexes en se concentrant sur ce que fait quelque chose plutôt que sur son fonctionnement. Maintenant, si nous devions l'utiliser dans le POO, la programmation orientée objet, l'abstraction signifierait simplement créer interfaces simples et conviviales tout en masquant tous les détails complexes de l' implémentation Maintenant, si je devais vous donner une analogie simple pour illustrer mon propos sur l'abstraction, ce serait une analogie aussi simple que celle-ci. Disons que nous avons une télécommande et que nous voulons regarder la télévision. Maintenant, pour changer de chaîne, nous devons cliquer sur la télécommande, puis cela enverra un signal au téléviseur pour dire : OK, je veux que tu ailles sur cette chaîne. Je veux que tu ailles sur cette chaîne. C'est ainsi que je veux que vous essayiez de rationaliser l'abstraction dans son intégralité Donc, pour résumer, nous n'avons pas besoin de comprendre ou de savoir comment la télécommande change de chaîne ou pourquoi. Nous voulons juste regarder la télévision. Maintenant, si nous devions appliquer cela à l'abstraction, l'idée générale est que nous n'avons pas besoin de comprendre comment quelque chose fonctionne en interne, tout comme une abstraction. Nous l'utilisons simplement pour obtenir le résultat que nous voulons. C'est bon. C'est bon, les gars. Voilà pour ce qui est de la leçon de l'abstraction en termes d'aperçu théorique. Nous allons approfondir son application aux exercices pratiques de laboratoire. Allons-y donc et allons-y directement. 70. Travailler avec l'abstraction - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique de laboratoire, qui sera axé sur l'abstraction. Commençons. Maintenant, la première chose à faire est d' appeler le module ABC. Et à partir du module ABC, nous allons importer ABC et caps, qui représentent la classe de base abstraite. Nous allons donc utiliser une classe de base abstraite ainsi que la méthode abstraite associée. Maintenant, pour importer une méthode abstraite, il suffit d'ajouter une virgule et de dire Appstrct mesode comme ça. OK, parfait. Nous voulons maintenant créer une classe abstraite. Maintenant, je vais dire classe et je vais parler de cela comme d'une personne. Ensuite, entre parenthèses, vous devez passer par ABC, qui signifie classe de base abstraite Maintenant, l'essentiel avec l'abstraction est que si vous considérez une classe comme une classe abstraite, elle ne peut pas être instanciée En d'autres termes, vous ne pouvez pas créer d'instance ici. Vous ne pouvez créer aucun objet. C'est l'élément clé que je vais également tester vers la fin de cet exercice de laboratoire pour vous prouver ce que je veux dire par là. C'est vrai. Maintenant que nous créons une classe, nous allons faire la même chose qu'avant. Nous allons définir notre méthode d'initialisation avec nos paramètres, puis configurer et stocker nos variables plus permanentes qui seront, bien entendu, des attributs Je vais donc dire Deere Inner Score, nous allons passer par soi, son nom et son âge Ensuite, nous voulons dire que le nom du point personnel est égal au nom et que l'âge du soi est égal à l'âge. C'est très simple. Ensuite, dans la même ligne, nous voulons définir notre méthode abstraite. Maintenant, je me demande ce qu' est une méthode abstraite ? La méthode abstraite est essentiellement une méthode qui sera utilisée comme décorateur et attachée à une méthode particulière. Elle va obliger toutes les sous-classes ou classes enfants, devrais-je dire, à implémenter cette devrais-je dire, à implémenter Il s'agit d'une méthode obligatoire que vous définissez pour toutes vos sous-classes ou classes pour enfants. Ce que je vais faire, c'est dire DF et je vais dire que description du poste de soulignement sera mon mésode abstrait et que nous allons passer par nous-mêmes Ce que vous devez faire est juste au-dessus, vous devez ajouter votre décorateur et indiquer la méthode abstraite de l'application Cela est basé sur ce que nous avons importé ici à partir du module ABC. C'est vrai, parfait. Maintenant, cette méthode, comme je l'ai mentionné, doit être implémentée par toutes nos classes, et nous n'allons pas définir comment elle est utilisée. Nous allons simplement le rendre obligatoire. Dans chaque classe que nous créons maintenant, les sous-classes que nous créons, d'accord ? Essentiellement, ce qui va se passer c'est que nous pouvons y ajouter nos propres fonctionnalités, mais la méthode elle-même doit être utilisée. C'est vraiment l'élément clé ici avec les méthodes abstraites. Maintenant, comme vous pouvez le voir ici, j'ai une ligne rouge, ce qui signifie, bien sûr, que nous allons avoir une erreur. Nous ne pouvons pas simplement laisser cette méthode vide. Ce que vous allez vouloir faire, c'est passer le mot clé pass, assez ironique, en fait, juste pour qu' il n'y ait pas d'erreur et cela signifie qu'il n'y a aucune implémentation dans notre classe abstraite l'heure actuelle, la prochaine chose que nous voulons faire est de définir un message normal ici. Donc, un message que nous pouvons appeler et utiliser, ce que nous allons faire, mais il n'y aura aucune notion stricte à ce sujet en termes de message abstrait. Donc ça va être très simple et je vais juste dire de et introduire comme nom du mesod Nous voulons passer par nous-mêmes, et nous allons faire une sorte de déclaration fixe. Je vais dire return F, et je vais dire que voici ma chaîne, mon nom est et entre parenthèses zen, je vais dire self point name Et je suis et on peut dire que l'âge de soi peut être dépassé par des années. Passe-m'en un peu ici. Il s'agira d'une méthode standardisée que nous utiliserons lorsque nous appellerons objets que nous avons créés dans nos sous-classes OK. À l'heure actuelle, dans la même ligne que class person, nous voulons définir notre premier enfant ou sous-classe Donc, ce que je vais faire, c'est aller de l'avant et dire cours, et je vais appeler ce professeur, et celui-ci héritera de classe abstraite connue sous le nom de person now Nous sommes donc en train d'hériter maintenant et je vais parler de personne. Allez. Et puis, comme avant, nous devons définir notre message inné, passer par soi, nommer l'âge, puis nous pouvons attribuer quelque chose d'unique à cette classe, qui en sera le sujet Le nom et l'âge seront donc hérités de la classe de personnes. OK, maintenant ce que nous voulons faire, c'est appeler le constructeur de la personne Nous voulons donc nous assurer que c'est ce que nous appelons cela. ce faire , nous allons utiliser Super, puis nous pouvons dire score blond super point, score blond D. Ensuite, nous allons indiquer entre parenthèses ce dont nous allons hériter Nous hériterons donc du nom et de l'âge. OK ? Et vous allez voir ici que cette matière est propre à la classe des professeurs. C'est vrai. Maintenant, nous pouvons simplement dire que le sujet Self point est égal au sujet. Donc, juste un défi régulier ici, définissant régulièrement, devrais-je dire, l'attribut natif de cette classe R. La prochaine chose que vous voulez faire est d' appeler la méthode abstraite que nous avons définie ici et appeler la méthode abstraite que que nous devons utiliser, et nous allons également définir nous-mêmes dans ce cas. Donc ce que je vais faire ici, c'est dire def, poste souligne la description à travers soi Nous pouvons maintenant ajouter notre propre description de poste spécifique, par exemple pour un enseignant. Je vais aller de l'avant et dire retour, utiliser des cordes en S, je vais dire que j'enseigne la matière à points personnels dans une école. C'est très simple. Bien, allons-y. Nous avons donc obtenu ce set. Nous pouvons maintenant créer notre deuxième classe ici. Nous avons donc un professeur et créons un autre cours, et nous pouvons appeler ce médecin, par exemple. Vous pouvez donc voir le schéma ici, nous avons des personnes ou des personnes, puis nous avons des rôles que nous analysons à l' aide de sous-catégories Maintenant, nous voulons transmettre et hériter de tous les attributs d'une personne, à savoir le nom et l'âge Nous pouvons donc le faire passer comme ça. Ensuite, nous voulons définir notre méthode innit. Voyons juste la structure. Oui, nous y ajoutons de l'espace. Disons, Def, double soulignement, nit, double soulignement, et nous aurons toujours le nom de soi et l'âge, mais ce qui sera unique à cette classe en particulier, ce sera Nous y voilà. Ensuite, nous mettrons en pause Superterscore, NTbleScore. Nous pouvons donc saisir et hériter du nom et de l' âge que nous avons définis dans notre classe individuelle, comme nous l'avons fait pour la classe des professeurs OK. C'est vrai. Nous voulons maintenant enregistrer la spécialité du médecin en tant qu'attribut, afin de pouvoir dire self point, spatialité égale spatialité OK, allons-y. Nous avons donc maintenant cet ensemble dans la même lignée. Nous devons nous référer à la description du poste de la méthode. Je peux donc dire « def job underscore description ». À travers toi-même. Et que voulons-nous faire ici ? Nous pouvons dire return F. Je dois dire que je suis médecin spécialisé dans et que nous pouvons dire ici, médecin spécialisé dans nos espaces réservés, la spécialité Self-point Juste comme ça, et nous allons le mettre en point à la fin. C'est ainsi que nous pouvons appeler cette description. Très bien, nous y voilà. Assurez-vous donc d'avoir tout ajouté comme suit. Nous sommes donc maintenant allés de l'avant et avons bien ajouté le tout. Je vais aussi juste mettre de l'ordre dans le code, rendre un peu plus propre Très bien, c'est ce dont nous avons besoin pour tout démarrer . C'est bon. Continuons donc et effectuons quelques tests afin vraiment comprendre la valeur des classes abstraites et la façon dont tout fonctionne ensemble. Allons-y donc et je vais approfondir cette question. Alors allons-y. D'accord. Donc, au bas de la page, nous pouvons simplement nous référer à nos deux classes. Nous avons donc un professeur et un médecin, donc nos sous-classes, devrais-je dire ? Je vais créer des instances et je vais les tester. Je vais dire que professeur un est égal, professeur, c'est le nom de la classe et je veux passer revue les valeurs que je vais définir comme attributs. Ici, je vais prendre Ale, puis j'en aurai 28, et ensuite je vais dire Msmatics Ensuite, j'aurai le premier docteur qui renvoie à la sous-classe des médecins Ici, je vais inscrire Bob, il a 31 ans et c' est juste un médecin généraliste. OK. Alors maintenant, ce que je veux faire, c'est continuer et imprimer selon cette méthode d'introduction que j'ai définie auparavant. Et ce que je veux faire, c'est voir comment cela s' applique au professeur et au médecin. Donc, ce que je peux faire, c'est dire imprimer et nous pouvons nous référer à instance de professeur à ce professeur point intro DoS Ensuite, je peux faire de même et dire imprimer, docteur un, présenter Allons-y et dirigeons-nous vous obtiendrez. Je m'appelle Alis et j'ai 28 ans Je m'appelle Bob et j'ai 31 ans. Donc, en gros, ce qui s'est passé ici , c'est que nous avons appelé cette méthode d'introduction, qui suppose que vous saisissiez le nom et l'âge partout où vous l'avez défini. Maintenant, nous sommes allés de l'avant et avons défini nos valeurs ici dans l' instance que nous avons configurée. Ensuite, nous enseignons à un médecin et à un autre. Ensuite, j'ai appliqué cette méthode particulière à chacun de ces objets, puis ai exécuté cette fonction pour collecter fonction des valeurs définies dans cet objet particulier, à savoir leur nom et leur âge. C'est un moyen très utile de vous familiariser méthode que vous avez introduite. OK ? C'est vrai, parfait. Maintenant, la prochaine chose que je veux vous montrer est la partie description du poste. Alors allons-y et voyons ça. Alors maintenant, je veux appeler ma méthode abstraite, que j'ai utilisée à la fois dans mon cours de médecin et de professeur. Nous pouvons donc simplement dire imprimer. Et encore une fois, nous voulons nous référer à nos instances. Donc, professeur 1, point, poste, soulignez la description, ouverture et les vêtements parenses Ensuite, je voudrais dire imprimer, docteur, un point, souligner la description du poste Et nous pouvons les commenter en attendant. Et cours. J'enseigne les mathématiques dans une école. Je suis médecin spécialisé en médecine générale, donc en médecine générale , etc. Très bien, nous y voilà. Nous pouvons donc maintenant voir qu'il produit ce dont nous avons besoin, comme vous pouvez le voir maintenant C'est vrai. C'est ainsi que nous pouvons utiliser l'abstraction. Maintenant, je vais entrer un peu plus dans les détails afin que nous puissions simplement comprendre l'intérêt de ce que nous faisons ici. Commençons par le haut ici. La classe person est une classe abstraite, ce qui signifie que nous ne pouvons pas l'instancier directement Ce que je veux dire par là, c'est qu'on ne peut pas créer l'objet d' une personne. Je vais te montrer ce que je veux dire. Ici, nous créons des objets représentant le professeur et le médecin. Si je devais dire «   personne égale », « personne égale » et «  personne », je devais inclure les valeurs que inclure les valeurs que nous avons ici, à savoir notre nom et notre âge. Je dirais John et 24 ans. Vous allez remarquer que si je devais continuer en disant «  imprimer le nom de la personne à un point », vous verrez que nous allons avoir une erreur maintenant. Je veux juste faire un commentaire pour le moment. Et lancez le code. Vous pouvez voir ici que nous avons une trace où il est indiqué que vous ne pouvez pas instancier personne de classe abstraite sans une implémentation de la méthode abstraite, qui est une description de poste C'est ce que nous utilisons avant utiliser notre description de poste ici, une méthode abstraite, afin que nous puissions essentiellement l' utiliser dans nos sous-classes Vous ne pouvez pas créer d'instance, comme vous pouvez le constater dans le cas d' une méthode abstraite. Si je devais supprimer cette méthode abstraite et la conserver en tant que classe normale, ou s'il s'agissait d'une sous-classe, ce serait parfaitement bien C'est l'un des éléments clés que je veux mentionner ici avec l'abstraction. Vous ne pouvez pas aller de l'avant et simplement faire une telle chose. Maintenant, une autre chose que je tiens à mentionner ici est que, comme vous pouvez le constater, nous devons obligatoirement utiliser description du poste ici. Ces deux méthodes. Maintenant, l'avantage avoir une description de poste dans ces deux méthodes et utiliser la méthode abstraite ici, c'est que cela applique la structure avec nos sous-classes de barres obliques secondaires Cela nous indique qu' ils doivent mettre en œuvre ces méthodes. Comme vous pouvez le constater. Maintenant, si vous deviez omettre, par exemple, les méthodes de vos classes, vous allez rencontrer une erreur Alors gardez cela à l'esprit. Vous devez vous assurer que les classes abstraites auxquelles vous avez fait référence figurent dans vos sous-classes OK, il est donc très important de garder cela à l'esprit. Maintenant, une autre chose que vous vous demandez probablement est pourquoi tout ce processus est-il abstrait ? Où le voyez-vous réellement ? Hormis le fait qu' étant donné que la classe est là, il suffit de se lancer sur une haie et de lancer une flèche si vous essayez d'instancier une classe, pourquoi cette abstraction ? Maintenant, il faut garder à l'esprit que l'utilisateur n'a pas besoin de savoir comment fonctionne la description de poste en interne. OK ? C'est donc là que j'essayais de souligner dans les leçons théoriques que votre utilisateur n'a pas besoin de savoir comment fonctionne la description de poste en interne. OK ? Donc, comme vous pouvez le voir ici, nous ne transmettons aucune information ou fonctionnalité. Nous disons simplement : je veux une description de poste, cours de professeur, un cours de médecin, faites-le vous-même. OK ? Et c'est pour cela que j'essayais de faire une analogie avec la télécommande du téléviseur et le téléviseur ici, d'accord ? Vous n'avez pas besoin de connaître les détails supplémentaires et tout le reste. Vous pouvez donc voir qu'une classe abstraite essaie de tout rendre beaucoup plus facile à gérer sans tous les détails supplémentaires. Vous pouvez donc le voir nous simplifier les choses en utilisant une méthode abstraite. C'est bon. Maintenant, je tiens également à mentionner une autre chose importante : nos utilisateurs, bien sûr, lorsque nous définissons nos objets ici et créons les instances, dois-je dire ? Ils n'interagiront avec notre méthode d'introduction et notre méthode de description de poste ici sans avoir à se soucier de tous ces détails de mise en œuvre. Vous pouvez même voir ici la méthode d'introduction. Nous sommes déjà allés de l'avant et nous l'avons déjà installé ici. Il n'utilise pas de méthode abstraite, mais nous l'avons déjà ajoutée dans une classe abstraite, que vous pourriez considérer comme un code de démarrage ou un code formaté pour vous préparer sans avoir à le faire vous-même Vous pouvez le voir ici, nous n'avons pas eu à le mettre manuellement dans chacune de ces classes. Ils ont déjà été faits pour nous. Encore une fois, pour résumer l'abstraction. Masquer la complexité tout en appliquant une structure très propre. OK. C'est vrai. OK, les gars, c'est tout pour ce qui est de la façon dont vous pouvez utiliser l'abstraction dans PySON Très bien, ce que nous pouvons faire maintenant, c'est copier ceci et le retirer. Et voilà. 71. Collections: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur les collections. Jetons donc un coup d'œil. Vous vous demandez probablement ce que sont les collections ? Le module permet d'accéder à des types de données spécialisés dans PySON Vous pourriez considérer les collections comme un module particulier, ce qui vous permettra d' accéder à ces types de données spécialisés. Maintenant, contrairement aux types de données intégrés que nous connaissons déjà, tels que SDR pour chaîne, It bull list set et dit, ils doivent être importés avant utilisation, et ils vont, à leur tour, offrir des fonctionnalités améliorées au-delà de nos structures de données standard Maintenant, certains des principaux types de données spécialisés incluent le compteur nommé Tuple order dit, default dit et DQ Regardons donc cela graphiquement pour avoir plus de sens, en gros. Quels types de données obtenons-nous donc ? Maintenant, comme je l'ai déjà mentionné, nous obtenons le SDR pour string, Tuple, int, set, float range, bull, dict et list Ces types de données sont maintenant connus sous le types de données intégrés dans PySON Il s'agit des types de données courants que nous utilisons au quotidien et en permanence Ensuite, nous obtenons le nom du compteur, le tuple , le dict d' ordre, le dict par défaut et le DQ. Ils sont considérés comme nos types de données spécialisés qui doivent être importés pour nos types de données spécialisés qui doivent être importés pour pouvoir être utilisés Telles sont les différences. Essayez de visualiser la différence entre les deux et regroupez-les. Lorsque nous travaillerons avec des collections, nous serons en mesure d' importer ces types de données spécialisés. Examinons maintenant en profondeur les types de données que nous obtenons. Compteur. Aucun compteur n'est essentiellement un outil qui va compter la fréquence à laquelle chaque élément apparaît dans une liste donnée. Nous avons ensuite nommé tuple. Maintenant, il s'agit d'un type spécial de tuple où les éléments auront des noms pour un accès plus facile Ensuite, nous avons commandé dict. Maintenant, ordered dict est essentiellement un dictionnaire qui va maintenir l'ordre dans lequel les éléments ont été ajoutés. Nous avons alors une modification par défaut. Maintenant, le dict par défaut est essentiellement un dictionnaire qui fournira une valeur par défaut pour toutes les clés manquantes. Et enfin, nous avons DQ. C'est donc un peu une structure semblable à une liste, pourrait-on dire, qui permettra des ajouts et des suppressions rapides des deux côtés, n'est-ce pas ? Il s'agit donc d' un petit aperçu des concepts théoriques des types de données spécialisés suivants. 72. Explorez le module Collections - [Lab]: Bonjour, tout le monde. Et bienvenue au prochain exercice pratique en laboratoire, qui sera axé sur l'utilisation des types de données spécialisés issus du module de la collection. C'est bon. Maintenant, je tiens également à mentionner à l'avance que ces types de données spécialisés sont généralement utilisés sous la forme d'une classe ou d'une fonction. C'est donc juste quelque chose que je voulais mentionner pour que vous soyez au courant avant de commencer. OK. Maintenant, nous allons tout d'abord utiliser la classe counter. Dans cet exemple particulier, je vais vous montrer comment vous pouvez utiliser la classe counter, par exemple, pour compter le nombre de fois que chaque élément apparaît dans une liste. Nous devons dire qu'à partir du module collections, je souhaite importer la contre-classe. Je veux définir une liste et je vais définir une liste de fruits par exemple. Je dirais que les fruits sont égaux. Dans une liste ici, je vais ajouter quelques éléments. Je vais prendre Apple, je vais prendre une poire. Et je vais également ajouter les mêmes articles, dois-je dire ? Je vais ajouter deux pommes deux poires ou deux oranges, etc. Je vais répéter quelques points afin que nous puissions compter le nombre d'occurrences dans tous les éléments présentés ici. Je vais donc également ajouter une autre pomme, une orange et une paire. Nous y voilà. C' est donc une bonne chose pour le moment. La prochaine chose que je veux faire est de créer un contre-objet pour compter les occurrences de chaque fruit. Je vais donc simplement définir une variable qui indique que le soulignement des fruits compte, est égal, et je vais utiliser une contre-classe, sera ajoutée à la liste des fruits Maintenant, je vais imprimer le dictionnaire du compteur, qui indiquera le nombre de fruits. Donc, si je devais dire imprimer, soulignement des fruits compte et exécuter le code, allons-y un peu plus bas Nous allons voir ici qu'il est écrit « Counter Apple 2 », Pair 2 », « Orange One ». Vous pouvez voir qu'il compte les occurrences. Je vois qu'il y a deux pommes, une, deux paires et une orange, et cela a été compté pour moi dans le résultat, comme vous pouvez le voir ici. Nous pouvons voir qu'il est sorti sous forme de contre-dictionnaire, comme nous pouvons le voir ici. Maintenant, disons, par exemple, que je souhaite accéder à des comptes individuels, n'est-ce pas ? Et pour ce faire, ce que je peux faire, c'est aller de l'avant et dire « imprimer », et nous pouvons dire que le soulignement des fruits compte Et puis ici, nous pouvons simplement ajouter les crochets et faire référence à l'élément spécifique. Donc, ici, je veux dire Apple. Donc maintenant, si nous l'exécutons, vous pouvez voir ici que nous obtenons le résultat précédent, puis nous pouvons voir Apple ici. D'accord, nous pouvons voir que le résultat ici est deux car Apple est apparu deux fois. OK, c'est ainsi que vous pouvez obtenir la valeur directe du nombre de répétitions ou du nombre de fois où cela a été appelé dans la liste Donc, pour la paire, bien sûr, c'est deux aussi, mais en orange, il n'y a qu'une seule occurrence, alors voyons si ce sera une, ce qui devrait être le cas. Et nous pouvons voir que c'en est un. Parfait. C'est bon. Nous y voilà. C'est ainsi que vous pouvez utiliser la contre-classe. Maintenant, la prochaine chose que nous voulons faire est d'utiliser le tuple nommé Maintenant, le tuple nommé est essentiellement une fonction, et nous pouvons l'utiliser pour créer une classe très légère avec des attributs nommés C'est pourquoi nous faisons des collections maintenant, afin que vous soyez déjà à l'aise avec les cours. Cela devrait vous aider à mieux le comprendre. OK, encore une fois, depuis le module collections, je souhaite importer la fonction tuple nommée Je veux créer une personne tuple nommée avec des champs ou des attributs nommés, pourrait-on dire Je vais dire que personne est égale, tuple nommé passera par personne, entre votre virgule Ensuite, nous allons avoir, par exemple, le nom, l'âge et la ville. Maintenant, cela ressemble beaucoup aux attributs que vous pourriez dire, mais nous les appelons ici champs, mais c'est très similaire aux attributs que nous définissons dans notre classe. Bien, allons-y. Nous voulons maintenant créer une instance de personne. Donc, je dirais qu' une personne égale une personne. Ensuite, nous pouvons simplement continuer et dire que le nom est égal à John. L'âge est égal à 24 ans et la ville est égale au Cap, juste comme ça. C'est ainsi que vous associeriez ensuite les valeurs et créeriez cette instance. Supposons maintenant que nous voulions accéder aux valeurs en utilisant les noms. Ce que nous pouvons faire, c'est dire, par exemple, imprimer, et je vais dire personne, point , nom, et je vais aussi dire imprimer personne un point ville. Je vais juste le déplacer vers le haut alors. Allons-y et voyons le résultat. John et Cape sont donc descendus. Cela fait donc référence à la valeur associée au nom et à la valeur associée à la ville. C'est bon. Vous pouvez donc voir que c'est , comme je l'ai mentionné, un moyen très simple de créer une classe légère, on pourrait dire avec des attributs nommés. OK. Parfait. C'est vrai. Maintenant, ce que vous pouvez également faire c'est vous lancer dans une couverture et produire d'une manière différente. Ainsi, les tuples de noms se comportent également comme un tuple normal. Je peux donc changer cela et dire print person one. Et dans les tirages, je peux mettre zéro, puis la personne un, et je peux en mettre une. Et si je le lance, il y aura John et 24 ans. Il va donc agir de manière très similaire au comportement d'un tupur ou d'une liste, on pourrait dire, en imprimant la première valeur de telle que nous pouvons voir l'instance Nous avons donc John ici, puis nous en avons 24. Si je veux obtenir la dernière valeur entre parenthèses, je peux simplement la remplacer par deux Et puis il affiche le cap vers le bas pour moi. Les gars. C'est ainsi que vous pouvez utiliser un tuple nommé Génial. Nous avons cette configuration. La prochaine chose que nous allons vouloir faire, c'est aller avant et utiliser un dict ordonné. Maintenant, nous pouvons simplement le supprimer et nous pouvons simplement dire importer ou nous pouvons dire, je crois que c'est EnCapsiao Nous y voilà. Ensuite, nous voulons créer un dict ordonné, allons-y. Je veux dire des données unsca ordonnées, juste une variable. Nous allons l'attribuer à la classe ici de ordered dict. Ensuite, ce que je vais faire, c'est définir les valeurs associées ici et ce dictionnaire ordonné, pourrait-on dire. J'ai ordonné les données non codées, et nous dirons que A sera égal à un, et nous pouvons simplement le contourner et le définir pour B égal à deux Et regardez-nous. Nous voulons maintenant imprimer l'ordre dans lequel les clés seront placées dans l'ordre d'insertion. abord, A était un , B deux et C trois. Il ne sera pas imprimé dans un ordre différent. Maintenant, je peux dire imprimer. Données de soulignement ordonnées. Donc maintenant, si je lance ceci, il dira order dict A un, B deux, C et trois. OK. C'est ainsi que vous pouvez procéder et utiliser la classe dict ordonnée. Supposons, par exemple, que vous vouliez ajouter une nouvelle clé, nous ayons les trois clés ici, mais que vous vouliez en ajouter une nouvelle, donc vous voulez dire que D est égal à quatre. Ce que vous pouvez faire, c'est assez simple, c'est que vous pouvez simplement dire ou souligner des données G est égal à quatre, et nous allons dire imprimer les données scolaires dans l'ordre. OK. Je veux aussi le faire pour de meilleures fins d'apprentissage, je vais également laisser ça. Définissons-le comme. Nous y voilà. OK, alors maintenant tu vas voir la différence. OK, nous pouvons donc voir ici avant d'avoir A un, b2c3, puis nous avons ajouté en conséquence, ajouté une nouvelle clé dont D est égal à quatre, et vous pouvez voir maintenant qu'elle est ajoutée D D OK. C'est ainsi que nous pouvons procéder et utiliser un dict ordonné. Il s'agirait donc d'une classe spécifique. C'est vrai. La prochaine chose que nous voulons faire est de jeter un œil au dict par défaut. Désormais, cela fournit une valeur par défaut pour les clés manquantes et default fournira automatiquement une valeur par défaut pour toutes les clés manquantes au lieu de générer une erreur, afin que vous puissiez voir où en serait l'utilisation. Depuis le module collections, je souhaite importer le dict par défaut. C'est juste défini comme ça. C'est bon. Ensuite, nous pouvons créer un dict par défaut où les valeurs manquantes seront des entiers, et bien sûr, la valeur par défaut sera zéro Nous pouvons donc dire fruit, underscore counter equals, dict par défaut, et nous pouvons simplement dire int maintenant Ensuite, nous voulons ajouter des fruits. Je vais donc dire Fruit Underscore Counter, et ça va être Apple Et on peut dire que plus égale un. Ensuite, nous pouvons dire compteur de soulignements de fruits, puis nous allons dire paire plus égale à un Maintenant, nous voulons imprimer nos clés existantes, afin qu'elles puissent être utilisées sur une couverture et en sortir une et une pour nous deux. Donc, si je dis impression, compteur de soulignement de fruits, et que je devais faire référence à Apple, nous pouvons l'exécuter, et nous pouvons voir qu'il en produit un, et il devrait en être de même si je dis paire. La même chose devrait se produire. Enregistrez le code, lancez-le, nous en aurons un. Mais allons-y et différencions-le. Trois et deux, et nous allons rester à deux. Nous en avons deux par paire, et avec appn, nous devrions en avoir trois. Nous en avons trois, comme il se doit. Parfait. Maintenant, disons que c'est la partie la plus importante. Supposons, par exemple, que je souhaite accéder à une clé manquante et que je souhaite accéder à l'orange, par exemple, qui, comme vous pouvez le voir ici, n'existe pas. Si je devais dire print, compteur de soulignement de fruits, et que je dis orange, vous pouvez voir que la valeur par défaut sera juste zéro S'il manque un entier et que nous ajoutons niveau pour nous assurer que nous allons , bien sûr, travailler avec nos entiers et que nous pouvons voir qu'il est égal à zéro Cela ne provoquera pas d'erreur, vous pouvez donc voir à quel point le dig par défaut peut être utile. Si vous travaillez avec un programme et que vous n'avez pas nécessairement mis en place un système de gestion des erreurs et vous souhaitez simplement une solution plus courte ou plus simple, vous pouvez utiliser le dickie par défaut comme vous pouvez le voir pour vous permettre de fournir une valeur par défaut au cas où vous auriez une clé manquante Comme vous pouvez le constater, il y avait une assignation auparavant, mais l'orange n'existe pas du tout pour une clé. C'est vrai. Génial. Maintenant, le dernier cours que je veux vous montrer sera DQ Nous dirions Import D Q, à peu près comme ça. OK. Essentiellement, cela nous permettra ajouter et de supprimer rapidement des deux extrémités d'un Q, DQ est l'abréviation de Q à double extrémité, cela nous permettra d' ajouter et de supprimer rapidement à la fois de la gauche et de la droite de notre Q. D'accord Créons donc un DQ avec quelques chiffres. Je vais dire que D est égal à DQ, et entre parenthèses, nous allons ajouter une liste, donc j'en aurai un, deux et trois Ensuite, je veux ajouter à droite, de la même manière que l'ajout de liste, pourrait-on dire Je veux dire D, ajouter, ajouter, et disons que j'en mets quatre, et disons que j'imprime D. Allons-y et voyons le résultat Il y en aura un, deux, trois et quatre. Nous pouvons donc voir que cette méthode au stylo ajoutera le numéro à la liste que nous avons désignée ici, disons que nous voulons également l'ajouter à gauche OK. Maintenant, en gros, comme nous pouvons le voir, DQ ici, c'est que nous avons assigné une méthode spéciale de traitement des listes, comme nous pouvons le voir ici Maintenant, ce qui n'est pas possible avec les listes seules, bien sûr, c'est que vous ne pouvez pas les ajouter à gauche Permettez-moi donc de vous le démontrer. Si je disais Dt, ajouter à gauche, et que je dis zéro, et que je dis imprimer D, vous pouvez simplement voir que nous avons maintenant zéro, un, deux, trois et quatre OK. Et c'est très utile pour continuer et s' adapter en conséquence. Supposons que nous voulions maintenant supprimer depuis la droite. OK ? Alors faisons-le. Je peux donc dire Dt Pop, Ar, puis nous pouvons dire print G. Voyons où nous en sommes. Maintenant, nous avons zéro, un, deux et trois provenant de cette dernière fenêtre, donc nous les retirons du côté droit. Maintenant, disons que nous voulons supprimer par la gauche, je peux simplement dire D ne pas apparaître à gauche, puis imprimer D. Très bien, nous y voilà. Nous pouvons voir maintenant que nous n' avons plus zéro. Nous en avons un, deux et trois. Bien, nous y voilà. C'est ainsi que vous pouvez également utiliser DQ. Très bien, les gars, c'est tout pour ce qui est de l'utilisation de ces types de données spécialisés issus du module de collecte. Comme vous pouvez le constater, ils sont très utiles et très utiles. Mais oui, les gars, c'est tout pour cet exercice pratique en laboratoire. 73. Itertools: Bonjour, tout le monde. Bienvenue à la prochaine leçon, qui sera axée sur les outils IR. Jetons donc un coup d'œil. Alors, que sont les outils IR ? Désormais, le modèle d'outils Iter propose des fonctions permettant de travailler avec des itérateurs Maintenant, je peux le dire d'une manière simple, que les itérateurs sont des types de données qui peuvent être utilisés dans un suivi, la liste étant l'exemple le plus courant Voici maintenant quelques-unes des principales fonctions que vous pouvez importer depuis le module IR Tools, notamment. Produit des permutations, des combinaisons, des accumulateurs, groupes et des itérateurs infinis Examinons maintenant de plus près ces fonctions clés. C'est vrai. Nous avons donc un produit. Maintenant, product calcule le produit cartésien des itérables d'entrée, générant toutes les combinaisons et permutations possibles Cela crée tous les ordres possibles des éléments dans un itérable Ensuite, nous avons des combinaisons. Cela génère des ensembles uniques d'éléments à partir d'un itérable sans aucune répétition Ensuite, nous avons cumulé, et cela calcule des sommes cumulées ou applique d'autres fonctions binaires à un itérable Ensuite, nous avons le groupe i, regroupe des éléments consécutifs dans un itérable basé sur une fonction clé C'est vrai. Voilà pour l'aperçu théorique. Plongons plus en profondeur dans l'exercice pratique de laboratoire. 74. Travailler avec Itertools - [Lab]: Premièrement, et bienvenue au prochain exercice pratique en laboratoire, qui sera axé sur le travail avec outils IR et les fonctions associées qui peuvent être utilisées à partir de ceux-ci. C'est vrai. Maintenant, la première chose que nous voulons faire est aller de l'avant et d' utiliser la fonction produit des outils Iter. Nous pouvons donc simplement dire qu' à partir d'Iter Tools, nous pouvons dire « importer un produit », juste comme ça. Juste pour développer un peu plus ce que j'utilise, il s'agit essentiellement d'un module avec des outils pour travailler avec des itérateurs Et nous allons maintenant utiliser spécifiquement la fonction du produit. Maintenant, dans notre cas, nous voulons générer toutes les paires d'éléments possibles à partir de deux listes dans ce cas d'utilisation de la fonction produit. Je vais donc définir deux petites listes. Je vais dire que A est égal à un et deux, B égal à trois et quatre. heure actuelle, dans notre cas, nous allons définir une variable et appeler cette variable « prod equals Ensuite, nous allons dire liste parce que nous voulons produire une liste à la fin et nous pouvons l'intégrer à la fonction du produit, qui va prendre A et B. Maintenant, les produits A et B vont générer un itérateur qui crée toutes les combinaisons de paires et nous l'enroulons qui va prendre A et B. Maintenant, les produits A et B vont générer un itérateur qui crée toutes les combinaisons de paires autour d'une liste qui va la convertir en liste afin que nous puissions voir toutes les valeurs en même temps Maintenant, si je devais dire print prod, et exécuter ceci. Je peux maintenant voir que j'ai obtenu ce que je voulais, un, trois, un, quatre, deux, trois, deux, quatre. Regardez ici, un à trois, un à quatre, deux à trois, deux à quatre. C'est ainsi que nous pouvons utiliser la fonction du produit. C'est vrai. Maintenant, nous voulons toujours assurer que nous utilisons les outils Iter, mais cette fois, nous voulons utiliser la permutation Nous voulons créer tous les ordres possibles des éléments. Je vais parler de permutations d'importation. OK. Et définissons une liste. Je vais dire que nums est égal, et j'en aurai un à trois, par exemple. C'est bon. Je vais maintenant définir une variable. Je vais juste appeler ça une permanente. Encore une fois, je veux avoir une liste et mettre des permutations et l'appliquer à ma liste appelée nums Encore une fois, permutation nums. Nous allons ajouter la liste ici et générer un itérateur qui produira toutes les commandes possibles de nos articles Comme vous pouvez le voir, encore une fois, nous l' encapsulons dans une liste, et cela transformera, bien entendu, le résultat en liste. Allons-y et produisons une permanente. Et nous pouvons maintenant voir une liste complète de permutations. Nous pouvons voir un, deux, trois, un, trois, deux, deux, un, trois, deux, trois, un, un , deux, trois, deux, deux, un. Nous pouvons voir que nous avons toutes les variantes ici. Je suppose que c'est un peu hors de portée, mais c'est utile, mais c'est utile, en particulier dans le domaine des statistiques ou si vous travaillez avec de nombreuses données et que vous devez utiliser la fonction de permutations, etc. C'est vrai. La prochaine chose que je veux montrer est comment vous pouvez utiliser le module de combinaisons, la fonction de combinaisons, excusez-moi. Ceci est utilisé pour sélectionner des groupes uniques d'éléments ou d'éléments, devrais-je dire, et l'ordre dans lequel il le fait n'a pas d'importance. Nous pouvons simplement parler de combinaisons. À partir du modèle itertools, nous voulons importer le module de combinaisons Encore une fois, je veux définir une liste et je la définirai comme un, deux et trois, par exemple. Encore une fois, je vais définir une variable. Je vais dire C et nous voulons convertir la sortie en liste. Nous allons l'envelopper avec la fonction de combinaison, et nous allons le coller en chiffres et deux Combinaison de chiffres et de deux. Cela nous permettra de générer un itérateur et cet itérateur choisira les deux combinaisons de nombres Nous pouvons voir à nouveau que c'est enroulé dans notre liste, nous pouvons donc obtenir le résultat de cette liste comme nous le faisions auparavant. Nous pouvons dire print C. Exécutons le code. Et ici, nous pouvons voir que nous obtenons les combinaisons désignées que nous avons définies. Nous en avons donc deux dans chaque set. Si nous devions en faire un, nous en obtiendrions simplement un dans des ensembles séparés. Et si nous devions dire trois, nous allons réunir l' ensemble en un seul. C'est vrai. C'est ainsi que nous pouvons utiliser les combinaisons ici. OK. Maintenant, si nous l'exécutions, nous pouvons voir que nous avons obtenu les mêmes résultats, donc nous générons correctement. Génial. C'est bon. Maintenant, la prochaine chose que nous allons examiner est d'accumuler. Maintenant, c'est une question intéressante. Nous pouvons, par exemple, effectuer des additions cumulatives. C'est quelque chose que nous avons examiné plus tôt dans le cours, mais laissez-moi vous montrer comment vous pouvez le faire avec la fonction d'accumulation. C'est très utile , vous pouvez donc importer la fonction d'accumulation. Ensuite, vous devez définir une liste de numéros. Je vais dire un, deux, trois et quatre. Ensuite, encore une fois, il vous suffit de définir une variable, d' ajouter votre liste pour pouvoir la convertir et de convertir le résultat de la fonction d' accumulation et de saisir nombres ici pour votre fonction d' accumulation, et le résultat sera dans une liste associée à AC Je vais donc dire imprimer A et c'est parti. Maintenant, nous pouvons voir que nous en avons un, trois , six et dix. Maintenant, qu'est-ce qui s'accumule ? Je vais expliquer ce qui se passe. Nous commençons par le premier élément ou élément de notre liste, puis nous disons qu'un plus deux est égal à trois. C'est la partie suivante de cette liste. Ensuite, nous avons trois plus trois, ce qui nous donne six. Ensuite, nous avons six plus quatre, ce qui nous donne dix. C'est le processus d'accumulation, façon dont nous pouvons accumuler en conséquence. Si je devais passer maintenant à deux, trois, quatre, 25, quatre, huit, par exemple, du code, nous obtiendrions ce qui suit. Vous commencez donc à deux heures. Deux plus trois, ça donne cinq. Cinq plus cinq vous donnent dix, dix plus huit vous en donnent 18. Très bien, ainsi de suite et ainsi de suite. Vous pouvez voir que c'est une fonction très utile. J'aime celui-ci parmi la plupart des outils d'Iter car il est extrêmement simple et très utile. C'est vrai. Maintenant, nous allons nous concentrer sur le groupe par fonction. Je vais donc proposer ce qui suit et nous pouvons commencer par le groupe B. D'accord. Maintenant, avec le groupe B, nous allons essentiellement recommencer, c'est créer un itérateur, et il va générer des groupes un par un OK, alors allons-y et commençons le processus. C'est vrai. Et une autre chose que je tiens également à mentionner est qu'en utilisant la fonction de groupe B, nous allons regrouper essentiellement les éléments en fonction d'une clé. Mais cela va être réglé avant que nous ne le fassions réellement. Tout d'abord, nous devons établir une liste de tuples avec des catégories, regroupant la clé et les valeurs associées Nous pouvons parler de données, et nous allons les mettre dans une liste. Je vais avoir, par exemple, A en sera un. Ensuite, le suivant, nous pouvons avoir A, et ce sera deux. Ensuite, nous pouvons en avoir un autre, B, et trois. Ensuite, nous pouvons avoir, par exemple, B et quatre, puis nous pouvons avoir a et six. Nous y voilà. Parfait. Nous avons donc maintenant cette configuration. Maintenant, nous voulons trier par la première valeur, cela va garantir que le groupe par fonction fonctionne correctement. Je vais donc dire point de données SOT, avec cette méthode dedans, je vais dire K, qui sera égal à Lambda Nous allons utiliser Lambda ici avec un paramètre de X, puis il y aura X et zéro ici OK. OK, alors voilà. Maintenant, la prochaine chose que nous voulons faire est de définir une variable et nous pouvons appeler ce groupe et le définir comme groupe B. C' est la fonction du groupe B. Ici, nous allons passer en données qui ont été triées, et nous allons dire que K est égal à Lambda X, X et zéro. Donc, ce que nous faisons maintenant s'inscrit essentiellement dans le cadre de ce que nous faisons , c'est nous assurer que nous sommes en mesure de regrouper nos éléments en conséquence. Selon la fonction Lambda que nous avons stipulée en fonction de la clé Maintenant, nous pouvons monter sur une tête et créer une boucle. Nous allons donc voir quatre groupes clés regroupés OK. Ensuite, nous pouvons dire imprimer, saisir, puis nous voulons convertir la liste en groupe. OK. C'est vrai. Donc, dans cette boucle, nous allons essentiellement convertir à l'intérieur de la boucle, nous allons convertir chaque groupe en une liste pour voir tous les éléments en même temps. Allons-y et exécutons ce code. Et ici, nous pouvons voir les catégories. Nous pouvons voir que pour A, nous avons A un, A deux, A six, pour B, nous avons B trois et B quatre. Très bien, c'est ainsi que nous pouvons continuer et regrouper nos catégories, comme vous pouvez le voir. OK. Nous l'avons donc essentiellement en place. Maintenant, je tiens également à mentionner ici la définition et le tri selon Lambda Nous allons essentiellement ajouter les valeurs en conséquence via notre fonction Lambda afin de les trier, puis nous allons les regrouper , puis nous allons imprimer chaque itération, et elle apparaîtra comme suit dans le groupe OK. C'est donc le groupe par fonction que nous avons utilisé. OK ? Maintenant, je voudrais mentionner de en plus de détails, notamment en ce qui concerne la fonction Lambda Nous allons donc en parler un peu plus, puis nous allons examiner l'ensemble final d' itérateurs en termes de fonctions de comptage, de cycle et de répétition Nous y reviendrons bientôt, mais terminons avec le groupe B. Bien , allons-y et entrons dans les détails ici. Un tri de données. Maintenant, nous savons déjà que les données sont une liste de tuples, et bien sûr vous l'avez entourée d'un format de liste Ensuite, nous voulons trier les données que nous avons définies ici, essentiellement, la méthode de tri par points va trier la liste en place en fonction de notre fonction clé. OK. Nous avons K égal à Lambda X, deux points puis X et zéro ici Ce que nous allons faire, c'est prendre chaque tuple et bien sûr, il sera remplacé, comme vous pouvez le voir pour X. Chaque tuple, bien sûr, par exemple, peut être A un, A deux, P trois Nous allons aller de l'avant et le remplacer. Ensuite, nous allons extraire le premier élément ici, qui sera soit un A soit un B , puis nous allons trier la liste en fonction du premier élément. OK. Ensuite, ce que nous allons faire, comme vous pouvez le voir ici, nous avons groupé égal au groupe B. Nous définissons simplement une variable pour attribuer le résultat de la fonction du groupe B ici, et le groupe va essentiellement regrouper les nombres consécutifs qui ont la même clé. OK ? Ensuite, nous avons, bien sûr, la fonction clé ici, qui va extraire le premier élément. Donc A ou B. Cela ne va pas trier les données dans ce cas, d'accord ? Supposons simplement que vous puissiez dire que les éléments ou éléments similaires sont côte à côte, c'est pourquoi nous les trions d'abord. Ensuite, nous avons les quatre boucles avec lesquelles nous travaillons, et comme nous savons que le groupe par fonction que nous avons ici va renvoyer des paires de clés et de groupes où la clé est la clé du groupe. A ou B dans ce cas, nous avons un groupe, non ? Et il s'agit d'un itérateur des éléments appartenant au groupe OK. C'est bon. Ensuite, ce que nous allons essentiellement faire, c'est aller de l'avant et nous assurer de convertir le groupe dans notre liste. Nous pouvons donc imprimer tous les articles en même temps, n'est-ce pas ? C'était donc une exposition plus approfondie de la façon dont nous pouvons utiliser ce groupe par fonction. Maintenant, celui-ci est un peu délicat, alors ne vous inquiétez pas trop à ce sujet. C'est un peu tiré par les cheveux, mais il est bon d'avoir au moins le contexte de ce que vous faites et avec lequel vous travaillez C'est bon. C'est le groupe B. Bien, alors passons aux autres fonctions avec lesquelles nous avons travaillé. Maintenant, ce que nous pouvons faire, c'est aller de l'avant et travailler avec les itérateurs infinis Ces itérateurs continuent donc à générer des valeurs pour toujours, et ils doivent bien sûr être arrêtés manuellement OK. Nous avons donc un cycle de comptage, et nous répétons. Allons-y, importons les moles, comptons, cyclons et répétons Comptez, ça va continuer à compter pour toujours, comme une boucle à quatre qui ne s'arrête jamais. Par exemple, nous pouvons dire quatre I en comptant, et ici nous pouvons dire cinq. Maintenant, ce que je vous recommande de faire, c'est de simplement me regarder faire ça. Je ne veux pas que vous vous retrouviez dans une situation où vous aurez un programme qui continue à tourner en boucle et qui ne s'arrête jamais . Si vous rencontrez ce problème, je vous conseille donc de regarder ce que je fais pour cette partie Nous allons commencer à compter à partir de cinq. Ensuite, nous pouvons dire imprimer I. Ensuite, nous voulons dire I est égal à dix, puis je veux arrêter la boucle manuellement. Je vais dire pause. Exécutons ça. Nous pouvons donc voir ici que nous allons jusqu'à 5 à 10, puis nous avons dit pause, et cela empêche la boucle de fonctionner. Si je ne continue pas et que je ne me fais pas cambrioler, ce qui peut arriver, c'est que nous pouvons nous une situation intéressante où la boucle se poursuivra éternellement. C'est ainsi que vous pouvez utiliser la fonction count. OK, donc ça continue à compter pour toujours, ça continue et ça ne s'arrêtera pas à moins d'avoir un râteau en place Nous avons également la fonction cycle, qui consiste à répéter une liste à l' infini, comme on pourrait le dire Allons-y et mettons le nombre à zéro, et nous pouvons dire quatre éléments par cycle, et nous allons transmettre une liste d' éléments ou d'éléments, pourrait-on dire. Et nous voulons ajouter les deux points. Ensuite, nous voulons imprimer chaque article. Nous allons ensuite dire plus égal à un, et cela va continuer à tourner en boucle et à tourner Et si on compte jusqu'à six, ça va se casser. Allez-y et lancez le cycle. Nous avons ici A, B, C, A, B, C. C'est ainsi que nous pouvons procéder et utiliser la fonction cycle. OK. Le dernier que nous allons subir va être répété. OK ? Nous voulons donc répéter une valeur, un certain nombre de fois. D'accord, nous pouvons donc dire REP, par exemple, en tant que variable. Nous voulons dire liste parce que nous voulons convertir la sortie en liste. Nous voulons intégrer la fonction de répétition. Et ici, je veux dire bonjour, et trois. Ensuite, je veux dire imprimer, ap. OK. Donc, si je devais le lancer, il dirait bonjour, bonjour, bonjour. Nous choisissons de répéter la première valeur que nous avons mise ici dans les analyses. Sur la droite, nous définissons le nombre de fois que nous voulons répéter ce que nous avons défini sur le côté gauche ici Le premier paramètre que vous pourriez indiquer est, bien entendu, ce que vous voulez répéter. Le deuxième paramètre que vous pourriez techniquement dire est le nombre de fois que vous souhaitez qu'il soit répété. Si je devais dire, j'aime la messe, et je voudrais le répéter cinq fois. Je vais répéter que j' aime la messe cinq fois. Et comme nous le convertissons en une liste dont le résultat provient de cette fonction de répétition, il va le mettre dans une liste et afficher les données la liste et nous venons de l'imprimer. C'est ainsi que nous pouvons utiliser une fonction de répétition. Maintenant, évidemment, je dirais que le comptage et le cycle sont acceptables, mais je dirais que la répétition est plus utile en tant qu'outil Iter. C'est bon, les gars. C'est ça. Nous avons détaillé les fonctions que vous pouvez utiliser avec les outils Iter. 75. Gestionnaires de contexte: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur les gestionnaires de contexte. Jetons donc un coup d'œil. Vous vous demandez donc probablement ce qu' est un gestionnaire de contexte. Ainsi, un gestionnaire de contexte en Python gère automatiquement la configuration et le nettoyage des ressources , par exemple en ouvrant et en fermant des fichiers à l'aide de l'instruction WI Désormais, l'instruction WI simplifie la gestion des ressources, rendant notre code plus sûr et plus lisible. Permettez-moi donc de vous montrer ici la différence en termes de gestion manuelle des fichiers, comme nous l'avons appris plus tôt dans le cours, et comment vous pouvez le faire de manière plus simple et plus efficace, devrais-je plutôt dire que c'était un gestionnaire de contexte. Voici l' E/S de fichier de base en cours d'exécution. Nous ouvrons un fichier appelé car point TXT et nous voulons y écrire. Le mode W est donc en place. Ensuite, nous ferons référence à cet objet de fichier en particulier, et nous allons dire «   fichier de voiture » point droit, puis nous dirons que mes cartes préférées sont Forward et une Tesla, puis nous devons fermer notre fichier. Cependant, nous pouvons simplifier cela en utilisant un gestionnaire de contexte, qui va ouvrir et écrire dans notre fichier. Comme vous pouvez le constater, c'est beaucoup plus simple, moins de lignes de code. Nous avons donc WIS Open, car point txt, le même mode, et nous allons le définir comme fichier car. C'est ainsi que nous le définirions en termes de configuration de la variable. Ensuite, nous dirons fichier voiture, vrai, et écrivez normalement. Maintenant, une bonne chose que vous pouvez voir ici, c'est que vous n'avez pas besoin de fermer votre fichier après l'avoir écrit, ce qui peut résoudre un gros problème. est aussi un peu plus fluide en termes d'écriture. Vous n'avez pas besoin d'être si simplifié, de définir une variable et de dire point, écrivez point, fermez. C'est un peu plus propre et plus efficace. De plus, vous pouvez continuer et appliquer cela dans l'exemple suivant où nous ouvrons à nouveau un fichier pour l'ajouter Nous avons donc ici un fichier car égal à open carTXT puis A, et nous pouvons voir que nous écrivons et fermons le fichier, nous pouvons continuer et avec notre gestionnaire de contexte, nous pouvons simplement le simplifier pour le remplacer par W open, puis dire en tant que fichier car, serait la définition C'est bon, les gars. Ce n' est donc qu'un petit aperçu pour vous, qui vous permettra de voir comment les gestionnaires de contexte nous éviteraient au moins d'avoir à fermer le fichier, et comment il est beaucoup plus fluide et plus propre d'utiliser les gestionnaires de contexte, en particulier lorsque vous effectuez ILO de fichiers avec des entrées et des sorties de fichiers. 76. Travailler avec les gestionnaires de contexte - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique en laboratoire, qui sera axé sur utilisation du gestionnaire de contexte. Commençons. Maintenant, la première chose que je veux faire est de faire quelques révisions avec vous tous et de recommencer l'E/S de base des fichiers, le poids manuel, sans utiliser de gestionnaire de contexte. Bien, en procédant de cette façon, vous apprendrez à voir les différences et à appliquer les deux cas. Nous voulons définir une variable et je peux appeler ce fichier car, nous allons l'attribuer à essentiellement, nous allons l'attribuer à notre objet fichier, qui est créé en utilisant notre fonction open Nous transmettrons à carxts le fichier que nous voulons ouvrir ou créer s'il n'existe pas, et nous voulons écrire dans ce fichier le mode étant W. Ensuite, nous voulons faire référence à appelé fichier et ajoutez le message d'écriture, nous voulons écrire dans le fichier. Ici, je tiens à dire que j'aime les cartons rouges. Ensuite, nous voulons fermer le fichier et dire carflet close. Exécutons le code. Passons à notre annuaire. Et vous pouvez voir ici que le point TxDFle a été créé dans le répertoire de notre projet Si je peux cliquer dessus, je peux voir qu'il affiche. J'aime les voitures rouges comme il se doit. C'est bon, parfait. Maintenant, ce que je vais faire ensuite, c'est commenter ce code, afin que vous puissiez voir et apprendre les différences entre la gestion normale des fichiers et la façon de le faire avec un gestionnaire de contexte. Je vais donc faire un clic droit sur le point de voiture TXT et le supprimer. Et mettez-le dans le bac de recyclage. Génial. Maintenant, dans le gestionnaire de contexte, nous dirions Wi open, et utilisons la fonction open. Nous voulons créer un fichier txt car point le but d' écrire dans le fichier, et celui-ci sera stocké sous forme de fichier car. Et c'est la variable à laquelle nous assignons cet objet de fichier. Ensuite, nous pouvons écrire un point carfle juste en dessous, et ce sera exactement le même message que celui que nous avons utilisé auparavant Et là, je tiens à dire que j'aime les voitures bleues et qu'elles exécutent ce code. Passons à notre annuaire. Ici, nous pouvons voir que nous avons une carte chez TXT qui dit maintenant : «   J'aime les voitures bleues ». Parfait. J'espère que vous pouvez maintenant voir la distinction entre les deux. Maintenant, avant de tester cela avec le mode ajout, je veux vous présenter un autre exemple d'écriture de fichiers afin que vous puissiez commencer à apprendre à faire un autre exemple d'écriture de fichiers afin que vous puissiez commencer à apprendre à la distinction entre les deux méthodes Nous pouvons supprimer cela. Allons-y, passons à l'exemple suivant , puis ajoutons-le. C'est bon. Maintenant, je vais me baser sur une personne. Je dirais que le fichier person est égal, et je dirais ouvert. Cela va créer un fichier appelé person point GXT et je veux écrire dans ce fichier Maintenant, je vais dire person file point R, et je veux écrire Hi. Je suis Auto. Ensuite, je dois fermer le fichier en disant «  person file dot close ». Allons-y et exécutons le code. Accédez au répertoire. Et ici, nous pouvons voir que nous avons un point TXT. Si nous cliquons dessus, nous pouvons voir, Bonjour, Amano. Génial. Alors maintenant, je peux toujours voir que nous avons les fichiers TXT du panier. Donc, ce que je vais faire, c'est supprimer les deux fichiers à partir de maintenant. Ensuite, nous pouvons commenter ce code pour le moment. Et nous allons faire exactement la même chose pour un dossier personnel. Je vais donc utiliser le gestionnaire de contexte maintenant et je vais dire Wi, je vais dire ouvert. Et ici, je vais créer un fichier TXT à points personnels dans le but d'y écrire en tant que fichier personnel. Je vais dire person file point right, et je vais écrire Hi iMou Exécutons le code maintenant. peux voir une personne sur les fichiers TXT créés qui dit bonjour, je ne suis pas. C'est simple. Voilà. Cette pratique fondamentale est maintenant en place. Maintenant, la prochaine chose que nous voulons faire est que nous avons cette personne sur le fichier TXT, allons-y, ouvrons-le et ajoutons-y en utilisant un fichier IO de base Nous savons que cela existe, nous pouvons donc tout supprimer. Conservez ce dossier. Ouvrons-le maintenant. le moment, il est simplement écrit : «   Bonjour, je suis Ro ». Ce que nous pouvons faire, c'est ouvrir à nouveau ce fichier et l'ajouter Je l'appellerai Person File. Voir open, c'est ce qu'on appelle person point TxD et notre intention est de l' ajouter . C'est le mode que nous allons définir. Ensuite, nous voulons continuer et dire « fichier personnel » point droit, ajouter un espace et dire bonjour, Ana, c'est ce que cela disait, et j'aime les films. C'est très simple. Et on peut dire « personne file dot close ». Allons-y et exécutons ce code. Allons dans le répertoire, prison f Il est écrit : «   Bonjour, je ne le suis pas, et j'aime les films ». Parfait. Nous pouvons donc voir que c'est ainsi que nous pouvons utiliser une méthode de stylo avec des E/S de fichiers de base. Allons-y et configurons cela avec un gestionnaire de contexte. Il est donc dit, et j'aime les films, allons-y et ajustons cela. Je vais donc commenter cela. Nous allons ajouter à nouveau à ce fichier. Nous voulons voir WIS ouvert ici dans Parenss. Je vais faire référence à ce fichier, appelé person point Mon intention est de l' ajouter à ce fichier en tant que fichier personnel. Ensuite, nous pouvons y écrire. Je dirais un point de fichier personnel, c'est vrai. Voyons ce que nous avons en ce moment. Bonjour, je suis et j'aime les films. Ensuite, je vais dire quelque chose à l'extérieur qui dit que je viens d'Afrique du Sud. Cela devrait être ajouté par la suite, et je voudrais mettre un espace ici. Nous y voilà. Allons-y et voyons si cela s'ajoute à cela. Donc, si je lance le code, Go to person point TXT, et c'est parti. Nous pouvons voir Bonjour, je suis Ano et j'aime les films. Je viens d' Afrique du Sud. Nous y voilà. C'est simple. C'est ainsi que nous pouvons utiliser les gestionnaires de contexte lorsque nous travaillons avec nos fichiers. Vous pouvez donc constater que c'est très efficace si nous voulons simplifier et éviter toute crainte de fermer nos fichiers après les avoir réécrits, car cela peut être un peu fastidieux, vous pouvez oublier et vous pouvez rencontrer Mais avec les gestionnaires de contexte, il s'occupe de tout pour vous. Très bien, les gars C'est donc tout pour cet exercice de laboratoire pratique sur les gestionnaires de contexte. 77. Gestionnaires de contexte intégrés et personnalisés: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur la comparaison entre le gestionnaire de contexte intégré et le gestionnaire de contexte personnalisé. Jetons donc un coup d'œil. C'est bon. Maintenant, avec le gestionnaire de contexte intégré , vous utiliseriez généralement with open, et nous utiliserions l'instruction Wi avec la fonction open pour ouvrir un fichier. OK. Il s'agit maintenant d'un gestionnaire de contexte intégré qui gère automatiquement nos ressources sous forme de fichiers afin de les ouvrir et de les fermer, et c'est avec cela que nous avons travaillé comme dans la leçon précédente. Nous avons également un gestionnaire de contexte personnalisé. Un exemple de la façon dont cela pourrait être utilisé est qu' un gestionnaire de contexte personnalisé est essentiellement une classe que vous créez et qui définira méthodes d' entrée et de sortie au sein de la classe pour exécuter et gérer des ressources ou des actions lorsque nous entrons ou quittons un certain bloc de code. Maintenant, nous allons continuer à travailler avec un gestionnaire de contexte personnalisé. Nous avons déjà de l'expérience avec un gestionnaire de contexte intégré, que nous avons utilisé lors du précédent exercice pratique en laboratoire, mais nous allons maintenant créer notre propre gestionnaire de contexte personnalisé. Je vais vous montrer comment vous pouvez tout gérer avec vos fichiers, par exemple, si vous devez travailler avec une classe donnée. Alors allons-y directement. 78. Créer un gestionnaire de contexte personnalisé - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique , qui sera axé sur la création d' un gestionnaire de contexte personnalisé pour le traitement des fichiers. Allons-y et commençons. Maintenant, nous avons déjà de l'expérience avec les cours, nous allons donc utiliser un cours. La première chose que nous voulons faire est définir les noms de nos classes. Je vais dire classe et je l'appellerai gestionnaire de fichiers. Ensuite, je dois continuer et définir mon message d'initialisation. Je dirais Derescore, alors nous devons passer par nos paramètres, nous aurons donc le self, nom du fichier et le mode Nous voulons maintenant initialiser notre classe de gestionnaire de fichiers et ce que nous allons faire, c'est spécifier les attributs Nous allons dire que le nom du fichier self point est égal à, et ce sera le nom du fichier. Ensuite, nous allons avoir le mode self, ce qui sera égal au mode. Nous allons stocker le nom du fichier ici avec le nom du fichier self point et nous allons également stocker le mode en tant que mode, qui peut être soit R pour la lecture, soit W pour, bien sûr, l'écriture, soit A pour ajouter. D'accord. Ensuite, nous voulons définir nos méthodes. N'oubliez pas qu'avec les messages, ils doivent être conformes à votre méthode d'initialisation Je vais tout d'abord dire Defunderce enter, souligner deux fois, et là, nous passerons Essentiellement, ce que nous voulons faire, c'est entrer le contexte d'exécution lié à notre objet, et cette méthode sera appelée lorsque l'exécution entrera dans le Wispblock que nous définirons plus tard, et qu'il ouvre le fichier et renvoie l'objet fichier D'accord. Donc, ce que nous voulons faire, c'est dire que self point file est égal à open. Nous allons dire nom de fichier self point et mode self point. Nous voulons donc ouvrir le fichier dans le mode indiqué. Ensuite, nous voulons dire return, self point file. D'accord. Maintenant, le fichier self sera, bien sûr, notre objet de fichier, et ce sera le fichier ouvert qui pourra être utilisé dans le bloc WIS. C'est donc ce que nous allons faire ici. Et comme nous pouvons le voir, cela est attribué à une variable dans wits. D'accord ? Ensuite, nous devons spécifier notre méthode de sortie, qui permettra de quitter le contexte d'exécution et de nettoyer les ressources. Cette méthode est appelée lorsque l'exécution quitte le bloc With. Je vais juste dire Jeff, double soulignement de sortie et double soulignement Je vais passer par pas mal de paramètres. Tout d'abord, nous aurons le soi. Ensuite, nous allons avoir le type de soulignement EX. C'est le type d'exception en cas d'exception. Sinon, il n' en renverra aucun. Ensuite, nous avons la valeur de soulignement EXC. s'agit de l'instance d'exception en cas d'erreur, et bien entendu, si rien ne se produit, il n'y en aura tout simplement aucune. Ensuite, nous allons avoir une retrace. Il s'agit de l'objet de traçabilité qui contient les détails de l'erreur. Nous pouvons continuer et fermer ce qui suit. le moment, ce que nous voulons faire, c'est d'abord vérifier si le fichier est ouvert. Je dirais que je crée moi-même un fichier à points. Donc, si ce fichier est ouvert, et dans ce cas , s'il l'a été, je veux le fermer pour libérer des ressources. Il s'agit donc d'une sortie. Nous allons donc vérifier si le fichier est initialement ouvert, et lorsque cette sortie s' exécute, nous pouvons fermer ce fichier en particulier. D'accord ? Parce que vous ne pouvez pas fermer quelque chose qui n'est pas déjà ouvert. D'accord. La méthode exit sera donc appelée lorsque nous voudrons quitter notre fichier et le fermer. Ensuite, la méthode va vérifier si ce fichier est réellement ouvert en ce moment, s'il y a quelque chose de trop proche, puis elle va le fermer. Nous dirions donc self point file, point close. Nous allons donc fermer le dossier, ce qui permettra de libérer des ressources. D'accord. Parfait Maintenant, ce que nous voulons faire, c'est aller avant et, en dehors de notre gestionnaire de fichiers de classe nous voulons utiliser notre gestionnaire de contexte personnalisé. C'est ce que nous avons utilisé auparavant avec la logique que nous avons utilisée plus tôt. Nous allons continuer et dire, Whiz, nous allons appeler notre classe ici, qui est un gestionnaire de fichiers Ensuite, nous allons , comme avant, définir ce que nous voulons ouvrir ou créer. Donc, ici, je vais dire car point TXT, puis je veux y écrire, donc je vais passer en mode W, et je vais dire en tant que CarFLE. Vas-y. D'accord. Comme nous pouvons le voir ici, nous avons cette instruction ici, qui va se bloquer et appeler notre méthode de gestion de fichiers, qui est Enter, qui va ouvrir le fichier et le renvoyer, et l' objet du fichier de retour sera assigné Pour le fichier de voiture et il est utilisé à l'intérieur du bloc. Ensuite, ce que nous voulons faire c'est nous assurer d'écrire dans notre dossier. Ici, je vais dire «   point carfle ». Ici, je dois dire que j'aime bien Honda. OK, donc nous avons écrit dans le dossier. Maintenant que le fichier est ouvert, il va également écrire dans le fichier. Et automatiquement, lorsque nous aurons effectué l'action nécessaire, lorsque le bloc se terminera, en d'autres termes, avec l'instruction WIS que nous avons configurée ici, il appellera le gestionnaire de fichiers en fonction de sa méthode de sortie désignée ici et il l' appellera automatiquement pour fermer le fichier. D'accord. C'est le processus ici et l'exécution avec ce que nous mettons en place ici. Je vais juste zoomer ici. Vous pouvez donc voir nous avons défini notre classe, avons ajoutée dans les paramètres et instructions nécessaires. Et puis, juste à la fin, à l'extérieur, nous appelons simplement notre classe, puis nous partons sur une haie, nous créons un fichier, puis nous le découvrons. Nous pouvons réellement aller de l'avant et tester cela. Donc ce que je vais faire maintenant, c'est le tester. Donc, si je lance mon code, il n'y aura pas de sortie, mais si je vais ici, peux voir que j'ai ce fichier TXT à points cartonnés qui dit : « J'aime Honda ». Et vous pouvez voir que tout cela a été géré automatiquement pour nous et comme il se doit. C'est bon, c'est bien. C'est ainsi que vous pouvez continuer et créer essentiellement un gestionnaire de contexte personnalisé pour le traitement des fichiers, et surtout, nous l' utilisons via Visa via une classe ici, comme vous pouvez le voir, appelée gestionnaire de fichiers. D'accord, donc, comme vous pouvez le constater, l'ensemble du processus fonctionne de manière très similaire à la manière dont nous avons procédé et travaillé avec nos cours. D'accord. C'est tout pour l'essentiel. Ce que je vais faire maintenant, c'est simplement aller de l'avant analyser davantage et vous montrer ce que vous pouvez faire d'autre. C'est bon. Continuons. Maintenant, la prochaine chose que nous allons vouloir faire est continuer à personnaliser davantage nos méthodes d'entrée et d'exception. Maintenant, avant de continuer, je veux juste faire un petit nettoyage. Je vais aller dans Explorer et je veux supprimer ces fichiers que j'ai sauf le fichier point pi principal. La personne DotXt et la voiture DotXt. Allons-y. Vérifiez simplement que vous n'avez pas supprimé le fichier point principal. C'est avec cela que nous travaillons. Ce que nous pouvons faire maintenant, c'est aller de l'avant et apporter un peu de personnalisation dans le cadre de notre méthode intérimaire. Ce que je veux faire, c'est qu' une fois qu'un fichier est ouvert, je veux afficher du texte pour indiquer le nom du fichier qui a été ouvert et aussi pour continuer et afficher le mode dans lequel il a été ouvert Dans ce cas, je veux imprimer que CDTxt a été ouvert ou créé et que le mode d'écriture a été activé pour cela Le voici donc dans mon message Enter. Déplaçons-le là. Je peux dire imprimer. J'utiliserai des chaînes S pour dire le fichier. Et ici, je vais mettre à ma place le nom du fichier lui-même. Il va donc appeler le nom du fichier, qui sera appelé en txt, puis le mode, qui sera W. Je veux dire que le nom du fichier est le fichier, tel ou tel est ouvert, et le mode est ouvert, puis je peux dire mode point automatique. Va. Maintenant, disons que je souhaite ajouter une instruction juste avant la fermeture du fichier, afin que je puisse utiliser la méthode exit pour cela et l'ajuster. Je peux dire imprimer. Le dossier est sur le point d' être fermé. Ayez-le. Je vais maintenant recréer fichier TXT que j'avais auparavant et il apparaîtra ici Allons-y et exécutons le code, mais nous devrions maintenant voir la sortie affichée dans notre console. Allons-y, enregistrons et exécutons ce code. Allons-y. Comme nous pouvons le voir ici, il est indiqué que la carte TXT est sur le point de s'ouvrir le mode est W et le fichier est sur le point d'être fermé. Nous pouvons voir que notre méthode d'entrée exécutée et a imprimé l'instruction suivante, qui était la première ici. Avec notre méthode de sortie, elle a imprimé le fichier est sur le point d' être fermé et affiché ce qui suit comme nous pouvons le voir ici. Parfait Bravo C'est ainsi que vous pouvez aller de l'avant et ajouter des fonctionnalités supplémentaires à vos méthodes. C'est vrai. Maintenant, allons-y et effectuons la gestion des erreurs. Supposons maintenant que nous ayons une erreur en quittant notre fichier. Par exemple, ici, je veux continuer et remplacer ce fichier que nous avons actuellement, et je vais simplement modifier un texte pour dire que je l'aime bien à titre d'exemple Alors je vais juste, par exemple, appeler Afle. Je vais dire ici Carfle Dot Random. OK, et ce sera un message aléatoire, quelque chose de aléatoire ici. Supposons donc que nous voulions appeler une méthode aléatoire, quelque chose qui n'existe pas Il y aura une erreur lors de la fermeture du fichier, car souvenez-vous que lorsque nous ouvrirons le fichier, d'accord, nous allons nous assurer que nous sommes en mesure d'y accéder, ce que nous pouvons faire, et que nous pouvons y écrire, ce que nous pouvons faire ici. Et nous allons écrire dans le fichier dès son ouverture, et il sera écrit. Et puis il ne sera fermé que lorsque nous exécuterons le message de sortie. Donc, après avoir écrit dans le fichier, pour fermer le fichier, mais avant qu'il ne puisse être fermé, pour fermer le fichier, mais avant qu'il ne puisse être fermé, nous ajoutons cette méthode non valide, qui va déclencher une erreur dans cette méthode de sortie car c'est là que nous en sommes au stade actuel du programme. Essentiellement, ce que je veux faire, c'est me lancer dans une haie et imprimer une exception. Donc, ce que je vais faire, je vais rester très simple, et je vais que si je devais avoir une exception, je dirais ici, si mon trait de soulignement d'exception n' est pas nul Donc, si j'ai une exception, je veux alors imprimer temporairement l' exception en cours de gestion. D' accord, juste comme ça. Et la prochaine chose que je veux faire, c'est simplement dire « sortez d'ici dehors », et je veux revenir à la vérité. D'accord. Maintenant, laissez-moi expliquer ce que je fais ici. Donc, cette instruction d' impression indique que l'exception traitée signifie que je souhaite imprimer un message si une exception se produit. Donc, ce type d'exception indique que type d'exception n'est pas nul, ce qui signifie que s'il y a une exception, je veux imprimer l'exception en cours de traitement. D'accord ? Tout ce que je fais ici en dehors de cette déclaration c'est dire « Imprimer, sortir ». Cela va imprimer ce message qu'il y ait eu une exception ou non. Renvoyez vrai ici, c'est très important car cela supprimera toute exception survenue dans le bloc WIS ici. Cela garantira qu' aucune autre erreur ne se produira. Je vais vous montrer à quoi cela ressemblera lorsque je gérerai d'abord l'exception. Je le fais dans l' autre sens. Donc, si je devais exécuter ce code, nous pourrions voir, OK, il est ouvert. Nous pouvons voir qu'il est en train d'être fermé. Ensuite, nous pouvons voir l'exception être gérée et sortir. Maintenant, supposons que je supprime cette gestion des exceptions, et que je me contente de commenter pour sonner et supprimer cela. Et maintenant, ce que je vais faire, c'est exécuter exactement la même chose et dire exécuter le code. D'accord. Et nous pouvons voir ici que le fichier est sur le point d' être fermé et de sortir. Maintenant, ce que vous allez voir ici, c'est qu'il ne lance toujours pas de flèches, et c'est parce que j' ai renvoyé true ici, ce qui supprime vos exceptions dans le wispblock Donc, ce que vous allez vouloir faire, c'est ajouter votre hashtag ici et simplement l'ajouter dans le commentaire, et nous pourrons exécuter le code. Vous pouvez maintenant voir qu'une erreur de retraçage se produit. Nous pouvons voir maintenant que nous avons cette erreur Il s'agit donc d'une erreur d'attribut et l'objet possède un attribut aléatoire. Nous pouvons voir où cette erreur s'est produite en fonction du retraçage Nous pouvons voir un message aléatoire à point carfle, et c'est là que cette erreur s'est produite C'est quelque chose que je voulais mentionner. C'est l'erreur que vous obtiendrez si traitement des erreurs n'est pas en place. Maintenant, si vous voulez que ce soit un peu plus concis et précis, vous pouvez essentiellement faire ce qui suit. Nous allons dire « retour vrai ». Nous voulons obtenir ce type d' exception. Mais dans cette déclaration, nous voulons que les détails soient plus concis. Nous ne voulons pas le gestionnaire d' exceptions par défaut. Nous voulons le styliser nous-mêmes. Je veux voir le type d'exception et la valeur de l'exception, et je veux voir le retraçage du tout ici dans cette déclaration d'impression Ce que je vais faire, c'est aller de l'avant et les ajouter. Je vais dire, type d' exception. Ce que je vais faire, c'est que je pense que je vais utiliser des chaînes F, donc je peux simplement y revenir Je vais dire type d'exception. Nous aurons alors de la valeur et je veux en voir la trace. Je vais également modifier le texte. C'est pour avoir mes propres messages d'erreur personnalisés. Retraçage. Maintenant, exécutons-le. Ensuite, je reçois mes propres messages d'erreur personnalisés, ce qui est vraiment utile. Type d'exception, nous pouvons voir une erreur d' attribut, une valeur d' exception, nous pouvons voir qu'il n'y a aucun attribut aléatoire mesod qui s' y rapporte et nous pouvons également y voir un retraçage en termes d'objet de traçabilité C'est là l'erreur. Allons-y. Je pense que c'est un moyen plus utile si vous voulez également gérer la gestion des erreurs Vous pouvez simplement vérifier calmement si le type d'exception n'est pas nul, puis vous retournerez vrai afin de pouvoir supprimer toute exception qui se produira . Bien sûr, comme je l'ai mentionné, dans le Wistblock, cela garantira également qu'il ne déclenche pas l' erreur par défaut dans le console, et en le manipulant vous-même en examinant manuellement le type, la valeur du traçage peut également être très efficace, car comme vous pouvez le constater, elle se trouve également dans une sorte de sortie très propre également dans une sorte de sortie D'accord, c'est ainsi que vous pouvez également gérer la gestion des erreurs lorsque vous utilisez votre gestionnaire de contexte personnalisé Un autre point très utile à mentionner ici est que lorsque vous travaillez avec des gestionnaires de contexte, vous avez plus d'options pour modifier le déroulement que vous souhaitez, par exemple, le processus de gestion des fichiers. C'est bon, les gars. C'est donc tout pour cet exercice de laboratoire sur l'utilisation de gestionnaires de contexte personnalisés gestion de fichiers dans ce cas particulier. 79. Générateurs: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur les générateurs. Commençons. Très bien, vous vous demandez probablement ce qu' est un générateur. Un générateur est essentiellement une fonction unique qui conserve son état et produit une séquence de valeurs une par une, au lieu de les renvoyer toutes en une seule fois. Maintenant, vous vous demandez probablement, c'est bon à savoir, mais comment fonctionnent-ils réellement ? Au lieu de return, les générateurs utilisent le mot clé yield. Maintenant, cela signifie qu'ils ne fonctionnent pas tous en même temps, mais qu'ils font une pause au moment du rendement. Cela rend les générateurs efficaces en termes de mémoire, puisqu'ils ne stockent pas la totalité de la sortie en mémoire. Maintenant, les effets que vous voyez ne sont pas quelque chose que vous verrez tout de suite. Vous ne le verrez pas vraiment dans le code, mais c'est en termes de traitement principal. D'accord ? C'est ainsi que l'on peut mesurer l'efficacité, mais j'ai une leçon à ce sujet. Je vais expliquer pour donner plus de sens à l'efficacité de la mémoire. Quoi qu'il en soit, continuons et concentrons-nous sur les générateurs. Mais maintenant, ce que je veux faire, c'est expliquer une analogie simple afin que vous puissiez mieux comprendre les générateurs, et cette analogie se concentrera sur le visionnage de Netflix. Ainsi, dans le concept de rendement des générateurs, nous pouvons le comparer dans Netflix au bouton Pause. Yield est donc le bouton pause. Après avoir terminé un épisode, Netflix fait une pause au lieu de tout diffuser en même temps. Netflix propose également la possibilité de cliquer sur le bouton Suivant pour passer à l'étape suivante. Et lorsque nous travaillons avec des générateurs, nous avons parfois tendance à utiliser la fonction suivante. Ensuite, il y a un bouton de lecture. Ainsi, lorsque vous êtes prêt, vous appuyez sur Play pour regarder l'épisode suivant, ce qui peut également se produire avec les générateurs. Nous pouvons utiliser la fonction suivante pour accéder au résultat suivant obtenu Maintenant, une autre chose importante est qu'il sauvegarde là où vous vous êtes arrêté. Il n'est pas nécessaire de recommencer depuis le début à chaque épisode sur Netflix. Il se souvient toujours de l' endroit où vous êtes parti pour la dernière fois. Il en va de même pour l'utilisation de générateurs et l'utilisation du rendement. Il se souviendra de l' endroit où tu étais pour la dernière fois. OK. Maintenant, appliquons-le à un programme. Je crée donc une fonction, qui est une émission Netflix, puis je vais produire, par exemple, trois épisodes. Passez donc à l'épisode un, épisode deux et à l'épisode trois. Ensuite, je vais stocker cette fonction d'émission Netflix dans une variable, et cette variable sera finalement un objet générateur stocké parce que nous utilisons le mot clé yield. Ensuite, nous pouvons imprimer chaque épisode dans l'ordre en utilisant la fonction suivante. Nous pouvons dire « Imprimer ensuite » , puis « encapsuler » l'épisode. Cela va imprimer le premier épisode. Ensuite, nous utilisons la fonction suivante, et nous ajoutons l'épisode et cela produira l'épisode deux. Il se souviendra de l'État. Il n'imprimera pas les épisodes un, deux et trois. Si vous vous contentez d'afficher l'épisode, nous devrions dire suivant et il fera par itération. OK. Maintenant, ce sera le cas si nous sautons manuellement, comme dans Netflix, si nous sautons manuellement un épisode D'accord ? Nous continuerions à utiliser la fonction suivante à chaque fois pour ce faire. Maintenant, ce que nous pouvons également faire, c'est automatiser cela pour le rendre un peu plus rapide. Nous pouvons utiliser une boucle à quatre. D'accord ? Alors lancez l'émission de télévision et parcourez les épisodes en boucle. Nous utilisons donc une boucle à quatre en disant quatre épisodes dans une émission Netflix, épisode imprimé, et cela imprimera tout dans l' ordre indiqué. OK. Et ce serait un saut automatique. C'est vrai. C'est ainsi que nous pouvons appliquer et utiliser les générateurs. Nous allons nous entraîner et nous allons continuer à faire quelques exercices pratiques en laboratoire pour travailler sur des générateurs. Restez à l'affût. 80. Travailler avec des générateurs - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique en laboratoire, qui sera axé sur les générateurs. Maintenant, comme je l'ai mentionné dans les leçons théoriques que j'ai mentionnées, un générateur est une fonction unique qui conserve son état et produit une séquence de valeurs une par une, plutôt que de les renvoyer toutes en même temps . Maintenant, je veux juste vous montrer et vous prouver qu'un générateur n'est pas simplement une fonction normale et qu' il s'agit d'une fonction unique. Allons-y et définissons une fonction normale pour commencer. Je vais juste dire «   mort » et nous aurons toujours le même appel qu'avant. Je vais dire que Netflix souligne le nom de la fonction, de chaque côté, entre parenthèses vides Je vais juste, par exemple, aller dans une haie et dire Imprimer le premier épisode, et c'est tout. Ensuite, je vais obtenir une variable et je vais dire que l'épisode est égal à l'émission de soulignement de Netflix Ensuite, si je dis épisode imprimé, nous allons voir ici qu'il n'en renvoie aucun. C'est juste un test très simple pour voir si nous avons affaire à une fonction. Mais si je devais supprimer print et dire yield, utiliser le mot clé yield et dire épisode 1, et que je fais la même chose et que je lance, cela produira un objet générateur. C'est donc une indication pour montrer qu'en ajoutant du rendement, nous disons à Pison que nous voulons transformer cette fonction en générateur, en d'autres termes, en une fonction unique Donc, je voulais juste mentionner quelque chose pour que nous puissions avoir une idée plus claire de la différence. Alors, revenons en arrière. Nous devons de toute façon définir une fonction. Ce sera une émission Netflix, puis nous voulons obtenir des résultats. Je vais donc passer , tout d'abord, premier épisode, et il va dire quelque chose de aléatoire, The Mill. Rendement. Maintenant, je vais parler de l'épisode deux. The Ban and Yield, épisode 3 de la villa. Maintenant, vous pouvez ajouter de l'espace ici si vous le souhaitez, ou vous pouvez le garder serré. C'est à vous de décider de ce que vous voulez faire, mais assurez-vous d'avoir trois déclarations de rendement. Ensuite, nous voulons associer la fonction ici, Netflix show, qui est désormais un générateur à une variable afin que notre variable contienne alors cet objet générateur. Donc je vais dire que l' épisode est égal, et ce sera une émission de soulignement de Netflix Et nous avons assigné cet objet générateur. Parfait. Nous pouvons maintenant imprimer les épisodes un par un. Donc, si je dis imprimer, je peux utiliser la fonction suivante, et je peux simplement dire épisode. Et allons-y et exécutons-le. Et vous pouvez voir ici qu'il est écrit Episode 1 : The Mill. Laissez-moi exécuter le code ici. Épisode 1 : The ML. Il ne va donc pas continuer et produire tous les épisodes que nous avons. Il va le faire par segments. Donc, pour voir le prochain épisode, je vais devoir utiliser à nouveau la fonction suivante, donc je passe à l'épisode deux, puis à l'épisode trois, et ainsi de suite. Alors laisse-moi le faire. Vous pouvez simplement publier le relevé d'impression trois fois. Le premier épisode sera donc imprimé en premier. Épisode deux suivant, et épisode trois partagé. Alors allons-y et exécutons-le. Et comme vous pouvez le voir maintenant, le premier épisode est en cours de sortie. Pour répondre dans l'ordre. Il ne s'agit pas simplement de les afficher tous si soudainement OK ? C'est ainsi que nous pouvons procéder à la mise en place d'un générateur simple. Supposons maintenant que nous voulions automatiser cela. Nous ne voulons pas avoir à utiliser constamment la fonction suivante à chaque fois. Donc, ce que nous pouvons faire, c'est aller de l'avant et supprimer cela. C'est bon. Et nous voulons également supprimer cela et nous pouvons dire quatre épisodes sur Netflix. Soulignez Show Colon, et nous voulons dire épisode imprimé. Et si nous le lançons, nous aurons le premier épisode, The Mill, l' épisode deux, The Barn, et l'épisode trois, The Vella Maintenant, vous vous demandez probablement : OK, quoi l'ensemble du processus est si unique, cela a à voir avec l' efficacité des générateurs en coulisse Ce n'est pas quelque chose que vous verrez intrinsèquement dans votre code, mais quelque chose qui se produira en arrière-plan Et comme je l'ai mentionné, c'est une leçon que je vais aborder dans la prochaine leçon, devrais-je dire, sur la poursuite de ce processus. Quoi qu'il en soit, allons-y et un autre exemple simple de générateur, et c'est ce que nous allons faire. C'est bon. Ensuite, je vais dire D, puis je vais dire, allons-y, disons allons-y DF et je veux dire que les éléments de soulignement du chapelet seraient ma fonction Maintenant, pour en faire un générateur, je dois dire yield, avoir au moins une instruction. Ici, je vais dire Apple. Produisez du lait. Du rendement, et on peut dire de la viande. Nous y voilà. Nous voulons maintenant continuer et assigner notre générateur à une variable, notre objet générateur. Je vais aller de l'avant et je peux dire que le produit est égal, et nous allons dire que l' épicerie met l'accent sur les produits Désormais, le produit est désormais un objet générateur. Alors maintenant, allons-y et testons le processus. Donc, si je devais dire imprimer, je pourrais dire suivant, utiliser la fonction suivante, puis je voudrais ajouter cet objet générateur, donc le produit. Donc maintenant, si je le lance, il produira Apple. Et si je continue à l'exécuter, il n'ira pas plus loin, il utilisera simplement la prochaine valeur particulière définie ici. Je devrais le faire pour le nombre de fois que je en particulier si je mange des pommes, du lait et de la viande. Parfait. Automatisons tout cela. Supprimons donc ce qui suit. Nous pouvons simplement passer à autre chose et ajouter un flop. Je vais donc dire que pour les produits d' épicerie, soulignez les articles Et nous pouvons simplement imprimer le produit. Donc, chaque déclaration particulière que nous avons ici, et elle est exécutée. Et ici, nous avons des pommes, du lait et de la viande. Très bien, alors allons-y. C'est ainsi que nous pouvons simplement continuer et utiliser un générateur dans Bison Je vais maintenant passer en revue la leçon suivante, la partie sur l'efficacité de la mémoire afin que vous puissiez comprendre les avantages réels des générateurs. C'est bon, les gars. C'est donc tout pour cet exercice de laboratoire en particulier. 81. Efficacité de la mémoire du générateur: Bonjour, tout le monde. Et bienvenue à la prochaine leçon qui portera sur la compréhension de l'efficacité de la mémoire en termes de genres. Très bien, donc comprendre l'efficacité de la mémoire. Une fonction normale stocke toutes les valeurs en même temps en mémoire, ce qui peut s'avérer inefficace pour les grands ensembles autre côté, un générateur produira une valeur à la fois sans conserver les valeurs précédentes, ce qui le rend beaucoup plus économe en mémoire. Supposons, par exemple, que nous travaillions avec une fonction normale. Et dans cette fonction normale, nous définissons une fonction connue sous le nom d'émission Netflix. Nous renvoyons une liste d'épisodes, puis ce que nous faisons essentiellement, c'est à affecter ces épisodes cette fonction particulière ici, et cette liste complète sera créée en mémoire, puis nous pourrons ensuite continuer et mettre ces épisodes en boucle, même manière que nous l'avons fait avec les genres Cependant, c'est là que le problème entre en jeu. Le problème est que la fonction de création installe la liste complète en mémoire avant de la lancer en boucle Par exemple, s'il y avait des millions d'épisodes, cela occuperait beaucoup de mémoire. Maintenant une fonction normale, si elle doit renvoyer, par exemple, listes composées de nombreuses valeurs, elle va tout charger en mémoire en même temps. C'est le problème que nous avons ici avec une fonction régulière. Cependant, un générateur peut résoudre ce problème. Si nous examinons un générateur dans cet exemple, nous ne faisons que donner, comme vous pouvez le voir, nos valeurs Obtenez le premier épisode, le rendement deux, le troisième épisode. Vous vous demandez probablement pourquoi c'est mieux ? Comme vous pouvez le constater, un seul épisode, comme vous pouvez le constater, est conservé en mémoire à la fois. Dès qu'un épisode est imprimé, il est supprimé, ce qui permet de libérer de la mémoire Donc, la fonction générateur, nous avons le rendement, contrairement à une fonction normale , nous aurons un retour en utilisant yield Elle ne chargera qu' une valeur à la fois, ce qui contribue à réduire votre utilisation de la mémoire. C'est bon. J'espère que cela vous permettra mieux comprendre l'efficacité de la mémoire avec les générateurs, et c'est ainsi que vous pourrez voir l'intérêt d'utiliser des générateurs avec le mot clé yield. Donc, comme je l'ai dit, je sais qu' au cours de la première leçon et en ce qui concerne les accises pratiques en laboratoire, cela ne semblait pas apporter grand-chose cela ne semblait pas apporter grand-chose, car cela se produit essentiellement dans les coulisses et cela aide à améliorer votre mémoire. C'est là que cela peut être utile si vous avez affaire à des applications plus tard ou actuellement et que vous souhaitez surveiller votre utilisation de la mémoire, générateurs peuvent vraiment vous aider à cet égard. 82. Copie superficielle et profonde: Bonjour, Ron. Bienvenue à la prochaine leçon, qui sera axée sur la copie superficielle et profonde. Jetons un coup d'œil à la différence entre les deux. Une copie superficielle crée essentiellement un nouvel objet, crée essentiellement un nouvel objet, mais conserve les références aux éléments d'origine, ce qui signifie que les modifications apportées aux objets imbriqués affectent les deux copies Nous avons également une copie profonde, et dans ce cas, une copie profonde crée une copie totalement indépendante, y compris tous les objets imbriqués, en veillant à ce que les modifications apportées à une copie n'aient pas d'impact sur l'autre Voici donc les différences entre une copie superficielle et une copie approfondie, et nous allons faire un exercice pratique à ce sujet afin que vous puissiez voir comment cette série sera appliquée aux exercices de laboratoire Voilà, pour ce qui est des définitions de copie superficielle et profonde, passons aux exercices pratiques. 83. Utiliser une copie superficielle et profonde - [Lab]: Bonjour, tout le monde. Et bienvenue au prochain exercice de laboratoire, qui sera axé sur la copie superficielle et profonde. Nous allons donc travailler avec quelques exemples afin de mieux consolider nos connaissances en matière de copie. Alors allons-y et commençons. Maintenant, dans ce premier exemple, nous allons apprendre comment attribuer sans copier. Nous ne faisons donc pas de copie pour l'instant, juste pour approfondir l'idée Donc, je veux d'abord définir une liste. Je vais dire une liste de soulignements originale. Disons un, trois et cinq dans la liste. Je souhaite l'affecter à une autre variable. Je dirais que la nouvelle liste de soulignements est égale à la liste d'origine. Et avec cela, tout ce que je fais, comme je l'ai mentionné, c'est attribuer la liste d'origine ici à une nouvelle variable appelée nouvelle liste, et je n'en fais pas réellement une copie. Je suis juste en train de l'assigner Maintenant, disons que je voulais modifier la nouvelle liste et dire nouvelle liste, et je vais dire qu'à zéro, je veux la mettre à 99. Maintenant, ce que je veux faire, c'est imprimer la liste des articles. Je vais dire imprimer, et je vais dire ici la liste originale. Et est-ce que c'est dedans ? Ensuite, je voudrais dire « imprimer la nouvelle liste », et ensuite nous pourrons passer en revue la nouvelle liste. Exécutons ça. Nous pouvons voir ici, dans la liste initiale, que nous en avons 99, que nous en avons trois et que nous en avons cinq. Ensuite, dans la nouvelle liste, nous en avons 99, nous en avons trois et nous en avons cinq ici. Maintenant, allons-y et comprenons le processus en cours. Maintenant, nous pouvons voir que la nouvelle liste n'est pas une copie de la liste d'origine. Les deux variables pointent vers la même liste en mémoire. Lorsque nous changeons une nouvelle liste, comme nous pouvons le voir ici, zéro, la liste d'origine change également car il s' agit du même objet. Comme vous pouvez le voir ici, 993-59-0935. C'est ainsi que nous pouvons simplement attribuer une liste qui ne crée pas de copie. C'est vrai. C'est la première chose que je veux mentionner. Maintenant, ce que nous allons faire, c'est nous plonger dans une copie superficielle. Cela ne fait que copier la liste extérieure. Avec une copie superficielle, elle créera un nouvel objet, mais elle ne copiera pas les objets imbriqués Nous y reviendrons dans le moment Alors allons-y et faisons-le. Assurez-vous que vous êtes à l'aise avec ce que nous venons de vivre. C'est bon. Allons-y donc et concentrons-nous sur la copie superficielle. N'oubliez pas qu'une copie superficielle crée une nouvelle liste extérieure, mais que les listes internes restent les mêmes. Ils ne sont pas copiés, seulement des références, commençons. Pour ce faire, nous devons importer le module de copie. OK. Ensuite, nous voulons tout d'abord créer une liste originale avec des listes imbriquées Nous pouvons donc dire que les listes originales sont variables, et ici nous allons avoir une liste, puis nous allons avoir une liste dans une liste qui va en avoir un, deux, trois, ajouter une virgule, puis nous voulons en avoir quatre, cinq et six OK. Nous avons donc maintenant une liste avec des listes imbriquées Donc, une liste dans un est acceptable. Nous voulons maintenant créer une copie superficielle. Je vais l'attribuer à ma variable appelée copie superficielle pour créer cette copie superficielle Vous devrez appeler le module de copie et le module de copie a une fonction appelée copie, et nous pouvons simplement la placer dans la liste d'origine à l'intérieur de celle-ci. Cela va créer une copie superficielle pour nous. Nous voulons maintenant modifier la liste interne que les deux listes partagent. Pour ce faire, nous dirions une copie de soulignement superficielle. Nous dirions zéro, zéro, et nous pouvons le fixer à 99. Cela va essentiellement faire l'objet d'une couverture et de modifier la valeur du premier élément de la liste interne. Ici, vous pourriez considérer cela comme la liste que nous avons à l'extérieur, et ce sera cette liste ici, et nous désignerons alors cette liste ici par zéro, et cette liste ici par une Nous disons donc zéro, cela signifie que nous voulons travailler avec celui-ci. Et puis dans cette liste, il vient en deuxième position, vient le deuxième argument ici. Nous voulons aller de l'avant et faire référence au premier élément de cette liste, celui-ci ici. Cela va changer et passer à 99, et cela se reflétera à la fois dans notre liste originale et dans notre copie sommaire. Allons-y et imprimons la déclaration pour que nous puissions voir cela. Je dirais imprimer. Je vais dire liste originale. Et puis une copie superficielle. Copie superficielle. Nous y voilà. Alors maintenant allons-y et nous voulons imprimer notre liste. Voilà. Nous en avons 99 , deux, trois, quatre, cinq, six, et nous pouvons voir que nous avons changé ici dans la liste initiale et, bien entendu , la liste superficielle par défaut aurait pris 99. Mais vous pouvez voir que la liste d'origine a également changé en même temps, et c' est parce que la liste originale ici par zéro, et bien sûr dans notre copie superficielle à zéro en termes de position des éléments, fait référence à la même liste en mémoire. Cela prouve que les copies superficielles ne copient que la liste extérieure et non les objets imbriqués à l'intérieur C'est la raison pour laquelle nous obtenons le résultat suivant. C'est vrai. Maintenant, concentrons-nous sur la copie profonde, afin de garantir que Deep Copy dispose d'une copie totalement indépendante qui ne modifie pas la liste d'origine elle-même. Donc, ce que nous voulons faire, c'est faire une couverture et supprimer ce que nous avons ici et nous allons remplacer cela par une copie approfondie, et nous allons appeler le module de copie, et nous allons dire copie profonde, utiliser cette fonction. Ensuite, nous voulons passer en revue la liste d'origine. Et cela va créer une copie complète. Ensuite, nous voulons modifier la liste interne dans la copie profonde, afin que nous puissions parler de copie soulignée profonde, et 00 est la même chose qu'auparavant Et nous pouvons dire imprimer, et nous allons dire liste originale. Suivi d'une copie très profonde. Nous y voilà. Nous l'avons donc maintenant mis en place, et allons-y. Et nous y voilà. Maintenant, vous pouvez voir que la liste originale est restée intacte, donc nous en avons toujours un, deux, trois, quatre, cinq, six. Et à ce positionnement, l'effet ne s'est pas produit dans le premier élément ici. Je suis restée la même. Cependant, dans Deep Copy, cette modification a été ajustée. Vous pouvez voir ici que le 99 est maintenant à la place où il y en avait un. Vous vous demandez donc probablement, d'accord, pourquoi la liste d'origine est-elle restée inchangée cette fois ? Parce que Deep Copy était nul, d'accord ? Et la liste originale en zéro, accord, n'est plus la même liste. La copie profonde duplique entièrement tout, sorte que les modifications apportées à la copie profonde n' affectent pas la liste d'origine OK. C'est donc quelque chose de très important à retenir. N'oubliez donc pas que vous utilisez l'assignation, comme je vous l'ai montré précédemment, et que si vous utilisez la fonction de copie, modifications affecteront l' original en termes de liste. Mais si vous utilisez la copie profonde, elle sera entièrement copiée dans l'autre liste, par exemple. C'est bon, les gars. Il s'agit d'une copie superficielle, d'une copie profonde et de la mission générale selon laquelle vous supposerez que la copie fonctionnerait. C'est bon, les gars. C'est tout pour cet exercice pratique en laboratoire. 84. Enregistrement: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur la journalisation. Jetons donc un coup d'œil. Alors, qu'est-ce que la journalisation ? La journalisation consiste à capturer des événements, des messages ou des erreurs au sein d'une application. Désormais, il aide les développeurs à déboguer, suivre les problèmes et à surveiller le comportement du système Désormais, les journaux peuvent également être stockés dans des fichiers, des bases ou des services externes, et ils sont également classés par niveaux de journalisation. Jetons donc un coup d'œil à ces niveaux de connexion que nous obtenons. Nous obtenons donc les niveaux suivants. Ils incluent TBug qui fournit des informations de diagnostic détaillées pour le dépannage Ensuite, nous avons les informations, qui fournissent des messages opérationnels généraux confirmant les informations normales. Avertissement. Cela se fera sous réserve toute indication de problèmes potentiels pouvant nécessiter une attention particulière. Ensuite, nous obtenons une erreur, qui se concentre bien sûr sur la production d'informations sur tout problème important affectant le fonctionnement de l' application, et nous devenons critiques, et critiques, bien sûr, va produire des informations indiquant la présence erreurs graves entraînant défaillance ou une instabilité du système Voici donc les niveaux que nous obtenons lors de la connexion. Débogage, information, avertissement, erreur et critique. C'est bon. Maintenant que c'est fait, allons-y et passons à l'aspect pratique. 85. Mettre en œuvre des messages d'enregistrement - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique en laboratoire, qui sera axé sur l'exploitation forestière. Le premier exemple que nous allons examiner est donc de savoir comment implémenter la journalisation de base, ce qui est utile pour remplacer la fonction d'impression. Maintenant, vous vous demandez probablement : OK, la fonction d'impression est excellente. Cela peut vraiment nous aider à produire certaines instructions en fonction de l' endroit où nous les mettons dans notre code. Bien que cela soit vrai, nous pouvons plutôt utiliser la journalisation, qui permet de suivre les événements de notre programme plus efficacement avec ses fonctions, ses structures et tout le reste. Alors allons-y et commençons. Tout d'abord, nous voulons importer le module de journalisation. Nous voulons maintenant configurer la journalisation de base. Nous allons donc définir notre fonction. Nous devons donc nous référer à notre module, disons logging point. Ensuite, nous allons faire référence à la fonction appelée configuration de base. Maintenant, il s'agit d'une fonction qui configure la journalisation. Il configure le comportement des journaux. Et dans ce cadre, nous voulons dire que le niveau est égal aux informations sur les points de journalisation, n'est-ce pas ? Le niveau est donc essentiellement un paramètre qui définit le niveau de journalisation le plus bas à enregistrer, et ce sera, bien sûr, les informations et plus. Ensuite, il est affecté aux informations sur les points de journalisation, et il s'agit d'un attribut ou constante qui représente le niveau d'information. OK. Maintenant, nous voulons enregistrer un message d' information. Je vais donc dire logging point info. Et puis c' était entre parenthèses. OK. Je tiens à dire que le programme a commencé. OK, donc cela enregistre un message avec le niveau d'information. OK. C'est donc juste quelque chose d' important qui, à mon est important pour vous faire comprendre. C'est bon. Maintenant, c'est la fonction particulière que nous utilisons la fonction info, afin de pouvoir exécuter l'instruction suivante. Donc, si je lance ceci, en allant sur la route des informations, le programme a démarré. Eh bien, c'est la manière la plus élémentaire d' intégrer la journalisation. OK, c'est ainsi que nous pouvons continuer et commencer. C'est vrai. Maintenant que nous sommes à l'aise avec les informations, nous voulons savoir comment enregistrer les erreurs grâce au traçage Cela peut donc aider à corriger les erreurs sans arrêter notre programme Nous allons donc ajuster ce qui suit. Encore une fois, nous allons utiliser le module de journalisation. Mais cette fois, nous voulons configurer la journalisation pour afficher les erreurs et les versions supérieures. En d'autres termes, erreur et critique. Je vais donc appeler le module de journalisation. Ensuite, je veux exécuter la configuration de base. Je veux l'ajouter, c'est donc la fonction que je veux utiliser. Je vais régler le niveau d'erreur de journalisation. OK, c'est donc exactement le même processus que celui que nous avons fait auparavant. Tout ce que nous faisons maintenant, c'est que nous allons vouloir afficher et afficher l' erreur, dois-je dire ? Aucune information ou quoi que ce soit de ce genre. Maintenant, nous pouvons simplement créer un programme simple. Je vais dire essayer et je dirai que le résultat est égal à 10/0. Cela va provoquer une erreur de division zéro. Ce que je veux faire alors, c'est dire sauf et ce que je vais dire, c'est point de journalisation E. Et là, je vais dire que vous avez essayé de diviser par zéro. Ensuite, à la fin, je voudrais dire exception E XC, informations de soulignement seront vraies OK. Alors allons-y et jetons un coup d'œil ici. Nous sommes donc en train de définir le module de connexion, et nous allons utiliser la fonction d'erreur pour afficher un message indiquant que vous essayez de diviser par zéro, et nous voulons fournir ici une information d'exception concernant cette erreur. Donc, bien sûr, il s'agit essentiellement de la fonction qui enregistre un message d'erreur. Ensuite, lorsque les informations du trait de soulignement EXC sont égales à true, c'est le paramètre qui ajoute les détails de notre retraçage OK. Allons-y et exécutons ce code. Et c'est parti. Nous pouvons voir l'erreur root. Vous essayez de diviser par zéro, afin que nous puissions voir cela apparaître tel que nous pouvons le voir comme suit, et nous pouvons voir que nous obtenons une trace ici afin de voir l'écran EXC dans les focales vraies Voici donc la retrace que j'ai mentionnée, et elle nous donne tous ces détails ici. Il dit que l' erreur de division zéro est divisée par zéro. C'est ainsi que vous pouvez également activer le retraçage. C'est vrai. C'est donc ce dont nous avons besoin pour nous assurer d'avoir, et cela peut être très utile pour le débogage C'est bon. OK, parfait. C'est ainsi que nous pouvons continuer et nous concentrer sur la journalisation des messages d'erreur. clé à molette. Maintenant, la prochaine chose sur laquelle nous allons nous concentrer est de savoir comment enregistrer les avertissements en cas de problèmes potentiels. Cela peut être très utile car, bien entendu, les développeurs veulent être alertés des problèmes potentiels avant de casser le code Cela ne va donc pas casser un code, mais c'est juste une sorte d' avertissement pour nous le faire savoir. OK. Donc, ce que nous allons faire, c'est dire logging, point, et nous allons dire configuration de base, et maintenant nous voulons définir le niveau, et ce sera un avertissement de journalisation. OK. Nous allons maintenant créer un programme. Je vais dire que l'âge est égal et je dirais moins cinq ans. Ce sera un âge invalide, bien sûr. Ensuite, je veux vérifier les entrées non valides. Je dois dire que j'ai moins de zéro ans. Je voudrais ensuite continuer et dire « logging point warning ». Utilisez la fonction d'avertissement ici et elle indiquera que l' âge ne peut pas être négatif. Alors je veux dire reçu. J'ajouterai le symbole du pourcentage et D ici, puis j'ajouterai que j' ajoute juste un peu de mise en que l'âge soit ajouté ici à la chaîne elle-même Nous avons un avertissement de journalisation ici, essentiellement, ce qui va se passer ici, c'est qu'il va enregistrer les messages d'avertissement. Ensuite, voici ce symbole de pourcentage et le G ici le spécificateur de format qui va insérer la valeur entière de l'âge, nous avons bien sûr envoyée à moins cinq dans ce cas Ce que nous pouvons faire, c'est exécuter ce code. Ici, nous recevons un avertissement disant avertissement, l'âge ne peut pas être reçu négativement moins cinq. C'est ainsi que nous pouvons enregistrer les avertissements concernant les problèmes potentiels que nous pourrions recevoir. C'est vrai. Génial. Maintenant, la prochaine chose que je pense que vous allez aimer, c'est vraiment très intéressant, devrais-je dire, c'est de savoir comment enregistrer les journaux dans un fichier. Nous pouvons conserver un enregistrement permanent des journaux au lieu de simplement les imprimer comme vous pouvez le voir ici. Maintenant, cela sera très bénéfique, surtout si vous travaillez pour une entreprise qui aime suivre les journaux et effectuer des audits ou quoi que ce soit d'autre. Nous pouvons aller de l'avant et tout supprimer tel quel. Nous allons maintenant apprendre comment enregistrer les journaux dans un fichier. C'est bon. Donc, ce que nous voulons faire comme avant, nous voulons configurer la connexion pour écrire dans un fichier. Donc, ce que nous allons faire, c'est parler journalisation et de configuration de base. Tout d'abord, nous allons spécifier un nom de fichier, et ce sera essentiellement le paramètre qui définira le nom du fichier. Je vais donc dire le nom du fichier. C'est le paramètre. Et puis ici, je l' appellerai app point log. OK. Ensuite, la prochaine chose que je veux faire est de passer au niveau. Je vais donc dire que le niveau est égal et je vais dire les informations sur les points de journalisation. Je vais ajouter une virgule , puis je veux juste dire Entrée pour passer à une nouvelle ligne ici Je vais juste dire format, et je vais spécifier le format dans lequel je veux le définir. Ce format sera essentiellement le paramètre qui définit le format du journal. En d'autres termes, l'horodatage, le niveau et le message, et c'est ainsi que nous allons vouloir procéder Nous allons vouloir ajouter nos citations, le symbole présenté, puis ici, nous pouvons simplement ajouter nos parenthèses et indiquer l'heure de la demande Et ce sera S, puis quand vous direz Dasher, puis le symbole centid, puis le symbole centid inférences que nous voulons ajouter dans le nom du niveau Et nous pouvons dire S , puis ajouter le symbole du pourcentage et nous pouvons également faire en et nous pouvons également faire que le message soit également mis ici avec S. Permettez-moi de faire un zoom arrière pour que vous puissiez voir et nous pouvons simplement le remettre en place et tout cela est maintenant sur une seule ligne pour vous. C'est bon. Génial. Nous avons cette configuration maintenant. Nous souhaitons enregistrer un message d'information. Je vais dire en enregistrant les informations sur les points ici que je veux passer par le programme qui a démarré avec succès. Oh. Nous y voilà. Nous voulons maintenant vérifier la présence des journaux dans le journal de l'application de fichiers , puis nous verrons l'exemple d'entrée du journal. Alors allons-y et faisons-le. Maintenant, avant cela, je veux juste mentionner ici que nous avons le journal de l'application de nom de fichier. Encore une fois, je veux juste expliquer pour que vous soyez au courant. Il s'agit d'un paramètre qui va configurer le fichier pour enregistrer nos journaux. Ensuite, le niveau est égal aux informations sur les points de journalisation. Nous définissons ensuite simplement le niveau que nous allons utiliser ici. Ce sera au niveau de l'information. Encore une fois, réitérer le niveau est le paramètre qui définit, bien sûr, dans ce cas, le niveau le plus bas à enregistrer, qui sera une information. OK. Et n'oubliez pas que les informations relatives aux points de journalisation seront l' attribut qui représentera le niveau d'information que nous sommes en train de définir. C'est vrai. OK, alors allons-y et exécutons notre code. Nous l'exécutons donc, et maintenant vous voulez accéder à votre répertoire. Et voici un fichier journal des points de l'application qui a été créé. Il affichera la date, l'heure, et il affichera également les informations indiquant que le programme a démarré avec succès. Voici donc comment nous pouvons procéder et nous assurer que nous sauvegardons nos journaux dans un fichier. OK. C'est ainsi que nous pouvons le faire. Parfait. Nous avons donc cette configuration. Maintenant, nous pouvons simplement tout déplacer ici et continuer. Bravo. Maintenant, la dernière chose que nous voulons examiner est savoir comment ajouter des niveaux de temps et de journalisation pour le débogage Nous devons nous assurer que le module de journalisation est importé et nous allons configurer la journalisation avec des horodatages et des niveaux de gravité Nous avons également, comment puis-je dire debug. C'est très utile lorsque nous voulons comme vous le diriez, déboguer notre code Allons-y et commençons. Maintenant, la première chose que nous voulons faire est parler de journalisation. Et nous voulons définir la configuration de base. Ici, nous allons dire que le niveau est égal à la journalisation, et nous allons le définir sur T bug. OK. Il s'agit donc d'un paramètre qui autorise tous les messages du journal, qu'ils soient de type debug ou supérieur OK. C'est vrai. Alors maintenant, ce que nous pouvons faire, c'est simplement ajouter notre virgule et maintenant nous devons ajouter notre format Donc, ici, je vais juste dire format, ajouter le symbole de pourcentage entre guillemets, et nous voulons encapsuler le format du message de journal Nous voulons donc qu'il montre SKT en premier. pourrions ajouter le S. Ensuite, nous voulons ajouter notre symbole de pourcentage, et nous voulons également afficher le nom du niveau. C'est donc ce que vous verrez généralement dans le fichier, par exemple, puis s, passez au symbole de pourcentage suivant, au message d' inférences, puis S, c'est parti Nous avons donc maintenant ce format en place. Laisse-moi déplacer ça ici. Vous savez donc maintenant comment définir cela. C'est vrai. Parfait. C'est le format des messages de journal dans lequel nous voulons maintenant enregistrer les messages avec différents niveaux de gravité. C'est ce que nous allons faire. OK, donc je vais dire logging point et nous aurons d'abord Dbug Je dois dire que c' est un message D Bug. Ensuite, je dirai « enregistrer les informations sur les points », puis je dirai que tout fonctionne bien. Je vais dire point de journalisation, et je vais dire avertissement. Cela va dire attention aux problèmes potentiels. Ensuite, nous pouvons dire « erreur de journalisation Ici, je vais dire que quelque chose s'est mal passé. Ensuite, nous pouvons dire «   logging », « critique ». Je veux parler d' échec critique. Nous y voilà. Alors maintenant, allons-y et obtenons notre résultat, enregistrons ce fichier, exécutons le code, et voilà. Nous pouvons voir ici que nous avons configuré l'heure. Nous avons configuré le nom du niveau, et nous avons également configuré le message, le tout en une, deux et trois sections. Cela va donc être encapsulé. Vous pouvez le traiter comme la parenthèse des symboles centenaires avec le format dans lequel nous le définissons Nous pouvons les considérer comme des espaces réservés pour chaque segment auquel nous faisons référence Maintenant, le nom du niveau va provenir du débogage, si la fonction que nous avons clarifiée ici, comme vous pouvez le voir, et le message vont provenir de ce que vous déclarez dans cette fonction Et c'est ainsi que tout a été produit. Et nous pouvons voir que le format est en heure ASC, donc cela indiquera l'année, les mois, le jour, puis l'heure à laquelle il a été enregistré, en fonction de l'erreur d' avertissement d'erreur et de l'heure critique des informations de débogage Très bien, nous y voilà. C'est ainsi que nous pouvons implémenter la journalisation. Va. C'est tout pour cette leçon sur utilisation des journaux et sur la façon dont nous pouvons générer différents journaux en fonction de nos situations. 86. JSON: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur JSO. Jetons un coup d'œil. JSON est l'abréviation de JavaScript Object Notation Il s'agit d'un format léger pour le stockage et l'échange de données. Désormais, il utilise également des paires clé-valeur d'une manière structurée lisible par l'homme et il est également largement utilisé dans les API et applications Web. Une autre chose importante à noter ici est que JSON prend en charge plusieurs types de données, tels que les chaînes, les nombres, les tableaux, les objets et également les booléens Nous allons donc nous concentrer sur le JSON et sur la façon dont nous pouvons l' appliquer dans Hisen Commençons donc. 87. Travailler avec JSON - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique de laboratoire, qui sera axé sur le JSO Je vais donc vous montrer trois exemples de la meilleure façon d' implémenter JSON dans PySON Maintenant, le premier va se concentrer sur la conversion d'un dictionnaire en chaîne JSON. Ensuite, nous allons apprendre à convertir une chaîne JSON en dictionnaire PySON Et la dernière chose que nous allons faire est d'enregistrer JSON dans un fichier et de lire le JSON à partir d'un fichier. Et ce sera le plus important, car nous allons également utiliser gestionnaires de contexte pour mener à bien ce processus. Bien, alors allons-y et commençons. Nous allons donc commencer très simplement et convertir un dictionnaire en chaîne JSON. Nous devons d'abord importer le module JSON, puis créer nos dictionnaires. Je vais parler de données, et mon dictionnaire contiendra les paires clé-valeur suivantes . Tout d'abord, nous allons utiliser le nom comme première clé, et cela sera réglé en fonction de l'honneur. La deuxième paire clé-valeur sera composée de He's the key et de la valeur 29, puis nous aurons la ville, et je la mettrai sur ape, euh, d'accord. Alors voilà. Voilà notre dictionnaire. Maintenant, ce que nous pouvons faire, c'est convertir ce dictionnaire en chaîne JSON. Pour ce faire, nous devons d' abord définir une variable afin de pouvoir attribuer le résultat que nous obtiendrons à la fin de la conversion. Je vais dire que la chaîne JSON est égale à. Ensuite, je vais me référer au module JSON, dire point, puis utiliser la méthode dumps, qui va convertir mon dictionnaire en une chaîne JSON me suffit donc de passer les données, cela les convertira pour moi, et tout ce que j'ai à faire est de dire imprimer , puis de dire chaîne de soulignement JSON Et cela sera affiché en conséquence dans une chaîne JSON pour moi. Maintenant, je peux faire, c'est exécuter mon code, et voilà. Il est donc maintenant dans un format JSON approprié. C'est vrai. Parfait. N' oubliez donc pas que le JSON est toujours entre guillemets doubles et non entre guillemets simples traditionnels. Cela peut être très utile si vous souhaitez envoyer vos données JSON à une API Web ou pour stocker du JSON sous forme de texte. Bien, c'est ainsi que nous pouvons procéder et le configurer. Vous pouvez voir ici le code complet qui a été utilisé. Vous pouvez voir comment vous pouvez continuer et convertir votre dictionnaire en chaîne JSON. La prochaine chose que nous allons faire est de convertir votre chaîne JSON en dictionnaire Python. Très bien, allons-y et faisons-le. Donc, ce que je vais faire, c'est supprimer ce code. Nous voulons toujours utiliser le module JSON. Mais ce que nous allons faire maintenant, c'est spécifier nos données JSON sous forme de chaîne au format JSON Je vais dire JSON under scare string into equals, et ce que nous allons vouloir faire, c'est d'abord ajouter des guillemets simples. Nous devons ajouter des guillemets simples, puis nous pouvons définir notre dictionnaire avec nos données JSON. C'est exactement ce que doit être la chaîne si vous voulez la convertir en dictionnaire. Je vais définir la paire clé-valeur afin que nous ayons un nom. Et ce sera RNO, puis nous aurons l'âge, deux points et ça fera 29 ans, puis nous aurons la ville, et puis ce sera Le Cap. Voilà. Voici notre chaîne JSON. N'oubliez pas que les guillemets à la fin sont très importants et assurez-vous que tout est configuré. Nous y voilà. Nous sommes bons. Bien, nous voulons maintenant convertir le JSOString en dictionnaire Et ce que nous allons faire, c'est simplement stocker tout cela dans la variable de données. Nous allons faire référence au module JSON , puis au message de chargement qui en découle, et nous allons passer par une chaîne JSON. OK, donc le JSON qui se charge va nous permettre de convertir ce JSOMString maintenant en dictionnaire C'est donc ce qui va se passer maintenant. Nous avons transmis cette chaîne JSON, et elle va être convertie en dictionnaire. Donc, tout ce que nous voulons faire, c'est imprimer les données, tout d' abord, je vais dire imprimer les données. Et lancez ce code. Ici, nous pouvons voir que nous avons un dictionnaire régulier dans PySON, comme vous pouvez le voir Maintenant, le détail clé est que vous pouvez maintenant voir que c'est entre guillemets simples. Techniquement, pendant que vous êtes dans PySON , vous pouvez configurer votre dictionnaire en termes de guillemets doubles Vous pouvez le faire, mais en général , la valeur par défaut avec PySON est entre guillemets simples et c' un bon test pour voir si c'est maintenant dans PySON et qu'il a été correctement configuré Nous pouvons maintenant accéder à valeurs individuelles à partir du dictionnaire, sorte que vous n'avez pas besoin de dire les données telles quelles. Vous pouvez simplement ajouter vos crochets et vous pouvez choisir parmi ceux-ci. Ce sont vos clés auxquelles vous vous référerez, puis vous en récupérerez la valeur. Si je veux obtenir la valeur réelle de mon nom, non, je dois mettre un nom ici et exécuter le code. Les sorties sont directement pour mon nom. Si je veux obtenir une ville, qui est Capetown, et que je la gère, elle produira Capetown. On y va. C'est ainsi que vous pouvez convertir une chaîne JSON en dictionnaire Python. Maintenant, la plus importante et la plus amusante, je dirais, c'est d'enregistrer du JSON un fichier et de lire du JSON à partir d'un fichier. Commençons par créer un dictionnaire. Je vais dire que les données sont égales, et je vais l'ouvrir, ajouter ma paire clé-valeur, mon nom. Avec no. Ensuite, nous aurons l'âge, le colon, 29 ans. Ensuite, nous allons avoir City Colon. Nous allons avoir Capetown, et toutes nos données se trouvent dans ce dictionnaire Maintenant, la prochaine chose que nous voulons faire, ascie. Nous voulons enregistrer nos données dans un fichier, bien sûr, et nous allons dire « Wi open », puis le fichier que nous voulons créer. Je vais dire en JSON à point de données. Et je veux écrire dans ce dossier. Le mode sera donc W. Et je vais dire en tant que fichier, je l'appellerai par. Il va donc également ouvrir le fichier en mode écriture. Ensuite, nous voulons faire référence à JSON et utiliser la méthode dump ici. Le dump JSON est un message qui va écrire les données JSON dans un fichier. Pour ce faire, nous devons transmettre les données, puis le fichier, car nous voulons récupérer ces données et les écrire dans notre fichier. Et cela va écrire les données JSON dans le fichier lui-même. OK. Alors allons-y et écrivons-le d'abord dans le fichier, vérifions-le dans notre répertoire, puis nous pourrons le lire ensuite. Nous pouvons donc maintenant exécuter le code. Passons à notre explorateur. Et ici, vous pouvez voir que nous avons des données JSON, et nous pouvons voir qu'elles ont été enregistrées dans notre fichier JSON à points de données. Nous pouvons donc voir le nom à 29 ans, étudier Capetown, et voilà, tout est sauvegardé Supposons maintenant que nous voulions relire ces données dans le fichier et les lire dans le terminal, par exemple, ici même sur le terminal de sortie. Fermez ceci, passez à notre déclaration suivante, et nous pourrons continuer et dire, Wiz, ouvrez Nous voulons ouvrir ce fichier. Le fichier que nous voulons ouvrir s'appelle data point JS on, et nous voulons le lire. Avec notre courtoisie, nous allons dire R, nous allons dire as file, et nous pouvons ensuite simplement définir une variable appelée données de soulignement chargées, et nous allons la définir sur JS point load Nous utilisons la méthode du chargement par points, qui nous permettra de lire les données JSON du fichier, qui seront également converties en dictionnaire. Je vais dire dossier. OK. Ensuite, tout ce que nous voulons faire à la fin, c'est imprimer les données chargées. Je vais dire imprimer les données de soulignement chargées. Allons-y et exécutons ce code. Nous y voilà. Nous pouvons voir que nous avons les données et que nous sommes revenus à la version par défaut pour les dictionnaires dans PySON Comme je l'ai dit plus tôt, il sera entre guillemets simples et c'est une bonne indication qu' il a été converti en dictionnaire pour nous pour les équivalents en Python Bon, les gars, c' est essentiellement ça. C'est ainsi que nous pouvons utiliser JSO. C'est bon. Voilà. Je vais simplement supprimer ce code. C'est bon. Nous y voilà. 88. Files d'attente: Bonjour, tout le monde. Bienvenue à la prochaine leçon, qui sera axée sur es. Commençons donc. Alors, qu'est-ce qu'un Q ? Un Q est essentiellement une structure de données qui suit le principe du premier entré, premier sorti. Vous avez peut-être déjà entendu parler d' un principe connu sous le nom de FIFO, qui signifie « premier entré, premier sorti », et c'est ce que suit un Q Maintenant, cela peut être très utile si vous vous concentrez sur la planification des caractères, la mise en mémoire tampon, la gestion, les données de séquence, et cela peut également être implémenté l'aide de qt iss ou de collections Désormais, les opérations clés incluent NQ. C'est pour ajouter et DQ, qui supprime, et cela va concerner certains éléments Allons-y et regardons un exemple ici, donc une analogie, puis examinons le PysonpGram associé à un Q. C'est vrai le PysonpGram associé à un Q. C'est vrai. Supposons donc que de nombreuses personnes fassent la queue pour voter. Tout le monde fait donc la queue et vous pourriez y voir un système FIFO. Donc, premier entré, premier sorti. La personne qui s'est présentée pour la première fois à 3 h du matin devant l' isoloir a donc 3 h du matin devant l' été la première à sortir. La deuxième personne, bien sûr, est finalement devenue la première personne, et ils sont sortis également. Donc une file d'attente. Si nous devions créer un programme Python, nous créerions quelque chose portant le texte suivant où nous utiliserions le module Q. Ensuite, nous pouvons importer la classe Q. Ensuite, nous pouvons créer un Q, donc nous créons une instance d'un Q. Voter Q sera égal à Q. Ensuite, si des personnes rejoignent le Q, qui est NQ, nous pouvons simplement nous référer à notre instance et dire point, nous pouvons utiliser la méthode des points, qui consiste essentiellement à effectuer un NQ Et ajoutez des personnes à la file d'attente. Et ce sera dans l'ordre. Donc Alice, Bob et Charlie. Supposons que ces personnes aient voté. Ils vont quitter la file d'attente, ce sera un acte de DQ pour nous puissions ensuite imprimer l'ordre dans lequel ils se trouvent Nous pouvons donc nous référer à l'instance que nous avons créée de Q et utiliser la méthode dot get. Et cela produira ensuite dans l'ordre qui est entré le premier et qui est sorti le premier, et cela va aller dans l'ordre d'Alice, de Bob Charlie, de celui qui est arrivé le premier, et cela produira exactement la même chose lorsque nous le dirons et que nous aurons ainsi exprimé leur vote. C'est vrai. C'est donc une analogie très simple que nous pouvons utiliser pour comprendre le concept des indices. Cela fait donc partie de l'aperçu théorique. 89. Files d'attente de requêtes - [Lab]: Bonjour, tout le monde. Bienvenue dans le prochain laboratoire d'exercices pratiques, qui sera axé sur les questions. Commençons. Le premier programme que nous allons créer consolidera nos connaissances sur la façon dont nous pouvons créer un Q de base et, surtout, façon dont nous pouvons utiliser le put et le message à NQ pour l'ajouter à un Q et DQ pour le supprimer d'un Q. La première chose que je veux faire est d'obtenir les modules Q. Je vais dire à partir de Q, et je veux importer la classe Q à partir de ce module, et il doit y avoir un Q majuscule ici pour indiquer qu' il s'agit de la classe. Ensuite, je veux créer une instance de mon Q. Je vais définir une variable appelée score de soulignement de vote Q. Je vais lui attribuer la classe Q avec des parenthèses ouvrantes et fermantes Ensuite, je voudrais ajouter à mon Q. Je vais dire que le vote souligne le point Q point PUT Ensuite, entre parenthèses je vais ajouter au Q sur lequel je vais répondre et en votant souligner Q point p, je vais mettre John, puis souligner Q point p. Je vais mettre Sarah. Allons-y. Maintenant, ce que je veux faire, c'est aller de l'avant et continuer Je veux donc supprimer de la file d'attente et voir ce que j'obtiens chaque fois dans la file d'attente, qui est supprimé. J'ajouterais donc une instruction d'impression, et je peux simplement dire, votant sous la ligne Q. Je veux faire référence à cette variable particulière que nous avons ici et qui nous a permis de créer une instance de la classe Q. Ensuite, ce que je veux faire, c'est dire le point G. J'utilise la méthode G. Après avoir défini la méthode G, je peux ajouter une virgule, puis je veux leur dire de voter Essentiellement, ce qui va se passer, c'est que la valeur de la personne qui a été inscrite pour la première fois sur le Que , à savoir Ro, va obtenir non, elle va dire « non ». Si je devais aller de l'avant et lancer cette initiative, cela signifierait un vote sur les soins. Mais même si je devais le lancer à plusieurs reprises, il continuerait à dire «   oncar say vote » parce que vous devez explicitement continuer à imprimer et à taper le point get message ici trois fois, soit le nombre total de fois que vous avez mis dans la file d'attente. Par conséquent, vous pouvez voir une sorte de logique du premier entré, premier sorti. Alors maintenant, si je copie la première déclaration pour la deuxième fois, j'allais dire « pas de vote pour Cars », puis « vote pour John Cars ». Et il faudrait que je fasse un SRT pour trouver la dernière personne, donc ce sera Sarah Et nous pouvons voir Ana Cars voter, John Carsey voter et Sarah Cars voter Voilà, et il s'agit de faire du DQ. Très bien, alors allons-y. C'est ainsi que vous pouvez effectuer les bases de la mise en file d'attente en mettant et en obtenant C'est vrai. OK, maintenant allons-y et explorons les autres méthodes associées à un Q. Donc, ce que je vais faire, c'est supprimer suit et ici, en votant Q, ce qui suit et ici, en votant Q, je vais juste l' ajuster pour qu'il y ait Q. Et vous pouvez définir un paramètre dans votre Q ici. OK. Et je vais définir cela comme taille maximale, et c'est ici que vous déterminez la taille maximale que peut atteindre votre Q. Maintenant, nous voulons ajouter des éléments à la question, je vais dire « souligner la tâche Q », et je vais dire « point », et je vais définir ici la tâche 1 Je vais le copier encore deux fois. Et on peut dire deux, et on peut en avoir trois. Nous avons trois éléments dans notre question ou trois tâches. Supposons que je veuille connaître l'ampleur de ma tâche ici. Ce que je peux faire, c'est dire imprimer et je peux dire deux-points de la taille Q ici, puis je veux me référer à la tâche Q et utiliser la méthode de la taille des points Q qui va indiquer le nombre de tâches que j'ai. Je vais dire exécuter le code. Je peux voir les tailles Q en ce moment. Cela ne va pas imprimer la taille maximale. Ce sera la taille de votre que vous aurez installé ici. Si je devais supprimer une tâche et l'exécuter, elle indiquerait également que sizes. J'analyse le nombre d' éléments placés dans la file d'attente en utilisant la méthode PUT. Bien, allons-y. Maintenant, disons que je veux vérifier si le Q est plein. Je peux juste continuer et dire « imprimer », et je dirais que le Q est plein. Je peux dire « tâche soulignée », « Q », et je veux continuer en disant « point complet OK. Et c'est géré. Et ici, la taille de la file d'attente est de trois et le Q est plein car la taille maximale de trois a été atteinte. Mais si je devais supprimer un élément et l'exécuter, taille Q est deux et le Q n'est pas plein, c'est faux, donc ce n'est pas le cas. C'est bon. Ainsi, lorsque vous appelez task, Q ici, lorsque vous l'appelez, elle se souvient automatiquement de ce que vous avez dans votre u et du nombre d' éléments que vous avez dans votre u. Donc, cette variable va suivre cela, et tout ce que nous faisons, c' est l'interroger en examinant et en appliquant ces méthodes à elle Ch, c'est très bien, et je veux juste remettre à plus tard le dernier point. Maintenant, ce que je veux faire, c'est supprimer et traiter les tâches. Je vais dire imprimer. Tâche soulignée par un point Get Nous utilisons le message Get et je dois dire que c'est terminé, juste à côté. Il s'agit essentiellement d'obtenir ce que nous avons mis comme premier élément dans le message de vente, c'est la première tâche Donc, la première tâche sera terminée. Ensuite, si nous obtenons la suivante, elle indiquera que la deuxième tâche est terminée. que je vais faire pour les deux premiers. OK. Ensuite, ce que je veux faire, c'est vérifier si la file d'attente est vide. Je peux donc dire imprimer et nous pouvons dire le Q est vide. Je vais ajouter la virgule, et je vais faire référence à la tâche q point. Et allons-y et exécutons-le Et ici, nous pouvons voir que la première tâche est terminée. La deuxième tâche est terminée, et le Qu vide est-il faux ? Parce que c'est le cas, tous les éléments de la file d'attente n'ont pas été terminés. Seulement les deux premières, les tâches 1 et 2. Nous n'en avons pas fait trois. C'est pourquoi il n'est pas vide et renvoie false. Bien, donc ce que nous pouvons faire, c'est simplement utiliser l'instruction suivante pour terminer la troisième tâche. Et maintenant, si nous l'exécutons, nous pouvons voir que la troisième tâche est terminée. Nous pouvons donc maintenant procéder à une nouvelle vérification en utilisant la méthode vide. Sauvegardez-le et lancez-vous. Nous pouvons maintenant voir que la troisième tâche est terminée avant qu'elle ne soit fausse car elle ne l'était pas. Maintenant, la file d'attente est vide car toutes les tâches sont terminées , elle est vide et elle est disponible. Voilà, nous l'avons. Juste quelques méthodes supplémentaires à utiliser. N'oubliez pas qu'en haut du point g et du point g, vous obtenez un point vide pour vérifier si une file d'attente est vide. Vous obtenez également le point quatre pour vérifier si un Q est plein, file d'attente pour afficher la taille de la file d'attente actuelle. Vous pouvez également définir ici le paramètre de taille maximale de votre file d'attente que vous souhaitez définir. C'est bon. C'est donc un peu plus sur les questions. Allons-y donc et supprimons ce qui suit. C'est bon, les gars. C'est donc tout sur Qs. 90. Récursion: Bonjour à tous, et bienvenue à la prochaine leçon qui sera axée sur récursivité. Jetons un coup d'œil. Récursivité. La récursivité est essentiellement une technique dans laquelle une fonction s'appelle elle-même pour résoudre des sous-problèmes plus petits Maintenant, il se répète jusqu'à ce qu'un scénario de base soit atteint, ce qui permet d'éviter que des appels infinis ne se produisent Maintenant, il est important de noter que la récursivité peut être appliquée dans de nombreux contextes. Je veux dire, vous pouvez l'utiliser pour l'inversion des arbres, calcul factoriel et également dans divers C'est vrai. Passons donc à l'aperçu théorique Passons plus en détail aux exercices de laboratoire. 91. Effectuer des appels récursifs - [Lab]: Tout le monde. Et bienvenue au prochain exercice pratique de laboratoire, qui sera axé sur la récursivité Commençons donc. OK, donc avec la récursivité, nous aurons généralement un scénario de base, et c'est ce que nous allons évaluer dans une fonction, puis nous aurons notre cas récursif, ou notre appel récursif Et c'est ce que nous allons poursuivre et évaluer par rapport à cela. Nous allons donc utiliser le scénario de base et l' assimiler au noyau récursif. OK, alors allons-y et commençons. Créons un programme simple pour commencer, et nous allons appeler cette fonction « compte à rebours ». Nous allons avoir N comme paramètre. Et je vais le mettre dans les commentaires pour que vous commenciez à apprendre. Nous aurons donc un scénario de base, et ce sera le cas dans ce cas, si N est égal à zéro. Je vais imprimer, disons Blast Off. Ensuite, une fois qu'il imprime blast off, je veux arrêter les fonctions, je vais dire return et cela va s' exécuter et empêcher la fonction de continuer. Ensuite, je veux définir mon appel récursif. Ici, je veux essentiellement imprimer mon numéro actuel. Je souhaite également appeler à nouveau la fonction avec N moins un. Pour ce faire, je peux simplement me référer à la fonction ici et dire N moins un. Ensuite, je dois passer un argument extérieur en appelant la fonction, afin que je puisse dire compte à rebours et que je puisse passer à cinq, et c'est ce qui va se passer. Je vais prendre cinq comme argument, passer en paramètre par N. Vérifiez le scénario de base, c' est-à-dire si N est égal à zéro, imprimer blast off, puis revenir et arrêter la fonction. Cependant, ce n'est pas le cas Il n'exécutera donc pas cette instruction if et affichera N, quel que soit l' argument associé, qui est cinq, puis il appellera à nouveau la fonction, compte à rebours et dira cinq moins un, soit quatre. Ensuite, il répète tout le processus et passe à quatre, quatre n'étant pas égal à zéro Ensuite, il va en imprimer quatre, compte à rebours, quatre moins un, ça va faire trois, ça fait maintenant trois. Si trois est égal à zéro, ce qui n'est pas le cas, imprimez N, qui est trois, comptez à rebours trois moins un, deux, revenez en arrière. N, bien sûr, va être deux, alors ce que ça va faire c'est dire I N égal à deux, non va ensuite imprimer N, qui va être deux, compte à rebours , deux moins un, ça va être un, puis nous allons aller jusqu' à zéro et une fois que c'est zéro, ça va dire print blast off puis terminer la fonction. C'est ainsi que fonctionne un programme récursif de base. Vous avez votre scénario de base et vous avez votre appel récursif. Maintenant allons-y, sauvegardons ceci et exécutons. Vous pouvez donc voir ici que nous en avons cinq, quatre, trois, deux, un, puis nous partons. Vous pouvez donc voir ici que lorsqu'il est écrit print N, ce sera chaque fois que ce un nombre après sa soustraction Donc d'abord, ce sera cinq, cinq moins un, ça fera quatre. Commencez l'évaluation par quatre, quatre, puis quatre, imprimez-la et poursuivez le même processus jusqu'à ce que nous puissions démarrer et revenir à la fonction de sortie. C'est donc essentiellement ainsi que fonctionne ce programme. Bord. C'est donc l'essentiel de la récursivité. C'est bon. Nous allons maintenant donner quelques exemples supplémentaires afin approfondir nos connaissances sur la récursivité. C'est bon. Maintenant, le programme suivant, je vais configurer une fonction de comptage. Alors allons-y et faisons-le. Je vais dire Def count up, et nous pouvons vraiment mettre un trait de soulignement ici, et cela va prendre en compte. Eh bien, il y aura un paramètre qui prendra en compte, mais nous allons aussi avoir un argument par défaut défini ici, et je vais le définir comme courant égal à un OK. Ensuite, dans mon cas de base, je veux dire que si le courant est supérieur à N, je veux dire impression terminée. Donc, lorsque nous atteignons N, je veux imprimer, puis je veux revenir, ce qui va arrêter la fonction. Alors maintenant, je vais dire print current, et je vais appeler la fonction, qui est count up, et je vais passer par N, et je vais dire current plus un. OK. Donc, ici nous appelons à nouveau la fonction avec current plus un et nous devons passer un argument pour commencer par count up, je dirais cinq. Nous allons en avoir cinq et n'oubliez pas que c' est notre appel récursif J'ai cinq ans, c'est un argument. Nous en avons cinq ici et nous avons un courant qui est réglé à un si le courant est supérieur à N, nous en avons cinq. Ce n'est pas le cas, nous allons passer à l'appel récursif Nous allons imprimer le courant actuel, bien sûr, il en sera un. Alors ce que nous allons faire, c'est continuer à en passer par cinq ici. Ensuite, nous allons dire courant plus un, ce qui signifie que ce sera essentiellement deux. Maintenant, rien n'arrive à la valeur N ici car essentiellement, la valeur N sera toujours égale à cinq. Mais aujourd'hui, bien sûr, il y en aura deux. Le courant sera donc de deux et la valeur ici du courant sera désormais de deux. Donc, si deux sont supérieurs à N, imprimez, ce n'est pas le cas. Nous allons donc imprimer le courant, et il faudra compter deux fois plus. Nous allons toujours en avoir cinq et à jour plus un, cela va maintenant continuer et se répéter, et le courant va être trois, et il va y en avoir trois ici, et il y en aura toujours cinq puis le courant plus un, nous allons maintenant en avoir quatre, et jusqu'à ce qu'il soit six, d'accord, l'impression sera terminée jusqu'à six. Je voudrais également imprimer N pour vous afin que vous puissiez voir qu'il reste à cinq. Donc, si je devais dire print N, vous verrez également ce résultat. Alors peut-être que je devrais ajouter de la texture pour faciliter les choses. Donc, permettez-moi de le définir dans une chaîne F, en fait. Et je dois dire que c'est le cas actuellement. Et je vais y aller, juste ça NN est là et c'est parti. Alors allons-y et exécutons-le. OK, donc on peut voir ici. Le courant est un parce que c'est ce que nous avons dit à la valeur par défaut N est cinq. Je vais être ajouté à un. Le courant est deux et cinq, courant est trois et cinq, courant est quatre et cinq et c'est fait. OK. Donc, quand on en aura six, d'accord ? Donc, si le courant est de six, ce qui est supérieur à N, l'impression sera terminée. Il n'aura donc pas l'occasion d'imprimer ici pour montrer que le courant est de cinq. Donc, techniquement parlant, nous pouvons vraiment appeler cela et dire ici que le courant final était. Et si nous l'exécutons, vous pouvez voir ici qu'il est indiqué que le courant final était de six. C'est là qu'il en est arrivé à la fin, car il était supérieur à cinq. S'il avait été supérieur à égal, cela aurait été une autre histoire. Mais c'est ainsi que nous pouvons également utiliser un scénario de base, configurer notre appel récursif et créer un programme qui compte C'est une autre façon de procéder. Maintenant, allons-y et prenons un autre exemple, qui consiste à répéter un message avec récursivité Nous allons définir notre fonction, qui est le message de soulignement répété, et nous allons passer en revue deux paramètres, message et N, et notre scénario de base Si N est égal à zéro, je veux revenir. Je vais arrêter quand N atteindra zéro. C'est tout ce que je vais faire. Ensuite, mon appel récursif consiste à imprimer le message, et nous voulons appeler la fonction de répétition du message, et nous voulons répéter cela, et nous allons appeler à nouveau la fonction avec message et moins un Maintenant, nous appelons la fonction à l'extérieur, répétons le message, et nous passons en revue notre argument . Nous aurons donc hello qui passe au message, puis nous en aurons trois, qui vont à N. Donc, résolvons cela. Alors bonjour, c'est le message. N est trois. Si N est égal à zéro, retournez. Ce n'est pas le cas. Nous allons donc imprimer le message, donc ce sera bonjour. Ensuite, nous effectuons l'appel récursif et nous transmettons le message, qui est bonjour Et puis on dit moins un. OK. Ce que nous avons maintenant, c'est que trois va devenir deux. Ensuite, nous évaluons. Si N est égal à zéro, retournez, imprimez bonjour, répétez le message. Je vais dire que vous passez « bonjour » et « moins un ». Cela va ensuite passer à un. Revenez, répétez la fonction, exécutez-la à nouveau, imprimez le message, bonjour encore une fois. Exécutez à nouveau la fonction, puis elle recommencera au scénario de base. Ensuite, il finira par atteindre un point où il sera nul. Ensuite, il va revenir, et vous verrez ici que le message bonjour sera imprimé trois fois ici, nous avons dit moins un, et nous avons simplement répété la fonction pour y retourner encore et encore. C'est bon. C'est ainsi que nous pouvons utiliser cet appel récursif dans ce cas C'est vrai. OK, donc c'est tout pour les récursions, comme vous pouvez le voir, vous aurez votre scénario de base et vous aurez votre appel récursif Et comme je l'ai dit, cela et l'implémentation de la récursivité comportent de nombreux champs dans lesquels vous pouvez utiliser et utiliser des cas, mais c'est très utile si vous souhaitez répéter votre fonction et l' exécuter jusqu'à ce qu'un certain cas soit atteint C'est vrai, les gars. Voilà pour ce qui est de la récursivité. 92. Compréhensions: Bonjour à tous. Et bienvenue à la prochaine leçon, qui sera axée sur la compréhension Jetons donc un coup d'œil. C'est bon. Nous obtenons donc deux types de compréhensions. Nous obtenons des compréhensions de liste, et une compréhension de liste est essentiellement un raccourci ou un moyen court de créer une nouvelle liste en une seule ligne en transformant ou en filtrant les éléments ou les éléments d'un itérable existant Maintenant, la syntaxe sera la suivante. Vous aurez votre expression, puis vous aurez quatre HM dans votre démangeaison, puis bien sûr, vous pouvez aussi avoir une condition if Vous pouvez voir que tout est écrit en une ligne pour vous. Vous n'avez pas besoin de définir, par exemple, vos quatre boucles, votre instruction if et de le faire manière séquentielle Vous pouvez maintenant continuer et mettre tout cela dans une seule expression. Nous avons également des compréhensions de dictionnaires et une compréhension de dictionnaire fonctionnera de la même manière et générera des paires clé-valeur une seule ligne lors application de filtres ou Maintenant, il a une syntaxe similaire. Vous aurez votre expression clé, votre expression de valeur, et elle comportera quatre éléments Vous aurez également votre boucle et l' instruction facultative if en termes de condition I que vous souhaitez utiliser. Compréhensions. Vous pouvez presque essayer de le comparer dans le sens des fonctions de Lambda Nous pouvons voir les compréhensions grâce aux compréhensions dictionnaires et de listes Nous pouvons constater que cette approche sera également plus simple lorsque nous voulons avoir des expressions à une seule ligne dans lesquelles nous voulons appliquer des boucles et des instructions if et pour nous assurer que nous pouvons les générer configurant sous forme liste ou de dictionnaire au cours du processus. 93. Utiliser les compréhensions de liste - [Lab]: Bonjour, tout le monde. Bienvenue au prochain exercice pratique de laboratoire, qui sera axé sur la compréhension des listes N'oubliez pas, pour comprendre les listes, nous avons notre expression, puis nous avons notre fol, qui sera destinée à l'élément dans l'itérable, puis nous pouvons également ajouter une condition if, qui est également quelque chose que vous pouvez ajouter si vous souhaitez ajouter OK. Donc, la partie expression, qui va modifier ou transformer chaque élément et généralement en liste. Et puis les quatre éléments de chaque partie vont parcourir la liste en boucle. Et cela va fournir les valeurs de notre expression. C'est vrai. Alors allons-y et commençons par quelques exemples. Disons que j'ai une liste de chiffres et que j'ai un, deux, trois, quatre et cinq. Ensuite, je veux créer une nouvelle liste où chaque chiffre est quadrillé Je vais donc définir cette variable appelée nombres au carré, qui sera essentiellement la nouvelle liste Et pour ce faire, faisons un peu de compréhension de la liste. Maintenant, la première chose à faire est définir l'expression. Alors, que voulons-nous faire ? Je veux dire Num multiplié par Num. Je veux donc multiplier deux nombres. Cela va provenir des éléments de la liste des nombres par la boucle à quatre qui indique quatre nombres numériques. C'est ainsi que nous allons obtenir nos valeurs ou nos objets. Nous allons exécuter ces quatre boucles et Num, bien sûr, saisira chaque valeur au fur et à mesure de la sortie, puis nous pourrons l'utiliser dans notre expression ici, qui stockera chaque valeur à chaque itération de la liste à la fois Laissez-moi vous montrer ce que je veux dire. Dans un commentaire ici. Nous en avons donc un, deux, trois, quatre et cinq. Donc quatre nombres en chiffres. Tout d'abord, nous allons en prendre un. Ce sera le premier chiffre qui sera mis en boucle. Ensuite, nous allons prendre un et dire un multiplié par un. Ça va en être un. Ensuite, nous allons passer au deuxième élément, qui sera deux. Nous avons donc pris deux ici dans cette boucle à quatre, puis nous pouvons dire, avec l'expression ici sur la gauche, deux multiplié par deux, cela va nous donner quatre. Ensuite, nous allons de l'avant et nous l' examinons à nouveau. Ensuite, nous en avons trois, nous avons fait une boucle et nous en avons collecté trois, et maintenant nous allons dire trois multiplié par trois, cela nous donne neuf Ensuite, nous passons à quatre puisque c'est l'élément suivant de la boucle des quatre, nous allons prendre quatre et disons quatre multiplié par quatre. Ça va nous en donner 16. Ensuite, avec nos quatre boucles, nous allons les parcourir en boucle et nous allons en prendre cinq. Ensuite, nous pouvons dire cinq multiplié par cinq, ce qui nous donne 25. Si nous devions imprimer des nombres au carré, qui va maintenant être une liste basée sur le résultat que nous avons défini en conséquence ici, nous pouvons exécuter le code et nous obtenons ici un, quatre, neuf, 16 et 25 C'est le moyen le plus simple comprendre une liste. Pour développer encore une fois, sur la gauche, nous avons notre expression qui va mettre chaque nombre au carré , comme nous l'avons vu sur le côté droit, nous avons nos itérateurs que nous définissons comme étant nos quatre boucles pour sélectionner les nombres un par un et le résultat est entièrement stocké dans la variable des nombres au carré, qui sera essentiellement du type de données de liste, puis nous imprimons le résultat et l'ensemble des seront stockés un par un dans la nouvelle liste. Prenons un autre exemple. Disons que nous avons les mots et que nous avons le bonjour, que nous avons le monde et que nous avons Pyson Allons-y et créons une liste où chaque mot doit avoir un point d' explication à la fin. Je vais simplement définir une variable appelée mots excités. Nous devons d'abord définir notre expression, ce que je préfère faire en premier. Je vais dire un mot plus et nous avons mis le point d' explication. Cela sera basé sur la boucle, qui va parcourir tous les mots pour mots. OK, alors on y va encore une fois. Nous allons donc exécuter ceci pour une boucle, et nous allons stocker temporairement hello, puis nous allons le récupérer et utiliser ici dans notre expression et dire bonjour, plus, puis le point d' explication. Cela va ensuite le stocker dans une nouvelle liste qui va dire bonjour. Ensuite, nous allons réexécuter ce programme pour Word in Words , puis nous allons bien le saisir. Il va être stocké dans le mot variable word, puis nous pouvons simplement dire word plus, et ce sera comme suit. Ensuite, nous allons exécuter à nouveau nos quatre boucles. Word va être stocké dans PySON. Nous pouvons alors simplement dire PySON plus et ce sera comme suit Faisons maintenant notre liste. Excited Words a une nouvelle liste. Ça va dire bonjour, tout le monde et PySon. C'est ce que nous devrions faire. Et ce sera votre résultat. Vous devriez pouvoir vous faire une idée du patron ici. OK, super. Maintenant allons-y et faisons-en un autre. Celui-ci va être converti en majuscules. Je mangerai des fruits et je mangerai de la pomme Pare Orange. Maintenant, je veux continuer et créer une nouvelle liste. Je vais donc appeler ce soulignement en majuscules des fruits. D'accord. Nous pouvons donc continuer et définir ce que serait notre expression, je dirais fruit point en haut. Et notre boucle serait quatre fruits dans des fruits. Voyons donc ce que nous faisons ici. Donc quatre fruits et fruits, nous allons passer en revue chacun des éléments indépendamment. Donc Apple, nous allons stocker Apple, puis nous allons dire Apple point en haut avec ce point en haut et cela va transformer en Apple, que nous allons stocker dans notre liste Ensuite, nous continuons pour les fruits et les fruits. Les fruits seront ensuite conservés sous la forme d'un point de paire de poires en haut, ce sera une poire. Exécutez à nouveau nos quatre boucles, puis nous allons saisir l'orange, qui sera stockée dans notre variable, puis nous pourrons dire orange et supérieur. Ça va être orange. Maintenant, si nous imprimons les fruits soulignés en majuscules et que nous les exécutons, nous pouvons voir que nous avons des pommes, des poires et des oranges en majuscules dans notre nouvelle liste C'est le moyen le plus simple de commencer à comprendre des listes. N'oubliez pas que le côté gauche est votre expression. Sur le côté droit, il y aura vos quatre boucles. C'est vrai. Nous l'avons donc mis en place. Maintenant, la prochaine chose que nous allons vouloir faire est travailler avec une déclaration if à cet égard. Alors allons-y et regardons ça. Bien, ajoutons donc une clé en préparation. Nous voulons donc également travailler maintenant avec nos conditions if. Définissons donc une liste de nombres, et je dirais un, deux, trois, quatre, cinq, six, sept, huit, neuf, dix. Nous voulons maintenant ne conserver que les nombres pairs afin pouvoir définir notre nouvelle liste par la variable nombres pairs. Et nous allons continuer en disant que num, num dans ce cas servira simplement d'espace réservé à transmettre à notre liste en termes de résultat final par itération calculée Nous allons donc dire quatre nombres en chiffres. Si num, et nous allons ajouter le module deux, est égal à zéro Nous voulons donc vérifier les nombres pairs , c'est ce que nous faisons ici. OK, alors allons-y et analysons la façon dont nous procédons. Nous avons tous les éléments ici dans notre liste ici et nous allons dire quatre nombres en chiffres, et nous allons en chercher un. Nous en avons un ici et nous allons ensuite vérifier s'il est conditionnel. Si un est, bien sûr, un nombre pair, alors nous allons le stocker dans l' espace réservé ici, num, puis nous l' ajouterons à la liste C'est le processus ici cette fois-ci, l'expression ici sur la gauche agit plutôt comme un ordre de place, comme je l'étais auparavant, mais avant d'effectuer actions réelles, puis de stocker le résultat final, mais c'est comme un ordre de place maintenant pour stocker le résultat final que nous allons passer à notre liste. Donc, dans ce cas, ce n'est pas le cas Nous n'allons donc rien stocker dans NUM car cela va échouer. Si c'est vrai, alors il va stocker le résultat que vous pourriez dire dans NUM, qui sera ensuite transmis sous forme de liste, mais dans ce cas, cela n' arrivera pas . Nous passons donc au suivant. Donc deux. Donc, quatre chiffres, nous en avons deux. Ensuite, nous allons vérifier si deux est un nombre pair et si c'est le cas, afin de pouvoir le stocker dans num et dire deux. Ensuite, nous passons à quatre, et nous allons dire quatre chiffres, puis nous allons passer à trois, excusez-moi. Ensuite, nous allons vérifier si trois est un nombre pair. Si ce n'est pas le cas, cela échouera, puis il va simplement réexécuter notre suivi, ce qui n'est pas le Ensuite, nous allons examiner quatre, et nous allons dire si quatre est un nombre pair. Il est enregistré dans le résultat pour num. On peut dire quatre. Nous en avons cinq et nous continuons à obtenir le même résultat jusqu'à ce que nous obtenions quatre, six, huit et dix. Nous allons suivre le même schéma. Allons-y et imprimons ceci pour voir si nous avons raison. Je peux dire qu'il suffit d'imprimer chiffres soulignés et le tour est joué Voilà, dans notre liste, nous en avons deux, quatre, six, huit et dix. C'est ainsi que nous pouvons aller de l'avant et l'utiliser. Maintenant, disons que nous voulons rendre cela plus intéressant et que nous voulons uniquement conserver les mots de plus de cinq lettres. Je peux définir une liste de mots. Je vais dire Apple et je vais dire banane et kiwi, raisin et pomme de pin. Et paire. Nous en avons donc beaucoup dans notre liste. Nous voulons maintenant définir une nouvelle variable qui sera essentiellement une liste. ce cas, nous ne voulons conserver que les mots de plus de cinq lettres. Nous allons donc avoir le mot comme expression d'un mot en mots. Nous allons donc parcourir tous ces éléments, stocker temporairement sous forme de mot ici. Ensuite, nous allons vérifier si la longueur du mot avec la fonction ici est supérieure à cinq, et si c'est le cas, nous allons faire vérifier si la longueur du mot avec la fonction ici est supérieure à longueur du mot avec la fonction ici cinq, et si c'est le cas, référence au mot ici en tant qu'espace réservé, puis l'ajouter à notre liste Très bien, alors allons-y et commençons nos tests. Quatre mots en deux mots. Nous avons Apple. Si la longueur du mot est supérieure à cinq, nous pouvons alors le stocker et utiliser le mot ici comme soldat pour le stocker dans notre liste. Apple, c'est un, deux, trois , quatre, et nous allons en avoir cinq. Ce n'est donc pas plus que, nous passons à la suivante, la banane. Quatre mots en deux mots. Ensuite, la banane. Si la longueur du mot est supérieure à cinq, vous pouvez utiliser Word comme soldat et nous pouvons le mettre, donc un, deux, trois, quatre, cinq, supérieur à, mais non. KV a quatre ans, donc ça ne marchera pas. Raisin. Ça va être cinq, ça ne marchera pas, ananas. Quatre mots et mots, nous les parcourons et s'ils échouent, nous n'utilisons pas Word comme espace réservé pour le stocker dans notre liste Allons-y et regardons l'ananas. Oui, ça va être supérieur à cinq. Utilisez le mot comme espace réservé et nous pourrons le mélanger. Ensuite, nous avons une paire, qui n' aura pas seulement ce qui suit dans notre sortie. Si je dis « imprimer de longs soulignements », cela produira banane et un ananas et c'est le résultat obtenu à la fin C'est vrai, parfait. Alors voilà. C'est ainsi que nous pouvons également utiliser un conditionnel if si nous le souhaitons si nous voulons comprendre une liste. Alors voilà. Il y a les exemples suivants : l'expression, notre boucle à quatre boucles, l'itérable et notre if conditionnel D'accord. C'est ainsi que nous pouvons effectuer des compréhensions de listes 94. Utiliser les compréhensions du dictionnaire - [Lab]: Bonjour, tout le monde. Et bienvenue au prochain exercice pratique de laboratoire, qui sera axé sur l' utilisation de la compréhension des dictionnaires. Nous allons donc également suivre la même structure que celle que nous avons utilisée pour les compréhensions de listes, en commençant par nos expressions et notre boucle for, puis en utilisant également une instruction if Très bien, alors restons simples et commençons. Donc, je vais d'abord trouver une liste de mots. Alors je vais te dire bonjour. Bien. Au revoir. Et je vais vous souhaiter la bienvenue. Ensuite, je veux définir mon dictionnaire. Je vais lui donner le nom de variable du mot Links dict. Donc, en gros, ce que je vais faire c'est créer un dictionnaire avec des encres de mots. OK ? Nous allons donc ouvrir notre dictionnaire comme suit. Nous allons avoir notre paire clé-valeur, puis nous aurons notre boucle for. Maintenant, je vais dire que ma clé sera le mot. Ensuite, je vais utiliser la fonction Lang pour obtenir la longueur totale des caractères du mot, et cela sera terminé après avoir exécuté notre boucle for comme suit. Encore une fois, je vais mettre une option ici afin que nous puissions tout suivre. Voici donc d'autres articles ou éléments auxquels vous pouvez vous référer comme dans notre liste. Nous allons donc courir, tout d'abord, mot pour mot. Nous avons donc des nouvelles ici et nous allons enregistrer temporairement Hello. Ensuite, nous allons placer «   bonjour » ici sur la touche, et cette touche sera insérée dans notre nouveau dictionnaire et ce sera « bonjour ». Ensuite, deux points ici pour séparer la valeur. Nous allons donc obtenir la longueur ou la longueur de hello en caractères, soit cinq caractères. Exécutez à nouveau notre boucle. Mot. Nous allons le prendre au revoir, stocker sous forme de mot, et nous pourrons ensuite le stocker définitivement dans notre liste. Nous allons l'envoyer à notre expression ici. Nos expressions ici sont essentiellement des espaces réservés. Nous allons le récupérer dans les quatre boucles ici, stocker temporairement dans Word, puis le déplacer vers nos expressions, nous le déplacerons ensuite vers notre dictionnaire dans ce cas. Ici, dans notre espace réservé, nous allons faire nos adieux avant de le déplacer vers notre liste Ici, on peut dire bien pourquoi ? Alors, quelle est la durée des adieux ? Il y aura sept personnages. Ensuite, pour les mots et les mots, nous allons saisir le mot de bienvenue , puis nous allons le déplacer vers notre espace réservé au mot, qui sera alors le bienvenu Ensuite, nous allons le brancher ici pour la valeur de la durée de bienvenue, qui sera de sept. Maintenant, si nous disons imprimer, nous soulignons les longueurs, nous soulignons Nous avons ce dictionnaire ici, ce nouveau dictionnaire, bonjour cinq. Au revoir, sept. Bienvenue, sept. C'est donc dans la partie clé de la valeur. Les clés sont donc : bonjour, au revoir et bienvenue. Et la valeur est cinq, sept et sept. C'est vrai. C'est donc un moyen simple de le faire. Allons-y et entraînons-nous un peu plus. Supposons que nous voulions continuer et représenter un nombre par une chaîne de caractères, par exemple. Je vais donc avoir une liste de chiffres. Et j'en prendrai un, deux, trois, quatre et cinq. Ensuite, je vais créer un dictionnaire où les nombres sont des clés et les valeurs des chaînes de caractères. OK. Alors faisons-le. Je vais utiliser des chiffres pour souligner les mots, et nous en aurons un dictionnaire Nous allons donc d'abord avoir la clé. Ce sera num, puis nous allons convertir en chaîne, le nombre lui-même, et nous allons dire quatre nombres en nombres. OK, alors jetons un coup d'œil ici. Quatre chiffres. Ce sont tous des entiers tels que nous pouvons le voir au format entier. Nous allons dire quatre chiffres et nous allons collecter Num, le passer à num ici et nous allons le stocker dans notre dictionnaire, tel quel. Nous en aurons une comme clé. Ensuite, la valeur ici sera également techniquement un, mais nous allons la convertir en chaîne, cela signifie que cette valeur sera entre guillemets. Nous avons alors quatre nombres numériques. Passez au deuxième résultat, qui est deux, prenez-en deux, passez-le au classeur pour que nous puissions stocker dans notre nouveau dictionnaire. Il y en aura deux. Ensuite, nous allons le convertir ici en une chaîne pour la valeur, et ce sera juste entre guillemets. Nous faisons la même chose pour trois, alors allons-y et faisons-le. Donc, pour les numéros, ensuite, nous en avons trois, nous en prenons trois, passons à notre détenteur de place ici, et ce sera trois, c'est la clé. Ensuite, nous allons le mettre ici dans la valeur, donc nous voulons le convertir en chaîne, puis nous en obtenons trois. Je pense que vous avez compris l'idée maintenant, et nous allons faire la même chose pour quatre et cinq ans. Ainsi, lorsque nous imprimons un nombre de mots soulignés , nous obtenons ce dictionnaire, comme vous pouvez le voir ci-dessous, un, deux, deux, trois, 44, cinq, cinq, cinq, la clé restant sous forme d'entier dans sa forme brute et les valeurs sont converties en un combiné de chaînes entre guillemets C'est ainsi que nous pouvons procéder et mettre cela en place. OK, maintenant allons-y et prenons un autre exemple ici, et ici nous voulons mapper des nombres à leurs cubes. OK, alors allons-y et faisons-le. Donc, les nombres sont égaux, et nous allons avoir un, deux, trois, quatre et cinq. Bien, nous voulons maintenant créer un dictionnaire où les clés sont des nombres et les valeurs leurs cubes. Je vais donc définir une variable sous le nom de cube dict. OK. Et ça va être un dictionnaire. Nous allons avoir num comme clé, puis num, puis deux astérisques ici. Cela va donc aller de l'avant et garantir que nous aurons le résultat cubique, et ce sera deux, trois, quatre, un chiffre en chiffres. OK. Alors allons-y et faisons-le. Pour les nombres numériques, nous devons nous assurer que nous avons notre format d'explication « Comment puis-je dire » ? Quatre chiffres. Tout d'abord, nous en avons un, prenez-en un. Ensuite, nous allons le passer ici à num et ce sera un comme clé. Et un pour un cube va essentiellement nous donner le résultat d'un C'est bon. Alors pour un nombre en chiffres, d'accord, nous allons en avoir deux. Nous en avons donc deux ici, transportées là en tant que clé, deux, et la valeur là. Donc, deux cubes nous donneront essentiellement le résultat de huit comme valeur Recommencez, quatre chiffres. Nous allons travailler avec trois maintenant. Prenez-en trois, déplacez-les vers l'espace réservé, afin que nous puissions les préparer pour notre dictionnaire Nous y allons et cela nous en donnera essentiellement trois, puis nous allons dire trois, bien sûr, en cubes et cela nous en donnera 27 Cela va aller de l'avant et obtenir le même résultat pour quatre et cinq. Nous pouvons obtenir le résultat final en disant print, cube dink. Nous obtenons alors ce qui suit Nous en avions un, huit, 27, et bien sûr, nous en avons 64 et 125, cinq cubes, quatre cubes, etc., et c' est ainsi que nous pouvons associer des nombres à C'est vrai. Je pense que nous devrions maintenant être confiants avec l'idée qu'à gauche, nous avons notre expression et à droite, nous avons notre boucle for et l'itérable et que nous allons simplement utiliser nos expressions après avoir obtenu un résultat Si nous devons effectuer un calcul, résultat final sera enregistré dans notre dictionnaire, dans ce cas ou si nous travaillons avec des listes dans la liste. Si nous n'avons pas besoin d' effectuer un calcul, nous pouvons simplement le faire glisser. C'est vrai. Parfait. OK, donc c'est bon. Maintenant, la prochaine chose que nous allons faire est de travailler avec nos conditions if. Commençons donc. Je vais donc aller de l' avant et dire des mots, et nous allons manger des pommes, des poires, des fraises oranges. Et grep. Il y a tous les articles dans ma liste. Maintenant, je veux créer un dictionnaire où les clés sont des mots et les valeurs sont leur longueur, mais uniquement pour les mots de plus de cinq lettres. Définissons ce dictionnaire. Je vais appeler cela des mots longs, égaux ici dans mon dictionnaire Nous allons avoir le mot comme clé, puis la longueur du mot sera la valeur, et ce sera pour un mot dans un mot si la longueur du mot est supérieure à cinq. OK, alors allons-y et travaillons sur ce processus. Nous devons donc d'abord examiner nos quatre boucles. Donc, quatre mots en deux mots. Nous allons donc passer en revue tous ces éléments de la liste. Nous avons donc d'abord Apple. Apple, nous pouvons le voir, c'est un , deux, trois, quatre, cinq. On voit qu'il s' agit de cinq personnages. Donc, si la longueur du mot est supérieure à cinq, nous pouvons utiliser cette expression particulière. Si ce n'est pas le cas, si c'est faux, alors on passe à l'élément suivant de la boucle. OK, c'est faux, on ne continue pas. Si c'est vrai, nous ajoutons uniquement true à notre nouveau dictionnaire dans ce cas. Nous passons à la paire. Nous pouvons juste voir que la paire n'est pas cinq, donc nous pouvons sauter l'orange, un , deux, trois, quatre, cinq, six, orange. Pour les mots et les mots, nous avons l'orange. Si la longueur est supérieure à cinq, c'est six. Ensuite, nous allons définir que nous allons le remplacer ou l'envoyer à Word comme espace réservé pour passer dans notre nouveau dictionnaire que nous sommes en train de créer et qui sera essentiellement entre guillemets Nous allons manger de l'orange. Colon. Ensuite, nous avons besoin de la longueur du mot. Donc, dans notre cas, il y en aura six. Ensuite, nous pouvons ajouter notre virgule. Ensuite, nous passons à la fraise. Nous pouvons déjà voir que c'est supérieur cinq, donc nous pouvons voir un, deux, trois, quatre, cinq, six, sept, huit, neuf, dix. Donc quatre mots et deux mots. Nous passons maintenant à la fraise. C'est supérieur à cinq, c'est dix. Donc, ce mot en particulier, nous allons le remplacer ici par un autre, et maintenant nous pouvons réellement l'ajouter à notre dictionnaire, « fraise ». Et la valeur ici, sa longueur est de dix caractères, donc on peut dire dix. Bien, allons-y. Ensuite, nous avons du raisin, et il n'y en a que cinq, donc ça ne marchera pas. Nous n'aurons donc que ces deux objets. Nous pouvons donc dire imprimer. De longs mots. Et voilà. Nous avons notre nouveau dictionnaire avec notre paire clé-valeur, notre clé étant ici orange, valeur six, clé étant fraise, valeur dix. C'est bon, on y est. OK, allons-y et faisons-en un autre. Et cela va filtrer les nombres pairs et les doubler. Nous aurons donc une liste de numéros un, deux, trois, quatre, cinq, six, sept, huit, neuf et dix. Ensuite, nous voulons créer un dictionnaire où les nombres pairs sont des clés et les valeurs sont le double de leur valeur. Je vais donc définir la variable comme étant un double pair. Ce sera essentiellement un dictionnaire, nous aurons donc Num. Ensuite, nous aurons Num multiplié par deux pour la valeur, puis notre boucle sera de quatre nombres si num ajoute le module deux double égal zéro Nous allons vérifier si c' est le cas également, bien sûr. C'est le filtre du Let's Go Ahead and do the calculation. Quatre chiffres en chiffres. Passons-les en revue. Nous en avons une. Maintenant, si num est pair, nous pouvons accéder à l'expression, mais ce n'est pas le cas pour pouvoir sauter. Quatre chiffres, on passe à deux. Si le nombre est pair, il l'est, c'est deux, donc nous pouvons passer à autre chose. Le nombre sera de deux, ce sera la clé parce que nous travaillons avec un dictionnaire, et ce sera deux, deux fois deux, cela nous donnera quatre. Huit. Passons à la suivante. Trois, trois, ce n'est même pas égal. Donc, ce que vous pouvez faire, c'est savoir que si vous regardez le conditionnel I, vous pouvez automatiquement le vérifier rapidement pour voir s'il correspond à un cas en particulier, et si ce n'est pas le cas, vous n'avez pas à vous soucier de tout terminer et de l'attribuer Quatre, ça va être égal. Quatre numéros de nomen, nous en avons vérifié trois, nous allons en examiner quatre C'est même selon notre condition. Nous allons placer quatre comme clé. Ensuite, nous allons dire quatre fois deux. Ce sera le résultat final que nous stockons ici et là nous en avons quatre. Cinq c'est impair, six c'est pair. On peut dire quatre nombres en chiffres. Si le nombre est pair, six l'est. Ensuite, nous pouvons déplacer six ici vers l'espace réservé de num, ce qui signifie que nous pouvons le mettre dans notre nouveau dictionnaire, dont la clé sera six Ensuite, nous dirions six fois deux, et cela nous donnera 12. OK, c'est donc un processus que nous suivons encore et encore. Nous n'en avons alors que huit et dix à évaluer. Alors allons-y et imprimons ceci pour voir le résultat. Donc, double égalité. Et allons-y et exécutons-le. Et ici, nous pouvons voir que nous avons obtenu ce résultat. Nous avons donc fait les six premiers ici, puis nous en avons huit, 16, dix et 20. Nous avons donc pu voir que huit et dix seront envoyés à l'endroit où Num est passé dans le nouveau dictionnaire, puis 16 et 20 également. OK, donc 16 et 20, nous pouvons voir que cela a été dérivé en multipliant huit par deux, puis dix par deux également. C'est vrai, les gars. C'est ça. C'est ainsi que nous pouvons utiliser la compréhension du dictionnaire Comme vous pouvez le constater, c'est un processus assez simple et comment nous pouvons l' utiliser. C'est ça. 95. Fils et processus: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur les fils de discussion et les processus. Jetons donc un coup d'œil. Bien, donc la première chose que nous devons comprendre est ce qu'est un fil. Un thread est donc essentiellement une unité d' exécution légère qui s'exécute indépendamment tout en partageant de la mémoire avec d'autres threads. Vous pouvez donc essayer de considérer un fil comme un ouvrier sur une chaîne de montage où chaque fil gère une tâche et plusieurs fils peuvent fonctionner simultanément pour accélérer le traitement. Voyons maintenant les avantages des fils de discussion. Les threads d'un processus utilisaient donc la même mémoire. Ils consomment moins de ressources et sont efficaces. Ils sont également parfaitement adaptés aux tâches spécifiques qui nécessitent d'attendre l' entrée ou la sortie. Et une autre chose importante à savoir est que démarrer un thread est plus rapide que lancer un processus. Examinons maintenant les limites des lambeaux. Désormais, les threads s'exécutent à tour de rôle en raison du verrou global de l'interpréteur communément appelé GIL. Les threads ne peuvent pas être arrêtés de force une fois démarrés, c'est donc ce qui est malheureux en ce qui concerne les threads, contrairement à un processus qui peut être arrêté Une fois lancé, un thread ne le peut pas. Et il est important de savoir que le partage de données peut entraîner des problèmes imprévisibles. En d'autres termes, augmentez les conditions qui peuvent survenir si des données sont partagées. Désormais, il n'y a pas non plus d'amélioration de la vitesse pour tout travail intensif sur le processeur effectué avec les threads. Examinons maintenant les processus. Donc, un processus. Un processus est un programme actif doté sa propre mémoire et de ses propres ressources. Maintenant, une façon plus simple d' envisager un processus est de le considérer comme une application séparée sur votre ordinateur ou un utilitaire d'arrière-plan spécifique, où chacun s'exécute indépendamment sans partager de mémoire avec les autres. Maintenant, pour ce qui est des applications ici, je fais référence, par exemple, disons que Microsoft Word est ouvert, que cela soit considéré comme une application, ou si vous avez également ouvert une application comme Discord ou si Spotify est ouvert, Steam ou Google Chrome ou quelque chose comme ça, vous pouvez en quelque sorte le voir sous cet angle Maintenant, les processus présentent de nombreux avantages, alors jetons-y un coup d'œil. Ils peuvent donc utiliser pleinement plusieurs processeurs et cœurs. Chaque processus possède sa propre mémoire, ce qui permet de séparer ses données. Il est également idéal pour les tâches nécessitant un traitement processeur intensif, contrairement aux threads. est important de noter que les processus peuvent exécuter indépendamment les uns des autres. Et ils peuvent être arrêtés ou interrompus à tout moment, ce qui est l'un des meilleurs avantages que vous puissiez avoir en termes de processus. Chaque processus possède son propre gel, le GIL, ce qui permet d'éviter les limites de filetage imposées par Python Maintenant, il y a aussi, bien sûr, certaines limites des processus. Nous pouvons constater que les processus utilisent plus de ressources système que les threads qui en utilisent moins. De plus, si vous souhaitez créer un processus, cela prendra plus de temps que de démarrer un fil de discussion. Une autre chose regrettable est que chaque processus nécessite plus de mémoire puisqu'il ne la partage pas. La communication entre les processus est assez complexe et nécessite malheureusement une manipulation supplémentaire. Et la dernière chose que je voudrais mentionner à propos de la limitation des processus est que le passage d'un processus à l'autre peut être assez lent, ce qui aura un impact sur les performances en raison de la surcharge. Les gars. Voilà pour l'aperçu théorique. Je voulais simplement vous présenter l'aperçu théorique de ce que sont les fils de discussion, ce que sont les processus, et vous donner quelques informations sur leurs avantages et leurs limites. Et comme vous pouvez le constater, c'est presque comme si l'un souffrait, l'autre s'épanouissait, pourrait-on dire Mais en tout cas, c'est tout pour cette leçon. 96. Multi-traitement: Bonjour à tous, et bienvenue à la prochaine leçon, qui sera axée sur le multitraitement. Jetons donc un coup d'œil. vrai, le multitraitement permet donc à un programme d'exécuter plusieurs processus indépendamment, chacun avec sa propre mémoire et ses propres ressources Désormais, il maximise également l'utilisation du processeur en répartissant calculs lourds sur plusieurs cœurs pour de meilleures performances 97. Multi-filetage: Bonjour à tous, et bienvenue à la prochaine leçon, qui portera sur le multithread Jetons donc un coup d'œil. vrai, le multi-threading est un système qui permet à un programme exécuter plusieurs threads dans le même processus afin que vous puissiez partager vos souvenirs et vos ressources Il permet également aux tâches de s'exécuter simultanément sans avoir à créer des processus distincts C'est bon. Passons donc à la pratique du multi-shreading 98. Intégrer le multitraitement - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique en laboratoire, qui sera axé sur l'utilisation du multitraitement. Commençons donc. Tout d'abord, nous voulons importer le module de traitement multiple. Ensuite, nous voulons importer le module horaire afin de pouvoir utiliser la fonction de veille. Ensuite, nous voulons définir la fonction qui sera exécutée dans un processus distinct. Je vais dire travailleur sourd, ce sera une fonction. Tout ce que je vais faire, c'est appeler le module horaire et je veux définir ma fonction de sommeil et je veux que le processus reste actif pendant au moins 20 secondes afin que nous puissions voir dans le gestionnaire de tâches ou dans notre gestionnaire d'activités. l'heure actuelle, la prochaine chose que nous devons faire est de nous assurer que le code ne s'exécute que lorsque ce fichier est exécuté directement, et cela sera considéré comme un processus. Et pour nous assurer que ce sera le cas, nous pouvons utiliser cette instruction si elle indique que le nom est nous pouvons utiliser cette instruction si elle indique que souligné deux fois, le double soulignement est égal ou équivalent au double soulignement principal, au double soulignement principal OK, laisse-moi t'expliquer. Vous vous demandez donc probablement ce qu' est un nom à double trait de soulignement Il s'agit donc d'une variable intégrée spéciale que nous obtenons en Python et qui contiendra le nom de notre script ou de notre module. Ensuite, nous avons le double soulignement principal. Et cela va vérifier si le script est exécuté directement et s'il n'est pas importé en tant que module. C'est vrai. Il est donc très important que nous ayons cela sans cette vérification que nous effectuons ici, le script pourrait continuer à créer nouveaux processus indéfiniment et finir par se bloquer. Il est donc très important que nous l'ayons. Cela sera considéré comme notre premier processus, notre script Python, puis notre deuxième processus sera cette fonction de travail. Nous pouvons donc déjà le définir. Je dirais le premier processus. Et nous pouvons parler de cela comme d' un processus. Continuons. Maintenant, la prochaine chose que nous allons vouloir faire est de créer un nouveau processus qui exécutera notre fonction de travail. Je vais dire que le processus est égal, et je vais dire le traitement multiple. Nous allons faire référence à ce point du module, nous allons faire référence à la classe de processus , puis nous allons passer par le paramètre target et le définir sur worker. Jetons un coup d'œil ici. Maintenant, le processus ici est une classe du module de multitraitement, et il va être utilisé pour créer un nouveau processus qu'il est en train de faire en recherchant une cible, qui sera traitée en tant que processus choisi qui sera entrepris Maintenant, arget, comme je l'ai déjà mentionné, est un paramètre, et cela va spécifier la fonction qui doit être exécutée dans le nouveau processus, qui va être travaillée Ils se demandent probablement, s'il s'agit d'une fonction, pourquoi ne pas l'appeler ou ne pas l' ajouter entre parenthèses Nous transmettons donc cette fonction de travail sans parenthèses parce que nous voulons transmettre la fonction elle-même et non le résultat de son appel OK. Maintenant, ce processus que nous avons défini ici va être stocké dans cette variable appelée processus. OK. Maintenant, ce que nous voulons faire, c'est aller de l'avant et démarrer le processus. Je vais dire traiter l'amidon par points en utilisant la méthode de l'amidon, et cela va démarrer le processus, et cela va le faire fonctionner en arrière-plan. Maintenant, dès que ce processus est lancé, nous voulons simplement ajouter une instruction d'impression pour nous indiquer que le processus a commencé et que nous devons vérifier le gestionnaire de tâches, car n'oubliez pas que nous ne le verrons que pendant 20 secondes. C'est bon. Donc, ce que nous pouvons faire, c'est simplement dire imprimer, et nous allons dire que le processus a commencé. Ensuite, nous pouvons dire «   vérifier le gestionnaire de tâches ». Et si vous utilisez macOS, il s'appellera Activity Manager, que vous pourrez vérifier. Ensuite, nous devons dire « process point join », et il s'agit d'une méthode de jointure, qui attendra la fin du processus avant de continuer. Cela bloquera donc toute autre exécution de code à la fin, nous voulons dire que le processus d'impression est terminé. Nous y voilà. Très bien, c'est donc tout ce dont nous avons besoin ici. Nous allons donc avoir notre processus par défaut en arrière-plan pour le script Python, puis le processus que nous avons réellement créé maintenant, qui sera une fonction que nous allons définir ici en conséquence. Très bien, c'est ce que nous avons ici en place et nous sommes prêts à partir. C'est bon. Maintenant, si vous êtes sous Windows, vous pouvez simplement ouvrir votre gestionnaire de tâches. Vous pouvez simplement rechercher le gestionnaire de tâches, et vous pouvez l'ouvrir. Il est déjà ouvert, et vous pouvez vous assurer que vous cliquez sur les processus ici sur la gauche, et vous pouvez simplement taper Pierson et appuyer sur Andrew Maintenant, pour l'instant, cela ne montrera rien parce que nous n'avons pas exécuté notre script une fois que le script sera exécuté en tant que processus, puis il créera également un nouveau processus ici en ajoutant cette fonction particulière. Très bien, alors assurez-vous que vous êtes d'accord avec tout cela, puis nous pourrons continuer. C'est vrai. Nous pouvons maintenant exécuter notre code. Ici, il est dit que le processus indique vérifier le gestionnaire de tâches. Vous pouvez voir que nous avons un processus en arrière-plan et deux processus en cours d'exécution . Chacun d'entre eux, bien sûr, fait partie du script Python Cette fonction que nous avons également créée a également été mise en place. Nous pouvons également voir ici des informations sur la quantité utilisée en termes de mégaoctet Vous pouvez voir qu'il s'est arrêté, mais nous pouvons simplement le relancer. Et revenez en arrière et nous pourrons simplement aller l'avant et voir quelle quantité est utilisée. Nous avons donc vu pendant un moment que l'utilisation du processeur était d'environ 0,2 %, donc c'est très, très faible et c'est parti. Et nous pouvons voir quelques informations ici dans la section mémoire en termes de quantité de mégaoctets utilisés et ensemble, pour les processus d' arrière-plan et pour eux séparément. C'est vrai. Voilà, nous l'avons. C'est ainsi que nous pouvons utiliser le multitraitement dans Pyson. C'est bon, alors c'est ça. 99. Intégrer plusieurs filetages - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique de laboratoire, qui sera axé sur le multithreading Maintenant, bien sûr, je vais simplement m'adapter au code que nous avions auparavant pour le multitraitement La plupart des programmes que nous créons ici présenteront des similitudes avec ceux que nous utilisons lorsque nous utilisons le multitraitement Nous allons apporter quelques ajustements et je vais vous parler des nouveautés qui permettront de différencier le threading. Vous pouvez simplement continuer et conserver votre code tel quel et ce que nous allons faire, c'est simplement l'ajuster. Bien sûr, nous allons maintenant travailler avec le multithreading. Nous pouvons simplement supprimer ce module lors du multitraitement et le remplacer par le module de threading Cela va nous permettre de créer des fils de discussion. Encore une fois, nous allons utiliser le module horaire afin de pouvoir utiliser la fonction de sommeil. allons avoir une fonction de travail comme avant, et nous allons nous assurer régler le délai de mise en veille sur 20 secondes. Bien sûr, nous allons toujours utiliser notre nom de soulignement, notre variable spéciale intégrée, dois-je dire ? Je vais m'en servir. Encore une fois, nous allons utiliser double soulignement principal et, comme je l'ai déjà mentionné, nous allons nous assurer que le script est en cours d' exécution et, dans l' ensemble, nous allons simplement nous assurer avec cette instruction if que nous n'avons aucun crasher ou quoi que ce soit d' La prochaine chose que nous voulons faire est de créer un fil de discussion. Au lieu de dire processus, nous allons dire thread, et nous allons remplacer multitraitement par le module de threading que nous avons Ensuite, nous allons remplacer la classe de processus par une classe de thread. Dans cette ligne de code, nous allons faire la même chose, mais nous allons créer un nouveau thread qui exécute la fonction de travail comme nous le faisions auparavant. Ensuite, au lieu de démarrer le processus, nous allons démarrer le fil de discussion. Nous allons dire « lisez l'amidon » ici à la fin, nous allons aussi aller sur une haie et dire « Joindre à points déchiquetés » également Nous pouvons simplement changer ici le texte pour indiquer que le fil de discussion a commencé. Et le fil est terminé. OK, ce sont donc les ajustements que nous avons ici, et nous pouvons simplement supprimer ce que nous avons ici. C'est bon. Et c'est réglé maintenant. Nous avons donc tout tel quel. Maintenant, il n'y a pas vraiment grand-chose de différent ici, donc avec thread point start, juste pour le répéter, cela va démarrer le fil de discussion. Il va fonctionner en arrière-plan. Et avec thread point join ici, d'accord, en gros, nous allons juste attendre que le thread soit terminé avant continuer avec le reste de notre code. OK. Maintenant, une autre chose que je voudrais également mentionner ici est un peu détaillée avec ces messages point start et point Join. Maintenant, il est très important que le point Start soit en place, car si nous ne spécifiez pas le point Start, le thread commencera à fonctionner. Si nous n'avons pas de jointure par points, le programme va se fermer avant que le thread n' ait terminé sa tâche. Ce sont les raisons pour lesquelles nous en avons besoin dans ce cas d'utilisation particulier. OK. Et ce que nous pouvons faire maintenant, c'est faire une couverture exécuter le code et voir le résultat tel qu'il se présente. C'est bon. Allons-y exécutons-le et voyons ce qui se passe. Maintenant, je veux le rallonger un peu, donc je vais le régler sur 30 secondes. Je vais exécuter le code. Vérifiez. Comme vous pouvez le constater, nous n'avons qu' un seul processus en cours d'exécution. C'est une bonne indication que nous utilisons le déchiquetage, car souvenez-vous que dans la leçon théorique, j'ai dit que lorsque vous travaillez avec plusieurs threads ShreadingO, n' y aura donc qu'un seul et que les threads partageront un processus Même si nous avons deux threads ici, j'en ai un que nous avons défini avec notre fonction et notre script par défaut avec tous les scripts Python lui-même, sera inclus en un seul. C'est pour cela qu'il en est ainsi. Allez-y et courez, c'est pourquoi nous l'avons. Nous pouvons voir, bien sûr, que nous avons également de la mémoire ici en termes de 3,9 mégaoctets et que cela n'est pas très lourd sur le processeur, le disque ou le réseau comme c'est le cas actuellement avec ce processus en actuellement avec ce processus Comme vous pouvez le constater, il est important de se rappeler que c'est ainsi que cela se passe, car nous n'avons qu'un seul processus pour partager la mémoire avec le processus principal ce qui peut être efficace. Si nous n'avons opté que pour un seul procédé , c'est parce que Pison utilise le gel, le GIL, dont j'ai parlé tout à l'heure. Il s'agit du verrou global de l'interpréteur. Cela garantira qu'un seul thread s'exécute à la fois dans un seul processus PySON Même si nous avons plusieurs fils de discussion ici, nous en avons deux, ils n'apparaîtront pas comme un processus distinct dans le gestionnaire de tâches. Comme vous l'avez vu dans le cadre de ce processus, ils vont partager le même espace mémoire et travailler dans le même processus PySON C'est ainsi que nous pouvons également faire la différence entre nos threads et nos processus avec le multitraitement et le multithreading C'est bon. Ce que nous voulons faire maintenant, c'est simplement nettoyer nos ressources afin de pouvoir simplement mettre en évidence tout le code ici et le supprimer. Ce que nous pouvons également faire, c'est simplement supprimer tous les autres fichiers que nous avons, à l' exception du principal diagramme à points, afin de pouvoir les effacer. OK. Et le dernier. Nous y voilà. Jusqu'à ce que nous ayons le doppie principal Donc, si vous avez autre chose, allez-y, nettoyez-le. nous effectuons simplement une sorte attendant, nous effectuons simplement une sorte de nettoyage des ressources Il y en a encore d'autres à venir, mais nous voulons simplement nettoyer tout ce que nous avons ici. C'est bon, alors c'est tout. 100. Tests unitaires: Bonjour, tout le monde. Bienvenue à la prochaine leçon, qui sera axée sur les tests unitaires. Jetons un coup d'œil. Tests unitaires. En Python, les tests unitaires consistent à tester des composants individuels du code pour vérifier qu'ils fonctionnent comme prévu. Maintenant, une unité est généralement une fonction ou une méthode qui exécute une tâche spécifique. Et la question suivante que nous nous posons probablement est pourquoi devriez-vous effectuer ces tests unitaires ? J'ai donc quelques raisons pour lesquelles nous devrions le faire, notamment pour détecter les bogues à un stade précoce afin d'améliorer lisibilité du code et aussi pour rendre modifications de code beaucoup plus sûres, les gars n'est donc qu'un aperçu théorique en termes de tests unitaires, de tests unitaires. Et maintenant, en ce qui concerne les accises pratiques de laboratoire qui vont être abordées, nous allons examiner plus en profondeur comment nous pouvons réellement les appliquer 101. Effectuez des tests unitaires standard - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique en laboratoire, qui sera axé sur les tests unitaires. Maintenant, la première chose que nous allons faire avant de plonger trop profondément dans le test unitaire est créer un test unitaire très standard juste pour voir comment le processus fonctionne, n'est-ce pas C'est bon. Maintenant, la première chose à faire est d'importer le module de test unitaire, qui est un module intégré utilisé pour les tests. Ensuite, nous voulons définir la fonction que nous voulons tester. Cette fonction sera une simple fonction d'ajout pour ajouter deux nombres. Il va prendre deux paramètres et il va renvoyer A plus B une fois qu'il aura été appelé. Maintenant, cette fonction va ajouter deux nombres et elle va renvoyer la somme de A et B. Nous voulons tester cette fonction. Maintenant, pour ce faire, nous devons créer une classe de test pour les tests unitaires. On peut dire classe, test. Masse. Désormais, chaque case d'échecs doit hériter de la case d'échecs du test unitaire Pour ce faire, nous devrions continuer et passer par l' unité coffre, point, poitrine . Il s'agit essentiellement d'une classe de pyson intégrée que nous utiliserions Cela sera essentiellement hérité d' un cas de test unitaire. C'est ce que nous avons maintenant en place. La prochaine chose que nous devons faire est définir une méthode de test maintenant. Dans ce cours, nous devons dire sourd et nous pouvons dire poitrine, souligner et Maintenant, quelque chose que vous devez garder à l'esprit ici avec le soulignement de vos messages de test doit toujours être la première partie de la déclaration : voici votre fonction à tout moment Ce que vous enfilerez ensuite dépend vraiment de vous de ce que vous voulez faire. Nous allons passer par nous-mêmes. Maintenant, ce sera une méthode de test qui vérifiera si la fonction d'ajout fonctionne correctement et le nom de la fonction, comme je l'ai mentionné, doit commencer par un coffre et un trait soulignement pour que notre test unitaire la reconnaisse comme un coffre C'est la raison pour laquelle nous devons l'ajouter ainsi. Nous avons de nouveau self ici parce que cela représentera l'instance de notre classe de cas de test et donnera accès à toutes les méthodes fournies par la classe de test dont nous héritons ici Ensuite, nous voulons maintenant continuer et définir notre méthode ici en disant self point, et nous allons utiliser une méthode spéciale appelée assert equal, et nous allons passer par la fonction, qui s'appellera add, que nous allons jouer ici deux et trois comme exemple, puis nous voulons en avoir cinq. Donc, ce que nous allons mettre ici entre parenthèses correspond à ce à quoi nous voulons réellement nous attendre, et ensuite, à l'extérieur, ce sera le résultat réel OK. Ainsi, la méthode self assert equal va vérifier résultat attendu et réel pour vérifier si les valeurs sont égales. Dans le cas présent, avec ce qui est attendu, nous avons deux et trois, par exemple, et deux plus trois font cinq, et le résultat réel sera de cinq. C'est ce que ça devrait être. OK. Maintenant, si à deux et trois, il renvoie cinq, alors le coffre passe. S'il renvoie autre chose, le coffre va tomber en panne. OK. C'est bon. Alors allons-y et continuons. Nous avons donc cette configuration. Maintenant, la prochaine chose que nous devons faire c'est juste ici, sur le côté gauche, nous voulons continuer et jouer aux échecs. Pour ce faire, nous devons donc nous assurer que le script ne s'exécute que lorsque nous l'avons exécuté directement. Pour ce faire, nous allons dire que je souligne deux fois le nom. Le score est égal à, en double soulignement principal OK. Maintenant, ce que nous faisons ici, c'est vérifier s'il y a cette ligne ici, nous allons essentiellement vérifier que nous utilisons ce script Pierson, et qu'il ne s'agit pas d'un module ou quoi que ce soit d' autre que nous importons, et c'est considéré comme et c'est considéré comme une condition spéciale que nous utilisons généralement dans pyson Et c'est quelque chose que nous utilisons également pour le traitement et le filetage si nous avons également affaire au multitraitement et au filetage Cela garantira que le test unitaire principal ne s'exécute que lorsque le script est exécuté directement, comme je l'ai déjà mentionné, et c'est pourquoi nous devons le faire. Maintenant, ce que nous pouvons faire ensuite , c'est définir le test unitaire, et nous devons l'appeler principal ici, et ce sera une fonction intégrée que nous devrons utiliser, et qui trouvera toutes les méthodes de test que nous avons définies. Il va les exécuter un par un et rechercher spécifiquement le message du test qui commence par une poitrine et un trait de soulignement Ensuite, il indiquera quel test réussi et lequel a échoué. Ce message principal que nous ajoutons au test unitaire n'est qu'une méthode simple du module de test unitaire que nous avons ici qui lance le lanceur de tests. C'est donc essentiellement ce qui se passe ici. Nous pouvons donc simplement effectuer un zoom arrière pour voir le code complet et enregistrer ce fichier. Allons-y et exécutons-le. Ici, nous pouvons voir que nous avons un point, les lignes et que nous avons effectué un test, et je vais le déplacer vers le haut, et il est écrit : OK, alors allons-y et déboguons comment cela fonctionne réellement Donc, ce que nous avons ici est un point et la note signifie que le coffre a été dépassé. vous avez effectué un test ici, cela signifie qu'un cas de test a été exécuté. Nous avons donc testé ce message simple ici sur les mathématiques. Alors OK ici signifie que toutes les assertions ont été couronnées de succès. Nous avons une affirmation ici, par exemple, qui prouve que c'était un succès. Très bien, c'est donc la manière la plus simple de vous lancer dans une couverture et d'exécuter vos tests en Python. Nous allons donc donner quelques exemples supplémentaires. Alors allons-y et faisons-le. Nous allons devoir nous assurer que nous utilisons le module de test unitaire, alors allons-y. C'est bon. Donc, ce que nous allons faire maintenant, c'est tester une fonction pour vérifier si un nombre est pair. Allons-y et faisons-le. Je vais même dire que D est un soulignement. Nous allons passer par le paramètre numérique, et nous voulons renvoyer vrai si le nombre est pair, sinon faux. Nous allons dire le numéro de retour, et dans le module deux, double est égal à zéro Les nombres pairs n'ont pas de résidu lorsqu'ils sont divisés par deux. C'est essentiellement ce qui se passe ici pour vérifier s' il y a un nombre pair. Faisons nos jeux d'échecs. Encore une fois, nous devons définir une classe et nous allons appeler ce test des nombres pairs. Nous devons passer par le test unitaire point K nous devons passer par cette classe depuis le module. Cela va créer une classe de cas de test. Ensuite, nous devons définir nos cases d'échecs. Ici, je vais dire sourd, torse, soulignement égal, chiffre souligné, et ici nous allons dire soi Ensuite, nous devons ajouter nos assertions. Je vais dire self jot assert true, et ici nous allons passer en revue notre fonction, qui sera « underscore even », et nous allons dire quatre, par exemple Ensuite, nous voulons tester un nombre impair pour voir s'il échoue, il devrait donc échouer. Vous pouvez dire de, tester le soulignement, un nombre impair, puis nous passerons à soi Et nous allons ajouter des points à une recherche. C'est vrai, et nous allons passer en revue le fait de souligner même la fonction et cinq Ensuite, nous allons dire de test underscore zéro. Par self, on peut parler de recherche par points automatique. Vrai. Ensuite, nous voulons vérifier la fonction si nous passons par zéro. Ensuite, en fonction du classier que nous avons défini, nous voulons exécuter le test lorsque le script est exécuté, afin de pouvoir dire I double underscore name, double underscore, égal à main Nous utilisons donc ce script en particulier. Nous pouvons ensuite exécuter un test unitaire. Point main, et cela exécutera tout ce qui a le début d'un trait de soulignement thoracique ajouté au message au sein de notre classe Comme nous pouvons le voir ici, en passant quatre, nous allons obtenir un pass satellite en en ajoutant cinq, ce qui est étrange, nous allons obtenir un coffre raté puis en passant zéro, qui sera pair, nous obtiendrons également un laissez-passer. Tout est en place ici. Allons-y et exécutons notre code. Très bien, nous en avons donc une variété. Analysons maintenant le résultat. Nous arrivons donc ici point F. Donc, F va indiquer un échec du test. OK. Cela signifie que le premier coffre est réussi, le deuxième est un échec et le troisième est un échec. C'est ainsi que vous pouvez l'analyser. Et nous pouvons voir ici quel était l'échec et tester un nombre impair, nous pouvons voir ici qu'il a échoué parce que nous en avons passé cinq ici. que vous pouvez voir ici va échouer car lorsque nous passons cinq et que nous vérifions s'il s'agit d'un nombre pair, il ne fonctionnera pas correctement et produira une erreur de retraçage. Comme nous pouvons le voir ici, nous pouvons voir que l' erreur de session false n'est pas vraie. Nous avons effectué trois tests. Nous avons eu un échec, et c'était le second. Vous pouvez voir que c'est très beau ici. Il indique que nous avons échoué ici en insérant F, mais il indique également par position laquelle. Le point est un, F est le deuxième et le troisième est passé. Les gars. C'est ainsi que nous pouvons également utiliser nos scénarios de test afin de pouvoir nous protéger et vérifier les réussites et les échecs de nos tests. C'est ainsi que nous pouvons implémenter les tests unitaires de base en Python. Vous pouvez l'appliquer à vos fonctions, par exemple, si vous souhaitez vérifier votre code et voir si tout fonctionne et s' il fonctionne comme prévu. Par exemple, dans ce cas d'utilisation particulier, si vous configurez une fonctionnalité pour tester quelque chose de pair, il est très utile d' ajouter des cas de test ici, comme nous le faisons ici pour prouver qu'elle fait ce qu'elle doit faire. C'est là que la valeur entre en jeu avec les tests unitaires. Bien, nous pouvons donc procéder à fermeture du chaume et voilà les tests unitaires 102. Environnements virtuels: Bonjour, tout le monde. Bienvenue à la prochaine leçon, qui sera axée sur l'environnement virtuel. Jetons un coup d'œil. vrai, un environnement virtuel, vous vous demandez probablement ce qu' est un environnement virtuel. En termes simples, un environnement virtuel est un espace de travail ou un environnement Python isolé qui vous permet d'installer et de gérer vos packages ou dépendances séparément pour chaque projet. Cela garantit désormais que vos différents projets n'interfèrent pas uns avec les autres en termes de packages ou ne provoquent pas de conflits. C'est tout ce que je veux mentionner à propos des environnements virtuels. C'est un processus assez simple, nous allons donc l' approfondir dans les exercices pratiques de laboratoire, alors restez à l'affût. 103. Créer un environnement virtuel - [Lab]: Bonjour à tous, et bienvenue au prochain exercice pratique en laboratoire, qui sera axé sur le travail avec des environnements virtuels. Désormais, l'environnement virtuel est très utile car, bien entendu, vous apprenez les bonnes pratiques en bloquant tous vos packages dans un environnement virtuel au lieu de les installer globalement sur votre système Cela permet vraiment de garantir que chacun de vos projets possède son propre environnement virtuel avec ses propres packages et dépendances. Cela aide simplement à garder les choses fluides, précises et fonctionnelles. Je vais vous montrer comment créer votre environnement virtuel, comment l'activer et comment le désactiver Je vais vous montrer à la fois pour Windows et pour MCO Linux. Je vous recommande de me regarder abord avant de suivre directement, car je vais vous montrer comment vous pouvez le configurer pour les deux appareils. Commençons. Maintenant, la première chose que je veux mentionner est que vous devez changer maintenant pour exécuter un PysonFle vous pouvez cliquer sur la flèche déroulante, dire Exécuter PySONFL et vous pouvez simplement Et la première chose que nous voulons faire est de comprendre le concept des packages à l' échelle mondiale sur notre système. Lorsque nous tapons PIP List, cela répertorie tous les packages que nous avons installés via PIP Par exemple, lorsque nous avons installé loama, PWGen ou Emoji ou tous les packages installés dans la leçon les packages correspondante Tout cela apparaîtra globalement sur notre système lorsque nous saisirons la liste PIP Vous verrez la liste de tous les packages que vous avez installés. Ici, par exemple, je peux voir Colorama, Emoji, je peux voir Num Pi, je peux voir PEP, je peux voir P chez WGN, tout cela a été installé dans le monde entier dans Maintenant, le PEP lui-même, bien sûr, doit être installé dans le monde entier, mais pour tout le reste, vous pouvez voir dans le cas où il se trouve partout. Nous voulons qu'il ne soit installé que dans un environnement virtuel, et non globalement comme nous le voyons ici. Pour ce faire, nous pouvons créer un environnement virtuel pour résoudre ce problème. C'est vrai. Encore une fois, comme je l'ai dit, regardez ce que je fais avant de le faire. Je vais d'abord vous montrer la méthode Windows, et pour créer un environnement virtuel pour Windows, vous devez taper dans votre terminal Python, VNV Cela signifie que nous voulons créer un environnement virtuel pour ENV Le nom de votre environnement virtuel, vous pouvez lui donner n'importe quel nom maintenant, mais je vais aussi l'appeler VENV et vous pouvez appuyer sur Entrée, et cela créera votre environnement virtuel pour vous Il suffit d'être patient et une fois qu'il a été créé, il doit être indenté sur une nouvelle ligne Attendons simplement ce processus. Ensuite, je vais vous montrer la commande pour l'installer sur macOS ou Linux. Soyons patients. Très bien, bravo. Nous pouvons donc constater que cela a été un succès, et nous avons inventé une nouvelle gamme. Cela signifie donc que notre environnement virtuel a été créé. Maintenant, vous pouvez également aller de l'avant et vérifier votre répertoire dans Explorer et vous pouvez voir que nous avons maintenant ce dossier d'environnement virtuel ici dans mon projet, donc vous pouvez voir qu'il se trouve ici. Et à partir de maintenant, tous nos packages, une fois que nous les aurons activés, notre environnement virtuel y sera stocké. Et cela s'affichera également même si vous utilisez macOS. Pour que macOWS crée un environnement virtuel, vous devez taper PySon three M, VNV VENV Vous voulez juste en ajouter trois à PySon. C'est la différence lorsqu' configure sur un appareil Macaws Vous pouvez continuer et le faire si vous utilisez un macOM. C'est vrai. Clarifions-le. Nous voulons maintenant activer notre environnement virtuel. Sous Windows, vous devez faire référence au nom de votre environnement virtuel dans la deuxième option. J'ai eu VE NV, alors on peut dire backslash, scripts, backslash activate et cela Vous pouvez maintenant voir sur le côté gauche le nom que vous avez donné votre environnement virtuel dans Parens ici et nous pouvons voir qu'il est beau et vert dans notre cas Vous devez donc toujours exécuter vos programmes maintenant. Lorsque vous avez activé votre environnement virtuel, vous pouvez exécuter Pip install ou lancer votre PysonFle Par exemple, disons le diagramme principal de Python Dans ce cas, vous devez toujours le faire dans votre environnement virtuel. OK, maintenant, si vous voulez l' activer sur un appareil macOS, vous allez dire Source VE NV, barre oblique, activer . Il s'agit de la commande, vous devez l' activer sur votre appareil macOS. Source VNV transmet l'épingle, oblique Activate. C'est macOS. C'est vrai. C'est ce que nous avons mis en place maintenant et c'est clair. Si vous souhaitez désactiver votre environnement virtuel pour le désactiver, il en sera de même pour Windows et macOS vous suffit donc de dire «   désactiver » pour les deux. Vous verrez que vous n'en aurez et qu'il n' C'est vrai. Une autre distinction que je tiens à mentionner est que si nous activons notre environnement virtuel, il est donc activé. Et disons que je dis liste PIP maintenant, vous verrez dans l'environnement de votre environnement virtuel que nous n'avons que le PIP, qui est, bien sûr, le package général qui trouvera dans votre environnement virtuel, mais nous n'avons pas les autres packages que vous voyez dans le monde entier, comme je l'ai montré plus tôt, comme je l'ai montré plus tôt, et c'est parce qu'il ne se trouve pas dans le environnement virtuel. C'est pourquoi et comme je l'ai mentionné, tout doit être séparé dans un environnement virtuel pour votre projet et non globalement sur votre machine. Vous pouvez donc voir ici la différence. OK. Nous pouvons le dire clairement maintenant. Très bien, alors allons-y. C'est ainsi que vous devez toujours installer vos packages et bibliothèques. Par exemple, si je souhaite utiliser le package Colama, je peux copier match Alors, Pep, installe Clarama. D'accord. Vous pouvez voir qu'il est en cours d' installation, et voilà. Allons-y et vérifions-le où il est installé. Donc, si je dis Pip LLS, nous pouvons maintenant voir que nous l'avons installé dans notre environnement virtuel Voici donc Clarama. Parfait. Alors maintenant, nous pouvons clarifier les choses. Maintenant, ce que nous voulons faire, c'est aller de l' avant et acquérir les modules Colama Je vais dire de Color Ma. Vous souhaitez importer les quatre classes. Ensuite, je vais dire imprimer, et je vais simplement dire que je veux définir les quatre couleurs, quatre points et le rouge étant l'attribut Je veux que ça passe au rouge. Je vais dire que ce sont des chèques rouges. Je serai ma sortie et la couleur de mon terminal suivra également. Ensuite, dans l'environnement virtuel, je peux simplement dire Pison main point pi Vous pouvez voir que cela fonctionne parfaitement. C'est bon. Voilà. Et nous pouvons le dire clairement. Nous pouvons simplement le rediffuser et dire blanc. Cela nous donnera une valeur par défaut. Et nous y voilà. Très bien, c'est ainsi que nous devrions, pour les meilleures pratiques, continuer à utiliser PySON en utilisant un environnement virtuel lorsque nous installons tous nos packages Veuillez donc noter, encore une fois, que lorsque vous utilisez MacAWS, il y a une légère différence dans la façon dont vous activez et créez votre environnement virtuel, mais tout le reste fonctionnera comme il se doit, en particulier lors de la désactivation de l'environnement virtuel C'est bon, les gars. C'est ainsi que nous pouvons travailler avec nos environnements virtuels. Et lorsque vous avez terminé, vous pouvez simplement le désactiver. Mais n'oubliez pas qu'il faut toujours utiliser les meilleures pratiques pour l'activer, puis l'utiliser à partir de là. Très bien, les gars. C'est donc ça. Tout cela concerne les environnements virtuels. 104. Créer votre propre projet: Bonjour, tout le monde. Bienvenue dans le prochain message qui sera axé sur la création de nos propres projets. Jetons un coup d'œil. Beaucoup. Le moment est venu et maintenant que vous avez acquis toutes ces nouvelles compétences, il est temps pour vous de les utiliser et de créer votre propre projet. La prochaine chose que vous devez faire est la section projets et ressources de ce cours. Pour plus d'informations je vais détailler et rendre dans la section projets et ressources de ce cours. Pour plus d'informations , je vais détailler et exposer certaines idées que vous pouvez créer pour votre projet et également vous donner quelques suggestions sur la manière dont vous pouvez procéder au processus de création du projet. Oh, c'est tout ce que je vais dire pour le moment et bonne chance. Et j'ai hâte de voir vos projets. 105. Merci !: Bonjour, tout le monde. Et bienvenue à la dernière leçon de ce cours où je tiens simplement à vous remercier d' décidé de suivre ce cours. Cela a été un plaisir de vous enseigner et j'espère que vous en avez tiré de précieuses connaissances . Je vous remercie donc beaucoup. Si vous avez un peu de temps, j' apprécierais beaucoup que vous envisagiez de laisser un commentaire. Comme il est toujours positif d'améliorer mes cours et de faire de mon mieux vous avez du temps, je vous en serais très reconnaissante. Si ce n'est pas le cas, tant que vous avez eu une excellente expérience d'apprentissage, et c'est tout pour moi. Bonne chance dans votre parcours de développement, et je vous souhaite bonne chance. Au revoir, et encore merci.