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.