Transcription
1. Promo du cours: Êtes-vous intéressé à la
fois par la cybersécurité et par la programmation Python ? Si la réponse est oui, vous êtes au bon endroit. Bonjour, je m'appelle Alex. Je vous souhaite la bienvenue dans mon cours très spécial de programmation
Python pour la cybersécurité. Il s'agit maintenant d'un cours que j'ai
conçu spécifiquement pour les
professionnels et les passionnés de cybersécurité. Qui aimerait en savoir plus
sur la programmation Python, mais d'une manière
pertinente pour la cybersécurité ? Alors, que
signifie exactement un cours de Python pour la cybersécurité ? Je veux simplement que tout le
code, les programmes
et les outils que nous allons
créer ensemble dans ce cours seront
liés à la cybersécurité. Maintenant, si vous n'avez jamais écrit le monde du code de
votre vie auparavant,
si vous êtes complètement nouveau dans si vous êtes complètement nouveau le monde de la programmation,
ne vous inquiétez pas. Je vais vous apprendre toutes
les bases de la programmation. Et bien sûr, je vais
vous enseigner les bases de Python, telles que les variables
et les types de données, flux de
contrôle et les
boucles, les fonctions, structures de
données, la programmation
orientée objet, gestion de
fichiers, et bien plus encore. En cours de route, nous
allons également créer ensemble différents types d'outils de
cybersécurité, tels qu'un outil de vérification de
la solidité des mots de passe, un outil d'audit et un outil de
cryptage Enfin, pour
le projet de classe, nous allons construire ensemble
un système d'enregistrement des utilisateurs. Je dois également mentionner
que ce cours comprendra des tonnes de quiz, d'
exercices de codage pour vous tester, vous mettre au défi et vous assurer que
vous êtes sur la bonne voie Donc, si vous souhaitez ajouter la compétence Python à votre CV, peut-être que vous essayez d'
obtenir une promotion ou de vous forger un nouveau cheminement de carrière, ce cours de
programmation Python pour la cybersécurité sera parfait pour vous. J'espère donc que vous vous
inscrivez au cours aujourd'hui, et j'espère vous voir
sur les chaises intérieures.
2. Introduction à Python: Bienvenue officiellement dans
les bases de Python
pour les professionnels de la cybersécurité. Je m'appelle Alex, et je
vais être ton instructeur. Le but de cette vidéo est maintenant vous
souhaiter officiellement la bienvenue au cours et de vous donner quelques conseils sur la meilleure
façon de le suivre Tout d'abord, en quoi consiste
exactement ce cours ? Qu'est-ce que j'entends par Python
pour la cybersécurité ? Eh bien, tous les exemples, les tests, les défis, les exercices de codage,
eh bien, plupart d'entre eux seront adaptés aux projets de
cybersécurité pertinents. titre d'exemple, nous allons écrire du code sur la façon de chiffrer les mots
de passe, de hacher les mots de passe, de
créer des comptes utilisateurs, scanner des ports, etc. donc utiliser dans ce cours les types de projets,
d'outils
ou de tâches que vous exécuteriez
normalement dans un véritable
environnement
de cybersécurité Nous allons donc utiliser dans ce cours les types de projets,
d'outils
ou de tâches
que vous exécuteriez
normalement dans un véritable
environnement
de cybersécurité. C'est pourquoi il s'agit d'un cours de Python
pour la cybersécurité. Donc, si vous êtes un
professionnel de la cybersécurité et que vous
souhaitez en apprendre un peu plus
sur Python afin de créer projets ou des outils de cybersécurité pertinents, ce cours sera parfait pour vous. Je dois également mentionner
que si vous n'avez jamais écrit de ligne de code de toute
votre vie, vous arrivez ici
complètement à l'aveuglette. Ne vous inquiétez pas, je
suis là pour vous. Je vais commencer
par les bases, et progressivement nous
allons progresser
vers l'écriture de programmes plus
sophistiqués. Le cours est donc divisé approximativement en une
dizaine de sections différentes. Cela peut changer à mesure que je
modifie le cours et que j'ajoute ou supprime
du contenu. Tout dépend. Mais nous allons recommencer depuis
le début, d'accord ? Qu'est-ce que la programmation ? Nous allons écrire des lignes de code très
simples. Et puis, à la
fin du cours, nous allons créer nous-mêmes un
système d'authentification très puissant ainsi qu'un très,
très puissant vérificateur de mots de passe Ce sera le
projet de ce cours. Et je peux vous garantir que
si vous vous concentrez sur le cours, vous faites tous les
exercices, les tests, je peux vous garantir qu'à
la fin de ce cours, vous aurez les connaissances
nécessaires pour être capable d'
écrire de très bons programmes liés à la cybersécurité. Maintenant, je voudrais mentionner une chose à propos de la programmation en général, surtout si vous n'avez jamais écrit
de ligne de code de toute
votre vie auparavant.
Ça va prendre du temps, d'accord ? Il vous faudra
un certain temps avant devenir vraiment compétent et travailler
couramment avec
un langage de programmation Maintenant, Python, en particulier, est relativement facile par rapport aux autres langages de
programmation existants. Mais même Python
prend du temps, d'accord ? Ne soyez donc pas frustré si au début,
au cours des premières semaines, vous avez encore du mal à écrire quelques lignes de code,
vous commettez des erreurs. C'est tout à fait naturel. Pensez-y comme si vous
essayez d'apprendre un langage verbal réel. Peut-être que vous essayez d'
apprendre à parler, je ne sais pas, le
grec, le finnois ou le
suédois ou quoi que ce soit d'autre. Vous n'allez pas le
récupérer automatiquement et très rapidement, n'est-ce pas ?
Cela va prendre du temps. Cela peut prendre plusieurs
mois,
peut-être même jusqu'à un an. Au début, vous
serez capable de dire des choses
simples comme «
Bonjour ». Je m'appelle Alex. Mais ensuite, pour construire une
phrase complète, cela commencera à
prendre du temps, n'est-ce pas ? Vous devrez déterminer, d'
accord, dans cette langue, l'adjectif vient
avant le pronom
ou si le nom vient avant
le verbe , vous savez, tout
ce Cela prend du temps. Donc,
au tout début, vous ferez de
nombreuses erreurs. Cela peut devenir frustrant, mais n'abandonnez pas, d'accord ? Je vous garantis
que si vous vous concentrez, vous vous entraînez autant que possible. Vous faites les tests et les défis que je vous ai proposés
dans ce cours. Je vous garantis qu'un jour, vous allez vous
réveiller et vous
rendre compte soudainement que je suis en train de devenir assez bon en programmation avec Python. Donc, rester là, ce
n'est qu'une partie du processus. Toute cette frustration
au tout début, ce n'est qu'une partie du processus. Restez là, et je
vous promets que vous serez récompensés. Maintenant, encore quelques points
à mentionner très rapidement, nous allons travailler avec une
plate-forme particulière appelée replet, ne vous inquiétez pas, vous
n'avez pas à payer pour cela C'est totalement gratuit. Je parlerai de Weblte un peu plus tard dans les vidéos suivantes Mais gardez cela à l'esprit.
Si vous travaillez avec un Mac, Linux ou Windows, vous pourrez
suivre ce cours. De plus, si vous
rencontrez des difficultés ou si
quelque chose n'est pas clair, vous pouvez toujours me contacter. Je me ferai un
plaisir de vous aider de toutes les manières possibles. Encore une fois, bienvenue dans les bases
de Python pour les professionnels de
la cybersécurité. J'espère que vous trouverez ce cours très instructif
et très utile. J'espère sincèrement qu' à la
fin de ce cours, vous aurez appris
à programmer avec Python. Merci donc encore une fois de inscription. Et maintenant, commençons.
3. Note importante pour travailler avec Python on: Avant de commencer
le cours proprement dit
, je dois
attirer votre attention sur un point. C'est très, très important. En ce qui concerne l'
application que j'ai utilisée pour créer ce cours
en particulier, cette application
a été rechargée, d'accord ? Replt est cette plate-forme sur
laquelle vous pouvez écrire et travailler avec n'importe quel type de code à partir de n'importe quel langage de
programmation Et bien sûr,
Python fonctionne très,
très bien sur Replate. J'ai donc initialement utilisé replate
pour créer le cours. Ainsi, tout au long de ce cours, tout le code avec lequel je vais
travailler
sera écrit sur la plateforme de
replet J'ai choisi p
parce qu'il répondait à
trois critères principaux. Tout d'abord, son utilisation était
gratuite. La deuxième est qu'il est
assez facile à utiliser. Et puis, troisièmement, c'est une plate-forme assez puissante qui peut exécuter à peu près n'importe
quel type de code. Malheureusement,
au cours des derniers mois, ils ont apporté de
très grands changements à la plate-forme utilisateur. Plus précisément, ils l'ont fait parce qu'ils voulaient
intégrer l' IA, ce qui
est compréhensible. Bien sûr, nous vivons
à l'ère de l'IA, et toutes ces
plateformes
veulent paraître
très modernes et, vous savez,
la meilleure solution et l'un
des moyens d'y parvenir sont
simplement d'intégrer l' IA, ce qui est très bien. Mais le but
de ce cours est de vous enseigner les fondamentaux
et les bases de Python. Nous n'avons donc pas encore besoin de l'aide de l'IA. L'IA est fantastique une fois que
vous avez déjà
appris à travailler avec Python. Et puis, bien sûr, vous
pouvez utiliser l'IA pour vous aider. Mais comme nous apprenons Python pour la toute première fois
en tant que débutant complet, cela ne marchera pas pour nous. Donc, ce que j'ai fait, c'est
que je vais vous montrer deux autres alternatives pour exécuter votre code Python
sur votre ordinateur. Encore une fois, ne vous inquiétez pas, comme je l'ai dit plus tôt, dans
ce cours, tout le code que j'écris
sera sur plt, mais vous allez écrire
votre propre code soit sur
Thonny, soit sur du code Visual Studio C'est le code qui
compte, d'accord ? La plateforme sur laquelle
vous écrivez le code n'est pas la chose la plus
importante, d'accord ? Il existe tellement d'autres
plateformes. Le plus important,
c'est le code. Donc, au lieu de plt, d'accord, je vais vous montrer
comment travailler avec Thonny, ce qui serait en fait l'option que je vous
recommande car elle est extrêmement facile à installer et à utiliser Il est également gratuit, et
il est disponible pour Mac, pour Linux pour Windows. Je vais donc vous montrer comment
installer puis
travailler avec Thonny Maintenant, si pour une raison ou une autre, Thonny ne fonctionne pas pour
vous, vous n'aimez pas Thonny,
je vais vous proposer une alternative qui sera
bien sûr Visual Studio Code, qui est bien plus
puissant que Thonny, mais aussi un peu Maintenant, juste pour vous faire
savoir, pour travailler avec Visual Studio Code, si vous voulez suivre cette
voie, nous devrons d'
abord
installer Python avant de pouvoir travailler
avec Visual Studio Code. Si vous travaillez avec Thonny, vous n'avez pas besoin d'installer
Python sur votre ordinateur. Encore une fois, ne vous inquiétez pas. Je vais tout
vous expliquer, d'accord ? Tout d'abord, dans la vidéo suivante, je vais vous montrer comment
installer et travailler avec Thonny Ensuite, la
vidéo suivante
expliquera comment installer et
utiliser
Visual Studio Code. Bien entendu, je vais également vous montrer comment télécharger et installer
Python sur votre ordinateur. Je m'excuse donc pour
cette petite confusion. Encore une fois, je ne savais pas quand j'ai créé ce
cours au départ. Je ne savais pas que nous allions
procéder à une refonte complète de l'interface utilisateur avec le plus
grand nombre de
personnes procéder à une refonte complète de l'interface utilisateur avec le plus
grand nombre de Je m'en excuse donc. Mais j'espère que, si je
vous donne des alternatives, deux alternatives différentes
compenseront le problème. Donc, si vous avez
des questions ou des préoccupations, hésitez pas à me contacter. Je me ferai un
plaisir de vous aider. Vous pouvez soit utiliser la fonction de
messagerie la plateforme
sur laquelle
vous suivez ce cours, soit
me contacter à Alex sur labsyba.com C'est mon e-mail.
Vous pouvez me contacter pour me demander de l'
aide ou des questions, part de vos préoccupations, de
tout ce
que vous voulez savoir ou pour quoi vous
avez besoin d'aide, mais il vous fera plaisir
de vous aider. Je vous remercie donc de l'
attention que vous portez à cette question. Et maintenant, laissez-moi
vous montrer comment télécharger,
installer et utiliser
l'application Thonny
4. Comment utiliser Tonny: Je vais donc vous montrer comment
installer et utiliser Thonny. C'est probablement l'interface utilisateur la
plus simple, et elle est parfaite, surtout si vous débutez
dans le monde de Python. Donc, tout ce que vous avez à faire est d'
aller sur thorny.org, non ? Et puis, ici,
vous pouvez télécharger la version pour le
système ouvert sur lequel vous travaillez. Nous avons pour Windows,
nous avons pour Mac, Linux. Assurez-vous donc d'
installer
ou de télécharger la
bonne version. J'ai déjà téléchargé mien, alors laissez-moi
venir ici et je vais ouvrir l'
application pour qu'elle fonctionne, d'accord ? Et je vais dire
installer pour moi uniquement, puis cliquer sur Suivant. J'accepte le contrat, cliquez sur suivant, cliquez sur suivant. Nous pouvons créer une icône de bureau, cliquer sur Suivant, Installer. Alors voilà.
Et c'est simplement comme ça que vous pouvez installer Thonny sur votre ordinateur. Maintenant, laissez-moi vous montrer exactement comment utiliser
cette application. C'est très, très facile. Attendons qu'il soit installé.
OK, c'est installé. Je vais cliquer sur Terminer. Maintenant, je vais
lancer le programme. Et c'est vrai, donc je
suis sur mon bureau. C'est le raccourci. Je vais donc aller de l'
avant et diriger Thonny. Et ici, bien sûr, vous pouvez modifier la langue, les paramètres initiaux, etc. Je vais juste les garder tels
quels. Cliquez sur Allons-y. Et voilà. Voici donc essentiellement
l'interface pour Thonny. Encore une fois, c'est
très, très facile. Maintenant, à titre d'exemple très, très rapide, permettez-moi de vous
montrer comment cela fonctionnerait. Je vais continuer, d'accord, et taper en caractères imprimés entre crochets, puis un programme très,
très simple,
bonjour tout le monde. D'accord. Et maintenant, je vais
exécuter ce
code en particulier en cliquant sur le bouton Exécuter
ici ou vous pouvez appuyer sur la touche F cinq de votre clavier. Je
vais cliquer là-dedans. Et puis ici,
vous pouvez voir que c' est le résultat de mon code. Vous pouvez donc, bien entendu, modifier l'apparence de l'
interface. Vous pouvez faire glisser la fenêtre du shell un peu plus haut si vous le souhaitez. Et vous pouvez également venir
ici pour les outils. OK, tu peux aller dans les options. Et puis, si vous le vouliez, vous pourriez accéder au thème et à la police, et vous pourriez changer
de thème, n'est-ce pas ? Donc, personnellement, j'aime toujours
opter pour le thème sombre. Mais bien sûr, c'est
totalement subjectif. Si vous préférez le thème de la lumière,
vous pouvez vous en tenir à cela. Mais je vais opter pour
le thème sombre. Et bien sûr, vous pouvez
également modifier la taille de police, la famille de polices de votre texte. Si tu préfères, tu peux
le faire ici, et c'est tout. Donc,
si je voulais enregistrer
ce fichier en particulier ,
il me suffit de cliquer sur le
bouton Enregistrer ici. Ensuite,
il me
suffit de taper le
nom de ce fichier, et je vais l'appeler
un exemple, d'accord ? Et c'est tout.
Il va donc l'enregistrer automatiquement sous forme de fichier Python. Et laissez-moi l'enregistrer
sur mon bureau. Et je vais continuer
tout de suite, cliquez sur Enregistrer. Et voilà, l'exemple sur
PY est maintenant le fichier Python. Et bien sûr, je pourrais
également créer un nouveau fichier en cliquant simplement sur le
bouton « Nouveau » de l'éditeur. Et
là encore, j'ai une nouvelle fenêtre pour le nouveau code, et c'est à peu près tout. Il s'agit donc d'une interface très, très simple pour
exécuter du code Python. Une question que vous
pourriez vous poser ici
est la suivante : est-il possible de placer la fenêtre shell sur
le côté droit de la fenêtre principale ? Malheureusement, au moment où
j'ai enregistré cette vidéo, non, ce n'est pas possible. Je dirais donc que c'est probablement
le seul inconvénient. D'accord, mais ce n'est
pas vraiment un gros problème. Thonny, encore une fois, est extrêmement facile. Je vais exécuter la grande
majorité du code Python, et vous ne devriez pas
avoir de problèmes avec cette application
en particulier. C'est donc à peu près ainsi l'on fonctionne avec l'application
Thonny Merci d'avoir regardé. Je te
verrai au prochain cours.
5. Comment travailler avec le code Visual Studio: Montrez comment installer
le code Visual Studio. Maintenant, le truc avec
Visual Studio Code ,
c'est que
pour pouvoir l'utiliser, vous devez d'abord installer Python sur votre ordinateur. Donc, tout d'abord,
allez sur python.org, et vous pouvez vous rendre ici
pour télécharger et trouver la version
pour votre ordinateur Je suis sous Windows, donc je vais juste utiliser
le Python 3.140 Et je vais commencer tout
de suite et simplement enregistrer l'application. Il est installé. Alors ici, je vais l'ouvrir
et simplement l'installer. Maintenant, c'est très, très, très
important, d'accord ? Dans cette première fenêtre, veuillez cocher ces
deux cases, d'accord ? Utilisez donc les privilèges d'administrateur
lors de l'installation de pi point X. Et surtout le chemin
add python.x2 OK ? Vous devez
cocher ces deux cases, et maintenant je vais
cliquer sur Installer maintenant,
puis sur S, et c'est à
peu près tout ce que vous devez faire. Lors de l'installation de Python
sur votre ordinateur. Je vais juste
attendre que cela s'installe. Ça ne devrait pas prendre trop de
temps, et voilà. OK, je vais donc
cliquer sur Fermer. Vous pouvez maintenant accéder au code de Visual Studio sur
Visual studio.com Vous trouverez ici les différentes versions
de Visual Studio Code. Nous avons pour Windows, nous avons pour Mac. Et bien sûr, nous en
avons aussi pour Linux. Maintenant, j'ai déjà téléchargé l'application Visual
Studio Code, elle se trouve
donc ici. Je vais donc commencer
tout de suite et l'installer. Je vais donc
accepter l'accord. Cliquez sur Suivant et, bien sûr, créez une icône de bureau. Je vais cocher cette
case, cliquer sur Suivant, puis sur Installer.
Et voilà. Encore une fois, l'installation ne devrait pas prendre trop de
temps, généralement
quelques secondes. Et voilà, OK, donc je vais y aller tout de
suite, cliquer sur Terminer, et automatiquement, il
devrait se lancer ici. OK, donc c'est peut-être la
toute première chose que vous verrez. Si vous voyez d'autres fenêtres, je pense que dans la plupart des cas,
c'est parce que j'ai déjà installé Visual
Studio Code auparavant. Normalement, lorsque vous
l'installez pour la
toute première fois, vous devriez voir
une fenêtre AI ou quelque chose comme ça.
Il suffit de le fermer. Si vous avez une autre
fenêtre ici, vous pouvez simplement cliquer sur
Don ou Sortir de la fenêtre, n'est-ce C'est tout simplement ce que
nous recherchons. On cherche, genre, une fenêtre
blanche ici. OK ? C'est le point
de départ. Donc, la première
chose à faire est passer ici
à vos extensions, et vous voulez installer les extensions Python qui
se trouveront ici, Python. Je vais donc continuer
tout de suite, cliquez sur Installer. Et voilà. Il
va donc être installé. Cela ne devrait pas prendre trop de temps, juste quelques secondes,
et voilà. Il a donc été
installé avec succès. Encore une fois, je
vais continuer tout de suite, fermer cette fenêtre, non ? Et maintenant, si je
voulais exécuter un code Python, tout ce que je veux faire est d'
aller ici dans File. OK, je peux cliquer sur Nouveau fichier. Et comme nous venons d'
installer l'extension Python, nous avons maintenant le lien vers le
fichier Python ici. Je vais donc cliquer dessus,
et maintenant vérifier ça, d'accord ? Je vais taper le code d'impression
très simple. Bonjour tout le monde. OK ? Maintenant, je vais continuer et cliquer sur ce
bouton pour lancer le fichier. Cependant, comme c'est la toute première
fois que nous exécutons ce fichier, nous ne l'avons pas encore
enregistré. Nous devons d'
abord le sauvegarder, d'accord ? Nous devons lui donner un nom. Je vais donc appeler celui-ci simplement
un test, d'accord ? Pour tester, cliquez sur Enregistrer. Et maintenant, vous pouvez voir que
c'est le point de test PY. OK, donc ici en bas, non ? C'est le terminal et vous pourriez avoir une sorte de
message d'erreur vous disant
: « Oh, nous ne pouvons pas ouvrir ce fichier, vous savez, peu importe ». C'est bon. Il vous suffit de revenir en arrière et de
cliquer sur le fichier Run Python. Et maintenant, vous pouvez voir
que cela fonctionne réellement. Il fonctionne. Ici vous
pouvez voir Hello World. En fait, permettez-moi d' ajouter une autre ligne
juste pour le prouver. Je vais donc imprimer bonjour
et je vais dire que j'aime le code VS. Bien, allons-y,
relançons le programme. Et maintenant, vous pouvez
voir qu'il est écrit « Bonjour tout le monde », j'aime le code VS. Donc, là-haut, vous aurez votre fenêtre principale dans laquelle vous
allez écrire
votre code, votre interface d'éditeur,
puis votre terminal. Cependant, nous pouvons modifier l'
apparence de l'interface. Une chose que j'aime
faire d'habitude, d'accord, serait d'aller ici, afin que nous puissions activer/désactiver la barre latérale
principale Je vais le désactiver, supprimer la barre latérale principale, pour que l'interface
utilisateur occupe maintenant toute la fenêtre Cependant, juste en bas
du terminal, je vais cliquer avec le bouton droit de la souris
et dire déplacer vers, puis je vais le déplacer
vers la barre latérale secondaire. C'est juste ma préférence
personnelle. J'aime avoir
le terminal à droite
de ma fenêtre
principale, d'accord ? Cependant, bien sûr, si
vous préférez l'avoir sous votre fenêtre principale,
c'est parfaitement bien. C'est totalement subjectif. Mais c'est comme ça que je l'aime. Alors voilà.
Voici comment vous pouvez exécuter votre code à l'aide de VS Studio. Encore une fois, vous aurez
des options ici si vous le souhaitez. Vous pouvez accéder ici à
Fichier, créer un nouveau fichier. Vous pouvez ouvrir n'importe quel
fichier Python que vous avez enregistré. Vous pouvez accéder aux préférences
ici. Vous pouvez passer ici aux thèmes, puis bien sûr, vous pouvez
changer le thème des couleurs. Tu peux choisir Kimb Dark ou, tu sais, changer l'apparence Cela dépend entièrement de vous. Mais c'est ainsi
que vous pouvez travailler avec le VS dans l'application Visual
Studio Code. C'est un peu plus
compliqué que Thonny, mais il est bien sûr
plus puissant C'est donc à
vous de choisir l'une de ces deux applications
que vous préférez Vous pouvez choisir
celle avec laquelle vous souhaitez travailler. Merci donc d'avoir regardé, et je vous
verrai au prochain cours.
6. Hello World: OK, maintenant
que Thonny est prêt, ou peut-être que vous utilisez
Visual Studio Code.
Peu importe. Il est temps pour nous d'écrire
notre tout premier programme. Et ce programme sera un programme très simple qui
imprimera les mots « Bonjour tout le monde ». D'accord ? Alors regarde
ça, d'accord ? Je vais dire imprimer, espace puis crochets entre guillemets
doubles. Bonjour tout le monde. OK. Ensuite, je vais
cliquer sur le bouton Exécuter. Et voilà Hello World. Tout, tout premier
programme avec Python. Maintenant, je vais vous
expliquer tout cela. voyez, en Python ou, en fait, dans n'importe quel langage de
programmation, vous
aurez toujours des fonctions intégrées qui feront quelque chose pour vous Dans ce cas, print est une fonction intégrée qui a déjà été codée en Python Donc, lorsque vous utilisez cette fonction
print, Python sait que,
oh, d'accord, vous voulez
afficher quelque chose, n'est-ce pas ? C'est donc ce que fait Print. Et maintenant, chaque fois que vous voulez imprimer du texte, vous devez toujours le mettre entre
guillemets doubles. Eh bien, en fait, il arrive parfois que vous n'ayez pas
nécessairement besoin de
guillemets doubles. Nous allons y arriver. Ne t'inquiète pas. Mais dans la plupart des cas, pour faire preuve de prudence,
vous devez placer le texte
entre guillemets doubles. Maintenant, si je devais supprimer les guillemets
et exécuter le programme, vous voyez
maintenant que nous
finissons par avoir un problème. C'est une erreur de syntaxe
car à l'heure actuelle, Python ne comprend pas
ce qui se passe. Où sont les
guillemets ? De plus, vous devez avoir
votre texte entre crochets. Donc, si je devais ajouter les
guillemets doubles ici, sans les crochets,
essayons de relancer le programme
et de voir ce qui se passe. Et puis, encore une fois, vous
pouvez voir qu'en ce moment, cela indique toujours qu'il
manque la parenthèse Ainsi, lorsqu'il s'agit d'exécuter
certains types de fonctions, vous devez suivre certaines règles
. Ainsi, dans le cas de
l'impression de texte, vous devez les placer
entre parenthèses et entre guillemets
doubles Donc, encore une fois, je vais lancer le programme, et le voilà. Bonjour tout le monde fonctionne. Je vais commencer
tout de suite et fermer l'assistant. Et voilà. OK. Passons à autre chose. Rendons cela un
peu plus intéressant. Et si je voulais
imprimer Hello World, disons, cinq fois, non ? Maintenant, évidemment, je pourrais
simplement copier, d'accord ? Nouvelle ligne de texte,
collez, collez, cinq fois, d'accord ? Maintenant, si je participais au
programme, voilà. Bonjour tout le monde,
bonjour le monde, bonjour
le monde, bonjour le monde. Mais regarde ça. Laisse-moi plutôt
essayer d'imprimer deux fois. Et au lieu de
les placer sur des lignes différentes, laissez-moi les mettre exactement sur
la même ligne. Nous avons donc imprimé Hello World, imprimé Hello World, lancé, et maintenant nous avons un problème. Le problème que nous avons ici est le suivant : « Hé, qu'est-ce qui se passe ? Python ne
comprend pas quand vous avez plusieurs fonctions exactement
sur la même ligne. Et c'est en quelque sorte universel avec tous les langages
de programmation, d'accord ? Chaque fois que vous appelez
plusieurs fonctions, vous devez les placer
sur des lignes distinctes. C'est le
moyen idéal pour écrire du code. Parce que si j'y
pense, d'accord, si vous démarrez ou si le programme vous
autorisait, le langage vous
permettait d'exécuter
plusieurs fonctions exactement
sur les mêmes
lignes et tout ça. Votre code peut
finir par devenir très, très difficile à lire, en particulier pour les autres développeurs. Ainsi, lorsque vous l'avez
sur des lignes séparées, il devient plus propre, plus présentable Et surtout, votre
langage de programmation, dans ce cas
Python, comprendra ce qu'ils essaient de faire. OK, il y a une autre chose dont
tu dois être consciente. Maintenant, je vais rendre les choses un
peu compliquées. Ce que je vais faire
ici, c'est
créer ce que l'on appelle une variable, d'accord ? Dans ce cas, je vais
appeler ma variable text. Égal. Et maintenant, dans
ce cas, bonjour tout le monde. Le texte est donc une
variable. Une variable. Vous pouvez considérer une variable comme quelque
chose qui
stockera un
type particulier de valeur, d'accord ? Il n'est pas toujours nécessaire
que ce soit du texte, il peut s'agir de chiffres.
Cela peut être n'importe quoi. Dans ce cas, pour le
moment, c'est un texto. C'est un bout de texte
qui dit bonjour à tout le monde. Le texte variable a donc
la valeur hello world. Maintenant, si je
venais ici et que je disais, imprimez le texte entre parenthèses Que pensez-vous qu'
il va se passer ? Eh bien, ça va
dire bonjour tout le monde, parce que nous avons assigné
à
la variable text la valeur hello world. Mais remarquez que nous ne l'avions pas
entre guillemets. C'est parce que nous disons à
Python que, Hey, Python, nous voulons que vous imprimiez la
valeur du texte variable. Si je suis venu ici et que j'ai plutôt
attribué
les guillemets doubles au texte, que
pensez-vous qu'il
va imprimer ? Eh bien, il va
imprimer du texte. OK ? Ainsi, chaque fois que vous souhaitez imprimer les
valeurs de vos variables, vous n'avez pas besoin de
les encapsuler entre guillemets doubles Je vais donc y aller. heure actuelle, supprimez
les guillemets, relancez le programme et
laissez-le fonctionner Hello world. Il est donc évident que nous
allons
approfondir ces fonctions variables
et
autres choses de ce genre Mais je voulais juste
vous donner un tout petit aperçu
de ce à quoi vous attendre et, bien
sûr, vous permettre d'écrire votre tout premier
programme en Python fur et à mesure que nous progresserons dans le cours, vous commencerez à en apprendre
un peu plus sur les règles de programmation
Python, lesquelles vous devez encapsuler votre texte
entre guillemets, sur les
cas dans lesquels vous devez utiliser des
guillemets, etc. Nous allons aller
beaucoup plus loin. Mais c'est tout pour écrire
notre tout premier programme. Merci d'avoir regardé. Je te
verrai au prochain cours.
7. Introduction à la section Types de données: Bienvenue officiellement dans la
toute première section principale du
cours de Python lui-même. Et ici, nous
allons
parler de variables et de types de données. Écoutez, je vous garantis que
quel que soit le langage de programmation que
vous essayez d'apprendre, ce sera généralement la toute première section, car au cœur de chaque programme, qu'il
soit basique
ou avancé, il tournera
autour de certaines données, qu'il
s'agisse de chaînes
ou d'entiers, vous allez avoir des données
impliquées dans chaque Dans cette section,
nous allons donc
parler des différents
types de données disponibles. Nous allons également parler des opérations
d'intimidation. Supposons, par exemple, que
vous vouliez dire que quelque chose n'est pas vrai ou quelque chose est faux,
des choses comme ça. Et puis, bien sûr, les opérateurs
arithmétiques, d'accord ? Comment additionner,
soustraire, multiplier, vider en Python, mathématiques de base, nous allons apprendre tout
cela dans cette section Ensuite, bien sûr, à la
fin de la section, il y aura
un exercice de codage que je voudrais que vous essayiez. Donne-le à tous. Ne t'inquiète pas. Si vous ne parvenez pas à le résoudre, je vous
fournirai également la solution. Félicitations.
Nous sommes sur le point de commencer notre voyage dans le monde
de Python. Commençons.
8. Travailler avec des cordes: Eh bien, bon retour.
Passons maintenant un peu plus de temps à
parler des chaînes de caractères. Jusqu'à présent, nous avons travaillé avec
la chaîne hello world, et j'ai dit que chaque fois que
vous enveloppez votre texte, vous devez généralement utiliser des guillemets
doubles. Cependant, ce n'est pas toujours vrai. Par défaut, le texte
est placé
entre guillemets doubles. Cependant, vous pouvez
réellement vous en tirer en utilisant des guillemets simples. Alors permettez-moi d'aller ici tout de
suite et de le modifier. J'utilise des
guillemets simples. J'appuie sur Exécuter, et vous pouvez voir
que cela fonctionne parfaitement. Il n'est donc pas toujours nécessaire d'
utiliser des guillemets doubles. La question naturelle
que vous pourriez vous poser ici est, d'accord, alors quand utilisons-nous le single ? Quand utilise-t-on le double ? Est-ce que c'est vraiment important ?
Dans la plupart des cas, cela dépend vraiment de
vos préférences personnelles, que vous
soyez un utilisateur de devis
unique
ou un utilisateur de devis doubles. Par défaut, la plupart des
programmeurs ont tendance à utiliser les guillemets doubles Et il existe des cas où
vous pourriez même utiliser les deux dans
la même chaîne. Par exemple, et
si je voulais dire quelque chose comme s'il avait
dit « bonjour », non ? Alors permettez-moi d'aller
ici tout de suite et dire qu'il a dit Kremer Et je vais te dire bonjour. Comment pourrions-nous l'
imprimer avec succès ? Parce que si nous cliquons sur
Exécuter maintenant, cela va nous donner
un message d'erreur, d'accord ? Nous devons mettre ces textes, ces lettres
entre guillemets. Mais comment s'y prendre ? Eh bien, nous pourrions le faire. Je pourrais aller ici tout de suite, ajouter un seul arc de guillemets. Oh, désolée, il doit être à l'intérieur. Donc, les guillemets simples
sont d'abord, d'accord ? Et maintenant, pour ce qui est des
mots qu'il a dit bonjour, je vais utiliser les
guillemets
doubles pour mettre
exactement le mot bonjour lui-même. Et puis chaque fois que c'est assez courant dans les langages
de programmation, d'accord ? Chaque fois que vous avez un guillemet
d'ouverture, vous souhaitez également avoir un
guillemet de fermeture. Je vais donc ajouter le
guillemet simple ici. Et maintenant, si je clique sur Exécuter, vous pouvez voir maintenant
que cela fonctionne réellement. Nous pourrions faire exactement le contraire. Je pourrais commencer par un
double guillemet, d'accord ? Et puis je vais
venir ici tout de suite, bonjour
» entre guillemets
simples puis sur les guillemets
doubles fermants, courir, et vous verrez que cela
fonctionne parfaitement bien. Mais que se passerait-il si je voulais de
très longues cordes, non ? J'ai donc mon Ipsum
generto ici. Alors laisse-moi juste prendre ce premier
paragraphe ici, d'accord ? Copie, viens ici. Maintenant, je pourrais tout emballer aussi grand que possible à l'intérieur du maximum entre guillemets
doubles, cliquer sur Exécuter, et tout fonctionnera parfaitement bien. Mais que se passerait-il si je
voulais vraiment créer de l'espace, et donc, par exemple,
avoir de l'espace ici ? Je viens ici maintenant
et j'ajoute de l'espace, non ? Maintenant, tout est un peu
désorganisé. Je clique sur Exécuter, et maintenant nous allons avoir un message en forme de flèche. Cela ne fonctionne
plus car Python ne peut pas comprendre
l'espace entre les lignes de texte. C'est donc là que les
guillemets triples entreront en jeu. Alors regarde ça, d'accord. Je
vais en ajouter un, deux, trois. D'accord. Oups, désolée pour
ça. Ça fait trois. D'accord. Et bien sûr, je vais venir
ici tout de suite et ajouter les trois derniers
guillemets. Et maintenant, si je clique sur Exécuter et que le tour est joué, vous pouvez
voir que cela fonctionne réellement. Il existe donc certains cas
où vous souhaiterez peut-être utiliser des guillemets
triples si vous avez un
type d'espacement très spécifique Il est également généralement
utilisé pour, par exemple, la documentation, l'écriture
de lignes de code, des choses comme ça. C'est là que vous
utiliseriez le triple guillemet. Maintenant, nous pouvons également combiner des
chaînes de caractères. C'est bon. Donc, à titre d'exemple,
laissez-moi vous montrer rapidement, laissez-moi créer une nouvelle variable
ici et dire X, d'accord ? Égale, puis entre guillemets
doubles, je vais dire bonjour. D'accord ? Ensuite, je pourrais créer une
deuxième variable Y égale le monde. D'accord. Et maintenant, si je voulais
combiner les deux, je pourrais dire imprimer entre
parenthèses,
très simplement, X plus Y.
Maintenant, si je clique sur
Exécuter, c'est parti Bonjour tout le monde. Mais si nous voulions ajouter un espace
entre hello et world, tout ce que je peux faire, c'est soit ajouter l'espace
dans Hello ici. J'ai donc ajouté l'espace
après le O, cliquez sur Exécuter. Vous avez Hello World,
ou je pourrais faire le contraire en ajoutant simplement un
espace au début de W, cliquant sur Exécuter, et voilà, vous obtenez exactement le même résultat. Maintenant, rendons cela un
peu
plus sophistiqué. Ce programme est juste un
peu plus sophistiqué. Je vais vous présenter une nouvelle fonction appelée input. Jusqu'à présent, nous avons
travaillé avec l'impression. Permettez-moi maintenant de vous
présenter votre contribution. Donc, la saisie est essentiellement
une fonction qui
demandera à l'utilisateur de fournir
quelque chose, d'accord ? Je vais donc parler d'entrée. Et puis, entre parenthèses, je vais dire
quelque chose, s'il vous plaît. D'accord. Donc, si je cours, oh,
désolée pour ça. Si je lance la commande, vous pouvez dire tout de suite
que vous dites quelque chose, s'il vous plaît,
et maintenant si je dis, Bonjour, je m'appelle Alex et j'appuie sur Entrée,
rien ne se passe, d'accord ? Parce que notre programme ne fait que
demander à l'utilisateur de dire
quelque chose, et c'est tout. Cela ne changera
rien à ce que l'utilisateur a réellement dit. Donc, pour que cela soit
un peu plus avancé, je vais y retourner. D'accord. Supprimons cela et
créons une nouvelle variable. Je parlerai de la réponse de l'utilisateur. Ce sera le
nom de ma variable. Et au fait, permettez-moi de
dire quelque chose très rapidement. C'est une bonne étiquette, une bonne étiquette
de programmation. Chaque fois que vous créez
des noms pour vos variables ou vos fonctions et que vous
combinez deux mots, dans ce cas, en ce moment, je
combine utilisateur et réponse. Le deuxième mot, la première lettre,
doit généralement être en majuscules. C'est pourquoi le R pour réponse est ici en majuscule.
Je dis juste, d'accord ? Alors gardez cela à l'esprit. Donc, utilisez une réponse égale, d'accord ? Et je vais parler de contribution. Et maintenant, entre parenthèses, je vais dire
quelque chose, s'il vous plaît. D'accord ? Cependant, je vais
venir ici. Je vais maintenant utiliser la fonction
d'impression entre crochets, je vais dire
réponse de l'utilisateur. C'est ça. C'est assez simple.
Je vais commencer tout de suite,
exécuter la commande. Il dit, dites quelque chose s'il vous plaît, donc je vais dire que je
m'appelle Alex. Appuyez sur Entrée, et c'est parti. Maintenant, ça veut dire que
je m'appelle Alex. vous avons donc présenté avec succès une nouvelle fonction,
à savoir les entrées qui demanderont à
l'utilisateur de fournir quelque chose. Nous avons expliqué comment utiliser
le maximum entre guillemets simples,
le
maximum entre guillemets doubles,
ainsi que les guillemets triples. Je vous ai également montré comment combiner des
chaînes
en créant plusieurs variables
et en utilisant simplement l'opérateur plus
pour les combiner. Donc, petit à petit,
nous maîtrisons mieux en mieux Python et
les chaînes de caractères. Merci donc d'avoir regardé
la vidéo, et bien sûr, je vous verrai
au prochain cours.
9. Autres types de variables: Examinons maintenant une
autre forme de type de données. Jusqu'à présent, nous avons travaillé
avec des cordes, non ? Mais
examinons maintenant les virgules flottantes et les nombres entiers, également
appelés simplement nombres. C'est bon. Alors allons-y,
supprimons ce programme, et permettez-moi tout d'abord de créer une variable
X égale à quatre. OK ? Et alors Y
est égal, disons, à 6,0. Maintenant, la différence évidente
entre les deux est que X n'a
pas de point décimal Pourquoi Y a-t-il le
6.0 ? D'accord ? En fait, permettez-moi de rendre cela
un peu plus raisonnable. Passons à la version 6.3, juste à
titre d'exemple, non ? Donc, y, dans ce cas, serait une virgule flottante car il a
une virgule décimale, tandis que quatre sera le nombre entier Donc, si je continuais tout de
suite, que j'imprimais X plus Y et que je lançais mon programme. Vous pouvez voir que nous allons
obtenir le numéro 10.3. C'est assez simple, non ? Cependant, nous pourrions faire certaines choses comme
, par exemple, si vous vouliez convertir 10,3
en tant que nombre flottant, si vous vouliez
le convertir en entier, nous pourrions simplement
utiliser une nouvelle fonction
appelée fonction entier Donc, ce que je vais
faire ici c'est à l'intérieur de ce premier support, je vais ouvrir un autre
support et ajouter INT. D'accord, donc INT, désolé.
Je suis désolée pour ça. SI NON. OK, donc INT est une fonction qui
représente un entier, non ? Et bien sûr, puisque nous avons
ouvert la fonction entière, nous allons également devoir la fermer. Permettez-moi donc d'ajouter le support
de fermeture. Et maintenant, si je
devais exécuter mon programme, vous pouvez voir qu'il a
converti 10,3 en dix à cause de la
fonction INT integer C'est la première
fois que nous ajoutons une fonction à l'intérieur d'
une autre fonction. Nous avons d'abord la fonction
d'impression, puis à l'intérieur de
la fonction d'impression, nous avons la fonction entier. C'est donc une
chose dont vous devez être conscient lorsqu'il s'agit
de programmer en Python. Vous pouvez avoir une fonction à l'intérieur d'une autre
fonction, et en fait, vous pouvez avoir trois
ou quatre fonctions les unes
au lieu des autres, condition
que la
hiérarchie soit correcte. Dans ce cas, pour le
moment, je ne peux pas faire entrer
la fonction entière en premier puis l'imprimer.
En fait, tu sais quoi ? Essayons-le, d'accord ? Pourquoi pas ? Je vais y aller tout de
suite. Imprimez, d'accord ? Et ensuite INT, d'accord,
que va-t-il se passer ? Que va-t-il se passer ?
Je vais cliquer sur Exécuter. Et voilà. Donc, même si c'est plutôt bien,
ça n'a pas vraiment marché. Je veux dire, nous avons obtenu le X plus Y. La bonne
réponse est 10,3 Mais malheureusement, il n'a pas converti les résultats
en un entier réel. Python a donc ignoré
la toute première partie, qui est la fonction entière puis a
simplement dit :
OK, imprime X plus Y. Et puis, bien sûr,
il nous a dit qu' il y avait une sorte de
problème de syntaxe Il faut donc faire attention
chaque fois que vous essayez d' ajouter des fonctions à l'intérieur
d'une autre fonction, il doit y avoir une hiérarchie
et elle doit être correcte. Inversons donc cette course
à nouveau, et voilà. De même, si je voulais convertir les résultats
en un nombre flottant, je pourrais le faire également. Donc, par exemple, n'est-ce pas, si je change le Y ici en cinq, n'est-ce pas ? Mais au lieu de neuf, ce qui serait la réponse
évidente ici, je voulais que ce soit 9.0. Je vais changer la
fonction entière ici en float. C'est donc le contraire, non ? Alors jetez un œil à ceci. Je vais cliquer sur
Exécuter, et voilà. Il est désormais 9.0. Vous savez, il y a de fortes
chances que vous n'ayez pas besoin d' utiliser la
fonction integer ou float dans vos programmes. Tout dépend du type
de programme que vous allez créer. Néanmoins,
il est important de
comprendre ces concepts
que vous pouvez ajouter. Vous pouvez convertir un type de
données en un autre, et vous pouvez également avoir une fonction dans une autre. Merci donc d'avoir
regardé. Je te verrai au prochain cours.
10. Opérateurs booléens à jour: Un autre type de données que vous
devez connaître est celui des opérations Bian ou
des valeurs booléennes En général, il y
en aura deux. Vous avez le vrai ou le faux, et cela dépendra en grande partie du résultat de certains
types d'opérations. Maintenant, par exemple, ici, j'ai la variable
X égale cinq, la variable Y égale dix. Maintenant, j'ai ma toute
première fonction d'impression qui dit
que X est égal à Y. La seconde est que X est inférieur à Y. Donc, avec les bollans, vous avez
soit vrai, soit faux À votre
avis, quelle serait la réponse pour la toute première impression ? Eh bien, la réponse serait
évidemment fausse parce que cinq
n'est pas égal à dix, tandis que la seconde devrait
être vraie parce que X est, en fait, inférieur à Y. Donc, si je lance
ce programme, vous pouvez voir que nous
avons le faux et le vrai ce que nous appelons les valeurs
de Bollan
ou les opérateurs de Bollan, et nous les utilisons généralement
chaque fois que nous essayons de
créer des boucles ou des instructions conditionnelles créer des boucles Ne t'inquiète pas. Nous allons en parler dans la section suivante. Mais en général, nous pouvons
vouloir écrire un programme
qui vérifie si quelque chose
s'est produit, puis si cela s'
est produit, c'est-à-dire, si c'est vrai, alors faites quelque chose. Ou nous pouvons aussi dire, si cela
ne s'est pas produit, donc, si c'est faux, alors faites autre chose. Nous allons donc utiliser les opérateurs et les valeurs
bullan un peu plus tard,
mais le truc avec les
valeurs et les opérations
booléennes, c'
est qu'elles fonctionnent avec opérateurs de comparaison tels your equal to less than
is equal to », Mais nous avons également ce que nous
appelons les opérateurs logiques. Les opérateurs logiques
seraient des choses comme N ou non. Donc, à titre d'exemple, permettez-moi de vous donner un autre
programme ici. Permettez-moi tout d'abord de
dire que A est égal à vrai. OK ? Et alors B est égal à faux. Au fait, veuillez noter que le vrai et le faux ne sont
pas des chaînes de caractères. Et ce ne sont pas des chaînes parce que vous pouvez voir
qu'avec le vrai, cela commence par un
T majuscule, et avec le faux, cela commence par le F. Donc Python
sait automatiquement que, accord, vous avez affaire
à des lingots ici Donc, si je voulais écrire ici
une fonction d'impression
qui dise quelque chose comme, disons, A et B, laissez-moi en écrire une autre, imprimer. Disons A ou B, puis à la dernière impression je
vais dire nota A. Quelles
seront, selon vous, les réponses aux trois Généralement, chaque fois que
vous utilisez les opérateurs logiques et que vous comparez deux valeurs ou plus, elles doivent
toutes être vraies chaque fois que vous
utilisez l'instruction and. Si l'une d'elles est fausse, alors la réponse sera fausse, d'accord ? C'est le contraire avec. Donc, si vous dites vrai ou
faux, ce sera vrai. C'est vrai et faux, la réponse sera fausse. Et puis évidemment, pour
le dernier point ici, pas A ne sera faux parce que pas A signifie que le contraire du vrai est faux. Donc, si je lance le
programme maintenant, vous verrez une
fois de plus que A et B vrai et faux seront
toujours faux, tandis que vrai ou faux sera vrai alors que A ne sera pas faux. Encore une fois,
les opérateurs et les valeurs de Bollin fonctionnent également avec des
opérateurs logiques, tels que votre ou non Et, bien entendu, vos opérateurs de
comparaison tels que votre
égal à ne sont pas inférieurs à, supérieurs à, etc. Nous allons donc travailler
avec des opérateurs booléens fur et à mesure de notre progression dans le cours.
Merci d'avoir regardé. Je te verrai au prochain cours.
11. Mise à jour des opérateurs arithmétiques: Parlons d'
autres opérateurs et commençons par les opérations
arithmétiques Et ce ne sont que, vous savez, les mathématiques ou les mathématiques
de base que nous avons apprises quand
nous étions enfants, n'est-ce pas ? Vous avez donc, vous savez, une fois un, deux, deux, trois, plus un,
dix, moins sept, ce
genre de choses, n'est-ce pas ? Donc, ce que j'ai fait ici, c'est que
j'ai attribué la
valeur de dix à la
variable A et la valeur
de trois à la variable B. Et j'ai écrit plusieurs opérations
arithmétiques ici Nous avons A plus B, A moins B, A fois B, A divisé
par B, A, module B, qui renverra simplement le reste lorsque
nous divisons A par B, puis le dernier sera un B exponentiel, qui augmentera la valeur
de A par la puissance de B. Alors, quels seront les résultats
ici ? Laissez-moi exécuter le programme,
et bien sûr, dix plus trois font 13, dix moins trois font sept, dix fois trois font 30, 10/3 feront 3,33 33, puis dix pertes de modèles,
trois seront Et bien sûr, dix
fois dix fois dix seront égaux
à 8 000, non ? OK, donc je pense que vous connaissiez évidemment les réponses à toutes ces opérations. Mais allons plus loin. Je vais le supprimer, d'accord ? Et j'ai d'autres
opérations ici. Et le premier
est ce que nous appelons un opérateur d'assignation. Vous pouvez le voir juste là,
il est écrit « plus égal », n'est-ce pas ? Permettez-moi d'ajouter ces nouvelles
lignes, et voilà. D'accord, nous avons donc des plus égaux. Cela signifie simplement que
nous allons dire que X est égal à X plus cinq. C'est essentiellement la même chose. Donc, X plus égal à cinq, c'est exactement la même chose que de dire que
X est égal à X plus cinq. Ce n'est qu'une
forme abrégée d'écriture de ce texte. Alors laissez-moi simplement supprimer ceci. Alors, selon vous, quelle serait la
réponse à cette question ? La réponse
ici sera évidemment 15 parce que dix plus cinq font 15. Maintenant, tu peux faire le
contraire, d'accord ? Vous pouvez dire « moins »
puis « égal ». La réponse ici
serait évidemment cinq, car dix moins cinq feront cinq. Et vous en avez
d'autres, bien sûr, comme la multiplication a, qui nous donnera 50. Et puis il
y a aussi la division, qui nous donnera
deux, deux points oh. C'est ce que nous appelons
les opérateurs d'assignation. Maintenant, je voudrais attirer votre
attention sur une dernière chose, et c'est ce que nous appelons
la priorité des opérateurs Permettez-moi tout d'abord de
supprimer le code
, faire glisser vers le
haut et de l'imprimer sur une nouvelle ligne. Permettez-moi de copier cette commande et de descendre ici,
puis de l'imprimer. Très bien, alors jetez un œil à ça. OK, nous avons deux
expressions différentes, d'accord ? Le premier dit :
deux plus trois fois quatre. Eh bien, la deuxième
, c'est que nous avons un crochet deux plus trois,
puis quatre fois. Quels seront, selon vous, les résultats
des deux expressions ? Encore une fois, cela pourrait vous
rappeler les calculs que vous faisiez à la maternelle ou au
primaire. Mais je trouve toujours
cela assez
fascinant parce qu'ici, nous allons obtenir deux résultats
différents. Vous pouvez donc mettre la
vidéo en pause et essayer deviner quels seraient les résultats des
deux expressions. Si vous avez vos résultats,
allons-y dès maintenant et courons. Et le premier
ici aura 14 ans tandis que le second en aura 20, pourquoi ? Parce que dans la première
expression ici, nous avons deux opérateurs. Nous avons l'opérateur
arithmétique plus, puis nous avons
la multiplication Python effectuera d'
abord la
multiplication avant l'addition. Donc trois fois quatre ça
va faire 12, 12 plus deux, ça va
être égal à 14. Cependant, ici, dans
la deuxième expression, il va en fait effectuer l'ajout en premier parce
qu'ils sont entre crochets. C'est pourquoi. Donc, sauf erreur de
ma part, en général, vous aurez la parenthèse tout en haut
des précédents Si vous n'avez pas
de parenthèse, il vérifiera l'
exponentiation S'il n'y a pas d'
exponentiation, on passe à la multiplication, on
passe à Je vais passer aux modulos, à l'
addition, puis
enfin à la soustraction Et puis, dans une expression très
complexe, si vous avez des opérateurs de
comparaison, ceux-ci viendront ensuite, puis
les opérateurs logiques. Mais il n'y a pas besoin d'aller plus
loin. Ici, nous
avons simplement deux opérateurs principaux.
Nous en avons trois. Nous avons la parenthèse, qui
aura bien sûr priorité
sur la multiplication Donc deux plus trois font cinq, cinq multiplié par
quatre égale 20. Encore une fois,
c'est ce que nous appelons la priorité des opérateurs Encore une fois, pour être honnête, nous n'allons pas
vraiment travailler avec eux dans ce cours, mais vous
devez néanmoins en être conscient. Merci d'avoir regardé. Je te
verrai au prochain cours.
12. Travailler avec la section des cordes - Introduction: Bienvenue dans la section suivante où nous allons maintenant nous concentrer spécifiquement sur le type de données des
chaînes. Je sais que nous avons déjà
parlé de cordes. Cependant, nous devons approfondir ce sujet en
particulier et pourquoi ? Eh bien, c'est parce que la
grande majorité du temps le type de données
avec lequel vous allez travailler
sera constitué de chaînes. Oui, vous travaillerez avec des
entiers et d'autres types de données, mais
les chaînes représenteront généralement entre 80 et 90 % des types
de données que vous utilisez Dans cette section, nous
allons donc aller beaucoup plus loin. Je vais vous montrer comment
vous pouvez manipuler des chaînes. Supposons, par exemple, que vous
ayez deux morceaux de chaîne, que vous souhaitiez extraire certaines
lettres de la chaîne. Vous voulez extraire des lettres
de cette autre chaîne, les
assembler,
des choses comme ça. Tu apprendras
à faire de telles choses. Vous allez apprendre
comment convertir des chaînes
entières en majuscules ou en minuscules, comment les découper et
faire bien d'autres choses. Je pense donc que vous
allez apprécier cette section. Et aussi, tout comme
pour la première section, la fin de cette section, il y aura également un exercice de
codage. Essayez donc
l'exercice de codage. J'espère que vous serez en mesure
de le faire avec succès. Mais si vous ne le pouvez pas, je
vais également vous fournir la solution
afin que vous puissiez comparer votre code avec le mien. Alors, sans perdre
plus de temps, commençons.
13. Manipulation de base des cordes: Vous connaissez déjà
les différentes manières d'imprimer vos variables de
chaîne. Ce que j'ai sur mon
écran ici, que j'ai créé la variable nom d'utilisateur et que je lui ai attribué la valeur de
cyber sous forme de chaîne, puis j'ai simplement
dit « Imprimer le nom d'utilisateur ». Cela a bien sûr abouti à une
impression cybernétique très, très simple, très basique. Et maintenant, à partir de la quatrième ligne, j'ai attribué exactement la même valeur cyber à la variable nom d'utilisateur. Mais notez qu'
aux lignes cinq et six, je montre deux manières différentes d'imprimer la variable. J'aurais pu dire : bienvenue dans
le monde de la
programmation, puis virgule, puis le
nom de la variable, qui est, bien sûr, nom d'utilisateur,
cyber, et le résultat est le bienvenu dans le monde
de la programmation, cyber Et puis, à la sixième ligne, au lieu
d'utiliser le signe plus, j'utilise le symbole plus, et
c'est ce que nous appelons concaténation chaque fois que vous
utilisez le symbole plus, et vous obtenez exactement le Notez toutefois qu'il
y a une légère différence
d'espacement. Avec le symbole virgule, vous avez tendance à avoir un
peu plus d'espacement entre votre chaîne et le nom réel
de votre variable Néanmoins, les deux
méthodes fonctionnent plutôt bien. Tout est une question de choix. Cependant, laissez-moi vous montrer quelques autres méthodes de base pour
manipuler votre chaîne Supposons, par exemple, je voulais imprimer
dix fois en ligne, n'est-ce pas ? Au lieu de créer en utilisant le nom cyber, en utilisant le nom cyber, en utilisant le nom cyber dix fois, je pourrais simplement ajouter
le symbole
astérisque puis dire dix fois Et puis il ne
me reste plus qu'à
imprimer le nom d'utilisateur. Maintenant, si je dirige le programme,
vous pouvez constater que nous avons dix fois plus de
cybercybercybercyberattaques. Et si je veux un espace
entre mes mots, je peux simplement ajouter un espace entre la lettre R et
le code de fermeture. Et si je lance à nouveau le programme, alors vous y allez, nous avons du
cybercybercyberespace. C'est ce que nous appelons
la répétition, n'est-ce pas ? Une autre fonction que je
voulais vous faire connaître concernant les chaînes est
la longueur d'une chaîne. Nous pouvons déterminer la
longueur d'une chaîne. En d'autres termes, nous pouvons déterminer le nombre
de caractères d'une chaîne. Donc, par exemple, ici, si je voulais savoir combien de personnages
jouent dans le cyberespace, me
suffit
de venir ici. Après la fonction d'impression, je peux introduire une autre
fonction appelée fonction
de longueur, qui est, bien sûr, LN, puis je devrai ajouter ma
fermeture, la diviser par là. Et maintenant, si je lance le programme, pouvez-vous deviner quelle en sera la
valeur ? La valeur sera
de cinq car cyber est composé de cinq
caractères et cinq lettres. Maintenant, vous vous
demandez peut-être : OK, tout va bien, mais en
quoi est-ce pertinent ? Comment appliquer cela dans le monde de la cybersécurité en
particulier ? Je suis presque sûr que vous
avez déjà vu sur des sites Web où ils vous
demandent de vous connecter. Vous commencez
à saisir votre mot de passe, mais les caractères réels ne
s'affichent pas. Au lieu de cela, il se peut que vous voyiez
le symbole du tiret ou le
plus souvent, l'
astérisque à leur place Nous pouvons utiliser les connaissances que
nous avons acquises jusqu'
à présent pour créer
un scénario similaire. Alors regarde ça, d'accord ? Je vais créer
une nouvelle variable dès maintenant et l'appeler password. Et maintenant, ajoutons
le mot de passe réel. Je vais dire Swordfish, qui n'est pas vraiment le meilleur
mot de passe, mais tant pis Nous allons opter
pour l'espadon. Alors maintenant, je veux
imprimer sordfsh, pouvoir simplement dire « imprimer
un mot de passe Donc, si je lance le programme, il indiquera que c'est de l'espadon, mais nous voulons remplacer
chaque lettre de l'espadon par le symbole astérisques Donc, en gros, nous devrions
avoir neuf astérisques à la place des
lettres elles-mêmes. Alors, que faisons-nous ? Je peux créer
une autre variable dès maintenant et l'appeler le mot de passe de
soulignement masqué Et maintenant, ce
sera égal à quoi ? Je vais ajouter mes codes et
maintenant ajouter le symbole astérisque. OK ? Le symbole astérisque, et maintenant multipliez-le à nouveau par la longueur des caractères de notre chaîne
de mots de passe Et voilà. Alors maintenant, si je lance le programme, cela ne fonctionne pas. Oh, pardonne-moi. Pour
le mot de passe d'impression, nous devons modifier la
troisième ligne pour masquer mot de passe, car nous n' imprimons
plus le mot de passe. Oups. C'était un
peu gênant. OK, donc nous allons imprimer le mot de passe
masqué maintenant, et si je lance le
programme, c'est parti D'accord, nous avons maintenant
neuf symboles astatiques car SetFish lui-même est
composé de neuf lettres Et juste pour vous prouver
que cela fonctionne vraiment, si j'ajoutais trois autres
caractères, des chiffres, dans ce cas
123, et que je recommence, vous pouvez voir que le nombre de symboles
astatiques a
augmenté de trois Au lieu de neuf, il y en a maintenant 12. C'est ainsi que vous pourriez
recréer quelque chose très similaire dans votre programme du monde
réel Si vous souhaitez créer un système de mots de passe
masqués, vous pouvez utiliser ce
type de concepts Merci donc d'avoir
regardé la vidéo. Je te verrai
au prochain cours.
14. Indexation et découpe des chaînes: Eh bien, bon retour.
Parlons maintenant quelques concepts très importants lorsqu'il s'agit de
traiter les chaînes de caractères. Nous avons le
concept d'indexation. Maintenant, ne vous inquiétez pas, nous
parlerons beaucoup plus tard de l'
indexation Mais maintenant, permettez-moi
de vous faire une brève introduction, non ? Supposons, par exemple,
que j'ai mon texte ici , qui parle de cybersécurité. Et si nous voulions
spécifiquement,
pour une raison ou une autre, extraire la toute première lettre
du mot cybersécurité ? La première lettre ici
serait C, non ? Je pourrais donc faire quelque chose
comme dire d'abord, puis souligner le caractère
égal au texte, et maintenant je vais
utiliser mes crochets Maintenant, je dois indiquer la position d'index de la
lettre que je souhaite cibler. Désormais, dans le domaine de la cybersécurité,
C est la première lettre. Alors, selon vous, quel sera mon
numéro d'index ici ? Non, ce n'est pas un, ça va être zéro N'oubliez pas qu'en programmation
en
général, pas seulement en Python, mais aussi en programmation générale,
votre indexation part de zéro et non d'un Donc, si je voulais maintenant imprimer le contenu de ma variable
appelée premier caractère, la réponse ici
sera C. De même, si je remplace
celle-ci par un, maintenant ce sera Y. Donc, voici l'indexation, et nous allons travailler avec elle tout au long de ce cours Maintenant, le deuxième concept ici
va être le
concept de sl sin. Le glaçage nous permet de prélever
une partie de la ficelle. Aujourd'hui, la cybersécurité est
une chaîne assez longue. Et si nous
voulions uniquement cibler les cinq premiers personnages, qui seraient des cyberpersonnages ? Comment ferions-nous cela ? Eh bien, ici, je peux ajouter ma position d'index pour le tout premier caractère
qui sera zéro. Et puis où est-ce que je
veux m'arrêter ? Cinq. C'est ce que
nous appelons le tranchage. Le tout premier chiffre ici
représente l'endroit à partir duquel nous
voulons commencer le découpage Dans ce cas, pour le moment,
j'ai ajouté zéro parce que je voulais commencer dès
la première lettre. Et puis combien de
personnages voulons-nous ? Nous voulons les cinq personnages. Alors maintenant, si je lance le programme, ce sera Chi Burr. Et si nous voulions uniquement
extraire le T sécurisé, n'est-ce pas ? Nous ne voulons pas l'étiqueter comme cybernétique. Nous voulons l'étiqueter « sécurité » uniquement. Une chose que je pourrais faire
ici, c'est que je pourrais décider de simplement utiliser
l'indice S, qui sera zéro, un, deux, trois, quatre, cinq. OK ? Ça pourrait être cinq. Et
maintenant j'ajoute mes deux points. Je pourrais indiquer le nombre de lettres que je souhaite que le
découpage contienne Cependant, si je n'
indique pas de valeur ici, Python utilisera
automatiquement par défaut la fin de la chaîne. Donc maintenant, si je lance le programme, il sera écrit sécurité. Tu as vu comment ça a marché ? J'ai indiqué, OK,
je veux commencer
par S et le numéro
d'index de S ici sera de cinq. Et comme je n'ai pas indiqué où je voulais que
le découpage s'arrête, Python ira
jusqu'à la toute fin C'est pourquoi nous avons la sécurité. De même, je pourrais faire
presque le contraire. Je pourrais laisser le départ vide, et maintenant je pourrais aller ici. Et si j'ai indiqué, disons, cinq à titre d'exemple, quelle sera, selon vous, la
valeur ici ? Lorsque vous n'indiquez pas
votre position de départ, Python démarre automatiquement. La position par défaut
sera au tout début. Alors, selon vous, quelle sera la
réponse à cette question ? La réponse ici
va être cybernétique ? Parce que même si nous n'avons pas
indiqué le début, Python reprendra par défaut le
tout début, c'est-à-dire C. Ensuite, cinq caractères
seront C, Y ,
BR, et ce sera Psi bur. Mais ce n'est pas tout. Nous pourrions également utiliser le
concept d'indices négatifs. Alors, par exemple, regarde
ça, d'accord ? Je vais aller
ici, non ? Et si je voulais
cibler la sécurité, je
pourrais commencer par la fin, et je sais que la sécurité se
compose de huit caractères, donc je vais dire moins huit. Et maintenant, je vais ajouter deux points et
mon défaut
jusqu'à la fin. Et maintenant, si je lance le
programme, voilà. C'est une question de sécurité,
car Python
va
commencer par la fin , c'est-à-dire Y, puis huit lettres vers la gauche. Il s'arrête à S car S est la huitième lettre. C'est
le huitième personnage. Lorsque vous commencez par
la fin, c'est pourquoi nous avons la
sécurité comme solution. Vous vous demandez peut-être,
d'accord, comment cela
sera-t-il applicable à la cybersécurité ? Vous êtes-vous déjà demandé
comment les logiciels antimalware et antivirus pouvaient
scanner et détecter les En règle générale, l'
extension de fichier comporte un point EXE. Alors, par exemple, non ? Par exemple, si
le nom d'un fichier est égal à CMD IOP, vous savez,
quelque chose de bizarre, Et puis pointez sur EXE. Ce serait un exemple
du type typique de nom de
fichier malveillant que vous aurez. Alors, comment pouvons-nous écrire un programme
qui analysera puis détectera dès qu'il détectera
l'extension point EXE, il sait que, d'accord, il
pourrait s'agir d'un malware. Nous n'avons pas encore parlé
de l'instruction If. Nous allons en parler
dans la section suivante, mais supposons maintenant que c'est
bon, si le nom du fichier est OK. Et maintenant, si j'ajoutais entre crochets, si je voulais cibler le
point EXE depuis la fin, car on ne sait jamais combien de temps le nom du fichier va
se trouver avant le point EX droit. Il est toujours préférable de
cibler dès la fin. Je sais que moins quatre, en
partant de la fin, si c'est égal, à quel point EXE ? Si je sais que les
quatre derniers caractères du nom du fichier sont
égaux au point EXE, alors je sais que ce
sera
probablement un Milware Alors maintenant, je peux simplement dire prints, puis entre crochets, je peux dire que ML Ware a trouvé, vous savez, quelque chose comme ça. C'est ainsi que le concept de découpage peut être appliqué dans
le monde de la cybersécurité Maintenant, avant de
terminer cette vidéo, permettez-moi de vous parler d'
une autre fonction. C'est utile lorsqu'il s'agit
de travailler avec des chaînes. Et ce sera
la fonction split. Il s'agit d'une fonction qui
divise une chaîne en une liste de chaînes
souples en fonction
d'un délimiteur spécifié De quoi est-ce que je parle ? Supposons, par exemple, que je
revienne à mon texte et que cela évoque la cybersécurité. Maintenant tu peux dire ça en
deux mots, non ? Il ne s'agit plus d'un
seul mot : cybersécurité. J'ai maintenant deux
mots : cybersécurité. Donc, si je voulais partager ça, je pourrais dire des mots. D'accord ? Égal au texte, et maintenant divisé par des points. OK ? J'attache
la fonction split au texte variable parce que je
souhaite diviser la cybersécurité. Alors maintenant, si j'
imprimais simplement les mots, quel en sera le
résultat selon vous ? Ce sera la cybersécurité,
puis la sécurité. Et si vous vous
demandez, d'accord, comment allons-nous appliquer
cela à la cybersécurité ? Jerman Vix Video Web va
commencer à se
pencher sur les
applications de cybersécurité telles que le découpage en tranches, fractionnement et bien
15. Méthodes de cordes courantes: Bon retour.
Continuons donc à parler des différents types
de méthodes ou fonctions que nous
appliquons généralement aux chaînes et d'
une méthode très courante. En fait, deux fonctions très courantes seraient
plutôt
les fonctions de conversion du texte en
majuscules ou en minuscules Donc, dans mon exemple ici, mon texte variable est
égal à la cybersécurité. Si je voulais
tout convertir en majuscules, je dirais simplement du texte et non des majuscules, ouvrez de nouveaux
crochets, et le tour est joué Et si je voulais
tout convertir en minuscules,
je ferais exactement le contraire Ce sera un point de texte imprimé LWA. Point ova, ouvrez de nouveaux
crochets, et le tour est joué. Donc, si je gère le
programme en ce moment, vous pouvez voir que nous avons la cybersécurité
en majuscules, puis la cybersécurité
en minuscules Ce sont donc deux
nouvelles fonctions que vous devez connaître
point opa point LA. Mais il existe également une fonction
permettant de réduire les espaces blancs. Supposons, par exemple, que j'ai
ma variable de mot de passe ici. J'ai de l'espace, et mon vrai
mot de passe est swordfish, puis laissez-moi ajouter un
peu plus d' Si je voulais supprimer
tous les espaces
blancs inutiles, je
dirais simplement des empreintes, des
crochets, puis un mot de
passe, et maintenant, un strip. Encore une fois, la fonction strip, nous pouvons également l'utiliser pour supprimer
tout espace blanc inutile, lancer le programme,
et le tour est joué. Espadon sans espace
vide. Mais nous pouvons également remplacer
des caractères dans nos chaînes. Disons, par exemple, laissez-moi simplement vous donner un
exemple ici. Supposons que mon
message soit égal à,
et disons, d'accord,
utilisez un mot de passe. Disons que le
mot de passe actuel est mot de passe un, deux, trois. Juste à titre d'exemple,
non ? Mais ensuite, nous avons voulu imprimer
quelque chose qui dirait, d'
accord, utilisez un mot de passe,
puis expurgé D'accord ? Nous ne voulons pas afficher le mot de passe lui-même. C'est similaire à ce que nous avons fait
dans la leçon précédente où nous avons utilisé le symbole Asteris
pour remplacer les caractères. C'est apparenté mais
légèrement différent. Alors laisse-moi te montrer de quoi je
parle, d'accord ? Je vais donc
venir ici tout de suite. Et je vais dire :
créons une nouvelle variable. Disons qu'un message de
soulignement sécurisé, accord, sera égal
à now message, point, et maintenant à une nouvelle
fonction appelée replace D'accord ? Je souhaite remplacer le mot de passe actuel par
un autre mot de passe. Donc, entre crochets,
je vais maintenant mettre le
mot de je vais maintenant mettre le passe
que je veux remplacer c'est-à-dire le mot de passe un, deux,
trois, une virgule,
et maintenant les lettres, les caractères
ou la chaîne par
lesquels trois, une virgule, et maintenant les lettres, les caractères
ou la chaîne je veux le remplacer Dans ce cas, maintenant, je
vais ouvrir mes crochets,
et en majuscules, et en majuscules, je peux dire expurgé.
Juste à titre d'exemple, non ? Alors maintenant, il
ne me reste plus qu'à imprimer
entre crochets un message de
soulignement sécurisé Et maintenant, si je lance un programme,
voilà, utilisez une tête de réduction des
mots de passe Vous pouvez donc utiliser la
fonction replace pour simplement remplacer une partie particulière de votre chaîne par autre chose, et voici comment vous allez procéder. Pour résumer, permettez-moi de
vous montrer une dernière chose,
à savoir trouver des sous-chaînes. Supposons, par exemple, que nous ayons
une variable appelée email, est égale,
disons, à admin at labsyb.com Je suis sûr, bien sûr, vous avez dû rencontrer
ce problème tant de fois auparavant ,
lorsque vous essayez de
créer un nouveau compte
sur un site Web, et ils vous demanderont de
fournir une adresse e-mail. Si vous avez saisi quelque chose de
faux, par exemple, le système sera
en mesure de détecter que cette adresse e-mail n'est pas
valide, car il
pourrait vérifier si
le symbole arobase a été
inclus dans votre Donc, si le symbole publicitaire n'est pas
là, il sait évidemment que, d'
accord, ce que cette personne a tapé ne peut pas être une adresse e-mail Je vais donc vous montrer
comment écrire un
programme très simple pour
vérifier si le symbole at
se trouve dans la chaîne. À partir de là, mon adresse e-mail
est égale à admin at labsar.com. Voyons si
le symbole publicitaire s'y trouve, d' accord ? Je vais dire « Moi ». D'accord ? Si je sais que nous n' avons pas
encore parlé de cette déclaration
particulière , ne vous inquiétez pas,
nous en parlerons beaucoup plus en détail dans
la section suivante. Mais pour l'instant,
notez simplement que c'est une instruction que Python utilise pour vérifier si
quelque chose est vrai. Je vais donc dire si et
maintenant envoyer un e-mail, puis un point, très bien. C'est la fonction que
nous pouvons utiliser pour
vérifier si quelque chose
existe dans notre chaîne. C'est donc la fonction de recherche. Et maintenant, nous devons spécifier ce que nous recherchons
exactement entre crochets et maintenant
les codes, le symbole At. Nous essayons donc de
vérifier si le symbole at existe, et d'un moyen de vérifier
qu'il existe bel et bien. C'est dans une chaîne, c'est en disant qu' il n'est pas égal à moins un. Ensuite, nous ajoutons nos deux points. Donc, le fait de ne pas être égal à moins
un est une façon de dire :
OK, quelque chose existe. D'accord ? Donc, ici, nous disons si
vous avez trouvé le symbole publicitaire dans l'e-mail et qu'il n'est pas égal à moins un. Cela confirme donc que,
oui, le symbole publicitaire
se trouve bien dans notre chaîne. Maintenant, nous pouvons faire quelque chose. Nous pouvons dire imprimer,
et maintenant entre crochets, nous pouvons dire format de courrier électronique valide. Alors maintenant, si je lance mon
programme, voilà. Format d'e-mail valide car le symbole publicitaire a bien été trouvé. Si je supprime le symbole publicitaire et que je lance à nouveau le programme, vous pouvez voir que rien n'
est imprimé parce que le symbole publicitaire n'
est plus là. Ce n'est pas un
e-mail valide pour Matt. J'y retourne. J'ajoute à nouveau le symbole
publicitaire, je lance, et maintenant vous pouvez
voir qu'il fonctionne à nouveau. Donc, pour vous donner un bref
récapitulatif,
nous voulons tout d'abord rechercher le symbole publicitaire dans une adresse e-mail qui nous
a été fournie Nous allons donc
dire si, puis nous
recherchons spécifiquement le symbole d'ajout. Donc, si le symbole publicitaire
est présent et que nous vérifions s'
il est présent avec valeur différente de moins un, donc si le symbole d'ajout
est bien présent, il suffit d'imprimer un format d'e-mail valide. Prenez donc note de
la fonction de recherche. Voilà pour la vidéo,
merci de l'avoir regardée. Je te verrai au prochain cours.
16. Plus de manipulation des cordes: Eh bien, revenez, alors
laissez-moi vous expliquer
quelques opérations supplémentaires
en utilisant la fonction
split, ainsi qu'une
bonne vieille indexation J'ai donc deux notes sur mon
écran. J'ai une adresse e-mail
et aussi une URL. Maintenant, en regardant
l'adresse e-mail, si
nous voulions extraire
le domaine en particulier ? Nous voulions donc extraire labsyba.com et simplement nous débarrasser de l'annonce Admin. Comment
allons-nous procéder ? Eh bien, tout d'abord,
attribuons un e-mail variable à B admin sur labsyba.com. OK. Donc, ce que je vais faire
maintenant, c'est
créer une autre variable qui contiendra désormais ce que
nous recherchons. Je vais donc appeler
cela un domaine. Et maintenant c'est là
que la magie opère, d'accord ? Nous voulons diviser notre chaîne, nous voulons séparer admin
de labsyb.com Donc, entre admin et labsyb.com, qu'
est-ce que le Je vais donc dire
e-mail et maintenant diviser, et maintenant entre crochets, d'où
allons-nous nous séparer ? Nous allons nous séparer
du symbole At, d'accord ? Et maintenant que nous
cherchons le deuxième élément, lorsque vous séparerez l'administrateur de
labsab.com de l'annonce, une partie sera admin, l'autre
sera labsab.com Nous voulons donc passer
au deuxième élément, et ce sera un. L'un d'eux sera l'abréviation de labsbdt com. Il ne nous reste plus
qu'à imprimer un domaine. Et si je lance un programme, c'est labsbadt Si je changeais un
à zéro à la place, cela représentera désormais
le premier élément, qui sera admin. Donc, si je
réexécute un programme en ce moment, vous pouvez voir qu'il est devenu admin. Ainsi, chaque fois que vous
essayez de diviser une chaîne en deux, en
utilisant la
fonction de division,
vous devez d'abord indiquer, OK, où voulez-vous
commencer la division. Dans ce cas, pour le moment,
nous définissons à partir du symbole publicitaire. Donc, juste au milieu, sur la gauche, se trouvera la valeur de l'
indice de zéro. Sur la droite se trouve
la valeur d'indice de un. Et comme nous recherchons spécifiquement
le domaine, nous changeons de zéro à un. Nous courons à nouveau, et
voilà, labcyba.com. Maintenant, qu'en est-il du deuxième
exemple ici, l'URL ? Que
recherchons-nous exactement ici ? Supposons que nous voulions extraire
le fichier lui-même. Nous ne sommes donc pas intéressés par l' ensemble de gctpslabs.com, FurslashPat, Tout ce que nous cherchons, c'est
simplement le nom du fichier. Comment pouvons-nous en extraire un
fichier ? Donc, ce que je vais faire
très simplement, c'est dire que l'URL est égale, et
laissez-moi simplement saisir ceci. Laisse-moi juste le copier. Et je vais le coller.
Et voilà. OK, donc encore une fois, je vais
créer une nouvelle variable qui contiendra désormais la valeur de
ce que nous recherchons. Appelons celui-ci, le nom du trait de
soulignement du fichier sera désormais égal à l'URL, n'est-ce pas ? Et maintenant, divisez les points, et maintenant jetez un œil à ceci. Je regarde l'URL, d'accord ? Cette URL complète. Quel
symbole pensez-vous que nous pourrions utiliser pour diviser la chaîne
en plusieurs parties ? Oui, ça devrait être
évident que ce sera
la barre oblique, non ? Parce que vous pouvez voir juste
là qu'il y en a partout. Nous allons donc
partager notre ficelle. Nous allons cracher notre URL à l'
aide de la barre oblique. Et maintenant, comment
cibler le fichier ? Vous souvenez-vous de l'indexation
négative ? Eh bien, nous commençons par
le bout de notre chaîne. Donc dans ce cas, en
ce moment, que
recherchons-nous, nous cherchons le tout
premier élément depuis la fin, et maintenant quoi
sera négatif ? Négatif. Cela
va donc commencer à partir du fichier. Ça va commencer de
droite à gauche, non ? Il ne nous reste plus qu'
à
imprimer le nom du trait de soulignement du fichier Et ils devraient faire l'affaire. Allons-y et
lançons le programme. Et voilà. Nous
avons le nom du fichier. Ainsi, en utilisant
la fonction split et une indexation négative, nous avons pu
cibler spécifiquement le nom du fichier Permettez-moi de vous donner
un autre exemple. Et ici, nous allons
extraire quelques chaînes de caractères. Sans utiliser la fonction
split, nous allons simplement
utiliser la valeur de l'indice. Permettez-moi donc de fournir à nouveau l'adresse
e-mail, et je vais dire
admin at labsba.com OK, et si nous
voulions extraire à la
fois le nom d'utilisateur
et le domaine ? Nous voulons donc extraire le nom
d'utilisateur qui est admin, puis le domaine
qui est labsyb.com Comment pensez-vous que nous pouvons le faire ? Eh bien, tout d'abord, je peux dire que mon nom d'utilisateur sera égal à celui un e-mail et maintenant, souvenez-vous
du fonctionnement des index début puis à la fin Nous voulons donc commencer par le tout début
de notre chaîne. Nous allons donc dire deux points. Nous allons
laisser le côté gauche vide car nous allons recommencer depuis le
tout début. Et maintenant, voyons voir. A sera le
numéro d'indice zéro, non ? Ainsi, A est zéro, D est un, M est deux, I est trois, N est quatre, et bien sûr, le symbole d'ajout est cinq. Donc je vais dire
ici tout de suite, cinq, d'accord ? Ensuite, je peux dire que le domaine
est égal à l'e-mail et maintenant, à l'intérieur ,
nous voulons commencer par le sixième index qui sera L,
deux-points, puis laisser
ce champ vide parce que nous
allons jusqu'à la fin de la chaîne, et maintenant
cela devrait fonctionner. Donc, tout ce que nous avons à faire
c'est de dire imprimer. Maintenant,
disons, utilisons un nom. OK, puis, utilisez un nom, puis imprimez le domaine
entre crochets
et deux-points. OK. Domaine Com.
Et voilà. Exécutons le programme,
et le tour est joué. Le nom d'utilisateur est Admin. Le domaine
est lobsaba.com. Ouais. Mais attendez une minute. Avant de boire le champagne, faisons un autre test, d'accord ? Je vais changer d'administrateur
ici pour « Je ne sais pas ». Disons, Alex, par exemple. Ne lancez jamais le programme. Euh oh, ta ta, da ta, da, da, da, da, da. Nous avons un problème. Vous pouvez voir maintenant que le
programme a mal fonctionné. Il ne fonctionne plus correctement. Au lieu d'utiliser le nom
Alex, nous avons Alex at. Et au lieu de labsyb.com,
nous avons absyba.com. Qu'est-ce qui se passe ici. voyez, en essayant
d'extraire nos chaînes en étant très précis
dans les valeurs d'index que
nous voulons cibler,
le programme s'
appuiera
fortement sur l'adresse
e-mail réelle,
avec dans les valeurs d'index que
nous voulons cibler, le programme s'
appuiera fortement sur l'adresse
e-mail réelle, le bon nombre
de caractères à la fois avant et après le symbole at. Cela
dépend donc fortement de cela, mais nous ne voulons pas que le programme soit suffisamment
flexible
pour toujours pouvoir extraire avec précision le nom d'utilisateur et
le domaine quelle que soit
la longueur de l'adresse e-mail réelle. Alors, que pouvons-nous faire ? Eh bien, n'oubliez pas
que le symbole publicitaire est l'endroit où se déroulent toutes les actions. À gauche du symbole d'
ajout se trouve notre nom d'utilisateur, à
droite, le domaine. Nous pouvons donc cibler spécifiquement la valeur
d'indice du symbole At. Et comment s'y prendre ? Pour le nom d'utilisateur, e-mail, en
ce moment, encore une fois, nous allons laisser
la première partie de la colonne vide parce que nous
commençons depuis le tout
début, n'est-ce pas ? Et maintenant, pour cibler le symbole
at réel, c'est la valeur de l'indice. Je vais dire e-mail à
nouveau et maintenant index par points, et maintenant entre crochets,
coder le symbole arobase. Donc maintenant, je dis que le nom d'utilisateur commence
toujours par
le tout début de la chaîne et se termine
une fois que vous avez atteint la valeur
d'index du symbole at. De même, nous pouvons faire quelque chose très similaire avec le domaine. On peut dire domaine. Bien, commençons par le
début ,
ici, par email point index. Et maintenant, que
visons-nous à nouveau ? Nous ciblons le symbole publicitaire. Cependant, nous voulons
cibler spécifiquement le tout
premier caractère, le tout premier index après le symbole d'ajout. Alors, que pensez-vous que
nous allons faire ? Nous sommes les bonnes personnes, nous allons dire
plus un. Plus un. Alors maintenant, je dis : OK, commencez par la valeur d'indice de At, puis ajoutez-y une valeur. Il va donc aller dans
AD, puis en ajouter un. OK, maintenant, labs.com. Alors maintenant, si je lance le programme, voilà. Cela
fonctionne sur axlabs.com Si je redonne à Alex le statut d'administrateur et que je lance le programme, vous
pouvez voir qu'il fonctionne Essayons quelque chose de
complètement différent, d'accord ? Disons Jack Daniels sur superyahoo.com,
quelque chose de bizarre, non ? Lancez le programme,
et voilà. Jack Daniels puis
domainsoperyahoo.com. Voici donc comment extraire
vos chaînes avec succès
et efficacité sans
utiliser
la fonction de division. Il suffit
d'utiliser les valeurs d'index, et nous y marquons spécifiquement la valeur d'index du
symbole d'ajout, car rappelez-vous,
encore une fois, que le symbole d'ajout est l'
endroit où se déroule toute l'action. À gauche du
symbole publicitaire se trouve un nom d'utilisateur à droite, le domaine. J'espère donc que vous avez apprécié la vidéo. Merci d'avoir regardé. Je te
verrai au prochain cours.
17. Intro à la section Flux de contrôle et boucles: Officiellement à la troisième section, et maintenant le téléphone commence vraiment. Maintenant, nous commençons
à franchir une étape plus ou moins approfondie dans le monde de la programmation Python car nous allons parler
ici de flux de
contrôle et de boucles. Jusqu'à présent, dans les deux sections
précédentes, nous avons parlé de
chaînes et d'entiers, et les programmes étaient pour la
plupart
assez jolis, basiques, n' est-ce pas ? Vous pouvez soit
avoir une entrée soit nous fournir
des chaînes et des entiers, puis nous disons : OK,
je vais faire ceci, ceci et cela,
puis simplement imprimer, n'est-ce Mais maintenant, avec le
flux de contrôle et les boucles, si nous voulions dire :
OK, s'il y a quelque chose comme ça, alors faisons-le. Mais si quelque chose
n'est pas ça, faisons autre chose. Il s'agit du flux de contrôle et des boucles. Et si, par exemple, nous avions une liste ? OK ? Cela peut être
une liste de noms, une liste de livres, une liste
de mots de passe, non ? Ensuite, nous avons voulu, genre, examiner chaque mot de passe de cette liste et faire
quelque chose, non ? Peut-être voulions-nous prendre chaque
mot de passe et le chiffrer, ou peut-être voulons-nous prendre chaque mot de passe et vérifier
ensuite si le mot de passe est
réellement fort ou faible en fonction de plusieurs
types de conditions, nous allons aborder
cela dans cette section Ce sera l'une
des sections principales de ce cours
en particulier, et je suis très
heureuse de vous
parler du flux de contrôle et des
boucles. Commençons.
18. Introduction aux algorithmes: vais faire une pause
dans Raplt et parler un peu des algorithmes,
car croyez-le ou non, nous allons en fait commencer
à travailler avec concepts
légèrement plus avancés en programmation
Python Et il est très, très
important que vous compreniez ce que
sont les algorithmes, car ils sont essentiels, pas seulement pour Python, mais pour
tout type de
langage de programmation d'ailleurs. Maintenant, si je devais
vous donner définition standard
de ce qu'est un algorithme, c'est essentiellement
comme un ensemble d' instructions à suivre pour arriver
à un résultat particulier, d'accord ? Dans ce cas, en ce moment,
vous pouvez voir ce texte. J'y ai écrit quelques trucs. La toute première déclaration indique que si l'ordinateur
fonctionne rapidement, Terminez. Maintenant, qu'est-ce que je veux dire ici ? Je dis
simplement que, écoutez, si notre ordinateur
fonctionne très, très bien, il fonctionne
très, très rapidement. Il n'est pas nécessaire de
vérifier quoi que ce soit. C'est bon, non ? C'est
pourquoi j'ai dit « terminer ». Mais je remarque qu'à la
troisième ligne, j'ai dit, sinon, vous pourriez aussi dire
quelque chose comme des fesses, non ? Mais dans un langage de programmation, nous n'utilisons pas but, nous utilisons se. D'accord ? Donc, cela
signifie essentiellement que si la déclaration précédente n'
est pas correcte, donc si l'ordinateur
ne fonctionne pas vite, accord, alors que
devons-nous faire maintenant Nous devons d'abord
vérifier s'il y a un virus. Ensuite,
il se peut que nous
devions désinstaller des programmes
inutiles, puis que nous
devions éventuellement augmenter la rampe. Donc, si nous suivons
ces trois étapes, un ordinateur sera
assuré de fonctionner plus rapidement. C'est un algorithme, non ? Et les deux mots clés
ici sont le IF et s. Nous allons beaucoup travailler là-dessus dans ce cours. Et si vous devez un jour
travailler avec un autre type de langage de
programmation, vous
rencontrerez toujours des instructions IL. Ce sont les
éléments fondamentaux de tout programme. J'espère que vous comprenez ce que nous avons fait ici. C'est assez
simple. Je vais le rendre
un peu plus
avancé, d'accord ? Juste un petit peu, non ? Permettez-moi d'ouvrir le deuxième onglet. Imaginez donc que vous vous
habillez en fonction de la météo. OK ? Donc, dès la
première déclaration, nous avons établi
un scénario, n'est-ce pas ? Notre programme
vérifie donc ce que nous devons porter
en fonction de la météo. Nous avons donc le
tout premier résultat. S'il fait beau, d'accord, nous pouvons
porter nos lunettes de soleil. Cependant, remarquez la troisième ligne, elle passe à autre chose si ce n'est
plus simplement autre. Pourquoi ? Eh bien, parce que le temps
peut prendre différentes formes. Il peut faire beau,
il peut pleuvoir, il peut neiger,
il peut être nuageux Il y a beaucoup plus d'
options, non ? Dans le tout premier document, il n'y a que deux conditions. La première condition est la suivante : d'accord,
l'ordinateur
fonctionne-t-il vite ou ne
fonctionne-t-il pas vite ? C'est ça. Rien de tel que : Oh, est-ce que l'ordinateur fonctionne
à 25 % de sa capacité ? Fonctionne-t-il à 50 % de sa capacité ? Nous n'avons aucune autre
condition. Il n'y en a que deux. Soit l'ordinateur
tourne vite, soit il n'est ni A ni B. C'est pourquoi je
travaillerais parfaitement ici. Cependant, dans cet exemple, nous avons plus de
deux options car, encore une fois, nous avons affaire
à la météo. Donc, s'il fait beau, nous pouvons porter des lunettes de soleil. Sinon, s'il pleut. OK, on peut prendre un parapluie. Sinon, s'il neige, on peut mettre un manteau
épais, non ? Mais maintenant, regardez la
toute dernière ligne. Cela dit simplement le contraire. Pas autrement si c'est le cas. Parce qu'en gros, nous
concluons le programme ici. Nous disons : OK, nous avons
vérifié s'il fait beau, nous avons vérifié s'il pleut, nous avons vérifié s'il neige Donc, si c'est le cas, aucune de ces trois
ne sera une journée normale. Sinon, habillez-vous normalement. OK ? Donc,
encore une fois, la toute première est simplement eLS, car
il y a deux conditions. le second cas, nous
avons l'instruction s if car il y a
plus de deux conditions. En fait, il existe quatre résultats
différents
en fonction de la météo. C'est pourquoi nous ne pouvons plus
simplement travailler avec les identifiants. Nous devons introduire
l'instruction s if. J'espère donc que vous
comprenez pourquoi nous avons utilisé l'instruction
Is ici et pourquoi nous en avons utilisé une autre ici. Si ce n'est pas le cas,
j'espère qu'une fois que nous aurons commencé à créer de véritables programmes, en utilisant les algorithmes, vous le
comprendrez beaucoup mieux. Mais il s'agit d'une
introduction au monde des algorithmes ainsi qu'aux instructions
Is else if. Merci d'avoir regardé. Je te
verrai au prochain cours.
19. Instructions If else: Dans la vidéo précédente, nous avons donc brièvement abordé
les concepts des algorithmes ainsi que
les instructions Is if. Maintenant, nous allons le
mettre en œuvre. Nous allons en fait
écrire un programme qui demanderait un numéro de
1 à 9 à l'utilisateur Maintenant, si le nombre est
supérieur à quatre, nous allons
nous demander pourquoi tant ? Sinon. signifie que s'il s'
agit de quatre ou moins, nous allons dire
pourquoi si peu. Maintenant, la toute dernière ligne, je l'ai floue pour une raison particulière, car une fois que nous aurons écrit ce premier programme, nous allons ajouter
une condition supplémentaire Je ne veux pas encore vous montrer en quoi consiste
cette condition supplémentaire. Concentrons-nous donc sur l'écriture de
ce programme, non ? Alors laisse-moi juste m'en débarrasser. D'accord. Et
permettez-moi de le supprimer. OK. La première partie
du programme est donc demander un
numéro compris entre 129. Alors, que pouvons-nous faire ici ? Eh bien, tout d'abord, nous pouvons créer une variable appelée N. Très bien,
pour le nombre. Et nous allons réussir. N'oubliez pas que nous avons travaillé avec
la fonction de saisie. OK ? Je vais donc
dire input parce que c'est la fonction pour laquelle je
demanderais une entrée à l'utilisateur. Je vais donc dire saisir, et je vais dire entrer
un nombre compris entre 129. OK ? Tout d'abord, assurons-nous que cela fonctionne. OK, entrez un chiffre de 1 à 9, laissez-moi juste créer un
espace de 1 Courez à nouveau. OK. D'accord. La première ligne fonctionne donc. Maintenant, nous voulons vérifier si le nombre est compris entre ou inférieur à quatre,
n'est-ce pas ? Je vais donc
dire si c'est bon. Et puis l'entier, parce que nous voulons convertir le
nombre que
nous avons fourni, nous voulons
le convertir en entier car l'utilisateur peut
être très méchant. Ils pourraient décider
de fournir, par exemple, 1.1, 4.5, 7.6,
quelque chose comme ça. Nous voulons donc
tout conserver sous forme de nombre entier. Je vais donc encapsuler notre variable maintenant dans
la fonction entière, n'est-ce pas ? Je vais donc dire que je suis un entier N, maintenant un espace, puis le
symbole
supérieur à quatre, d'accord. Et maintenant, faites très
attention. Je vais ajouter le
double point, d'accord ? Vous devez l'ajouter chaque fois que vous travaillez avec vos instructions
eLS, d'accord ? C'est ce que je vais dire. Et maintenant, par défaut, Python
a écrit cette ligne pour moi, mais je vais expliquer
pourquoi. OK ? Maintenant, entrez, et maintenant je
vais dire autre chose si,
toutefois, toutefois, c'est OK. Et maintenant je vais dire « oui ». Et puis nouveau retrait de ligne, impression. Et puis je vais
dire, si peu. OK. Je vais donc
y aller tout de suite. Oh, au fait,
assurez-vous que vous avez
aussi le double
virgule dans votre s , d'accord ? Allons-y maintenant et lançons le programme, et voyons voir. Entrez donc le chiffre 1 à 9, je vais dire six Appuyez sur Entrée. Vous pouvez le voir juste
là, cela fonctionne vraiment. Pourquoi tant ? Exécutons à nouveau
le programme. Je vais dire trois, trois juste là,
puis expliquer pourquoi si peu. Donc,
comme vous pouvez le constater, cela fonctionne réellement. Maintenant, je vais y revenir une fois de plus
, d'accord ? Donc, tout d'abord, la moitié N, qui sera
la variable qui
acceptera l'entrée de l'utilisateur, et l'entrée en question, entrez un nombre compris entre 129. OK ? Nous allons donc maintenant
créer une condition qui vérifiera
la valeur de ce nombre. Nous avons donc décidé de convertir
l'entrée en un entier. C'est pourquoi nous avons l'INT. Une question que vous pourriez avoir
ici est, attendez une minute, Alex. Auparavant, lorsque
nous avions une fonction à l'intérieur d'une autre fonction, nous devions utiliser les
crochets, non ? C'est vrai, ce n'est pas
vraiment une fonction, d'accord ? C'est plus un algorithme, une sorte de boucle qui
vérifie la
valeur de quelque chose. Ce n'est pas une
fonction en soi. C'est pourquoi nous n'avons pas le nombre entier entre
crochets, d'accord ? Il va donc
vérifier si le nombre entier, s'il est supérieur à quatre, s' imprimé, pourquoi tant ? Vous voyez, ce qui signifie que
si le chiffre est quatre ou moins de quatre,
imprimez, pourquoi si peu. On peut dire que cela fonctionne bien. Et la seule chose à laquelle vous
devez
faire attention , c'est le
double point après le quatre et aussi après
le s. Et puis c'est aussi très bonne pratique selon laquelle
chaque fois que vous marchez avec instructions
IL ou s si vous
avez une bonne indentation, je ne l'ai pas fait, d'accord ? Je n'avais pas mes relevés
imprimés directement sous les relevés
E et L. Ce n'est pas bon du tout. C'est une très, très mauvaise syntaxe
de programmation. Donc, vous voulez toujours avoir une indentation
correcte, d'accord ? Ayez-le chaque fois que
vous travaillez avec les relevés EL. OK. Maintenant, je vais
ramener notre programme.
Et regardez ça. J'ai ajouté une
condition supplémentaire disant que et si le nombre est un nombre spécifique, c'
est-à-dire cinq. Eh bien, nous voulons dire Bingo. OK ? Alors, comment
allons-nous procéder exactement ? OK ? Laisse-moi m'en débarrasser. OK. Maintenant, regarde ça. Je vais venir ici où c'est écrit,
imprimer pourquoi, et je vais appuyer sur Entrée parce que nous
voulons ajouter le s i
entre l' instruction If d'ouverture
et l'
instruction s de clôture, d'accord ? Alors maintenant, je vais dire L, c'est la
forme abrégée de l'écriture s if. Donc, au lieu de dire sf, nous utilisons LF en Python. OK ? Donc L si le nombre entier N est égal ou,
désolé, le nombre entier N. S'il est égal à cinq, l'égal
sera double sinus égal, pas seulement un, d'accord ? Sinon, si le nombre entier
fourni par l'utilisateur est de cinq, je vais maintenant
ajouter
le double point, puis je vais dire, désolé, je vais dire imprimer. Et puis entre parenthèses, Bingo. OK ? Je vais donc m'y
atteler tout de suite. Nous sommes au programme. Et maintenant, voyons
si cela fonctionne réellement. Tout d'abord, je vais
en taper trois, d'accord ? OK, donc ça marche toujours. Pourquoi si peu ? OK.
Essayons-en huit. Pourquoi tant ? OK. Et maintenant, si je dis cinq et que
j'appuie sur Entrée, devinez quoi ? Il ne s'agit pas de
dire bingo, mais de dire
pourquoi. Tu veux savoir pourquoi ? Parce que le programme Python
s'exécute ligne par ligne. Maintenant, regardez la
hiérarchie ici. La toute première condition
que Python vérifie est de voir si le nombre
est supérieur à quatre. Et comme cinq est
supérieur à quatre, il dit immédiatement :
OK, pourquoi tant ? Il ne faut même pas aller
plus loin pour vérifier si le nombre est égal à cinq, car la toute première déclaration
dit essentiellement : «
Hé, si le nombre est
supérieur à quatre, alors imprime pourquoi tant ». Donc pour te le prouver, ce que je vais faire
ici, d'accord ? Je vais dire qu'il faut vraiment changer
la hiérarchie ici. Nous allons donc vérifier, premier temps, si le nombre entier
est réellement égal à cinq. OK, que ce soit la toute
première chose, ça vérifie. Et maintenant, ici, nous allons vérifier si le
nombre entier est supérieur à quatre. J'ai donc simplement
changé la hiérarchie. Donc, la toute première chose à vérifier maintenant c'est si le nombre entier est
réellement égal à cinq, cela signifie bingo, sinon s'il n'est pas égal à cinq et
supérieur à quatre, nous allons dire y tellement. Sinon, si ce n'est
pas égal à cinq, et s'il n'est pas
supérieur à quatre, imprimez y si peu. OK ? Exécutons le programme. Je vais donc
venir ici tout de suite,
courir, laissez-moi d'abord, ajouter cinq maintenant et voir, entrer, et voilà. Bingo. J'ai vraiment travaillé.
Exécutons à nouveau le programme. Et si j'en tapais deux ? Entrez, pourquoi si peu ? Un, encore une fois,
allons-y avec sept. Entrez, pourquoi tant ? Vous pouvez le voir maintenant, cela fonctionne. La hiérarchie de vos
commandes est donc extrêmement importante lorsque
vous travaillez avec Python ou
Pgamming en général Lorsque vous vérifiez
les conditions, gardez
toujours à l'esprit que si une
condition est satisfaite,
Python imprime immédiatement les résultats. Cela n'
ira pas plus loin dans
les lignes restantes de votre programme. La hiérarchie de
vos conditions, des conditions vérifiées, vos commandes est
donc très importante. Et puis, bien sûr, aussi
ce peu que vous savez, savoir où ajouter les
deux points, des choses comme ça. C'est une chose à laquelle vous
finirez par vous habituer. Cela peut sembler un peu accablant
au tout début, mais au fur et à mesure que vous
commencerez à écrire de nouveaux programmes, vous finirez par vous y
habituer. C'est donc tout pour travailler avec
les instructions E L L if. Merci d'avoir regardé. Je te
verrai au prochain cours.
20. Vérificateur de mots de passe simple: Bien, écrivons
notre tout premier
code lié à la cybersécurité et celui-ci vérifiera si le mot de passe d'
un utilisateur est
réellement valide ou non. N'hésitez pas à essayer d'écrire le code vous-même. Si ce n'est pas le cas, laissez-moi vous montrer
comment vous allez procéder. La première chose
à faire est d' indiquer quel est le mot de passe. Je vais appeler que la variable ici est stockée
dans le mot
de passe du score. Fournissons une valeur
pour le mot de passe. Je vais opter pour
quelque chose de très, très générique. Disons, mot de passe
un, deux, trois. Ce sera
le véritable mot de passe. D'ailleurs, je ne sais pas
si je l'ai déjà mentionné , mais en Python, si vous souhaitez ajouter un commentaire
ou un indice dans votre code, vous pouvez le faire en utilisant le symbole du hashtag,
puis en tapant votre commentaire. Je l'ai peut-être déjà mentionné
. Si ce n'est pas le cas, eh bien, voilà. OK, donc le mot de passe de démarrage ici sera le
mot de passe un, deux, trois. Nous devons maintenant demander à l'
utilisateur de fournir le mot de passe. Ensuite, une fois qu'ils ont
fourni le mot de passe, nous pouvons exécuter une
instruction EL qui vérifiera si le mot de passe qu'ils ont saisi est réellement
correct ou non S'il est correct, nous pouvons
dire accès accordé Dans le cas contraire, nous dirons que l'accès est refusé. Donc, la première chose que je vais
faire maintenant est recueillir les informations de l'utilisateur. Permettez-moi simplement d'ajouter mon
commentaire et de demander l'entrée de l'utilisateur
dans un premier temps. Ce que nous allons faire maintenant, c'est
appeler l'entrée utilisateur. Nous pouvons l'appeler le mot de passe
saisi. Il s'agira de la variable
qui stockera l'entrée. Donc, là, j' aime bien la suggestion que
Python nous a donnée. Il indique simplement que le
mot de passe saisi est égal à des
imputations, puis nous allons demander à l'utilisateur de fournir
son mot de passe La prochaine chose que nous devons
faire maintenant est de
voir si les mots de
passe correspondent réellement ou non. Nous voulons nous assurer que
tout ce qu'ils saisiront ici correspondra au mot de passe
que nous avons enregistré. D'ailleurs, c'est incroyable
de ne pas savoir si vous voyez exactement
la même chose
sur votre propre écran, alors que Python
écrit littéralement le code entier pour moi. Je vous promets que c'est la toute première fois que j'
écris ce code sur Replet Je vous promets que je n'ai jamais
écrit ce code auparavant. C'est incroyable de voir à quel point c'est si
intelligent, si intelligent. Il sait exactement
ce que je veux taper, et c'est exactement
ce que je veux faire. Je veux dire, si le mot de passe terminé est égal au mot de passe enregistré.
Qu'allons-nous faire ? Nous allons imprimer. Puis entre crochets, accès à la chaîne accordé, désolé pour cela. Alors, qu'allons-nous imprimer ? Nous allons imprimer des
supports, des manteaux. Accès refusé. Et voilà. Laisse-moi enlever la
couche supplémentaire juste là. Voilà. C'est là
notre code. Très simple, très
direct. Laissez-nous l'essayer. Je vais courir et maintenant je vais demander le mot
de passe. Essayons James 123. Est-ce que cela a fonctionné ? Non,
accès refusé. Eh bien, ça n'a pas
marché. Fuyons. Le programme une fois de plus. Essayons le mot de passe. Mot de passe, un, deux,
trois, appuyez sur Entrée, puis c'est parti, l'accès
a été accordé, notre code
fonctionne correctement. Bien entendu, il ne s'agit que d'un
simple bloc de code. Il ne s'agit pas de l'ensemble
du programme lui-même, mais il s'agit de la toute première
étape vers la création d'un vérificateur de
mots de passe plus complet pour Merci d'avoir
regardé la vidéo. Je te verrai
au prochain cours.
21. Introduction aux boucles: Parlons maintenant des boucles, qui sont facilement l'un des aspects
les plus importants de tout type de programme ou de langage de
programmation. Mais que sont-ils exactement ? Eh bien, ils sont
généralement utilisés pour répéter un bloc de code plusieurs fois jusqu'à ce qu'une
condition spécifiée soit remplie ou pour un nombre défini
d'itérations En d'autres termes, une
boucle s'exécutera jusqu'à ce que tous les éléments d'une séquence ou d'une
liste aient été traités, ou la boucle
continuera de s'exécuter tant qu' une condition reste vraie ou
qu'elle est satisfaite. Donc, en gros, c'est une boucle. Je continuerai encore et encore jusqu'à ce que quelque chose
finisse par arriver. Aujourd'hui, ils sont très
importants car ils nous aident à automatiser les tâches
répétitives. Ainsi, au lieu de devoir répéter la même tâche
encore et encore, nous pouvons simplement écrire
une boucle qui
exécutera automatiquement cette tâche pour nous, et bien sûr,
nous utilisons des boucles pour créer des programmes
efficaces qui
s'adapteront en fonction des conditions
dynamiques. Et en ce qui concerne les boucles, il en existe deux types principaux. La première sera la boucle
à quatre. Regarde ça, d'accord ? Nous
avons une liste de 129, d'accord ? Chiffres. Et nous pouvons écrire un
programme très simple qui dira : «
Hé, imprime chaque chiffre ». Donc, en gros, imprimez un, deux ,
trois, quatre, cinq, six,
sept, huit, neuf. Mais au lieu d'avoir à écrire chaque ligne
pour chaque numéro, vous savez, imprimer
une, deuxième ligne,
imprimer deux, troisième
ligne, imprimer trois, nous pouvons simplement écrire une boucle
qui parcourra tous les numéros de cette liste,
puis imprimer ces
chiffres jusqu'à ce que, bien
sûr, le dernier chiffre imprimé, qui est neuf. Ce sera la définition ou un exemple plutôt
d'une boucle à quatre. La seconde est la boucle W. Supposons, par exemple, que l'heure se situe entre 12 h 01 et 16 h 59. Donc, tant que l'heure
de la journée se situe entre cette plage, disons bonjour Notez la différence
entre les deux structures. D'accord ? La
première ici, qui est la boucle fol, a déjà, par
exemple, une
liste ou une séquence prédéfinie Et tant que nous avons des éléments dans cette liste en particulier,
faites quelque chose. La boucle Wil est un
peu différente car
elle indique : « OK, tant que cette condition
continue d'être satisfaite ou que cette condition
continue d'être vraie, quelle est la
condition ici ? Tant que l'heure se situe
entre 12 h 13 h et 16
h 59 , bon après-midi. D'accord. En fin de compte, les boucles doivent avoir un point de terminaison, sinon
elles s'exécuteront indéfiniment. En gros, une boucle peut
écraser l'ensemble du programme. Regardons l'
exemple ci-dessous. Et si les chiffres de cette liste étaient du numéro un à l'
infini, n'est-ce pas ? Cela signifie que le programme
continuera à imprimer les chiffres encore
et encore, et il ne s'arrêtera jamais. Cela bloquera
facilement le programme. Et si dans cet
exemple pour le moment, il n'y a pas de
période spécifiée. Et si le programme
vérifie simplement si c'est pendant la journée ou à n'importe quel moment de la
nuit, dites bonjour. Eh bien, il s'agira toujours d'imprimer un
bon après-midi, bon après-midi, un bon
après-midi, un bon après-midi. Et cela finira également par faire
planter le programme. Il est donc très, très important que chaque fois que
nous travaillons avec des boucles, il doit toujours y avoir un
certain type de condition qui sera finalement
satisfaite pour que cette boucle se termine. Dans le cas contraire, le
programme se bloquera. Merci d'avoir
regardé la vidéo, je vous verrai
au prochain cours.
22. Boucles pour et pendant: Retournez maintenant à notre dossier d'administrateur. Et je vais
vous donner deux exemples. Un pour la boucle des quatre et
un autre pour la boucle de Wil. Donc, pour créer
nos quatre boucles, créons d'abord la liste. Dans ce cas, pour l'instant,
je vais fournir le nom de la liste
sous forme de noms, d'accord ? C'est égal, et ensuite je vais
mettre mes crochets ici. Et ajoutons quelques noms. J'ai donc Alex. J'ai Nancy. Et j'ai James. Enfin, disons que j'ai Violetta Honnêtement, je viens
de trouver ce nom. Violetta. OK. Nous avons donc ici une liste de
quatre noms différents, non ? Alex, Nancy, James,
puis Violeta. Une chose que je peux maintenant faire pour
le moment est que nous pouvons créer une variable qui représenterait
chaque élément de la liste. Un peu comme nous avons
attribué des valeurs
à des variables comme,
vous savez, X est égal à
quatre, Y est égal à sept Je peux maintenant venir ici
et simplement dire quatre. OK ? Et maintenant, je vais dire quatre X dans les noms. OK ? Quels sont ceux ici,
permettez-moi d'ajouter les
deux points juste là. Donc, ce que nous avons fait
avec cette déclaration ici, c'est que nous disons, d'accord, nous allons utiliser X pour représenter chaque
nom de cette liste. X sera donc égal à Alex qui sera la
première boucle qui s'exécutera. La deuxième boucle X sera désormais égale à Nancy, elle fonctionnera. La troisième boucle
sera désormais égale à X pour James. Enfin,
la toute dernière boucle sera X égale à Violet. C'est essentiellement
ce que cela fait ici. Nous parlons donc de X dans les noms. Et maintenant, nous devons
dire au programme :
OK, que devons-nous faire ? Eh bien, nous devrions
imprimer le nom X. D'accord. Je vais
courir, et voilà. Alex, Nancy James et Violetta. Mais si je voulais pimenter un
peu
ce programme et
dire quelque chose comme, vous savez, bonjour, puis le nom
de cette personne. Nous allons donc passer une bonne
journée à Alex. Bonjour, Nancy.
Bonjour James. Et, bien sûr,
bonjour Violetta. Comment allons-nous nous y prendre ? Eh bien, à l'intérieur de la fonction d'
impression, je vais ajouter une chaîne
qui
dira tout d'abord bonjour. Je vais bien. Ensuite, nous
allons avoir la virgule, qui, soit dit en passant, n'
est qu'une partie de l'impression elle-même Cela ne fait pas partie
du programme proprement dit, si vous voyez ce que je veux dire. Cela fait partie de la chaîne. En gros, c'est ce que j'
essaie de dire. Nous pouvons également le faire sans le coma, en
fait, vous savez quoi ? Permettez-moi de supprimer la virgule,
juste pour ne pas vous embrouiller. Alors je vais te dire
bonjour, d'accord ? Ensuite, je vais ajouter un espace parce que nous voulons qu'il soit un espace
entre la chaîne réelle, bonjour, puis
le nom de la personne. C'est pourquoi j'ai ajouté l'
espace juste là, d'accord ? Et puis ici, je vais ajouter le signe
plus, puis X. Donc, en gros, associer
la souche «
bonjour » au nom
de la personne. Lancez le programme,
et voilà. Bonjour, Alex.
Bonjour, Ansy Bonjour, James.
Bonjour Violetta Maintenant, si je supprime cet espace parce que je veux que vous le
compreniez très bien. Si je supprime cet espace maintenant et que je lance le programme à nouveau, vous pouvez voir tout de suite que tout
est brouillé, d'accord ? n'y a pas d'espace entre le matin et le jour suivant le nom de la personne. C'est pourquoi, encore une fois, j'ai
ajouté l'espace juste ici entre le G et les
guillemets fermants, d'accord ? Donc, je veux dire, encore une fois. Et voilà.
Voici un exemple de boucle
à quatre boucles très simple. Tout d'abord, nous avons créé
une liste de noms. Nous avons attribué cette liste complète ici aux noms des
variables. Ensuite, nous devons créer une autre variable qui
représentera chaque élément, chaque nom de cette liste. Nous avons donc défini quatre X dans la liste appelée noms et maintenant la fonction
« Bonjour », plus le nom de la
personne dans cette liste. Voici un exemple
de vos quatre boucles. Maintenant, ce que je vais
faire, c'est créer une boucle sauvage. Maintenant, pour ce faire,
descendons ici. Et oui, nous pouvons exécuter
plusieurs programmes et fonctions dans le même
fichier, n'est-ce pas ? Donc, ce que je vais
faire maintenant, c'est créer
ce que l'
on appelle un compteur. OK, donc le compteur est égal à zéro. Maintenant, qu'est-ce que je fais exactement
ici ? Qu'est-ce que ce compteur ? N'oubliez pas qu'avec les boucles Wil, elles
continuent de fonctionner tant qu' une condition est remplie. C'est la différence entre une boucle de
chute et une boucle de temps. Avec la boucle automnale, nous avons
une liste d'articles, n'est-ce pas ? La boucle parcourra donc simplement tous les
éléments de cette liste. Mais pendant un certain temps, il doit y avoir
une sorte de condition qui
sera présentée. Ensuite, nous allons
dire à Python que, tant que cette condition
particulière continue d'être satisfaite,
exécute la boucle. Donc, la condition pour le
moment est que même si notre compteur est
inférieur à trois, voyez-vous maintenant que nous disons : «
Hé, tant que notre compteur, tant que le chiffre
ici est inférieur à trois, continuez à faire quelque chose. Et vous pouvez voir que
Python
nous donne déjà une idée de la marche à suivre. Eh bien, je vais
dire imprimer, puis je vais ajouter un
texte juste là, la chaîne. Bonjour OK ? Et voilà. Maintenant, ce que nous disons ici,
c'est repartir de zéro, d'accord ? Commencez à zéro,
puis
vérifiez si zéro est inférieur à trois. S'il est inférieur à trois,
imprimez Hello. Cependant, nous n'avons pas
vraiment terminé. Pourquoi ? Eh bien, parce que nous
n'avons pas spécifiquement demandé à Python d'ajouter un nouveau
nombre au compteur. Donc, au lieu de zéro, il
deviendra désormais un. Vérifiez si un
est inférieur à trois ,
puis imprimez bonjour. Nous ne l'avons pas
encore dit à Python car une boucle
peut aller dans les deux sens. Nous pouvons soit continuer
à additionner soit un, deux, trois à zéro, soit aller dans la direction
opposée, puis au lieu de
zéro allant à un, cela pourrait être zéro
allant à moins un, moins deux, moins
trois, moins quatre. Et dans ce genre de scénario, ces chiffres
seront toujours inférieurs à trois, et la condition ne sera jamais satisfaite, ou
plutôt elle le sera
toujours , ce qui
fera planter le programme. Nous devons donc dire
explicitement à Python que, hé, une fois que vous avez lancé la
toute première boucle où zéro est inférieur à trois, ajoutez-en un au compteur. Je vais donc entrer tout de
suite et je vais dire contre, puis
plus égal à un. C'est notre façon de dire : OK, Python, le tout début
de la boucle sera zéro. Vérifiez si zéro
est inférieur à trois. S'il est inférieur à
trois, imprimez hello et
ajoutez-en un au compteur. Il y en aura donc désormais un
à moins de trois. Python dit que oui, un est
en effet inférieur à trois. Ça va mettre un terme à « bonjour ». Il va en ajouter un à nouveau, donc un deviendra deux. Python va vérifier, OK,
c'est deux de moins de trois, oui, c'est moins de
trois, affiche bonjour. Ensuite, il va en
ajouter un à nouveau. Cela devient donc trois. Enfin, Python
dira que, d'accord, trois n'est pas inférieur à trois
parce que trois est égal à trois, puis il mettra fin à la boucle. C'est vrai. Allons-y
maintenant et courons. Et voilà.
Bonjour, bonjour, bonjour. Vous pouvez voir juste là
qu'il s'est arrêté à trois boucles, car la toute
première boucle sera nulle. La deuxième boucle sera pour une personne. La troisième boucle sera pour deux. Si je venais ici et que je disais : OK, moins de sept points, maintenant vous pouvez voir que nous en avons, encore ,
40, un, deux, trois ,
quatre, cinq, six, bonjour. Voilà donc la différence entre la boucle à quatre et la boucle sauvage. Vous pouvez voir maintenant qu'
avec les quatre boucles, nous avons notre liste ou
notre méthode, puis la boucle passera en revue chaque élément ce tableau et elle
fera quelque chose. Mais pour la boucle de Wile, nous devons tout
d'abord spécifier,
OK, quel est le point de
départ Ensuite, nous allons maintenant fournir
la condition suivante : OK, tant que cela est égal à ceci ou que c'est inférieur à
cela, ou que c'est ceci, faites quelque chose, puis
ajoutez-en une ou supprimez-en une ou
faites simplement quelque chose pour vous assurer que la boucle commence réellement à s'exécuter. C'est la différence
entre la boucle à
quatre et la boucle entière. Bien entendu, nous allons
travailler beaucoup plus avec quatre boucles et quatre
boucles dans ce cours Mais merci d'avoir
regardé. Je te
verrai au prochain cours.
23. L'instruction BREAK: Passons maintenant à la déclaration de
rupture,
car elle est
très, très puissante,
et nous allons
travailler avec elle dans ce cours. Mais avant cela, je voudrais simplement
vous montrer une manière différente d'
imprimer les noms dans cet exemple
particulier. heure actuelle, nous disons
bonjour , puis plus,
puis X. X, bien sûr, étant la variable représentant
chaque nom de notre liste. Une autre façon d'écrire cela serait de faire
quelque chose comme ça. Tout d'abord, je vais
supprimer le plus X. D'accord. Mais maintenant, je vais venir ici dès
le début. Je vais taper F, OK. Et maintenant, ici, je vais ajouter
mes bretelles frisées,
pas les bretelles habituelles, mais les bretelles bouclées Et maintenant, je vais
simplement taper X. D'accord ? Je peux exécuter le programme, et vous pouvez voir maintenant que nous
avons exactement les mêmes résultats. Il s'agit ici
d'un
moyen différent et aussi plus efficace d'
imprimer les valeurs des
variables une liste ou d'un tableau en
un coup d'œil. Hein ? Et nous allons marcher comme ça à l'
avenir. Maintenant, la déclaration de rupture, quoi consiste exactement la déclaration de
rupture ? Il est utilisé lorsque nous voulons
terminer une boucle plus tôt que prévu. Par exemple, dans ce flop
auquel nous assistons actuellement, il suffit de
passer
en revue tous les noms de passer
en revue tous les noms notre liste, puis d'
imprimer « bonjour », puis le
nom de la personne, n'est-ce pas ? Mais que se passerait-il si, pour une
raison ou une autre, nous voulions
mettre fin à la boucle
dès que James serait atteint, nous ne voulions pas publier « Bonjour Violeta parce que nous n'
aimons pas Violeta, n'est-ce pas C'est là que nous pourrions utiliser l'instruction break pour
terminer la boucle plus tôt. Pour le démontrer,
je vais écrire un
programme complètement différent, d'accord ? Alors faisons-le correctement ? Je vais taper,
disons, des chiffres. Je vais créer une nouvelle liste
ici où les nombres sont égaux, et je vais les
mettre entre crochets ici. Et allons-y avec une
série de chiffres. Je vais opter pour un, trois. Allons-y avec sept, huit, dix, et allons-y avec 11, et ajoutons-en un de
plus, voire le numéro 14. OK ? Nous avons donc une liste
de nombres ici, et ce que nous voulons faire
maintenant, c'est créer une boucle qui
parcourra tous les nombres. Cependant, une fois que le premier
nombre pair a été atteint, nous voulons terminer la boucle, ce qui signifie qu'une fois le
nombre huit atteint, nous allons terminer la boucle, elle doit
donc être exécutée quatre fois. La première boucle pendant 1
seconde p pour trois, la troisième, recherchez sept, la quatrième boucle pour huit. Alors
réfléchis à ça, non ? Nous allons d'abord créer
la boucle d'automne, puis nous allons
introduire l'instruction I. Donc, le I sell me
vérifiera, d'accord, est-ce que ce nombre est vraiment
pair ou impair ? S'il est pair, interrompez la boucle car nous avons trouvé
le premier nombre pair. S'il ne s'agit pas d'un nombre pair, s'il s'agit d'un nombre impair, poursuivez la boucle. Alors, comment allons-nous procéder ? Tapez pour entrer dans la
boucle d'automne 4, disons Num. OK, Num
représentera les chiffres. Au fait, je ne
sais pas si je l'ai déjà mentionné
, mais je pense qu'il est temps que je le fasse. Tu vois, je n'ai saisi que
le numéro. Vous pouvez voir en ce
moment sur mon écran Python suggère déjà en chiffres parce que Python est
en fait assez intelligent, n'est-ce pas ? Donc, dans ce genre de
situation en ce moment, si vous êtes
satisfait de la suggestion que le programme vous a donnée,
vous pouvez simplement appuyer sur la touche de
tabulation de votre clavier, et vous obtiendrez
exactement le même résultat, n'est-ce pas ? Je dois donc pardonner
de ne pas pouvoir parler. J'ai enregistré le numéro de l'onglet. Ou la touche tactile de mon clavier, et maintenant j'ai
quatre chiffres numériques. Je vais ajouter mes deux points. OK ? Maintenant, je vais ajouter l'instruction If, et
voudriez-vous y jeter un œil ? Je vous promets que je n'
ai jamais écrit
ce programme auparavant, mais je pense que Python
est tellement intelligent J'ai déjà une idée de
ce que je pourrais rechercher. Oui, je veux si num, puis le pourcentage
deux sont égaux à zéro. Alors c'est quoi exactement ?
Qu'est-ce qui se passe ici ? Cela signifie que nous allons vérifier si le nombre qui a
été extrait,
s'il est divisible par deux et le reste est égal à zéro, alors nous savons avec certitude qu'
il s'agit d'un nombre pair Si vous divisez sept par deux, vous obtiendrez 3,5, 3,5. Il en restera
toujours la moitié. Mais lorsque vous divisez
huit par deux, la réponse est quatre. Ce n'est pas 4.1, ce n'est pas 4.2. Ce n'est pas 4,5, c'est quatre. C'est ainsi que nous pouvons vérifier si le nombre est réellement pair. Donc,
si le chiffre est pair, que devons-nous faire ? Disons imprimer. OK. Et maintenant je vais
ajouter la chaîne F. OK, et maintenant la chaîne
elle-même a trouvé le premier nombre pair. OK, ajoutons ma virgule. Et maintenant, je veux afficher
le chiffre réel, bretelles
bouclées, et
quel sera ce chiffre ? Ça va être engourdi. OK. Génial Nous avons donc ajouté ce que le programme
doit faire si le nombre est, en fait, un nombre pair. Prince dit : OK, nous avons
trouvé le premier chiffre, et maintenant rompez la boucle. Nous n'avons plus besoin de la
boucle pour fonctionner. Casse-le, c'est fini. Nous avons trouvé
le premier chiffre maléfique. Nous partons d'ici.
El Assurez-vous de vos onglets. N'oubliez pas que la tabulation est
extrêmement importante, d'accord ? E et L s doivent être
sur le même onglet, non, dans le même
retrait, non ? Donc, il suffit d'imprimer, disons simplement d'imprimer. J'ajoute mes crochets
, puis mes manteaux, toujours à la recherche de ce chiffre pair. Et voilà. OK. Allons-y maintenant. Lancez le programme,
et le tour est joué. Je cherche toujours
ce chiffre pair. Je cherche toujours
ce chiffre pair. Je cherche toujours
ce chiffre pair. Oh, regardez, nous avons trouvé le
premier nombre pair, et le nombre est huit. Il s'agit de l'utilisation de
l'instruction break. Maintenant, utilisons-le dans un environnement sauvage L. Maintenant, pour ce faire, je vais faire
tout le chemin jusqu'ici. Et créons un programme
très simple qui demanderait
à l'utilisateur de taper quelque chose ou de
taper une lettre en particulier, et tant que la
lettre n'est pas égale à Q, continuez à demander à l'
utilisateur une nouvelle lettre, d'accord ? C'est donc essentiellement la condition qui
doit être remplie. Ainsi, pendant que l'utilisateur
tape ABCDEF, tant que ce n'est pas Q, continuez à lui demander de
saisir une nouvelle lettre Je vais donc dire que même si c'est vrai,
ce que cela fait pour le moment, c'est une fonction ou une
boucle très
simple en Python qui a
automatiquement créé une condition
qui est toujours vraie sauf si quelque chose
d'autre se produit. N'oubliez pas qu'avec
les boucles sauvages, une
condition particulière doit être
continuellement satisfaite
pour que continuellement satisfaite
pour la boucle fonctionne réellement, puis elle doit
être interrompue
une fois qu'une
condition très spécifique a été remplie. Nous allons donc
supposer maintenant que la condition
est toujours vraie, et maintenant je vais
taper les entrées de l'utilisateur. Il s'agira de
la variable qui
représentera la lettre que l'
utilisateur saisira réellement. Je vais donc dire que
l'entrée de l'utilisateur est égale, et maintenant la saisie, souvenez-vous de
la saisie de la fonction, qui demandera maintenant à l'
utilisateur de taper quelque chose. Je vais donc dire, entrez une lettre,
puis entre crochets, je vais dire, Oh, tapez Q. D'accord. Tapez Q pour
quitter le programme. OK ? Nous donnons donc le choix
aux utilisateurs ici présents, d'accord ? Vous pouvez soit simplement taper une lettre, soit si vous
voulez quitter le programme, tapez
simplement Q, d'accord ? Je vais donc appuyer sur Entrée. Tapons maintenant la condition dont nous avons besoin pour vérifier si l'
entrée est réellement Q. Je vais
donc
entrer tout de suite, ajouter l'instruction If. Nous allons donc vérifier si
l'entrée utilisateur est égale à Q. Que devons-nous faire ? Eh bien, je vais dire
imprimer. Entre parenthèses. Et je dois dire que vous avez
choisi de quitter le programme. Choisissez de quitter le programme. Appuyez sur Entrée, et le tour est joué. Et maintenant qu'ils ont
choisi de le faire, oh, permettez-moi d'ajouter les
derniers guillemets ici. Comme ils ont choisi
de quitter le programme, nous allons maintenant
rompre la boucle. Sinon, je vais
venir ici tout de
suite et dire « imprimer ». Et maintenant, les codes F sont tapés. Et maintenant, souvenez-vous, entre crochets, je vais dire « utilisateur »
sur les entrées de partition Et voilà. D'accord ? Allez-y
tout de suite. Lancez le programme. OK, alors maintenant il est écrit « Entrez une lettre », je
vais dire « Y ». Appuyez sur Entrée. OK ? Maintenant, il est
écrit : OK, vous avez tapé Y. Entrez une autre lettre,
je vais dire A. Encore
une fois, il fonctionne
jusqu'à ce que je tape Q, et maintenant il a
terminé le programme Et ici, nous
combinons l'instruction our Wil, la Wile Loop plutôt que
l'instruction break Alors laissez-moi
le relire. Je sais que vous avez peut-être une
question, pourquoi n'avons-nous pas saisi le s parce que nous avons l'
instruction I. Alors, où est le s ? Eh bien, nous pourrions en fait ajouter le s. Il sera juste ici, et je vais juste dire oui. Et puis l'octet de tabulation ici
imprimé, vous l'avez saisi. Je peux donc y aller dès maintenant. Exécutez à nouveau exactement
le même programme. OK ? Je viens ici en
ce moment, en tapant G. Cela fonctionne bien,
en tapant , en tapant Q, entrant, et maintenant cela fonctionne exactement de
la même manière. Donc, une chose que vous
devez comprendre ici est que la raison pour laquelle l'instruction
else est en fait facultative ici est que
nous travaillons avec la boucle wild true,
la condition. Il va donc
automatiquement supposer que la condition
sera toujours vraie. Et maintenant, nous utilisons l'instruction
break ici pour contrôler
intentionnellement
le moment où la boucle se terminerait réellement. La déclaration L n'est donc vraiment pas nécessaire
ici. La boucle sera toujours exécutée parce que nous avons
dit « Wild true » et nous ne nous arrêterons par l'instruction break qu'une fois que l'utilisateur aura saisi la lettre Q.
Donc,
en fait, l'instruction Ls
ici n'est pas nécessaire Vous pouvez toujours le saisir. Le programme
fonctionnera toujours parfaitement. Mais chaque fois que vous
marchez avec les instructions wild true puis
break, vous n'avez plus besoin d'ajouter la condition
Ls. Nous avons donc fait pas mal de choses
dans cette vidéo en particulier. J'espère que vous avez pu suivre et que vous
comprenez maintenant comment l'
instruction break est utilisée. Merci beaucoup d'avoir
regardé la vidéo. Je te verrai
au prochain cours.
24. Essayer sauf les instructions: Eh bien, revenez. Dans
la leçon précédente, nous avons créé avec succès
ce programme particulier qui acceptera les entrées, nombres
positifs de la part de l'utilisateur. Il étudiera les nombres dans une liste, et il continuera de le faire
jusqu' à ce que l'utilisateur
saisisse le mot terminé. Et à la fin,
il imprimera s'il y avait un nombre pair, il imprimera quel était le
premier chiffre pair et finira par imprimer
tous les numéros de la liste. Cependant, nous avons
découvert que lorsque nous avons exécuté le programme
et que nous avons ajouté, disons, par
exemple, au lieu d' un entier réel
tel que huit ou neuf, nous avons ajouté, disons, 8,6, n'est-ce pas ? Lorsque nous appuyons sur Entrée,
nous avons fini par avoir cette flèche de valeur de
message de flèche particulière. Maintenant, si nous lançons
à nouveau le programme, et au lieu de 8,5, j'ai dit, vous savez, IOF, j'ai saisi des lettres à la
place, j'appuie sur Entrée Vous pouvez constater une
fois de plus que nous avons exactement la même erreur. Et c'est parce que notre
programme a été créé telle sorte qu'il ne
devrait recevoir que des nombres
positifs. Si nous lançons le programme une
fois de plus et que j'ai saisi,
disons, moins six, ce qui est un nombre négatif
et que j'ai appuyé sur Entrée, vous pouvez voir que cela fonctionne en
quelque sorte Il accepte le moins
six parce qu'il s'agit
d'un nombre réel. Il se trouve que c'est négatif. Mais cela va tout de même à
l'encontre de l'objectif, car nous voulons
que l'utilisateur
saisisse uniquement des nombres positifs. Il n'aurait donc même pas dû
accepter ce chiffre négatif de six. Nous avons donc quelques problèmes avec notre programme en particulier, et nous devons maintenant introduire
ce que
l'on appelle le bloc « essayer puis
accepter ». Le bloc tri en Python
fait donc essentiellement partie de ce que nous appelons un mécanisme de
gestion des exceptions, qui nous
permettrait essentiellement de
détecter et de gérer les erreurs
susceptibles de survenir lors de l'
exécution de notre code. Ainsi, si une erreur se produit
à l'intérieur du bloc tri, le programme ne plantera pas. Au lieu de cela, l'erreur sera
détectée et le code contenu dans le bloc d'exception associé
sera alors exécuté. N'oubliez pas qu'
il ne s'agit pas seulement les utilisateurs de faire une erreur chaque fois qu'ils
saisissent leurs entrées. Il est également possible qu'un
pirate informatique essaie délibérément d' insérer des valeurs que
le programme n'
acceptera pas dans le but
de le faire planter. C'est pourquoi nous devons toujours
nous assurer
que nos programmes, chaque fois qu'ils acceptent des
entrées de l'utilisateur, chaque fois qu'ils acceptent des
entrées de l'utilisateur, soient créés et
conçus de manière à
ce qu'ils soient capables gérer les mauvaises
entrées de l'utilisateur. Alors, comment allons-nous maintenant
détecter des erreurs particulières ? Eh bien, je vais
venir ici. On fait une pause, d'accord ? Donc, si
nous commençons ici, c'est
parce que c'est ici que nous allons vérifier si
l'utilisateur a ajouté le
mot fini ou un chiffre réel. Donc, après la pause, non ? Après la pause, parce que la pause
va vérifier, d'accord, c'est fait ? Si ce n'est pas fait,
il va maintenant s'exécuter. C'est ici que nous
allons maintenant taper les mots ou plutôt
le mot essayer car c'est là que nous
voulons que le programme attrape une flèche s'il y en a une. Alors maintenant, il va
falloir essayer, puis deux points. Et maintenant, c'est ici, nous pouvons simplement cliquer dessus. D'accord, permettez-moi de
le présenter ici. Nous disons donc
ici que si l'
utilisateur tape « terminé », il suffit de casser le programme. Je suis désolée, romps la boucle. Toutefois, s'il s'agit
d'un nombre réel, vérifions-le pour voir
s'il est positif. Donc, à l'heure actuelle, nous avons la variable de
crédit NUM Nous avons ajouté l'entrée
utilisateur à NUM. Alors maintenant,
voyons si c'est positif. Le moyen le plus simple de vérifier
serait de simplement dire si le nombre est inférieur à zéro. C'est le
moyen le plus simple de vérifier. Si le nombre est en
fait inférieur à zéro, nous allons dire imprimer, veuillez saisir un nombre positif. Maintenant, c'est parce qu'après ça viendra. Maintenant, voyez s'il s'agit en
fait d'un nombre positif, nous
allons simplement l'ajouter. Nous allons ajouter deux nombres à la variable
num, et c'est tout. D'accord ? Enfin,
comme nous avons essayé, nous allons le fermer
en utilisant l'instruction accept. Donc, en gros, ce que nous
faisons ici,
nous disons : Hé, si la valeur fournie par
l'utilisateur était, en fait, inférieure à zéro, alors
imprimez, entrez un nombre positif. Mais que se passe-t-il si l'utilisateur
n'a pas saisi de numéro ? Et s'ils tapaient des lettres
ou des chaînes, en gros, non ? C'est donc là que l'
exception va maintenant entrer en jeu. Nous allons donc dire
sauf erreur de valeur, d'accord ? Donc, s'il y a une erreur
réelle dans la valeur elle-même parce qu'
il ne s'agit pas d'un nombre, allez
maintenant dire « imprimer », entrez un nombre valide. Et c'est tout. Essayons donc de voir
si cela fonctionnera. Je vais donc commencer
tout de suite, lancer le programme. D'accord ? Donc, ce que je vais
faire maintenant, c'est que je vais passer à moins six, appuyer sur Entrée. Vous pouvez voir ici qu'il est écrit : « Veuillez saisir un nombre positif ». Mais que se passerait-il si je tapais une chaîne
comme celle-ci, par exemple, elle dit
maintenant, veuillez
entrer un nombre valide Voyez comment cela fonctionne, n'est-ce pas ? Alors laissez-moi vous expliquer tout
cela une fois de plus. En gros,
ici même où nous acceptons les informations
de l'utilisateur. Nous voulons
vérifier qu' il s'agit bien d'un nombre positif. Le meilleur moyen est que si ce
nombre est inférieur à zéro, alors nous savons qu'il est négatif,
nous pouvons l'imprimer. Entrez un nombre positif. Si, par contre, il
est supérieur à zéro, nous savons que c'est un nombre positif. Nous pouvons commencer dès
maintenant et ajouter
le nombre à la liste des numéros. Et maintenant, nous
devons dire : OK, mais que se passerait-il s'il y
avait une véritable erreur dans le type d'entrée
que l'utilisateur a inséré ? Ce n'était peut-être pas un chiffre
positif. R, ce n'était peut-être même pas
un chiffre négatif. Peut-être que c'était comme des lettres des mots
ou
autre chose. Nous pouvons alors dire : « Veuillez
saisir un numéro valide ». C'est là que l'exception
entre en jeu. Voilà pour les instructions try
and except. Merci d'avoir
regardé la vidéo. Je te verrai
au prochain cours.
25. Déclaration continue: Avant de terminer la section
sur les boucles et le contrôle de flux, je voudrais jeter un
œil à une autre déclaration,
à savoir l'instruction continue. Jusqu'à présent, nous avons travaillé
avec l'instruction break, est
bien sûr utilisée pour mettre fin à la boucle une fois qu'une
condition particulière est remplie. Mais que se passerait-il si, pour une
raison ou une autre, nous voulions simplement sauter une itération
ou une partie d'une boucle en particulier Nous ne voulons pas vraiment mettre fin à
la boucle. Nous voulons simplement sauter
une étape en particulier. C'est là que continue
entre en jeu. Permettez-moi de vous donner un exemple.
Permettez-moi de supprimer ce code. Disons que pour un nombre qui n'est pas compris
dans la plage 16. Maintenant, vous vous demandez probablement
ce qu'est exactement la gamme. Ici, Range est simplement une
fonction intégrée à Python, qui générera des nombres
compris entre une certaine plage Dans ce cas, pour le moment,
nous disons les chiffres de 1 à 6. Cependant, gardez à l'esprit que lorsque vous travaillez
avec la fonction de plage, le premier chiffre ici,
qui est un, sera inclus tandis que le
dernier chiffre, qui est six, ne sera pas
inclus pour être exclusif. Si je devais simplement dire, d'accord, il
suffit d'imprimer
puis , entre crochets,
d'imprimer le numéro. Vous allez voir maintenant que
nous allons en avoir un, deux, trois, quatre, cinq. Veuillez garder cela à l'esprit. Maintenant, la fonction par défaut imprimera un,
deux, trois, quatre, cinq. Mais que se passerait-il si nous voulions en
sauter trois dans ce cas ? Si nous
voulons en imprimer un, deux, quatre, puis cinq, comment
allons-nous procéder ? C'est là que la
déclaration continue va
entrer en jeu. Mais avant tout,
je dois créer l'instruction If pour vérifier si le nombre est égal
à trois, n'est-ce pas ? Alors maintenant, je dis que si c'est
égal à trois, il suffit de continuer. Je n'ai pas besoin d'ajouter
l'énoncé ici car lorsque vous travaillez avec l'énoncé continu,
il est compris. Python dira simplement qu'une fois j'aurai atteint trois, je
vais l'ignorer. Je vais en sauter trois, puis simplement continuer avec
le reste de la boucle. Maintenant, si je devais
exécuter le programme, vous pouvez voir qu'il y en a un, deux, quatre, puis cinq. C'est essentiellement ainsi que fonctionnerait l'instruction
continue. Permettez-moi de vous donner un autre exemple
très rapide. Et si j'étendais la gamme de
1 à 11, disons. Mais maintenant, nous voulions vérifier
les nombres pairs, puis simplement
conserver ces nombres pairs, nous voulons uniquement
imprimer les nombres impairs. Encore une fois, comment
allons-nous procéder ? Voyons d'abord s'il est divisible par
deux. Je vais donc dire pourcentage, puis deux ici sont égaux
à zéro dans ma colonne. Maintenant, je vais simplement dire
continuer, puis imprimer le numéro Maintenant, s'il s'agit d'un programme sterni, vous pouvez voir que c'est simplement un, trois, cinq, sept et neuf C'est ainsi que fonctionne réellement l'
instruction continue. Permettez-moi de passer une
minute à parler un peu plus en détail de
la fonction de portée. Il y a encore une chose.
Cela, vous devez être au courant. Le truc avec la
fonction range, c'est qu'elle peut en fait accepter
trois valeurs. À titre d'exemple, laissez-moi
simplement ajouter mon hashtag. Par exemple, avec la plage, vous pouvez avoir quelque chose comme un, dix, puis deux. La fonction de plage peut accepter trois
paramètres différents, non ? Donc, si vous vous demandez,
qu'est-ce que cela va être exactement ? Eh bien, le tout premier chiffre représente
la valeur de départ, qui est un
, le second représente
la valeur d'arrêt,
qui sera dix, tandis que la troisième valeur
actuelle en représentera deux, qui seront les étapes
à sauter Par défaut, laissez-moi simplement
vous montrer comment cela fonctionne actuellement. Si je devais venir
ici maintenant et
dire ensuite un, dix ou deux. À titre d'exemple, permettez-moi supprimer le segment «
continuer » ici OK. Si j' imprime ces chiffres maintenant, vous verrez qu'il y a maintenant un,
trois, cinq, sept et neuf ans ? Parce que nous les
ignorons toutes les deux. L'étape sera deux,
donc on va passer à un,
on va passer
à trois, on
va sauter à cinq et ainsi de suite. Si je devais changer cette
valeur maintenant à trois, pouvez-vous deviner quelles seront les
valeurs ? Maintenant, ça va être 14 ou 7. Donc, si je lance le programme, voilà 147. Vous travaillerez peut-être ou non avec la fonction de plage
à l'avenir, mais j'ai simplement pensé qu'il était important que vous compreniez
au moins que la fonction de plage peut accepter jusqu'à trois paramètres
différents. La première valeur
ici est le numéro de départ, seconde est le numéro d'arrêt, puis la dernière
valeur est
le numéro d' étape et gardez à l'esprit que la valeur d'arrêt
est toujours exclusive. Cela ne sera pas inclus dans les résultats réels de cette fonction de plage
particulière. Dernière chose à mentionner,
dernière chose à mentionner, vous pouvez également tomber sur une déclaration particulière
appelée déclaration de passe. Ça se passe comme ça.
Au lieu de continuer, par
exemple, vous verrez passer. Pass ne fait vraiment rien. Honnêtement, c'est vraiment utilisé
pour transmettre des commentaires. Peut-être que le développeur
du programme ne veut pas encore
exécuter quelque chose mais
veut vivre comme un nœud. C'est à cela que sert
principalement le laissez-passer. Nous n'allons pas du tout
travailler avec. Ainsi, par exemple, ici, je pourrais dire quelque chose
comme « OK, passe », puis je peux ajouter mon
hashtag et je peux dire que j' ajouterai la fonction plus tard Juste à titre d'exemple.
Permettez-moi lancer le programme,
et vous pouvez voir maintenant le programme fonctionne toujours de toute façon, il ne va pas
vraiment faire quoi que ce soit en tant que tel. C'est à peu près ça. Merci d'avoir
regardé la vidéo. Je te verrai
au prochain cours.
26. Défi de programmation: Ok, Dookie, il est maintenant
temps pour nous d'essayer rassembler tout ce
que nous avons appris
jusqu'à présent pour écrire un programme Et le programme que nous voulons est celui qui
demandera à l'utilisateur de
continuer à saisir un nombre positif sinon s'il
veut quitter le programme, il pourra simplement taper
les mots ou le mot terminé pour
quitter le programme. Donc, en gros, nous disons : «
Hey, utilisateur, continue
d'ajouter un nombre positif. Continuez à ajouter le numéro. Continuez à ajouter des chiffres. Chaque fois que vous êtes prêt
à quitter le programme, tapez
simplement terminé, n'est-ce pas ? Maintenant, alors que l'utilisateur saisit les chiffres
deux, trois, quatre, neuf, 11, peu importe, nous voulons ajouter ces
chiffres à une liste. Nous voulons être en mesure de
suivre tous les numéros que les utilisateurs
continuent de nous fournir. Nous allons donc ajouter
ces numéros à une liste. Mais nous voulons également que le
programme vérifie les numéros eVo ajoutés par l'
utilisateur et garde trace du tout premier numéro
EVO fourni afin que nous puissions
imprimer et dire à l'utilisateur que
« Hé, c'est le premier chiffre
pair que vous avez ajouté, puis nous pouvons indiquer
quel était ce numéro ». Sinon, si l'utilisateur n'
a ajouté que des nombres impairs, nous pouvons
simplement dire « OK, aucun nombre pair n'
a été trouvé dans votre liste ». Maintenant, une fois que l'utilisateur a ajouté plusieurs numéros et qu'il finalement décidé de
quitter le programme, nous voulons que le programme imprime tous les numéros
ajoutés par l'utilisateur. Et si l'utilisateur n'
a même jamais ajouté un seul numéro, dites
simplement qu'il n'y a pas de
guerre des nombres, ce n'est pas difficile. OK. Abordons donc
cette question étape par étape. Tout d'abord, nous allons
vouloir une liste, non ? Appelons cette
liste par des numéros, d'accord ? Nous allons donc ajouter tous les numéros
saisis par l'utilisateur. Nous allons les ajouter à
cette liste appelée numéros. Donc, évidemment, nous
allons utiliser
la fonction de saisie pour, vous savez,
inviter l'utilisateur à ajouter des
nombres, n'est-ce pas ? OK. Et nous allons
devoir créer une boucle sauvage dans ce
scénario, car nous voulons que l'utilisateur continue à
ajouter un chiffre ou à en fournir
un jusqu'à ce qu'il choisisse de
quitter le programme. Nous pouvons donc dire, vous savez, que c'est vrai, puis l'utilisateur
continue d'ajouter un chiffre. Ensuite, nous voulons vérifier
si le numéro fourni par l'utilisateur était
réellement un nombre pair. OK ? Nous allons donc avoir une sorte de déclaration El qui
vérifiera si le nombre, s'il est défaisable
par deux, vous savez,
s'il est égal à zéro,
vous savez , puis imprimera un nombre pair,
vous savez, des choses comme ça Vous savez, sinon, dites
simplement non, chiffres
pairs ont été
trouvés. Mais quoi d'autre ? N'oubliez pas que nous voulons
également
continuer à ajouter
les numéros fournis par l'utilisateur. Nous voulons les ajouter à
la liste appelée numéros. Nous allons donc devoir ajouter
l'entrée utilisateur à
la liste des
numéros, n'est-ce pas ? Et nous allons utiliser une nouvelle fonction
appelée Append Très bien, ne t'inquiète pas. Je vais vous
montrer comment cela fonctionne. Que devons-nous
suivre d'autre ? C'est à peu près tout pour le
moment, non ? Donc, tout d'abord, nous créons notre liste
appelée numéros, et là nous allons
devoir demander à l'utilisateur d'ajouter les numéros, vérifier si les
nombres sont pairs. Une fois que le tout premier
nombre pair a été trouvé, laissez le programme le
suivre puis, à la fin, imprimez quel était
ce nombre pair. Et puis, bien sûr, également
à la fin du programme, la plupart des utilisateurs ont
décidé de le quitter, d'imprimer
simplement tous les
numéros ajoutés par l'utilisateur. Alors, faisons-le, d'accord ? Nous allons déplacer
cela et commencer. Tout d'
abord, créons
notre liste vide qui
contiendra tous les numéros
fournis par l'utilisateur. Donc les nombres sont égaux,
puis vides, d'accord ? C'est donc la première étape que
nous allons faire. Maintenant, demandons à l'
utilisateur d'ajouter le numéro. Je vais donc dire
que pendant et maintenant, avec deux points, nous voulons demander
à l'utilisateur de
fournir des chiffres. Cependant, nous devrons affecter les entrées
des utilisateurs à une variable. Disons donc l'utilisateur sur le trait de
soulignement. OK, cela représente
tout ce que l'utilisateur ajoute. saisie par l'utilisateur ici est égale
à des crochets, et maintenant demandons à
l'utilisateur de saisir
un nombre positif. OK ? Ou entre parenthèses, ils peuvent également simplement taper le
type fait pour terminer. OK ? Jusqu'ici, tout va bien,
nous avons attribué des numéros. Nous avons notre
liste vide juste là. Cela collectera les numéros
fournis par l'utilisateur Nous avons maintenant créé une boucle pour inviter
l'utilisateur à continuer ajouter un nombre positif ou à taper terminé » s'il décide de terminer. Donc, ce que nous allons faire
maintenant , c'est vérifier si l'utilisateur a réellement tapé les lettres
finies ou tapées OK D'accord, parce que nous ne
voulons pas que le produit continue fonctionner si l'utilisateur
décide de taper OK. Je vais donc dire si l'utilisateur On the score input
est égal à done. Si ce sont vraiment types créés, qu'
allons-nous faire ? Vous l'avez deviné, nous
allons rompre la boucle. Très bien, permettez-moi d'ajouter
un peu d'espace ici. OK ? C'est bon. Nous avons donc vérifié
si Dieser avait saisi le texte s'il avait
rompu la boucle Cependant, s'ils ont saisi un nombre positif
réel, que voulons-nous que
le programme fasse ? Nous voulons que le programme ajoute ce numéro à la liste des numéros. OK ? Alors, comment
allons-nous procéder ? Nous avons besoin de quelque chose pour représenter les chiffres qui seront
fournis par l'utilisateur. Dans ce cas, pour l'instant,
ne vous y trompez pas. La
variable de saisie utilisateur ici représente simplement
l'entrée ici, entrez un nombre positif
ou tapez terminé pour terminer. C'est ce que cela
représente ici. Les chiffres réels
eux-mêmes devront créer une nouvelle
variable pour cela. Donc, pour la variable ici, je vais dire num. OK, num sera égal
à deux,
je ne sais pas, souvenez-vous de la fonction
entière qui convertira tout ce que
l'utilisateur saisit. Ce ne sera donc pas un entier
et soulignera maintenant l'entrée. OK ? Donc, en gros, peu importe ce que l'utilisateur tape sur cette ligne où nous disons «
entrez un nombre positif », si l'utilisateur tape en
5.2, par exemple, d'accord ? Convertissez 5.2 en un entier, qui sera désormais égal à cinq,
puis attribuez cinq à la variable
appelée nombre NUM. Maintenant, l'étape suivante consiste
à ajouter ce numéro que l'utilisateur a ajouté à la liste des numéros. Et
comment s'y prendre ? Je vais taper des chiffres et maintenant
vérifier ce point ajouter. Et maintenant entre parenthèses NUM. Donc, ici, cet ajout
va être la fonction
qui va maintenant commencer à ajouter les numéros ajoutés par l'utilisateur à
la liste des numéros. Revoyons-le encore une fois. Donc, tout d'abord, nous avons notre liste
vide appelée numéros. Créons la boucle appelée Wil qui demandera l'utilisateur de continuer à
ajouter un nombre positif. Cependant, s'ils ont tapé Done, si l'entrée utilisateur
est égale à done,
interrompez la boucle,
inutile de continuer Mais si l'utilisateur
a réellement ajouté des nombres réels, attribuez ces numéros à une
variable appelée Num NUM, et commencez maintenant à ajouter ces nombres
à la liste des nombres. Jusqu'ici tout va bien, que voulons-nous faire d'
autre ? Nous voulons vérifier
si un nombre pair est ajouté. Alors, qu'allons-nous faire ? Nous allons
créer une boucle à quatre. OK ? Cette boucle
va parcourir tous les nombres de la liste des numéros
, puis trouver le tout
premier nombre pair. Alors jetez un œil à ceci. Je vais
dire quatre nombres N dans quoi ? En chiffres. C'est exact. Maintenant, ajoutons deux points. Créons une instruction I L. Donc, si le nombre divisé par
deux est égal à zéro, que voulons-nous que le
programme dise ? Nous voulons programmer pour dire imprimer. Et maintenant, nos crochets. Additionnons notre chaîne F,
puis nous pouvons dire que avons trouvé le
premier nombre pair. Et puis, bien sûr, les
bretelles bouclées, puis le NUM. OK ? Sinon, si le numéro ajouté par l'utilisateur
n'est même pas simplement cassé. Détruisons-le, d'accord ? Maintenant, nous pouvons ajouter
notre instruction pour faire quelque chose, nous pouvons
dire deux points et maintenant nous allons dire
imprimer lorsque vous dites qu' aucun chiffre pair n'a été
saisi par l'utilisateur. Et voilà. Cependant, encore une fois, l'identification est
très, très importante Gardez à l'esprit que ce s
est inférieur à quatre, d'accord ? Donc ce n'est pas plutôt Is. C'est la
déclaration des quatre. Donc,
assurez-vous simplement de ne pas commettre l'erreur. Ils
seront très, très, très,
très importants Il s'agit donc essentiellement de quatre,
puis de numération en chiffres. Si un nombre divisé par deux
est égal à zéro, nous avons trouvé le tout premier chiffre ,
puis nous imprimons
quel est le nombre. Sinon, il suffit de rompre la boucle une fois que ce nombre a été trouvé, une fois que le tout premier
nombre positif a été trouvé. Désolé, le premier
chiffre pair a été trouvé. Et puis, si aucun chiffre pair n'
a été ajouté par l'utilisateur, il imprime simplement
qu'aucun chiffre pair n'a été saisi par l'utilisateur. OK. Enfin, vous devrez désormais
imprimer tous les numéros que
l' utilisateur a ajoutés à
la fin du programme. Je vais donc venir ici
tout de suite, ajouter la nouvelle instruction If
et simplement dire le numéro if. Donc, si l'utilisateur
a réellement ajouté des chiffres, donc s'il s'agit de chiffres, devinez
quoi, imprimez-les simplement. Maintenant, nous allons
dire F et encode maintenant les chiffres que vous avez entrés
R, puis
les bretelles bouclées. Maintenant, les chiffres. Sinon, ça va
être s. Simply imprime. d'autres termes, si l'utilisateur n'a
pas ajouté de chiffres, on peut dire qu'aucun chiffre n'a
été saisi par l'utilisateur. Oh. Essayons. Je vais y aller tout de suite. Lancez le programme. Et, oh, nous avons
donc
un petit problème ici. Il est écrit la ligne 23. OK, imprimer F. Qu'est-ce que j'ai
fait de mal ici ? Oh, il ne devrait pas y
avoir de place. Désolée. Il ne devrait pas y
avoir de place juste là. Vous voyez comment un seul
espace peut tout gâcher. C'est un peu
exaspérant, mais oui. Ainsi, chaque fois que vous
utilisez les chaînes F, assurez-vous qu'il n'y a pas d'espace
entre le F et votre code. Essayons donc encore une fois. Courez. OK, je
vais donc en ajouter un. Bien, ajoutons-en trois. Ajoutons-en quatre. OK,
ajoutons-en cinq. Ajoutons huit. Ajoutons six. Et maintenant je vais
taper OK, Enter, et voilà. Le premier chiffre
pair était quatre, et maintenant nous avons saisi les
autres chiffres qui sont un,
trois, quatre, cinq,
huit et six Vous pouvez donc voir maintenant
que le programme fonctionne réellement. Permettez-moi donc de passer en revue le
programme une fois de plus. Tout d'abord, nous avons créé
une liste appelée numéros. Cela contiendra tous
les nombres positifs ajoutés par l'utilisateur. Ensuite, nous avons créé
la boucle while qui invite continuellement l'utilisateur à continuer d'ajouter
un nombre positif, ou s'il choisit de ne pas le faire, il peut simplement taper le mot terminé pour terminer le programme. Nous devions donc maintenant vérifier si l'utilisateur avait réellement saisi terminé Et au fait,
laisse-moi même essayer. OK, allons-y, et tapons simplement terminé instantanément et voyons. Eh bien, voilà. Le
programme fonctionne donc très, très bien. Donc, il vérifie pour voir, hé, cet utilisateur a-t-il
bien saisi ? Oh, ça l'a fait. OK, donc si nous avons tapé OK, il suffit de rompre la boucle Nous n'avons
plus besoin d'
exécuter la boucle car l'utilisateur
a saisi done Donc dans ce cas, en ce moment, dans ce scénario
où l'utilisateur a saisi terminé, en gros, tout ce trouve ici n'est absolument
pas pertinent, d'accord ? Le programme Python va passer directement de
l'instruction break à simplement dire «
Hey, tout d'abord, jusqu'ici ». Tout d'abord, dites :
« Hé, aucun chiffre pair n'a été saisi par l'utilisateur ». Enfin, aucun chiffre n'a
été ajouté par l'utilisateur. Donc,
tous les nombres entiers vont tout ignorer Mais que se passe-t-il si l'utilisateur a
réellement saisi un chiffre ? Que voulons-nous que
le programme fasse ? Eh bien, nous voulons ajouter ce
numéro à notre liste de numéros. Nous devons donc affecter l'entrée
utilisateur à une variable. Dans ce cas, nous avons
créé actuellement une variable appelée Num qui représentera l'
entrée fournie par l'utilisateur. Et nous avons également ajouté l'INT. En fait, essayons et voyons. Je vais dire 4.5
Entrez et oh oh, oh, oh. OK. Il y a
un petit problème ici, avez-vous un
message d'erreur ? Ne t'inquiète pas. Je vais vous montrer
comment nous pouvons gérer les erreurs dans la prochaine vidéo. OK, B, laisse-moi refaire
celui-ci une fois de plus, d'accord ? Et tapez,
disons, cinq, d'accord ? Tapez cinq, tapez
huit, c'est fait. OK, donc ça marche toujours bien. Nous nous sommes donc assurés
d'avoir attribué les numéros ajoutés par l'utilisateur
à la variable appelée NOM,
puis nous avons ajouté NOM à la liste des numéros en utilisant cette fonction particulière en
écrivant les nombres à point ajouter
et à numération , d'accord ? Maintenant que l'utilisateur a
effectivement ajouté des chiffres, nous voulions que le
programme vérifie
si l'un de ces nombres
était pair. Ce faisant, nous avons
dû créer une boucle qui parcourt tous les
nombres de la liste des numéros. Et ensuite, si le nombre était divisible par deux
sans aucun reste, dites
simplement : OK,
nous avons trouvé le tout premier nombre pair, imprimez
ce nombre Sinon, si l'utilisateur n'a
pas ajouté de nombre pair, dites
simplement qu'il
n'a saisi aucun chiffre pair. Et à la fin de la journée, il suffit d'imprimer
les numéros ajoutés par l'utilisateur. Et si l'utilisateur
n'a ajouté aucun chiffre, dites
simplement qu'aucun numéro n'a
été terminé par l'utilisateur. C'est exactement ce que nous avons fait ici. Alors, n'hésitez pas à suivre ce programme autant de
fois que vous le souhaitez. J'espère que c'était
relativement simple. Et bien sûr, comme toujours, si vous avez
des questions sur ce que
nous avons fait ici et que
vous n'êtes pas, vous savez,
vous êtes tout nous avons fait ici et que
vous n'êtes pas, vous savez, à fait sûr,
n'hésitez pas à me contacter je serai ravie répondre
à toutes
vos questions. Jomini Vernick Video Web
va donc maintenant commencer
à examiner comment nous pouvons gérer les
erreurs dans
27. Introduction à la section Fonctions: Passons à la toute nouvelle
section où nous allons
examiner les fonctions, et je vous garantis
qu'aucun cours programmation ne sera complet sans parler de
fonctions, d'accord ? Les fonctions sont extrêmement
importantes, et croyez-le ou non, nous avons déjà travaillé
sur certaines fonctions, et nous avons même déjà créé certaines
de nos propres fonctions. Dans ce cours. C'est juste que tu ne le sais pas encore.
Donc, dans cette section, nous allons nous concentrer sur les fonctions.
Je vais vous montrer comment créer vos
propres fonctions personnalisées, puis comment vous
pouvez utiliser ce que l'
on appelle les paramètres, d'accord ? Avec quoi voulons-nous que notre
fonction fonctionne ? Quels types de données
, des choses comme ça. Nous allons également
examiner les arguments des mots clés, les variables
locales et globales,
et bien plus encore. Et comme dans les sections
précédentes, il y aura
un exercice de codage à la fin de la section. Alors, s'il vous plaît, essayez-le. J'espère que tu
seras en mesure de réussir. Si ce n'est pas le cas, ne vous inquiétez pas, je vais vous
fournir la solution. Alors,
sans perdre plus de temps, commençons à
parler des fonctions.
28. Définir et appeler des fonctions: Bien, alors bienvenue dans cette nouvelle section de
Bn où
nous allons
examiner les fonctions, n'est-ce pas ? Et jusqu'à présent, tout va bien, nous avons en fait travaillé
avec un certain nombre de fonctions
prédéfinies
dans Python. Ainsi, des fonctions telles que l'
impression, la saisie,
la plage , etc. exécutent toutes un type d'opération particulier. Mais que se passerait-il si nous
voulions créer nos propres fonctions personnalisées ?
Comment pouvons-nous le faire ? Eh bien, pour ce faire, nous
allons d'abord définir le nom de la
fonction, puis décider si cette fonction acceptera ou
non ce que nous
appelons des paramètres. Ensuite, nous pouvons également dire : OK, cette fonction ajoutera ces nombres ou elle
va faire quelque chose. Enfin,
nous pouvons choisir de renvoyer une valeur dans
cette fonction. Donc ça va être
quelque chose comme ça. Vous aurez DEF, qui sera la fonction qui
définira le nom de la fonction, puis vous pourrez choisir d'avoir des
paramètres à l'intérieur de
cette fonction, d'accord ? Ensuite, nous aurons
le corps fonctionnel. Donc, vous savez, ajoutez A plus B, ajoutez ceci, faites ceci, divisez ceci, vérifiez si cette boucle
est vraie, des trucs comme ça. En gros, peu importe ce que fera
la fonction. Enfin, nous pouvons
choisir de renvoyer une valeur, qui d'ailleurs sera facultative. Nous n'avons pas toujours besoin
de renvoyer une valeur chaque fois que nous créons
notre propre fonction. Permettez-moi de vous donner un exemple
très, très basique. Disons que nous voulions
créer une fonction qui
imprimerait les mots «
Bonjour tout le monde », n'est-ce pas ? Nous pouvons dire DF, puis je peux appeler
ma fonction Grit. Donc, le nom de ma
fonction sera GET, puis je pourrai ajouter mes crochets entre
deux points, puis terminer le hub. Au fait, notez
que je n'ai ajouté aucun paramètre entre crochets ici. Les paramètres sont facultatifs, d'accord ? Cependant, je vais
entrer tout de suite et définir
ensuite ce que la
fonction fera réellement. Je vais dire imprimer. Maintenant, je vais fournir les mots « Bonjour tout
le monde ». Et maintenant, il ne me reste qu'à appeler la fonction. Et comment puis-je m'y prendre ?
Je vais vous saluer. Et puis les paquets,
et voilà. Alors maintenant, si vous voulez exécuter le programme, voilà, il
dit simplement bonjour à tout le monde. Donc, encore une fois, nous avons
commencé par donner le nom « greet » à notre fonction. Et puis nous avons maintenant indiqué ce que
la fonction devait faire. La fonction doit imprimer hello world chaque fois que nous
appelons ou utilisons cette fonction. Et puis ici, nous
appelons simplement la fonction en
disant simplement grit,
puis entre crochets, et le tour est joué Voici donc l'un des types de fonctions
les plus élémentaires que nous puissions créer. Mais c'est tout. Jerman
Vanex Video Ware va maintenant commencer
à examiner les paramètres et
les arguments des fonctions. Je te verrai alors.
29. Paramètres et arguments: Eh bien, bon retour. Parlons maintenant des paramètres et des arguments. voyez, un paramètre est
essentiellement une entrée que nous pouvons ajouter à une fonction afin de personnaliser son comportement. Dans ce cas, à l'heure actuelle, dans l'exemple précédent, le
nom de la fonction, qui est grid, ne comportait
aucun paramètre. Il est pratiquement vide. C'est pourquoi lorsque nous avons dit «
OK, imprimez, puis
simplement bonjour tout le monde », puis que nous avons appelé la fonction, elle a simplement
simplement dit bonjour
tout le monde. Mais que se passe-t-il si nous voulons maintenant
ajouter un
paramètre particulier à l'intérieur ? Dans ce cas, tout de suite, je vais venir
ici et dire mon nom. D'accord ? Donc, le périmètre
ici est appelé nom, et maintenant je veux que ma fonction dise bonjour et ensuite le nom
qui sera fourni. Je vais donc
venir ici tout de suite. Utilisons la chaîne F, et maintenant je vais
ajouter mes accolades, plutôt des crochets
bouclés, et lui donner un nom. D'accord ? Alors maintenant, jetez un œil à ceci. Lorsque j'appelle ma
fonction en ce moment, je peux ajouter ce que nous
appelons l'argument. Lorsque vous transmettez une
valeur à la fonction, elle
devient un argument. Notez la différence entre les paramètres
et les arguments. Ici, lorsque nous
définissons la fonction pour la première fois, nous allons utiliser
le paramètre. Le paramètre dit essentiellement
: « Hé, nous vous
fournissons cette entrée, et je vais utiliser
cette entrée pour personnaliser comportement de la
grille de fonctions ». Cependant, une fois la fonction créée,
nous avons indiqué ce qu'
elle est censée faire. Dans ce cas, maintenant, bonjour, puis nommez le périmètre. Lorsque nous appelons cette fonction, lorsque nous voulons fournir une valeur, elle devient ce que
nous appelons un argument. Donc dans ce cas,
maintenant, si je voulais saluer, disons Alice, par
exemple, n'est-ce pas ? le moment, c'est Alice qui est l'argument, et si je devais exécuter le
programme, c'est parti. Il est écrit : « Bonjour Alice ». Et si je voulais
saluer, disons, Bob ? Hein ? Bob, allons-y, lançons le programme, et le
tour est joué. Bonjour Bob. Ce sont des périmètres
et des arguments. Cependant, nous pouvons également avoir plusieurs paramètres
dans notre fonction. Jusqu'à présent,
nous n'avons
travaillé qu' avec un seul
paramètre, le nom. Et si nous voulions
créer une fonction qui
additionnerait deux nombres ? Comment allons-nous nous y prendre ? Eh bien, nous pouvons commencer par
définir le nom de la fonction. Je vais donc appeler
celui-ci Add Numbers. Ajouter des numéros sera le
nom de la fonction. Et maintenant, à l'intérieur, nous
allons fournir deux paramètres qui
seront A et B, deux points, d'accord ? Maintenant, renvoyez A plus B. Nous n'avons pas encore parlé de
la fonction de retour ou de l'instruction de retour. Ce que le retour fait ici, c'est
qu'il va simplement
renvoyer la valeur d'une opération
particulière. Dans ce cas, pour le
moment,
les valeurs de A et B seront renvoyées lorsqu'
elles seront additionnées. C'est ce que fait le retour. Alors maintenant je vais venir
ici et vous dire quel est le résultat. D'accord ? Le résultat sera égal pour
additionner des nombres. D'accord ? Et maintenant, à l'intérieur, je peux ajouter les
deux chiffres que je veux ajouter, disons cinq et six. ne
me reste plus qu'à imprimer le résultat. Et voilà. Si
je veux ma fonction, voilà 11. Tu vois comment ça
marche ? Tout d'abord, nous avons créé une fonction, mais en utilisant la
fonction définie appelée additionner des nombres. C'est le
nom de notre fonction. Ensuite, nous avons dit : OK,
notre fonction va
recevoir deux paramètres, A et B. Et maintenant, avec le retour, nous définissons essentiellement ce que la fonction
va faire. Il va renvoyer
la valeur de A plus B. Maintenant, il suffit
de créer une variable qui stockera
la valeur de notre fonction. Alors maintenant, la variable
ici s'appelle résultat, qui est égale au numéro d'annonce. Le nom de la
fonction appelle
maintenant avec les deux valeurs
cinq et six,
et maintenant nous avons simplement
imprimé le résultat, qui est égal à 11. C'est exactement ainsi que
fonctionnent également le
paramétrage des arguments et la fonction de retour Au fait, avant de
terminer la vidéo, un petit mot sur
le décompte de retour. Il est utilisé à deux fins
principales, d'accord ? Le premier objectif est
généralement de quitter une fonction. Vous pouvez donc l'utiliser pour
arrêter l'exécution d'une fonction. La deuxième consiste à renvoyer
une valeur réelle. Donc, à titre d'exemple,
permettez-moi de vous montrer très rapidement. Si je disais définir puis saluer. OK, permettez-moi d'ajouter
des paramètres vides ici. Et j'ai dit : « Imprimez bonjour ». Et puis j'ai dit « retour d'accord », mais après le retour sur
une autre ligne, je dis aussi « imprimer Et puis, disons,
disons, comme des manteaux,
bonjour Jack, vous pouvez même
voir en ce moment que dans notre replet, le texte
lui-même est un peu ajusté, qui
signifie que Python n'
exécutera pas cette ligne en particulier Donc, si je devais courir,
vous pouvez le voir maintenant, cela ne fait absolument
rien, mais c'est parce que je n'ai pas encore
appelé la fonction. Alors permettez-moi de venir ici et de
vous dire bonjour, puis entre crochets,
et voilà Donc, si je devais exécuter la
fonction maintenant, vous verrez que tout ce qu'elle dit
sera « bonjour ». Pourquoi ? Parce que le retour ici
signifie que, hé, arrêtez l'exécution
de la fonction, cela ne devrait pas dépasser
cette ligne particulière Et c'est pourquoi nous
n'avons que bonjour. Cependant, si je devais supprimer
l'instruction return et que je relançais le programme, vous pouvez voir maintenant qu'il dit
bonjour puis bonjour Jack. s'agit donc d'une autre utilisation
de l'instruction return, mais vous pouvez l'utiliser pour
arrêter l'exécution d'une fonction, ou comme je vous l'ai montré plus tôt, vous pouvez utiliser l'instruction return pour renvoyer une valeur particulière. Merci d'avoir
regardé la vidéo, je vous
verrai au prochain cours.
30. Arguments de mots-clés: Eh bien, revenez. Je
veux que nous parlions maintenant des arguments liés aux mots clés, n'est-ce pas ? Fonctions Python, elles nous permettent
essentiellement de
transmettre des arguments en utilisant des noms de
paramètres. Les noms de paramètres sont ce que
nous appelons des mots clés. Ils rendront le code plus
lisible et plus flexible, en particulier lorsque nous avons affaire
à de nombreux paramètres. Jusqu'à présent, nous avons eu affaire à
des paramètres tels que A, B, X, Y, mais laissez-moi
vous montrer autre chose, d'accord ? Je vais créer une nouvelle
fonction et appelons cette fonction describe,
underscore person, d'accord ? Cette fonction va donc
décrire le nom, l'
âge et disons la ville de quelqu'un , n'est-ce pas ? Permettez-moi donc d'y ajouter les
crochets. Et maintenant, ici, nous pouvons ajouter l'argument mot-clé. Je vais donc dire le nom, l'âge, puis la ville. OK. Et maintenant, pour ce qui est de la fonction
elle-même, oh, désolée, j'ai oublié
d'ajouter les deux points. Et maintenant, la
fonction elle-même, que va-t-elle faire ? Nous voulions imprimer, OK, John a 30 ans et
vit à Londres, juste à
titre d'exemple, Je vais donc dire print, bracket et maintenant la chaîne F. OK ? Et maintenant des manteaux
et maintenant des bretelles bouclées L'espace du nom est bouclé,
encore une fois, les accolades sont désormais appelées périmètre
d'âge Le support est vieux. Et je vais laisser Python
faire le reste pour moi. Et voilà. Donc, en gros, la
fonction dira : OK, Alex a 100 ans et
vit à New York,
juste à titre Alors jetez un œil à ceci. Je vais appeler la fonction pour que vous puissiez voir tout de suite
que je vais appeler Alice. Merci, Python, d'avoir
fourni cette suggestion. Je vais donc dire qu'Alice a 25 ans et
vit à Donc, si je dirige la fonction en ce
moment, vous pouvez voir qu' Alice a 25 ans
et vit à C'est assez simple, non ? Cependant, jetez un œil à ceci. Je peux également appeler la
fonction en fournissant les valeurs des paramètres eux-mêmes. Regarde ça, d'accord ? Je peux dire décrire une personne. Et maintenant, entre parenthèses, au lieu de dire «
OK, Alex, 30 ans, Londres », je peux plutôt
dire que l'âge est égal à 30 ans. Et maintenant le coma. Et puis
je peux dire que le nom signifie que Bob City
est San Francisco. Tu as vu ce que
j'ai fait en ce moment ? Au lieu de fournir
directement les valeurs réelles des arguments, j'ai simplement dit : « Hé,
je vais passer les valeurs dans les arguments des
mots clés. L'âge sera donc de 30 ans. Il s'appelle Bob, la ville
est San Francisco. Et, bien sûr,
faites attention au fait que Bob et San
Francisco sont des cordes. C'est pourquoi ils ont
des codes doubles. Alors que 30 est un entier. Ce n'est pas une ficelle. C'est
pourquoi il n'y a pas de codes. Donc, si je dirige la fonction, vous pouvez voir qu'
il est écrit que Bob a 30 ans et vit
à Malgré le fait qu'
ici, l'âge passe avant tout. Nous n'avons pas dit que le nom était égal à
Bob, puis à l'âge ou à la ville. Non. C'est parce que
Python va simplement utiliser ce que nous avons décrit dans la
fonction elle-même. Peu importe l'
ordre de tous les arguments. Python s'en fout. Tout ce qui intéresse Python, c'est : OK, vous m'avez donné les arguments du
mot-clé, très bien. Et maintenant c'est l'ordre. Il va examiner la
fonction qui dit : OK,
imprime d'abord le nom, puis s'il est âgé de 8 ans et vit en
ville Ce sont donc ce que nous appelons
les arguments des mots clés. Il est peu probable que
nous travaillions avec eux plus tard dans ce
cours, mais néanmoins, vous
devez au moins en être
conscient lorsque vous
travaillez avec Python. Merci donc d'avoir
regardé la vidéo, je vous verrai
au prochain cours.
31. Variables locales et globales: Eh bien, bon retour.
Une dernière chose dont je voudrais que nous parlions
avant de terminer la section des fonctions
sera le concept de portée
variable. voyez, en Python, ou en fait,
dans n'importe quel langage de programmation, nous avons à la fois des variables locales
et globales. Les variables ont une
portée qui
déterminera où elles sont
accessibles. Désormais, les variables
qui se trouvent à l'intérieur d' une fonction seront
locales à cette fonction, et vous ne pourrez pas y accéder
en dehors de cette fonction. Alors que
les variables définies en dehors de toute fonction sont globales
par exemple, d'accord ? X est égal, disons, à 12, non ? C'est ce que nous
appelons une variable globale. Pourquoi ? Parce que c'est tout seul. Il n'est à l'intérieur d'aucune fonction
, d'une boucle ou de tout autre élément, il est autonome. C'est juste que X est égal à 12. Cependant, si je créais ma propre fonction et
que je disais définir, souligner,
modifier, variable,
crochet, deux-points, et que maintenant je disais, X est égal à trois Le X ici
sera ce que nous appelons une variable locale car il se trouve à l'intérieur de la fonction qui est modifiée sur la variable score. Donc, la
variable globale de X est 12, la variable locale de X
est trois parce que, encore une fois, ces trois se
trouvent à l'intérieur
de la fonction modifivariable Alors jetons un coup d'
œil à ça, d'accord ? Je vais demander à ma fonction d' imprimer la valeur de X, d'accord ? Et maintenant, je vais appeler
la fonction modifier la variable. Quelle sera, selon vous,
la valeur de X ici ? La valeur de X ici
sera trois car nous
appelons simplement la fonction variable
modifiée, dont la valeur
de X est déjà égale à trois. Donc, si je lance ma fonction, vous pouvez voir qu'elle est
là. Mais que se passerait-il si je voulais dire que la
variable globale X est égale à 12. Je veux imprimer cette valeur. Tout ce que j'ai à faire est d'appeler la commande d'impression par défaut
ou la fonction d'impression quatre, Python, puis de
simplement dire print X. Maintenant, si je lance le programme à nouveau, vous pouvez en voir trois et maintenant 12. Encore une fois, comme cette
impression est ici, ce n'est pas la même impression qui est sous la fonction de modification de
variable. Cette impression
ici est destinée à
produire ou à imprimer la valeur de X, qui est la valeur locale qui se trouve
à l'intérieur de la variable de
modification de la fonction. Cependant, cette impression X w remarque
ici à nouveau
l'indentation Ce n'est pas à l'intérieur de cette
fonction, c'est à l'extérieur. Le X ici
sera donc celui qui appartient à la variable globale,
qui est 12. C'est la différence entre les variables
globales et les variables
locales. Si vous souhaitez obtenir cette valeur particulière
de X, qui est trois, vous devez toujours appeler la fonction qui héberge ou qui contient cette valeur
particulière, qui est, bien entendu, une variable
modifiée. Mais la variable globale, vous pouvez y accéder n'importe où
tant qu'elle ne se trouve pas dans
la fonction. Cependant, nous pouvons réellement modifier la valeur de nos variables globales
à l'intérieur d'une fonction. Oui, nous pouvons le faire.
Regarde ça, d'accord ? Je vais retourner à ma
réception ici, non ? Et juste en dessous, je
vais dire global X. En utilisant
simplement l'
instruction appelée global, nous pouvons modifier la valeur
globale de X. Donc maintenant, je dis
X global, X est égal à trois. Dans ce cas, pour le
moment, nous
modifions simplement la variable globale. C'est ce que nous sommes en train de faire en ce
moment, nous allons simplement modifier la variable globale de X. Donc, si j'appelle, si je lance mon programme, vous pouvez voir tout de suite
que la variable modificatrice de fonction X égale à trois en produira trois. Et comme nous avons modifié
la variable globale de X pour qu' elle soit
désormais trois au lieu de 12, même lorsque j'appelle
la fonction d'impression qui se trouve en dehors de la fonction variable
modifiée, elle en produira toujours
trois car, encore une fois, dans cette fonction, nous avons modifié la variable
globale X. Nous avons modifié le volume 12-3
en utilisant le mot-clé
global ici C'est ainsi que vous
pouvez également modifier
les variables globales à l'intérieur
d'une fonction locale. Merci beaucoup d'avoir
regardé la vidéo. Je te verrai
au prochain cours.
32. Section Structures de données - Intro: Bienvenue dans la section des
structures de données. Ici, nous
allons nous concentrer sur trois principaux types
de structures de données. Nous allons parler de
listes, de dictionnaires et de sets. Et, bien sûr, je
vais vous
souligner les différences
entre les trois. Vous allez donc
apprendre exactement ce qui différencie une liste
d'un dictionnaire. Vous allez apprendre
exactement ce qu'est un set. Ensuite, une fois que vous aurez
appris à créer vos propres ensembles,
dictionnaires et listes, nous apprendrons à
y intégrer des boucles. Supposons, par exemple, que
vous ayez une liste de
mots de passe et que vous vouliez une boucle pour parcourir chaque
mot de passe et faire quelque chose, vous allez
apprendre à faire quelque chose similaire dans cette section
particulière. Et, bien sûr,
il y aura une grande variété d'exercices de
codage différents, alors essayez-les. Il y aura également deux
défis
de programmation, que je vais bien sûr vous expliquer comment les résoudre. Et, bien sûr,
comme pour toutes les autres sections à la fin, nous allons avoir le
principal exercice de codage que je veux que vous essayiez. Alors, s'il vous plaît
, assurez-vous de le faire sans perdre plus de
temps, allons-y.
33. Listes: Très bien, commençons donc
par parler de listes. Maintenant, les listes ne sont pas
quelque chose de nouveau pour nous. En fait, nous avons déjà travaillé avec un
certain nombre de listes. Nous avons eu des listes de noms, des
listes de voitures, etc. Mais une chose à propos
des listes, c'est qu' elles sont ce que nous appelons mutables. Cela signifie que
nous pouvons réellement
modifier les éléments ou éléments que
vous avez dans une liste, n'est-ce pas ? Nous pouvons donc ajouter à la liste. Nous pouvons supprimer de la liste et modifier les
éléments qui existent
déjà dans
cette liste particulière. Maintenant, ici, j'
ai une liste de mots de passe
compromis. Donc, le mot de passe habituel,
un, deux, trois ,
quatre, cinq, QW, TY, etc. Maintenant, je voudrais
vous montrer certaines choses que nous
pouvons faire ici, n'est-ce pas ? Je peux dire imprimer, d'accord ? Et maintenant, entre crochets, je peux appeler cette liste des mots de passe
compromettants. Maintenant, je peux fournir le numéro d'index de l'
article que je souhaite mettre en vente. Dans ce cas, pour le moment,
il s'agit du numéro d'indice zéro. Si je lance mon programme, vous pouvez voir que ce
sera un mot de passe. Donc, la première chose que je veux que
vous compreniez, c'est que les éléments d'une liste ont tous des numéros d'index
commençant à zéro. Donc, si je devais imprimer
l'index numéro deux, quelle serait, selon vous,
la réponse ? Oui, ça va être QWERTY. OK, c'est la première chose que
je veux que tu comprennes. Vient ensuite le fait
que nous pouvons exécuter différents types de
fonctions sur notre liste. Par exemple, je peux dire, laissez-moi appeler à nouveau la liste, et maintenant je peux ajouter cette
fonction ici appelée append Ajouter ici,
en termes techniques, c'est ce que nous appelons une méthode Les méthodes sont également des fonctions, mais ce sont des
types de fonctions très particuliers. Nous parlerons
des méthodes un peu plus tard. Mais pour l'instant,
comprenez simplement que nous avons des
fonctions très spéciales que nous avons appelées méthodes que vous
pouvez appliquer directement sur les listes et elles
feront quelque chose. Donc, à l'heure actuelle, un
pend
ajouterait le nouvel élément que
nous voulons à notre liste Par exemple, je peux
ouvrir mes crochets. Et disons que nous ajoutons de l'
espadon. D'accord ? C'est un autre mot de
passe
très, très populaire utilisé par
beaucoup de gens, d'accord ? J'ai donc ajouté le
poisson salé à la liste. Donc, si j'y retourne maintenant et que j'imprime mes mots de passe
compromis, vous verrez que Sordfsh a
été ajouté à C'est donc la toute
première méthode ou fonction que je veux que
vous compreniez que vous pouvez utiliser avec votre liste. La prochaine sera ce que nous
appellerons la fonction d'extension. voyez, un stylo avec un stylo, vous pouvez ajouter ce que vous savez, des éléments
individuels, etc. Avec Extend, vous
pouvez réellement ajouter tous les éléments d'une autre liste. titre d'exemple, j'ai ma première liste juste
là, celle des mots de passe compromis. Supposons que nous ayons créé une autre liste de mots de
passe compromis. D'accord ? C'est égal, et maintenant permettez-moi d'
ouvrir les crochets. Et ajoutons un nouveau lot
de mots de passe. Voyons voir. Nous avons l'un des de passe les plus courants
que les gens utilisent souvent. OK, disons un, deux,
trois, A, B, C, que diriez-vous de ça Et permettez-moi d'en ajouter une autre. Et parlons d'
un chien, d'un chat, d'un os. Tu sais, juste quelque chose, non ? D'accord, nous avons donc maintenant deux listes
différentes, non ? Un pour les mots de
passe compromis, puis un autre pour les nouveaux mots de passe
compromis. Alors regarde ça, d'accord ? Je peux venir ici
tout de suite et dire «
compromettez les mots de passe
et maintenant prolongez ». Et maintenant, entre parenthèses, je peux ajouter du nouveau à ce mot de passe
compromis. Donc, en gros, je joins les nouveaux mots de passe à
l'ancienne liste de mots de passe. Et maintenant, si je lance mon programme, vous pouvez voir que 123
ABC et dog cat Bone ont été ajoutés à ma liste de mots de passe
compromis. Maintenant, une autre méthode
que je veux que
vous connaissiez est tout le contraire de l'ajout
qui va être supprimé Permettez-moi donc tout d'abord de supprimer notre première ou
deuxième liste et je vais modifier cette ligne ici,
puis dire « supprimer ». Et maintenant, entre crochets,
juste à titre d'exemple, d'accord, je peux fournir ce que
je veux supprimer, c'
est-à-dire un, deux,
trois, quatre, cinq. Disons donc que je voulais
supprimer cet
élément en particulier très, très facilement. Je vais simplement dire « Ne pas supprimer, exécuter », et maintenant vous pouvez constater
que 12, trois, quatre ou cinq ne figurent plus dans la liste des mots de passe
compromis. C'est très, très simple. Une autre solution que nous pouvons faire
est de simplement effacer. Nous pouvons effacer la
liste complète à titre d'exemple. Donc, si je devais
venir ici tout de suite,
remplacer Supprimer par Clare, n'est-ce pas ? Je n'ai pas besoin de quoi que ce soit
entre crochets. Donc, juste Clare et Iron, voilà, il sera vide. Il n'y a plus rien dans
la liste. Il existe donc de
nombreuses autres méthodes avec
lesquelles vous pouvez marcher. Je pense qu'il y en a environ 11. Mais laisse-moi t'en donner
deux autres, non ? Une autre méthode que nous pouvons utiliser
sera l'inverse, n'est-ce pas ? Donc, en gros, cela va
simplement inverser l'ordre des éléments de la liste. Cela
va inverser l'ordre. Donc si je lance ça, voilà, ça commence par euh, laissez-moi entrer et revient en arrière
jusqu'au mot de passe Et puis une autre chose que je
veux vous montrer qui peut être très utile
serait la méthode de copie. Donc, par exemple, laissez-moi venir
ici et je vais créer une sauvegarde, d'accord ? Alors sauvegardez et
soulignons les comptes, d'accord ? Je peux attribuer la sauvegarde à mes comptes de sauvegarde variables
et je peux désormais dire des mots de passe égaux, et maintenant des mots de passe compromis, et maintenant des points, des copies et maintenant entre crochets. D'accord, donc en gros, ce que je
fais en ce moment, c'est faire une
sauvegarde de cette liste,
de cette liste passe
de compromis, puis l'attribuer aux comptes de
sauvegarde variables Donc maintenant, si je devais imprimer les comptes de
sauvegarde et que je m'enfuyais, vous verrez que
nous avons exactement la même liste, exactement
les mêmes éléments. C'est donc ce que vous
utiliseriez pour créer des sauvegardes ou copier les éléments
d'une liste particulière. Donc, comme je l'ai dit, vous en avez quelques autres comme
sort, pop, etc. Nous
parlerons des méthodes un peu plus tard dans le cours. Mais pour l'instant, c'est l'
introduction aux listes et aux méthodes que vous pouvez
utiliser pour les utiliser. Merci d'avoir regardé. Je te
verrai au prochain cours.
34. Utiliser des boucles dans une liste: Continuez à travailler avec nos listes, et je veux que nous essayions d'écrire un programme qui imprimera simplement les jours de forte activité. Maintenant, ce que vous voyez
sur mon écran est une liste de
tentatives de connexion par jour. Écrivons donc un programme
qui parcourra cette liste, puis imprimera
les jours de forte activité. Toutefois, pour déterminer ce que serait
une activité élevée, supposons dix tentatives de connexion ou plus. OK. Pour ce faire, créons une variable qui stockera les jours de
forte activité. Je peux donc dire « élevé »
puis souligner l'activité pendant les vingt
jours. OK. Maintenant, cela
équivaudra, disons, à des tentatives. OK ? Nous voulons
créer une boucle à quatre boucles qui parcourra
la liste, d'accord ? Nous avons donc nos crochets ici, puis je peux dire
tentative, d'accord, quatre, souvenez-vous maintenant de tentative où vérifions-nous
le nombre de tentatives ? Il figurera dans la liste des tentatives de
connexion. Je vais donc parler des tentatives
de connexion. Nous n'en avons pas encore
parlé, mais vous pouvez également inclure une instruction if directement
dans une boucle à quatre boucles. Nous voulons donc créer une boucle qui parcourra notre liste, puis si le nombre de tentatives
est de dix ou plus, nous allons imprimer
une journée de forte activité. Essayez donc de tenter
de vous connecter. Maintenant, si la tentative est
supérieure ou égale à dix. Tu as compris, d'accord ? Alors maintenant, que devrait-il se passer ? Imprimons simplement. Et puis, entre parenthèses,
nous pouvons dire quelque chose comme les jours de forte activité, côlon, puis le coma, jours d'activité intense Alors maintenant, si je lance le
programme, et voilà. Les jours de haute activité, nous en avons dix, 12, 15 et 20. C'est ainsi que nous pouvons
exécuter une boucle en quatre pour parcourir notre liste, puis l'
imprimer ou faire autre chose. Je vais donc
vous proposer un exercice, un défi dans la prochaine vidéo. Veuillez le parcourir et essayer
de répondre aux questions. Merci d'avoir
regardé la vidéo. Je te verrai
au prochain cours.
35. Dictionnaires: Parlons des dictionnaires. Et tout comme pour les listes, vous pouvez modifier, ajouter, supprimer des éléments dans
vos dictionnaires. Cependant, la principale
différence entre vos listes et vos
dictionnaires est que, contrairement
à votre liste où vous
avez des éléments
ou des valeurs individuels ou des éléments
dans votre dictionnaire, nous allons avoir ce que nous
appelons une paire clé-valeur Par exemple, je peux avoir un dictionnaire
appelé user info, et maintenant c'est égal à ce que je vais utiliser les accolades.
D'accord, nous utilisons généralement les accolades pour les
dictionnaires Donc, ici, je peux avoir des
informations comme le nom d'utilisateur, qui serait admin. Donc, ici,
le nom d'utilisateur sera la clé tandis que admin sera la valeur de la clé. Nous pouvons également avoir
un mot de passe, d'accord ? Et disons que le mot de passe ici est « laissez-moi entrer » à titre d'exemple. Et nous pourrions même en avoir une
autre, par exemple, la dernière connexion. OK, dernière connexion, appelle-moi, et je pourrai avoir une
date, disons, 22/10/2024, juste à titre
d'exemple, non Notez donc que
chaque fois que vous ajoutez vos paires clé-valeur
dans votre dictionnaire, la virgule apparaît à la fin de chaque ligne Mais pour la toute
dernière paire clé-valeur, il n'est pas nécessaire d'ajouter la
virgule à la fin, n'est-ce pas ? Il suffit donc d'en prendre note. C'est donc ce que nous appelons
un dictionnaire, n'est-ce pas ? Nous avons nos
paires clé-valeur, nom d'utilisateur, la valeur est admin, nous avons le mot de passe clé, la
valeur est laissez-moi entrer. Et bien sûr, nous avons
la clé de dernière connexion, puis nous avons la
date comme valeur. À partir de là, je pourrais décider d'
imprimer les informations. Je pourrais venir ici
et dire « imprimer ». Et maintenant, si je
voulais imprimer, disons, le nom d'utilisateur, je
commencerais par indiquer les informations de
soulignement de l'utilisateur, et maintenant les
crochets habituels, je dirais simplement le
nom d'utilisateur, et c'est Alors maintenant, si vous voulez exécuter, vous pouvez voir que l'administrateur
a été fourni. Voici donc comment vous pouvez imprimer les valeurs des clés
de votre dictionnaire. Il vous suffit d'indiquer la clé dont vous souhaitez imprimer la valeur et le programme
se chargera du reste. Eh bien. Maintenant, comme je l'ai
dit avec les dictionnaires, vous pouvez facilement ajouter ou modifier les éléments
de votre dictionnaire Donc, par exemple, si je
voulais ajouter de nouvelles
informations, comme, disons, l'
e-mail de l'utilisateur, il me
suffit de venir ici
et de simplement dire « venir ici
et de simplement dire information de soulignement de
l'utilisateur », OK Maintenant, je vais avoir
les crochets habituels, et maintenant je vais simplement
ajouter la clé ici, qui sera envoyée par e-mail. Et puis, très simplement, je vais
juste dire égal à égal, et maintenant je peux ajouter l'adresse
e-mail ici. Disons simplement admin
sur labcyber.com. D'accord. Juste à titre
d'exemple, non ? Donc, si je devais venir
ici maintenant et imprimer les informations utilisateur, laissez-moi simplement retirer
la clé qui s'y trouve. Nous voulons donc imprimer toutes les
informations de l'utilisateur ici. Je lance le programme,
et le voilà. Il va
tout imprimer. Le nom d'utilisateur est donc admin. Le mot de passe est « laissez-moi entrer ».
La dernière connexion est à cette date, puis l'e-mail qui se trouve juste à côté
est admin at labsyber.com Nous pourrions également le mettre à jour. Nous pourrions également mettre à jour les
informations de notre dictionnaire. Encore une fois, par exemple, si je voulais mettre à jour,
disons le mot de passe, n'est-ce pas ? Je peux donc dire les informations sur le score de l'utilisateur
Oder, et maintenant entre crochets, bien
sûr, la clé
ici
sera le mot de passe, n' est-ce pas ? Donc mot de passe. Maintenant, je dois fournir
le nouveau mot de passe. Appelons-le donc poisson
SOD. Poisson doux. Et voilà. Si je lance mon programme, vous pouvez
maintenant voir que
le mot de passe est bel et bien changé en SOD fish Ainsi, tout comme pour vos listes, vous pouvez ajouter de nouvelles
paires clé-valeur à votre dictionnaire, vous pouvez également modifier les
valeurs des clés existantes. De plus, tout comme pour les listes, nous avons une variété
de méthodes que nous pouvons réellement appliquer à
notre dictionnaire. Donc, la toute première
méthode dont je veux parler ici
sera la méthode G, qui récupérera la
valeur associée à une clé. Donc, par exemple,
laissez-moi supprimer toutes ces
informations ici, n'est-ce pas ? Si je voulais imprimer
les informations utilisateur, ou lorsque j'obtiens le nom d'utilisateur, la valeur du nom d'utilisateur clé, tout ce que je dois faire
ici est de dire « imprimer les informations point utilisateur »
, puis « point G. D'accord ». Et maintenant, encore une fois entre crochets, je vais ajouter la clé
qui est le nom d'utilisateur. Donc, cet endroit devrait
imprimer le nom d'utilisateur. Si je cours, il y a admin. Donc, comme pour votre liste,
nous avons utilisé un stylo, une copie, etc. Nous avons également exactement les mêmes
méthodes pour le dictionnaire, et get right here
est l'une d'entre elles. Une autre méthode sera des clés où vous
pourrez simplement
imprimer toutes les clés que nous
avons dans un dictionnaire. Permettez-moi donc de supprimer toutes les
informations ici. Donc, si je cours, voilà. Nous avons toutes les clés
qui sont le nom d'utilisateur, le mot de passe et la dernière connexion. Nous avons également le contraire
, qui serait celui des valeurs. Donc c'est en quelque sorte des clés. Je
vais changer celle-ci ici en valeurs
et si je
cours, nous allons
maintenant
avoir toutes les valeurs répertoriées dans la sortie. Maintenant, nous pouvons également créer une boucle qui
parcourra notre dictionnaire. Et comment pouvons-nous le faire ? Eh bien, nous pouvons utiliser les quatre boucles parce que
nous avons un dictionnaire. N'oubliez pas que les
quatre boucles fonctionnent bien avec les listes,
les dictionnaires, etc. Donc je vais dire quatre, et maintenant je
dois dire Key, d'accord ? Donc, pour la clé puis la valeur
virgule, et maintenant pour les informations de soulignement de l'utilisateur, nous devons ajouter
une autre méthode appelée items items
et maintenant les crochets, les
deux-points, et le tour est joué C'est ainsi que vous allez créer votre boucle qui
parcourra votre dictionnaire. Il va donc indiquer une valeur virgule à
quatre touches, puis dans le dictionnaire des noms, puis vous allez y
ajouter la méthode items Et maintenant, il ne nous
reste plus qu'
à imprimer
les informations. Je vais donc dire imprimer. Et utilisons la chaîne F. Donc, nos crochets habituels d'abord. Et maintenant, la corde F
et maintenant les manteaux, bretelles
bouclées pour maintenir
et afficher la touche, et maintenant nous aurons deux points, et maintenant les autres
accolades pour contenir
ce qui doit contenir ce qui Et maintenant, si je cours, voilà, utilisez le nom Admin, le mot de passe,
laissez-moi entrer et, bien sûr, la
date de dernière connexion. Vous pouvez donc également utiliser des boucles pour parcourir vos dictionnaires, vos listes, etc. Voilà pour les dictionnaires. Joy dans la
vidéo suivante, où nous allons maintenant examiner
ce que nous appelons dictionnaires imbriqués.
Je te verrai alors.
36. Dictionnaires imbriqués: Et retour. Dans la leçon
précédente, nous avons parlé des dictionnaires, mais nous allons maintenant
aller plus loin en parlant des dictionnaires imbriqués. Donc, en gros, des dictionnaires
à l'intérieur d'un autre dictionnaire. Jusqu'à présent, nous n'avons eu affaire qu'
à une seule information utilisateur. Mais que se passerait-il si nous avions
plusieurs utilisateurs, non ? Comment pouvons-nous créer cela ? Donc, ce que je vais
faire ici,
c'est changer le nom informations utilisateur en informations
d'
identification utilisateur, n'est-ce pas ? Ce sera le
nouveau nom d'un dictionnaire,
et maintenant des bretelles bouclées Nous pouvons maintenant ajouter le tout
premier dictionnaire NSTA qui contiendra les
informations destinées à l'administrateur Je vais donc venir
ici, taper Admin. Ce sera notre premier utilisateur. Et maintenant, les lettres de créance, les
bretelles bouclées. Allons-y avec le mot de passe. mot de passe est ici. Les deux points, puis nous pouvons passer
à admin 123. D'accord ? Donc, le premier utilisateur ici ,
admin, le mot de
passe sera admin 123, et nous pouvons ajouter
un autre identifiant qui serait la dernière connexion Donc, dernière connexion,
inscrivons celui-ci dans nos codes. Nous allons nous connecter. Maintenant, deux points. Ajoutons les dates. Disons, quelque chose comme 202-04-1019 D'accord. À titre d'exemple, il y a une petite
flèche juste ici. Laissez-moi voir ce que je
fais de mal exactement ? Ah, ici avec un mot de passe, la colonne devrait être à l'extérieur. J'ai fait une erreur là-bas.
OK, c'est beaucoup mieux. Il s'agit donc du premier dictionnaire
Nesta que nous avons tant qu'administrateur qui contient les
paires clé-valeur Il contient le mot de passe clé, et la valeur d'un mot de passe ici sera admin 123. Et puis l'autre clé ici
sera la dernière connexion, et la valeur est,
bien sûr, 2024, 1019 Mais nous pouvons ajouter
un autre dictionnaire. Je vais dire virgule. Maintenant, nous pouvons ajouter un autre utilisateur. Appelons cette personne « utilisateur 1 ». Et je vais juste
laisser Repl faire le reste, remplir toutes les informations et
le tour est joué Le
jour du mot de passe sera donc celui de l'
utilisateur un, un, deux, trois, puis la dernière connexion sera également Non, changeons la date
ici par autre chose. Alors allons-y avec un 06,
puis peut-être un 14. Très bien, pour de la variété. Voici donc ce
que nous appelons un dictionnaire imbriqué Le dictionnaire se trouve à l'intérieur
d'un autre dictionnaire. Et bien sûr, nous pouvons accéder
aux informations assez
facilement. Donc, par exemple, si
je voulais
imprimer le mot de passe de l'administrateur, comment puis-je le faire, d'accord ? Je peux simplement dire imprimer. Et maintenant, entre parenthèses, je vais dire que les identifiants de l'utilisateur
soulignent, d'accord ? Et maintenant, les crochets ordinaires
et les doubles couches intérieures, je vais dire admin. OK. Nous voulons maintenant imprimer le mot de passe
de l'administrateur. Encore une fois entre crochets,
ajoutons le mot de passe. Et voilà. Donc, si je lance le
programme en ce moment, vous pouvez dire qu'il indique Admin un
à trois, car en disant «
Hé, imprimez à partir du dictionnaire des
informations d'identification de l'utilisateur », nous voulons que vous
imprimiez
la valeur du mot de passe clé appartenant
à l'administrateur utilisateur. C'est pourquoi nous
avons Admin 123. Ou je pourrais dire, accord, imprimer entre crochets, informations
d'identification de l'utilisateur, et
imprimons le dernier
identifiant de connexion de l'utilisateur 1. Comment allons-nous procéder ?
Encore une fois, c'est très simple. Je vais simplement entrer
ici et dire « utilisateur 1 », et maintenant « nouveaux crochets »,
puis
simplement saisir la dernière clé de connexion, dernière sur le score, « login ». Et voilà. Alors courez, et voilà 202-04-0614 Voici donc un
exemple de dictionnaires imbriqués. Et cela peut être
particulièrement utile si vous essayez de
créer des fonctions ou des programmes pour les pare-feux un outil d'enregistrement des pasteurs ou un outil qui vérifie les informations d'identification des utilisateurs,
etc., n'est-ce pas ? Vous pouvez utiliser des dictionnaires imbriqués pour ce type de programme Merci donc d'avoir
regardé, et bien sûr, je vous verrai au prochain cours.
37. Ensembles: Continuez avec les structures de données, et la prochaine étape
sera ce que nous appelons des ensembles. Maintenant, sur mon écran, il apparaît que j'ai deux listes différentes qui sont similaires dans les
éléments qu'elles contiennent. Notez toutefois que les mots de passe
compromis utilisent des crochets réguliers, tandis que les nouveaux mots de
passe de compromis utilisent des accolades Croyez-le ou non, cela est extrêmement important car les crochets réguliers indiquent que
ces éléments figurent dans une liste, tandis que les accolades indiquent que les éléments ne
figurent pas dans une liste, mais à l'intérieur d'un ensemble La question naturelle à l'heure
actuelle serait donc quelle est la différence entre une liste et un ensemble ? Il y en a
pas mal. Le fait est qu'avec
vos articles dans une liste, vous pouvez les commander.
Tu peux les commander. Vous pouvez les référencer
à l'aide d'un numéro d'index, alors que dans un ensemble, ils ne sont pas dans un ordre
particulier. Ils sont commandés, non ? En fait, je te le prouve. Si je devais imprimer dès maintenant les mots de
passe compromis, n'est-ce pas ? Ensuite, j'imprime également
les nouveaux mots de passe compromis, je
regarde la commande. Pour la liste elle-même, vous pouvez voir qu'elle suit le même mot de
passe de commande, 1234 QWERTY Mais avec le set, c'est
presque un peu aléatoire. Il est parti à 123, quatre heures, puis est passé à ABC 123, il est allé à Monkey, et ainsi de suite. Donc, en ce qui concerne
les ensembles, les articles ne sont pas dans un ordre
particulier. Une autre différence majeure est que votre liste autorisera les
doublons, Ainsi, par exemple, je pourrais ajouter 123, quatre à nouveau
dans ma liste. Cependant, si je devais
faire de même dans mon set, vous remarquerez la différence. Donc, si je cours, encore une fois, vous pouvez voir en ce moment dans
la liste que 1234 se répète. Dans le set, 1234 est répertorié qu'une seule fois.
Ce n'est pas autorisé. Vous n'êtes pas autorisé à avoir des
doublons dans vos sets. C'est pourquoi chaque fois que
vous essayez de
créer une fonction ou
un programme impliquant, exemple, une liste d'éléments qui
devraient être uniques, comme de passe, des
adresses e-mail ou des comptes utilisateurs, vous devez utiliser des ensembles pour ceux-ci plutôt que
des listes, car vous savez que, d'
accord, aucun utilisateur ne peut avoir exactement
les mêmes informations d'identification. Il sera donc plus
idéal d'utiliser un ensemble. Les sets sont donc généralement
beaucoup plus rapides à parcourir. Le programme peut
parcourir un ensemble beaucoup
plus rapidement qu'une liste. Maintenant, les deux sont mutables. Vos listes et vos
ensembles sont modifiables, ce qui signifie que vous
pouvez apporter des modifications Vous pouvez ajouter des éléments, déplacer
des éléments, les modifier. Et c'est à peu près tout. Mais tout comme pour vos listes, nous avons également
des opérations ou des méthodes que nous pouvons utiliser sur nos ensembles Nous les appelons en fait des opérations
mathématiques comme union, intersection,
différence. Laisse-moi juste te montrer, d'accord ? Permettez-moi de le supprimer ici. Et maintenant, permettez-moi de venir ici et de travailler avec
deux ensembles différents. D'accord ? Je pense que je n'ai plus besoin de
cette ligne, en fait. OK, donc ici,
nous en avons défini une, nous en avons défini deux, puis
les deux ont deux adresses IP. Maintenant, je pourrais décider de trouver des adresses
IP
communes aux deux ensembles, n'est-ce pas ? Je pourrais donc dire, par exemple, adresses IP de soulignement
communes seront désormais égales à set
one, et maintenant à union D'accord ? Alors intersection, non ? Intersection et maintenant, définissez-en deux. L'intersection ici
est donc ce que nous appelons un opérateur qui trouvera les éléments communs
dans les deux ensembles. Donc, si je devais intervenir
maintenant et dire imprimer, adresses IP
communes et je cours, adresses IP
communes et je cours, vous verrez que la version 10.0.0.1
est courante dans les deux C'est pourquoi il est imprimé. Mais nous avons également ce que nous appelons l'opérateur mathématique de l'Union. Je peux donc remplacer un symbole
ici par le symbole syndical. Ce que cela fera,
c'est un peu comme
la méthode d' extension d'une liste où vous ajouterez les éléments d'une liste
à une autre. Donc pour le moment, si je cours, vous pouvez voir que nous avons maintenant
toutes les adresses IP. Cependant, notez que, s'agit d'un ensemble,
l'adresse IP 10.0.0.1
présente dans les deux ne
sera répertoriée
qu' l'adresse IP 10.0.0.1 comme il s'agit d'un ensemble,
l'adresse IP 10.0.0.1
présente dans les deux ne
sera répertoriée
qu'une seule fois, Nous avons un autre
opérateur ici, qui sera l'opérateur de
différence. Il suffit d'utiliser le signe moins. Maintenant, cela va faire sorte que vous trouverez des éléments
présents dans un ensemble, mais pas dans l'autre. Donc, si je l'exécute maintenant, vous pouvez voir que 192 one.one.01 est un élément présent
dans le premier ensemble, mais absent dans le second Nous pouvons donc faire le contraire, d'accord ? Je peux dire set deux moins set un, et maintenant cela nous donnera
le 19216 eight.one.102,
qui est, bien sûr, présent dans le set deux,
mais pas
présent dans le set un mais pas Nous avons également des méthodes telles que
votre ajout, suppression, Clare. Ainsi, par exemple, si je voulais ajouter une nouvelle adresse
IP pour en définir une, il me
suffit de dire définir
une adresse et maintenant ajouter un point, et maintenant entre crochets,
je entre crochets peux ajouter la nouvelle adresse IP, donc je peux dire 192.168.0.10 Très bien, juste à titre d'exemple. Alors maintenant, si je devais en
imprimer un,
courir, et le tour est joué. Vous pouvez voir maintenant que 192-16-8010 a en fait
été ajouté pour en définir Vous pouvez également avoir d'autres
méthodes comme supprimer, effacer, etc. N'hésitez pas
à la rechercher sur le site Web de Python
si vous le souhaitez. Voilà pour les sets,
merci d'avoir regardé. Je te verrai
au prochain cours.
38. Programmer des ensembles de défis et des boucles: Reviens. Maintenant, je vais vous
présenter un exercice qui comporte deux tâches. Et sur mon écran,
vous pouvez voir que nous avons un dictionnaire des différents journaux. Vous pouvez y voir les paires
clé-valeur, le nom d'utilisateur, puis les adresses IP, puis les statuts, n'est-ce pas ? Les deux tâches sont donc les suivantes. Tout d'abord, nous voulons
identifier et imprimer toutes les
adresses IP uniques figurant dans les journaux. Ensuite, il faut rechercher une adresse IP spéciale
qui pourrait exister. S'il existe, nous
allons imprimer quelque chose. S'il n'existe pas, nous pouvons
imprimer autre chose. Vous pouvez donc
mettre la vidéo en pause et essayer de résoudre vous-même ces
deux tâches. Un indice que je vais donner est que nous
allons certainement devoir travailler avec une
sorte de boucle à quatre boucles.
J'allais parcourir chaque journal, puis surtout rechercher le
val des adresses IP, et nous allons
devoir transmettre les résultats dans un ensemble, car souvenez-vous
qu'avec les ensembles, nous n'aurons pas de
doublons Et comme nous
recherchons des adresses IP uniques, ensembles seraient la solution
idéale. Vous pouvez donc mettre la vidéo en pause
et l'essayer vous-même. Si ce n'est pas le cas, je vais
vous expliquer comment nous pouvons
résoudre les deux problèmes. Donc, tout d'abord, pour ce qui est de la première tâche, nous devons identifier toutes
les adresses IP uniques. Donc, une chose que nous
pouvons faire pour le moment est simplement de créer un ensemble qui stockera
ces adresses IP uniques. Et je vais appeler cela un
ensemble d'adresses IP uniques. OK. Et maintenant, ce que je vais
faire, c'est parce que c'est un set, je vais
ouvrir mes zones frisées Mais maintenant, pensez-y, d'accord ? Nous voulons passer en revue chaque journal. Ensuite, recherchez la
valeur de la clé IP. Alors regarde ça, d'accord ? Je vais dire log, et maintenant je vais
ouvrir mes crochets
parce que nous voulons
cibler la
clé, à savoir l'adresse IP. Donc, en gros,
nous disons : OK, pour chaque journal,
accédons à l'adresse IP, et maintenant je vais présenter
ma boucle à quatre en disant quatre journaux de connexion. Hein ? Nous avons donc créé
les quatre boucles qui
parcourront chaque journal dans notre dictionnaire de journaux, et nous
rechercherons spécifiquement la valeur de la clé IP. Donc, puisque nous avons
tout regroupé dans un
ensemble, il ne nous reste
plus qu'à imprimer. Et puis, entre crochets, nous pouvons dire quelque chose comme des adresses IP
uniques,
deux points, puis
simplement ajouter une virgule, et maintenant des adresses IP de soulignement uniques Et voilà. Je suis
sûr que vous vous attendiez à ce que cela prenne encore
quelques lignes de code. Félicitations si vous avez pu résoudre
ce problème vous-même, il s'
agisse de
deux
ou trois lignes, de
quatre lignes ou de cinq lignes qu'il s'
agisse de
deux
ou trois lignes, de
quatre lignes ou de cinq lignes,
car il existe d'autres
moyens de résoudre le problème, mais c'est de loin le moyen le plus court et le
plus efficace. Alors laissez-moi
lancer le programme dès maintenant, juste pour m'assurer qu'il
fonctionne, et voilà. Génial. Nous avons donc
tout là-dedans, 182, 168, 11, un point cinq, un à deux, un point quatre, puis un point trois. Génial. Cool. D'accord. Ensuite, il y aura la deuxième tâche.
OK ? Alors, que
cherchons-nous ici ? Nous recherchons une adresse IP
spéciale égale à 182168, un point quatre Nous pouvons donc dire qu'une
adresse IP spéciale est égale à 192.168.14. Alors, qu'allons-nous
faire maintenant ? Nous devrons utiliser l' instruction Is parce que
nous disons « OK, si cette adresse IP spéciale
a été trouvée là-dedans, faites ceci, sinon, faites autre
chose ». Je vais donc dire
si l'
adresse IP de soulignement spéciale se trouve dans ce que N se trouvait
dans notre ensemble unique Je suis
désolée, des adresses IP uniques, des adresses IP soulignement
plutôt uniques.
Que voulions-nous faire ? Nous voulions dire imprimer, puis nous pouvons dire, vous savez, qu' adresse IP
spéciale
a été trouvée, d'accord ? Sinon. Oh, désolée pour ça Et puis on peut dire autre chose Imprimer. Et puis aucune
adresse IP spéciale n'a été trouvée. Et voilà. OK. Allons-y, lançons le programme,
et le tour est joué. L'adresse IP spéciale
a bien été trouvée. Maintenant, si je remplace quatre par dix,
juste pour m'assurer que
cela fonctionne réellement,
et que je
relance le programme,
voilà juste pour m'assurer que
cela fonctionne réellement, . Aucune adresse IP spéciale n'
a été trouvée. Encore une fois, félicitations
si vous avez réussi à résoudre vous-même l'une ou l'autre des tâches ou
les deux. Si ce n'est pas le cas, ne vous inquiétez pas. Tout cela fait partie du processus
d'apprentissage, mais je vais
maintenant vous
donner un exercice que vous
devrez essayer vous-même. Je te verrai donc
au prochain cours.
39. Des dictionnaires et des boucles du défi de programmation: Bon retour.
J'ai donc décidé d' ajouter une tâche supplémentaire pour en
faire la troisième tâche, et cela va être un
peu plus compliqué. Et cette tâche va
impliquer de compter le nombre de tentatives de connexion
infructueuses par utilisateur. Donc, en gros, nous allons
parcourir chaque journal, compter le nombre de fois où un utilisateur en particulier
a échoué dans son statut, puis simplement
imprimer qu'Ale a, vous savez, quatre flures, Bob a un échec et ainsi de suite, vous
savez, quelque chose comme ça Vous pouvez donc mettre
la vidéo en pause et essayer de résoudre vous-même
cette tâche. Si ce n'est pas le cas,
examinons les deux ensemble. Donc, comme je l'ai dit plus tôt, j'ai mon fichier
de bloc-notes ici parce que je veux que nous abordions
cela de manière logique, Allons-y donc étape par étape. La toute première
question est la suivante. Allons-nous avoir
affaire à un ensemble, un dictionnaire ou à une liste ? Réfléchissons-y,
non ? Il ne peut évidemment agir d'un ensemble car les ensembles n'acceptent
pas les doublons Donc, si nous voulons
utiliser un set ici et que Bob a
échoué une tentative de connexion, la deuxième fois que Bob
échoue, set ne
l'
acceptera pas car n'
oubliez pas que les sets n'
acceptent pas les doublons Les ensembles ne fonctionneront donc pas ici. Ce ne peut pas être une liste non plus,
car pensez-y, d'accord ? Nous devons associer le nom d'utilisateur au nombre
de fois où ils ont échoué, et ce sont les dictionnaires qui sont parfaits pour travailler
avec des paires clé-valeur La clé ici
sera donc le nom d'utilisateur, puis la valeur sera le nombre de fois où le statut de ce nom d'utilisateur en
particulier a
échoué. Nous allons donc
travailler avec un dictionnaire. Nous avons donc besoin d'un dictionnaire
pour stocker le nom d'utilisateur et leurs tentatives de
connexion échouées respectives, n'est-ce pas ? OK. Maintenant, que devons-nous faire pour connaître le nombre de fois que chaque utilisateur a rempli le formulaire ? Nous devons créer une boucle à quatre. Donc, pour qu'une boucle passe
par chaque journal, n'est-ce pas ? Et puis une boucle, lorsqu'elle traverse un journal, que recherchons-nous exactement ? Nous voulons rechercher le
statut qui indique un échec. Le succès ne nous
intéresse pas. L'échec nous intéresse. Nous pouvons donc dire si le statut. Donc, si le statut est égal à un échec. Que voulons-nous faire ?
Nous voulons identifier le nom d'utilisateur
associé à cet échec. Alors, extrayons
le nom d'utilisateur, d'accord ? Nous allons extraire le
nom d'utilisateur et ensuite le
stocker dans une variable appelée,
disons, nom d'utilisateur, n'est-ce pas ? Nous pouvons donc stocker les noms d'utilisateur
dans la variable username. Donc, une fois ce nom d'utilisateur
trouvé, laissez-moi corriger cet extrait. OK, donc une fois qu'un nom d'utilisateur a été détecté comme ayant
un statut ou un échec, il y a deux scénarios possibles ici. Réfléchis-y, d'accord ? C'est soit la toute première fois que le nom d'utilisateur
échoue, soit cela peut être la deuxième, la troisième
ou la quatrième fois. Essentiellement, ce n'
est peut-être pas la première fois. D'accord ? Nous devons donc créer des
conditions pour les deux, afin de pouvoir dire si c'est
la première fois. D'accord ? Nous pouvons dire, non,
le nom d'utilisateur ici, le score est nul parce que
c'est la première fois, d'accord ? Cependant, si ce n'est pas la première fois, si ce
n'est pas la première fois, nous devons en ajouter un, d'
accord, puis l'ajouter
à leur enregistrement précédent. Donc, si c'est la toute première fois, vous partez de
zéro, vous en obtenez un. Mais si ce n'est pas la première fois, si c'est la deuxième
ou la troisième fois, nous allons simplement en ajouter
un à votre précédent enregistrement. J'espère que cela a du sens. Enfin,
nous pouvons simplement imprimer tentatives
de connexion infructueuses. D'accord ? Vous pouvez donc à nouveau suspendre la vidéo et essayer de résoudre vous-même cette
tâche. Si ce n'est pas le cas, écrivons
le programme ensemble. OK, alors que
faisons-nous, tout d'abord ? Nous sommes en train de créer notre dictionnaire. Donc je vais dire que
le dictionnaire a échoué
, d'accord ? Les bagues, puis les bretelles bouclées, seront vides parce qu'
il n'y a
rien dedans pour Viendront donc ensuite les quatre boucles. Je vais dire pour les
journaux de connexion, deux points. Et maintenant, que
recherchons-nous ? Nous
cherchons à vérifier si le nom d'utilisateur a
le statut d'échec. Plus précisément,
nous cherchons à vérifier si le statut
est un échec. Je vais donc dire que je me connecte, et maintenant nous voulons
cibler le statut, n'est-ce pas ? Donc, si le statut ici est le
même, je suis désolée. Il devrait y en avoir à l'extérieur. Donc, si le statut est égal
à ce qu'est un échec. Si cela équivaut à un échec, que recherchons-nous ? Nous
voulons extraire le nom d'utilisateur. Je vais donc dire que le
nom d'utilisateur sera égal à. Et maintenant, extrayons le nom. Je vais dire log, et
maintenant entre crochets, nom d'utilisateur. Permettez-moi d'ajouter les
codes juste là. Et voilà. OK, alors qu'
avons-nous fait jusqu'à présent ? Tout d'abord, nous avons créé le dictionnaire des tentatives
infructueuses. Nous avons maintenant créé nos quatre boucles pour parcourir chaque journal dans les journaux, puis
rechercher tout journal dont le statut est
équivalent à un échec. Lorsque vous trouvez
ce statut équivalent à un échec, extrayons le nom
d'utilisateur, puis attribuez-le à la
variable nom d'utilisateur. Maintenant, souvenez-vous qu'il y aura
deux conditions. Est-ce la première fois que ce nom
d'utilisateur affiche le statut d' échec ou
n'est-ce pas la première fois ? Alors, jetez un œil à ceci. Je vais dire que si Use
a name Okay, ce n'est pas le cas. Comment vérifier si
c'est la première fois ? Si ce n'est pas dans les tentatives
infructueuses ? D'accord ? Donc, en disant, si c'est
la première fois que nous découvrons que l'enregistrement de cet
utilisateur a échoué, nous pouvons vérifier qu'en
disant « utiliser le nom »
ne figure pas dans les tentatives infructueuses.
Que voulons-nous faire ? Nous voulons parler de tentatives infructueuses. Et maintenant, entre parenthèses, utiliser un nom sera égal à zéro. Cependant, si c'est le cas,
je suis désolée pour cela. Permettez-moi de faire des tentatives infructueuses. Tentative. En fait,
je m'excuse. J'ai fait une erreur lors
de mes tentatives. Qu'elle soit T pour
le S ta ta ta ta. Je m'excuse. Permettez-moi d'y ajouter mon
T et d'y ajouter mon T. D'accord, donc, si
ce n'est pas la première fois, si c'est la deuxième ou la troisième
fois, que faisons-nous ? Nous parlons de tentatives infructueuses. Et maintenant, utilise un nom. Utiliser un nom sera
égal plus un. Parce que nous allons
augmenter la valeur. Si c'était un avant, maintenant
ça va devenir deux, si c'était deux avant,
maintenant ça va
devenir trois et ainsi de suite. Je tiens à
souligner le fait que remarquez les deuxièmes
tentatives infructueuses ici, c'est à l'extérieur. Ce n'est pas dans cette déclaration
If, d'accord ? Parce que c'est ici, la ligne
21 22 est juste pour
vérifier si le nom d'utilisateur
n'existait pas auparavant. Et maintenant, le deuxième
champ tente ici, c'est pour vérifier si
la tentative infructueuse a déjà été
enregistrée précédemment et maintenant nous l'
incrémentons d' Il ne nous reste plus qu'à imprimer Okay. Ensuite, assurez-vous que c'
est à l'extérieur, imprimez. Et maintenant, entre crochets, nous pouvons dire quelque chose comme tentatives de connexion complètes
par utilisateur, puis laisser tomber,
puis nous pouvons simplement ajouter des tentatives de soulignement remplies Et voilà. OK, alors
j'espère que cela devrait fonctionner. Je vais lancer le programme, et voilà. Génial Bob avait donc trois ans. Alice avait deux ans et Dave un. Je pense que c'est correct. Bob en a un ici, un, un trois. OK, Alice l'a fait. Alice
a réussi ici. OK, c'est un
échec, deux, d'accord. Et puis Dave en est
un. Et, bien sûr, Carol n'a pas lancé parce qu'
elle n'avait qu'une seule bûche, et elle a réussi. C'est donc à peu près tout
pour résoudre cette tâche particulière. Une fois de plus, nous avons créé un dictionnaire appelé «
Failed Tentatives ». Nous avons créé une boucle pour parcourir chaque journal,
puis dire : « D'accord, si nous trouvons un état
d'échec, nous voulons d'abord vérifier, extraire le nom d'utilisateur
associé à cet échec, puis vérifier
si le nom d'utilisateur a déjà figuré dans nos tentatives infructueuses ou si
c'est la première fois. Si c'est la première fois, je leur
attribue la valeur zéro, puis si ce
n'est pas la première fois, ajoute
simplement un à
leur valeur précédente. Au fait, il se peut que
vous ayez une certaine confusion ici : attendez, Alex, pourquoi est-ce qu'
ici à la ligne 21 22, si c'est la première fois que
le record est un échec, que le NM a un
record d'échec, pourquoi ne pas dire égal à un ? PAR Z OU ? La raison
en est qu'à la ligne 23, nous allons quand même en
ajouter une à la valeur,
que ce soit
la première ou
la deuxième fois, donc cela n'a même pas d'importance. J'espère que vous comprenez
bien ce que je dis, parce que ça
va aller. Donc, si c'est la toute première fois, accord, tout d'abord, le
programme dira : OK, votre numéro de champ de
Ts est zéro à la ligne 22, puis à la ligne 23, il en ajoutera
un malgré tout. C'est pourquoi nous avons assigné
zéro ici et pas un. Si nous en attribuons une ici,
alors automatiquement, celui qui n'a échoué qu'
une seule tentative aura désormais deux
à son palmarès. Et pour vous le prouver,
vous pouvez voir qu'à l'heure actuelle, Dave a échoué qu'une seule tentative de
connexion, n'est-ce pas ? Si je suis venu ici
maintenant et que je remplace zéro un et que je lance
le programme, regardez ça. Dave en a maintenant deux.
C'est pourquoi nous avons créé ce 10 en premier, car nous savons qu'à la ligne
23, à l'étape suivante, un utilisateur sera ajouté au dossier de
cet utilisateur, que
ce
soit pour la première
ou la deuxième fois. J'espère donc que vous comprenez
ce que nous avons fait là-bas. Merci de votre attention,
et bien sûr, je vous verrai
au prochain cours.
40. Projet de système d'authentification: Très bien, alors bienvenue
au défi de programmation
où nous allons créer
pour nous-mêmes un système d'
authentification très basique Nous allons appliquer
tout ce que nous avons appris jusqu'à
présent , des variables aux fonctions, aux boucles et, bien sûr, aux dictionnaires les plus récents, d'accord ? Maintenant, j'ai déjà
écrit le programme. Il s'agit de la sortie. Donc, la façon dont le programme
va fonctionner est la suivante. Au tout début, l'
utilisateur aura trois options
pour s'inscrire, connecter ou simplement
quitter le programme. Maintenant, s'ils disent trois, cela quittera immédiatement
le programme et mettra fin à l'ensemble du système
d'authentification. Cependant, s'ils devaient en choisir un et appuyer sur Entrée, ils seront
désormais marqués par X et
fourniront un nom d'utilisateur. Je vais y aller avec
John, laisse-moi te fournir mon mot de passe comme mot de passe,
et voilà. L'inscription sera couronnée de succès. Maintenant, si je devais en saisir un nouveau,
et que j'essayais d'utiliser
exactement le même nom d'utilisateur John pour créer un nouveau compte, le système vérifiera si
, Oh, John existe déjà, essayez
un autre nom d'utilisateur. Notre programme
va donc
vérifier si le nom d'utilisateur existe
déjà. Maintenant, pour le numéro deux,
si nous essayons de nous connecter, le nom d'utilisateur sera demandé
. Maintenant, si je dis John, c'est vrai, et que je fournis
le bon mot de passe, vous pouvez voir
maintenant qu'il s'agit d' connexion réussie.
Bon retour. Maintenant, si j'ai essayé de me
reconnecter avec exactement le
même nom d'utilisateur, John, mais que cette fois j'ai utilisé un mot de passe
manifestement erroné,
le nom d'utilisateur
ou le mot de passe sera
invalide , veuillez réessayer. Ce sera donc notre système d'authentification
de base. C'est ainsi que cela va fonctionner. Et ce que je veux faire
maintenant, c'est
apporter mon fichier de bloc-notes ici juste pour vous
donner une idée de ce avec quoi nous
allons travailler Donc, évidemment, nous allons avoir besoin d'un dictionnaire
qui stockera les informations d'identification de l'utilisateur, car nous allons
devoir comparer et voir si le nouveau nom d'utilisateur que l'utilisateur souhaite saisir a déjà
été créé auparavant, si le mot de passe est
correct, des choses comme ça. Et nous allons utiliser un dictionnaire parce que
nous devrons
créer la paire clé-valeur, en les utilisant avec un logiciel de mot de passe. Les
utiliser sera la clé, puis la valeur de la
clé sera le mot de passe. Les dictionnaires
seront donc utiles ici. Nous allons avoir besoin de deux fonctions
différentes. La toute première fonction
sera d'enregistrer l'utilisateur, puis l'autre
sera de se connecter à l'utilisateur. Maintenant, pour que la fonction réelle d'enregistrement de l'utilisateur soit effective, de
quoi avons-nous besoin ? Tout d'abord, nous
allons devoir
demander à l'utilisateur de
fournir son nom d'utilisateur ,
puis nous
devrons avoir
une sorte de déclaration EL qui
vérifiera si le
nom d'utilisateur existe déjà. S'il demande
un autre nom d'utilisateur. Toutefois, s'il s'agit d'un
nouveau nom d'utilisateur, le programme peut
demander le mot de passe. Une fois que l'utilisateur a fourni
à la fois son nom d'utilisateur et son mot de passe, nous devrons créer le nom d'utilisateur, le mot de passe, la
clé, la valeur, le paiement. Je vais vous montrer exactement
comment procéder. Une fois cela fait,
nous pouvons alors dire que l'enregistrement a été réussi, ce qui est assez
simple. Pour que la fonction se connecte à
l'utilisateur existant, encore une fois, nous devrons demander à l'utilisateur de
fournir le nom d'utilisateur et le mot de passe. Ensuite, nous devrons
vérifier si le nom d'utilisateur correspond au mot
de passe déjà
enregistré dans le dictionnaire. Si c'est faux, nous allons imprimer le nom
d'
utilisateur et le mot de passe non valides. Sinon, si c'est vrai, si le mot de passe et le
nom d'utilisateur correspondent, on peut dire que la
connexion est réussie. Enfin, la troisième
étape consistera à créer le véritable
système d'authentification dans lequel l'utilisateur aura trois options pour s'inscrire, se connecter ou quitter. Et en fonction de l'
option choisie par l'utilisateur, il
faudrait appeler
la fonction correspondante. Nous allons donc
créer ce
système d'authentification à partir de zéro. Tu es excitée ? J'espère que tu l'es. Allons-y directement.
41. Étape 1 : construisez la fonction d'enregistrement: La première chose que nous
allons faire sera donc de
créer la fonction qui
enregistrera l'utilisateur. Cependant, créons
un dictionnaire qui sera utilisé pour stocker les informations d'identification de l'
utilisateur. Donc, pour le dictionnaire, nous pouvons l'appeler user
underscore credentials accord, d'égal à égal, et
ensuite nous aurons
nos bretelles Colly. C'est bon. Maintenant, pour ce qui est
de la fonction réelle d'enregistrement
de notre utilisateur, permettez-moi d'y ajouter
la note très rapidement. Fonction d'enregistrement de l'utilisateur. OK. Définissons la fonction. Je vais
mourir et puis
disons enregistrer un utilisateur de soulignement Appelez. Maintenant, de quoi avons-nous besoin ? Tout d'abord, nous
devons demander à l'utilisateur de saisir son nom d'utilisateur. Nous pouvons l'attribuer
à une variable. Appelons la variable nom
d'utilisateur equals. Demandons maintenant à l'utilisateur de fournir le nom d'utilisateur saisi, puis nous pouvons lui dire «
entrez votre nom d'utilisateur ». OK. À titre d'exemple,
appuyons sur Entrée. Laissez-moi laisser un espace entre les deux points et
les codes juste là
pour qu'il y ait un peu d'espace. Donc, pour le moment, nous
devons vérifier si le nom d'utilisateur fourni par l'
utilisateur existe déjà. Permettez-moi d'ajouter un nœud
ici sur une ligne séparée. Ajoutons la note, vérifions si le nom d'utilisateur existe
déjà. Alors, comment allons-nous procéder ? Eh bien, nous pouvons le faire en
utilisant l'instruction If. Je vais dire si le nom
d'utilisateur et maintenant dans les informations d'identification de l'utilisateur. Encore une fois, Python nous a déjà
donné le code. Si le nom d'utilisateur indiqué dans les
informations d'identification, Colon, laissez-nous imprimer le nom d'utilisateur existe
déjà, veuillez choisir un
autre nom d'utilisateur. Je crois que j'aime bien ça.
Cependant, je vais supprimer le retour.
Nous n'en avons pas besoin. Donc, si le
nom d'utilisateur n'existe pas, s'il s'agit d'un tout nouveau nom d'utilisateur, nous pouvons alors ajouter notre s. Que devons-nous faire
d'autre maintenant ? Nous devons demander à l'utilisateur
son mot de passe. Je vais dire autre chose. Créons un
mot de passe variable, puis attribuons-le aux entrées,
puis entre crochets, disons « Entrez un mot de passe ». Appelez, puis ajoutons
le code de fermeture,
et le tour est joué. À partir de maintenant, la prochaine étape que nous
devrons faire est de créer la paire clé-valeur pour le
nom d'utilisateur et le mot de passe. Maintenant, comment
allons-nous procéder ? Eh bien, nous allons le faire en
appelant les informations
d'identification de l'utilisateur du dictionnaire. OK. Maintenant, regarde ça. Je vais ouvrir mes crochets et je vais fournir
la clé qui sera le nom
d'utilisateur et qui est maintenant égale au mot de passe. C'est ainsi que nous pouvons créer
la paire clé-valeur. Vous indiquez le nom de votre dictionnaire, puis entre crochets, vous indiquez le nom de la
clé égal à sa valeur, et il est là. Ensuite, la dernière étape
sera désormais de simplement imprimer
l'enregistrement réussi. Et voilà. Maintenant,
essayons quelque chose. Je vais appeler cette fonction et
voyons si elle fonctionne réellement. Je vais dire enregistrer l'utilisateur, les
crochets, les deux points,
et le tour est joué. Essayons ça. Nous n'avons donc pas besoin de deux points ici. Excuse-toi. Nous n'avons pas besoin
de deux points ici. Exécutons le programme. Très bien, entrez un nom. Je vais dire John, saisissons un mot de passe. Disons simplement John
pour le mot de passe. John, entrez à nouveau et il est indiqué que l'inscription est
réussie. Cependant, notez que
le programme est terminé, et c'est parce que nous n'
avons pas de véritable boucle qui s'exécutera continuellement pour demander à l'utilisateur de fournir un nouveau nom
d'utilisateur, un nouveau mot de passe. Que pouvons-nous faire pour exécuter ce
programme indéfiniment ? Eh bien, nous pouvons introduire
la boucle while true. Ici, juste en dessous de
la fonction d'enregistrement de l'utilisateur, je ne vais pas
appeler une boucle qui dit while puis true. Cependant, l'indentation va
être très, très importante. Je vais mettre
tout cela
sous onglet pour m'
assurer que tout correspond à la réalité. Écoutez, permettez-moi d'ajouter ma colonne
juste là, et
voilà, maintenant le
programme va fonctionner en continu. Voyons
s'il vérifiera réellement
si le nom d'utilisateur que nous
fournissons existe déjà. Exécutons à
nouveau le programme. C'est bon. Donc, je vais
choisir celui-ci avec Mark. Le mot de passe est un mot de passe
OK, très bien. Inscription réussie.
Vous pouvez maintenant voir qu'il demande
un autre nom d'utilisateur. Essayons Nancy, Password, allons-y avec SOD,
Fish. Cela fonctionne. Maintenant, essayons à nouveau d'
utiliser Mark, Enter et maintenant il est indiqué que nom d'utilisateur existe déjà, veuillez choisir un autre nom d'utilisateur. Génial Nous pouvons voir ce
moment que la première
partie de notre programme, celle qui vérifie si celle qui enregistre
l'
utilisateur et vérifie si le nom d'utilisateur existe
déjà, vous pouvez voir dès maintenant
que cela fonctionne parfaitement bien et
que c'est génial. Rejoignez-moi dans la prochaine vidéo où nous allons maintenant
passer à la deuxième étape, où nous allons créer la fonction permettant de connecter l'utilisateur.
42. Étape 2 Construisez la fonction de connexion: Bon retour.
Passons maintenant à la deuxième étape où nous allons
créer une fonction 2, connecter un utilisateur existant. Ce que je vais faire, c'est pousser la fonction ici jusqu'
au bout et en dehors, ajouter une nouvelle note qui dit fonction 2, connecter l'utilisateur. De quoi avons-nous besoin ?
Créons d'abord le
nom de la
fonction qui sera def, disons, login
underscore user Et ajoutons deux points. De
quoi aurons-nous besoin ? Nous allons avoir besoin du
nom d'utilisateur et du mot de passe. Supposons que le nom d'utilisateur
soit égal et maintenant saisissez-le, nous allons demander à l'utilisateur
de fournir son nom d'utilisateur. Entrez votre nom d'utilisateur. Colon, ajoutons de
l'espace juste là. OK, il y aura ensuite le mot de passe, je vais dire que le
mot de passe est égal,
puis entrez votre mot de passe,
produisez directement. Nous allons maintenant
vérifier si le nom d' utilisateur
correspond bien au mot de passe que nous avions dans la section d'inscription. Je vais ajouter ma
note très rapidement. Vérifiez si le
nom d'utilisateur et le mot de passe correspondent. Alors, comment s'y prendre ? Le bon vieux nom d'utilisateur if
and now
et le nom d'utilisateur soulignés
sont désolés. J'utilise un nom dans les informations d'identification utilisateur et, comme le nom d'utilisateur
et le mot
de passe doivent être vérifiés et que de passe doivent être vérifiés et l'utilisateur souligne les informations d'identification
et maintenant les crochets, utilisez un nom égal
au mot de passe Regardez ce que nous avons fait ici,
nous vérifions que si le nom d'utilisateur déjà enregistré dans le dictionnaire (
informations d'identification utilisateur) et maintenant la paire clé-valeur pour
le nom d'utilisateur et le mot de passe correspondent réellement, alors nous pouvons imprimer, je vais dire « imprimer », disons
simplement « bienvenue ». C'est très, très simple. Sinon, si cela ne
correspond pas, nous pouvons imprimer. Maintenant, nous pouvons dire que mon mot de passe n'est pas valide
, veuillez réessayer. C'est bon. Ça y est. C'est assez
simple. Ce que je vais faire
maintenant, c'est
appeler les deux
fonctions enregistrer l'utilisateur,
puis me appeler les deux
fonctions enregistrer l'utilisateur, connecter
au score utilisateur. Cependant, nous devons
faire très attention
au fait que
la boucle réside actuellement à l'intérieur de la fonction de registre. Ce n'est pas à l'extérieur. Nous devons exécuter notre
boucle indépendamment de la fonction d'enregistrement
et de la fonction de connexion. Ce que je vais faire, c'est
découper le vrai, le découper, puis le coller tout seul à
l'extérieur tant que c' est vrai. Cependant, tout le reste
doit en relever. Je vais tout mettre
sous table , laissez-moi le
refaire et voilà Ça y est. Vous pouvez
voir maintenant que les informations d'identification de l'utilisateur, puis la boucle Wile, sont indépendantes de
l'extérieur Maintenant, le Wil est vrai, toute
la boucle
commence par
l'enregistrement de l'utilisateur, puis par la
connexion de l'utilisateur, en vérifiant s'
il y a des correspondances, des choses comme ça.
Cela devrait fonctionner. Je vais commencer dès
maintenant à exécuter le programme et à nous laisser voir. Je vais fournir
le premier nom d'utilisateur. Allons-y avec Mark et le
mot de passe
sera un enregistrement d'administrateur réussi. Essayons maintenant de nous
connecter en tant que Mark. Je vais dire Mark
puis admin Désolé, Mark puis Admin, et voilà. Bon retour. Cela fonctionne avec succès. Nous en sommes maintenant à
la phase d'enregistrement. Si j'essaie maintenant de créer
un autre compte avec Mark, cela indiquera que le
nom d'utilisateur existe déjà. Veuillez choisir un
autre nom d'utilisateur. Allons-y avec Nancy. Mot de passe pour Nancy,
allons-y avec le mot de passe. OK, maintenant vous pouvez
voir le message « Désolé », nom d'utilisateur ou
mot de passe
invalide, veuillez réessayer. Cela se produit parce que, compte tenu de la façon dont le programme
est écrit actuellement, il se déroule
étape par étape que l'
étape précédente ait été réussie ou
non . Ici, vous pouvez le
voir démarrer avec la
phase d'enregistrement qui a fonctionné. Je suis ensuite passé à la phase de
connexion qui a fonctionné. Il est maintenant de nouveau venu ici pour
la phase de connexion. Désolé pour la phase
d'enregistrement à nouveau, j'ai vu que le Mac
existe déjà en tant qu'utilisateur. Il a donc été dit de choisir
un autre nom d'utilisateur. Cependant, il n'arrête pas de demander à
l'utilisateur de créer
un autre nom ici, il est passé directement à la phase de connexion où il a vérifié
si Nancy existait Nancy n'existait pas. C'est pourquoi le
nom du mot de passe américain est invalide ,
veuillez réessayer. À l'heure actuelle, il est revenu
à la phase d'enregistrement. Si je répète Nancy, vous pouvez
maintenant dire que c'est
demander
le mot de passe à Nancy parce que c'est
en phase d'enregistrement. Maintenant, en tapant Admin, il est indiqué que l'enregistrement a réussi. Essayons maintenant de nous connecter car Night est
passé à la phase de connexion. Je dis que le
mot de passe de Nancy Nancy est admin, mais je vais taper
quelque chose de différent, Entrez, puis le mot de
passe américain est
invalide , veuillez réessayer. Nous pouvons constater à l'heure actuelle que
le programme fonctionne à environ 80 %. La phase d'enregistrement
et la phase de connexion fonctionnent, cependant, si nous devions le faire idéalement, lorsque nous essayons de
créer un nouveau compte utilisateur, et si nous essayons d'utiliser un nom d'utilisateur qui existe déjà, le programme ne devrait pas passer
à la deuxième étape, qui consiste simplement à connecter l'
utilisateur jusqu'à ce que celui-ci ait effectivement fourni un tout
nouveau nom d'utilisateur pour l'enregistrement. Nous allons résoudre ce problème dans la troisième et dernière partie
de cette mission.
43. Étape 3 : créer le système d'authentification: Je vais passer à la dernière
partie de notre mission, qui consiste à créer le véritable système
d'authentification. Cela invitera l'
utilisateur à s'inscrire, se connecter ou peut-être
même à quitter le système. Maintenant, ce que je vais
faire, tout d'abord, c'est
supprimer les fonctions
ici, m'inscrire et me connecter. Je vais également supprimer la boucle while
ici parce que nous allons l'
exécuter à un endroit
différent. Je vais maintenant modifier
l'indentation et m'
assurer que les fonctions
enregistrent l' utilisateur et l'utilisateur de connexion
sur la même ligne Cela devrait se trouver ici sous la
fonction d'utilisateur de connexion et le voilà. Commençons par créer
le système d'authentification. Je vais ajouter
mes notes et appeler celui-ci le menu principal. Nous pouvons maintenant définir notre fonction ici,
le système de
soulignement d'authentification Et voilà. De quoi avons-nous besoin ici ? Nous devons demander à l'utilisateur de
s'inscrire, de se connecter ou de quitter le site. Nous allons imprimer
quelques déclarations. Commençons par
imprimer et je vais dire,
disons, un système d'
authentification de base Ce sera au sommet. Ensuite, imprimons la toute première
option pour l'utilisateur. Nous pouvons dire qu'un registre sera la première option, puis
imprimer l'option numéro deux, ce sera une connexion à deux points. Alors la dernière option
ici serait trois ,
puis appelons-la
une sortie. Ça y est. Nous avons nos trois
options ici. Maintenant, l'utilisateur devra en
ajouter un, deux ou trois. Créons une
variable qui
représentera cette option
particulière. Je vais appeler
cette option une option, option
sera égale à l'entrée, et maintenant demandons à l'
utilisateur de saisir votre choix. Nous demandons à l'
utilisateur en ce moment : « Hé, indique-nous ce que
tu veux faire ». Nous allons devoir
créer le scénario if dans lequel nous vérifierons si
l'utilisateur choisit la première option,
qui est l' enregistrement, nous pouvons appeler la fonction d'enregistrement utilisateur. S'ils choisissent la deuxième option, nous pouvons appeler la
fonction utilisateur de connexion ou s'ils quittent, nous pouvons simplement mettre fin à la boucle. Je vais dire tout de suite que si l'option ici est égale, et maintenant je peux en dire une. Colon. Que ferons-nous si
ce fromage est la première option ? Eh bien, nous pouvons appeler la fonction
register underscore user. Très, très simple. Maintenant, si ce sera si. Si c'était la deuxième option,
qu'allons-nous faire ? Nous allons appeler la
fonction login underscore user. Maintenant, pour le dernier,
si l' option est égale à trois, que devons-nous faire ? Nous pouvons imprimer. Ensuite, codez, on peut dire
quitter le système. Et voilà, puis nous pouvons dire autre chose : si l'utilisateur fournit l'
option quatre, cinq ou six, qui n'existe pas,
alors nous pouvons dire,
sinon, imprimer,
puis entre crochets, nous pouvons dire « choix non valide »,
puis nous pouvons dire « veuillez choisir parmi les options
un, deux ou trois ». Ça y est. Ça y est. Enfin, nous pouvons exécuter le système d'authentification. Nous
pouvons le faire en disant simplement « système
d'authentification », et le tour est joué. Il y a une chose que nous
n'avons pas encore ajoutée. Je ne sais pas si vous
pouvez voir ce que c'est, mais c'est la boucle. Parce qu'à l'heure actuelle, ce programme ne s'exécutera qu'une seule fois, mais nous voulons que l'utilisateur continue
à se connecter, à
s'enregistrer ou à quitter Que faisons-nous ? C'est là que nous devrons faire appel à
la vraie boucle Wild. Mais où pensez-vous que
nous allons le mettre ? Nous allons le placer juste dessous de la fonction de notre
système d'authentification. C'est là que je vais
dire absolument vrai. Maintenant, souvenez-vous que tout ce
qui se trouve ici devra relever de la
pure tradition. Assurez-vous donc que votre
identification est correcte, puis nous
devrons
également ajouter l'instruction break pour terminer la boucle Maintenant, où allons-nous
terminer la boucle, nous terminons la boucle où l'utilisateur
choisit l'option trois, qui consiste à quitter le système. Juste en dessous, en dessous de l'impression,
je vais dire break et
voilà je vais dire break et
voilà , nous
espérons que notre programme devrait fonctionner
sans aucun problème. Laisse-moi y aller
maintenant et le gérer. Nous avons un problème
ici, c'est
parce que la pause sort de
la boucle, regardez ça. Oh, ouah, l'indentation
est tellement importante. Vous pouvez le constater dès
maintenant si tout cela n'est pas la même indentation
que l'instruction while Alors, revenons ici et indentionnons-les
correctement, et voilà Vous pouvez même voir que je fais également
des erreurs avec mon
indentation Assurons-nous donc que tout le reste
est correctement indenté. Essayons de lancer le
programme une fois de plus. Heureusement, cela fonctionne maintenant. Laissez-nous le tester. Je vais opter pour l'
option numéro un. Tout d'abord, enregistrons Mark et son mot de passe est admin. Génial. Essayons maintenant de
passer à l'option numéro deux pour nous connecter, utilisez le nom. Prenons l'exemple de Nancy, mot de passe, disons, Bob. Mais maintenant, le nom est invalide En utilisant le nom du mot de passe,
veuillez réessayer. Cela
fonctionne évidemment très bien. Essayons à nouveau de nous
enregistrer en tant que Mark. Vérifiez une fois de plus si le programme détectera
que Mark existe déjà Mark dit : OK, nom existe déjà, veuillez
choisir un autre nom d'utilisateur. OK. Essayons de nous connecter cette fois
en tant que Mark. Laissez-nous fournir le mot de passe
qui est admin et qui dit « Bienvenue à nouveau ». J'ai vraiment travaillé. Essayons de nous connecter à nouveau en tant que Mark. Mais cette fois, utilisons
un autre mot de passe, un mot de passe long, puis il est écrit : « Nom d'utilisateur ou
mot de passe
non valide, veuillez réessayer ». Il semble qu'il
fonctionne correctement. Le test final consiste à sortir, entrer et le tour est joué. En sortant du système,
la boucle est terminée, le programme est
terminé. Ça y est. Nous avons
créé avec succès un programme, qui est un
système d'authentification de base qui
permettrait à un utilisateur s'enregistrer, de se connecter ou simplement de
quitter le programme. Bien entendu, nous avons ajouté
des contrôles pour garantir qu' aucun compte dupliqué ne
puisse être enregistré. Nous avons également ajouté
des contrôles pour nous assurer que les noms d'utilisateur et les
mots de passe correspondent, et le tour est joué. Félicitations. J'espère que vous avez apprécié cette mission,
ce défi. Merci d'avoir regardé. Je te
verrai au prochain cours.
44. Introduction à la section de traitement des fichiers: Bienvenue dans cette section
où nous allons parler de la gestion des fichiers, et croyez-le ou non, c'est officiellement
le début des sujets les plus avancés sur la programmation Python,
car ici, vous allez apprendre comment
écrire des programmes capables de créer des fichiers
et même de les modifier. Et peut-être
plus important encore, vous allez apprendre exactement
comment gérer les erreurs de fichiers. Supposons, par exemple, que quelque chose
se soit produit dans votre programme, que
cela n'ait pas tout à fait fonctionné comme prévu. Vous allez apprendre
exactement comment modifier ou concevoir votre
programme de manière à ce que ce type d'erreur traité de manière
professionnelle. Cela va donc être une section très,
très intéressante. Et, bien entendu,
vous allez également apprendre les différents types de méthodes que nous pouvons
appliquer à nos fichiers, exemple comment
lire un fichier, ou peut-être même écrire dans un fichier ou même ajouter ou
modifier un fichier en particulier Et bien sûr, vous allez
également
apprendre à gérer les
erreurs de fichier dont j'ai déjà
parlé en utilisant les blocs
multiples sauf et aussi l'
instruction finally. Alors,
sans perdre plus de temps, passons à la
gestion des fichiers.
45. Lire et écrire sur des fichiers: Très bien,
parlons de la gestion des fichiers et pour le moment, le seul fichier avec lequel nous
travaillons est le fichier point py principal. C'est juste un
fichier Python et rien de plus. Cependant, nous pourrions créer
d'autres types de fichiers. Et si nous voulions écrire
un programme qui
demanderait à l'utilisateur de fournir
son nom d'utilisateur ou son mot de passe, puis
que nous stockions ces informations utilisateur dans un fichier séparé. Comment pouvons-nous le faire ?
Eh bien, nous pouvons le faire de différentes manières. C'est ce que tu
vas apprendre ici. La première chose
que je veux vous montrer, c'est comment créer un fichier. Il existe une instruction
appelée with, puis une fonction appelée crochets ouverts. Cela aura pour effet que la fonction open
accepte généralement deux paramètres. Vous devrez
fournir le nom
du fichier avec lequel vous
souhaitez travailler, puis le deuxième
paramètre
sera celui que vous
souhaitez faire à ce fichier. Peut-être souhaitez-vous
lire le fichier, écrire dans le fichier, ajouter
le fichier, etc. Par exemple, disons que
je souhaite ouvrir un fichier
appelé example point TXT. C'est un fichier texte devenu virgule, et maintenant je dois
fournir l'opération Est-ce que je veux ouvrir ce fichier ? Est-ce que je veux lire le contenu du fichier ? Qu'
est-ce que je veux faire ? Je veux écrire dans le fichier, donc je vais utiliser W pour représenter la bonne fonction,
la bonne opération. Et maintenant, pour terminer, je vais parler d'un fichier. Ici, c'est
généralement la syntaxe. Vous allez dire ouvert ,
puis entre crochets indiquer
le nom du fichier, puis l'opérateur
associe W pour écriture, R pour lecture, etc.,
puis vous indiquerez un fichier. Maintenant, je vais
passer à la nouvelle ligne et dire file point w. C'est la fonction que nous allons utiliser pour écrire la chaîne ou ce que nous
voulons écrire dans le fichier. Entre parenthèses, je vais dire bonjour
à tout le monde. C'est ce que je
veux écrire dans le fichier. Maintenant, regarde ça. Je vais y
aller. Maintenant, remarquez que je n'ai encore qu'un seul
fichier, le point principal PY. Mais si je devais exécuter le programme, vous voyez maintenant qu'il est écrit un point d'exemple. Même si je n'ai pas créé
ce fichier auparavant, chaque fois que vous
écrivez dans un fichier, si ce fichier n'
existait pas auparavant, Python le
créera automatiquement pour vous. Maintenant, si je devais
ouvrir mon exemple au texte, vous pouvez voir maintenant
qu'il est écrit « Bonjour tout le monde ». Et si je venais ici
maintenant et que j'écrivais une autre bonne fonction et que
je dis que c'est génial. Que pensez-vous qu'
il va se passer ? Allons-y et
lançons le programme. Si je reviens à mon
exemple, doc TXT, maintenant vous pouvez voir qu'il est écrit « Bonjour tout
le monde », c'est génial. Maintenant, il a ajouté cela,
c'est génial à notre dossier. Permettez-moi d'y retourner et de fermer ceci. Permettez-moi de supprimer la
deuxième fonction de fichier. Maintenant, nous pouvons voir que hello world est en fait
dans l'exemple point TXT. Mais que se passerait-il si dans notre console, nous voulions afficher le
contenu de l'exemple point TXT. Ce que je vais faire ici, c'est
dire avec open again et maintenant entre crochets, encore
une fois, le nom
du fichier, par exemple TXT. Nous allons maintenant utiliser
la fonction R à la place. C'est ce que nous utilisons
pour lire le fichier. Je vais dire sous forme de fichier, deux points. Et si nous voulions imprimer le
contenu du fichier ? Je peux attribuer une variable
appelée content equals, et maintenant je vais utiliser
un fichier de fonction point rouge. Cette fonction
ici, le fichier (point rouge nous permet de lire le contenu
de notre fichier. Il va transmettre le contenu
à la variable content. À partir de là, il ne nous reste qu'à dire « impressions »
puis, entre crochets, qu'est-ce que nous imprimons,
nous imprimons du contenu ». OK. Maintenant, je vais courir et c'est
là, dans une console, vous pouvez voir que Hello
World est affiché. Il s'agit essentiellement
d'une introduction à la lecture de fichiers, à
l'écriture dans des fichiers. Une question que vous vous posez
peut-être est la suivante : d'accord, pouvons-nous réellement créer nos fichiers sans utiliser
l'instruction with ? La réponse est en fait oui, nous pouvons le faire sans
utiliser l'instruction with. Comment ferions-nous cela ? Eh bien, permettez-moi tout d'
abord de supprimer
la programmation ici. Ce que nous devons
faire, tout d'abord, c'est dire que le fichier est égal,
puis ouvrir. Ce sera la
véritable fonction ouverte elle-même. N'oubliez pas qu'open
accepte deux paramètres. Maintenant, nous devons
ouvrir notre exemple de point TXT, maintenant ce que nous voulons faire, c'est écrire dans le fichier. Je vais dire W. Permettez-moi simplement de supprimer, laissez-moi supprimer cet exemple de
fichier texte à points. Laissez-moi le supprimer. Nous partons
de zéro. Maintenant, je l'ai dit à Python, je veux que vous créiez ce
fichier appelé example point TXT. Que voulons-nous maintenant
écrire dans le fichier ? Je vais entrer tout de
suite et dire file point write. Parce que maintenant j'écris dans le fichier, puis entre crochets
, fournissons la
chaîne hello world. Maintenant, il
ne me reste plus qu'
à fermer le dossier. Lorsque vous ouvrez un fichier que
vous lisez un fichier
ou que vous êtes dans un fichier, par défaut, le fichier doit être ouvert pour que cette
opération puisse avoir lieu. Ce que vous voulez toujours faire c'est vous
assurer que le fichier est fermé une fois l'
opération terminée. Si vous ne le faites pas, programmes
risquent de perdre de mémoire et le système peut être très vulnérable à
différents types d'attaques Donc, pour fermer le
fichier très simplement, le point W du fichier ferme.
Et c'est tout. Maintenant, si je lance à nouveau le programme, vous pouvez dire par exemple que
le texte se trouve là-bas, je peux ouvrir le fichier et
c'est tout à fait normal. La raison pour laquelle nous préférons ou la
plupart des développeurs préfèrent utiliser l'instruction W est qu'
avec l'instruction With, permettez-moi d'annuler tout cela. Avec l'instruction W, vous remarquerez que nous n'avons
pas eu à fermer
le fichier manuellement. Python est
suffisamment intelligent pour savoir que, lorsque vous utilisez
l'instruction W, dès que vous avez effectué l'opération
que vous souhaitez effectuer sur le fichier,
fermez-le automatiquement. C'est pourquoi les développeurs
utilisent souvent l'instruction with. Vous n'avez plus besoin de
fermer le fichier car Python
le fera automatiquement. De plus, c'est aussi plus propre, vous avez moins de lignes de code. C'est pourquoi l'instruction Wi
est généralement utilisée
conjointement avec
la fonction open. Merci d'avoir regardé. Je te
verrai au prochain cours.
46. Lire et écrire des entrées dans des fichiers texte: Voyons maintenant
comment lire et écrire dans
des fichiers texte. Supposons, par exemple, que
nous voulions créer un programme qui accepterait
une entrée de l'utilisateur. Supposons que l'utilisateur ait
été invité à fournir son nom d'utilisateur
, puis que nous voulions stocker ce
nom d'utilisateur dans un fichier séparé. Comment pouvons-nous le faire ? Eh bien ?
Tout d'abord, assignons une variable qui acceptera les
entrées de l'utilisateur. Je vais appeler ma
variable username equals et maintenant la fonction
d'entrée. Entrez maintenant votre nom d'utilisateur,
c'est assez simple. Maintenant, souvenez-vous de la
leçon précédente sur la syntaxe ouverte, je vais dire avec et
maintenant ouverte et, bien sûr, souvenez-vous que open
acceptera deux paramètres. Tout d'abord, le fichier avec lequel vous
souhaitez travailler,
puis l'opérateur, je vais créer un fichier
appelé users point txt. Ensuite, nous allons ajouter l'idée fonctionnelle W à écrire, puis je
vais dire un fichier. Que voulons-nous faire maintenant ? Nous voulons écrire le
nom d'utilisateur dans le fichier. Ce que je vais faire maintenant, c'est très simple : archiver, écrire. Maintenant entre crochets, le nom d'utilisateur. Ensuite, pour faire bonne mesure,
nous pouvons imprimer quelque chose une
fois que nous pouvons imprimer quelque chose l'utilisateur a
fourni le nom d'utilisateur. Disons imprimer et je
dirais que le nom d'utilisateur a été
ajouté au fichier, titre d'exemple.
Allons-y maintenant. Lancez le programme. Entrez votre nom d'utilisateur,
je vais dire Alex, appuyez sur Entrée et maintenant il est indiqué que le
nom d'utilisateur a été ajouté
au fichier et vous pouvez voir les utilisateurs TextiFle a été créé
et si je l'ouvre, vous pouvez voir qu'il est juste
là Alex. Jusqu'ici, tout va bien. Cependant, si je reviens en arrière et
que je lance à nouveau le programme, et que cette fois, j'ai utilisé
un nom d'utilisateur différent, j'ai dit Alice, j'appuie sur Entrée. Si je vais voir mes utilisateurs
ou si j'envoie le fichier par SMS, vous pouvez voir maintenant qu'
Alice a remplacé Alex En effet, chaque fois que vous acceptez les entrées
de vos utilisateurs, vous les stockez
dans un fichier texte. Lorsque vous utilisez le bon opérateur, il remplacera simplement tout
ce qui existait auparavant dans
ce fichier Et si on ne le veut pas ? Et si nous voulions simplement continuer à
ajouter des fichiers ou des noms d'utilisateur à notre fichier sans remplacer les précédents ?
Comment s'y prend-on ? Tout d'abord, permettez-moi d'
effacer mon historique, supprimer le texte à
points du fichier pour nos utilisateurs. Faisons comme si nous
partons de zéro ? Au lieu d'utiliser la fonction W, je vais utiliser A, qui représente un stylo. Avec un stylo, nous pouvons continuer à
demander à l'utilisateur de fournir un nouveau nom d'utilisateur et une fois qu'il aura
ajouté de nouveaux noms d'utilisateur, ils seront stockés
dans notre fichier et les anciens noms d'utilisateur ne
seront pas remplacés Je vais relancer
le programme. Fournis mon nom d'utilisateur, Alex. Vous pouvez maintenant voir que nous avons le fichier txt à points de
nos utilisateurs, Alex, comme nous l'avons fait
avec le bon opérateur. Mais maintenant, si je reviens en arrière, je lance le programme à nouveau et
cette fois, je dis Ale. Que se passe-t-il maintenant, je vais sur
mon textifle à points d'utilisateur,
puis vous me dites nous avons Alex, nous avons Alice Vous pouvez voir qu'Alex
n'a pas été remplacé. D'ailleurs, si vous souhaitez enregistrer vos noms d'utilisateur
sur des lignes séparées, il suffit d' écrire le nom d'utilisateur du fichier Nous pouvons simplement dire « Plus »
maintenant, regardez ceci. Vous voulez dire barre oblique avant,
désolée, barre oblique arrière, puis N. Donc, ici, c'est
ce que nous utilisons
pour créer des lignes Tout ce que vous ajoutez
sera ajouté sur une nouvelle Donc, ce que je vais
faire ici, c'est
supprimer à nouveau le
DotExfile des utilisateurs. Laissez-moi exécuter le programme
une fois de plus. Alex, appuyez sur Entrée. Exécutons à nouveau le programme. Cette fois, je vais
dire Alice. Appuyez sur Entrée. Maintenant, si j'ouvre TextFile à mes
utilisateurs, vous pouvez voir qu'Alex et
Alice sont sur des lignes séparées Voici la
différence entre votre opérateur droit et
votre opérateur d'ajout Mais que se passerait-il si nous
voulions lire les données, les noms d'utilisateur du fichier ? Comment pouvons-nous le faire ? Eh bien, je vais juste
venir ici, dire avec open again, entre crochets, et je vais
dire users TXT, alors qu'
allons-nous faire ? Codes R. Ensuite, en tant que fichier, Colm, nous
voulons maintenant créer une boucle à quatre boucles. Je vais dire quatre
noms pour les noms du fichier. En ce qui concerne
les noms d'utilisateur du fichier, que voulons-nous faire ? Nous voulons imprimer. Je vais dire imprimer
, puis nous pouvons dire, utiliser un nom. Colon et maintenant je vais ajouter le coma et maintenant nommer Dot Strip. Il s'agit d'une nouvelle fonction
qui aura ses propres crochets vides
et voilà. Maintenant, si je lance le programme, Alex, et voilà, utilisez-les comme s'ils étaient
ajoutés au fichier. Maintenant, grâce à notre
fonction ici, nous lisons le fichier, il va indiquer le nom d'utilisateur,
Alex, le nom d'utilisateur Alice,
puis le nom d'utilisateur Alex
à nouveau parce que l'utilisateur TextFile a Alex Alice Alex C'est ainsi que nous pouvons lire
le contenu de notre fichier. D'ailleurs, la
bande de points ici est une méthode très
souvent utilisée chaque fois que nous
manipulons des fichiers. Maintenant, nous l'utilisons pour supprimer
tous les espaces blancs en début ou en trillage d'une chaîne. Cela peut inclure des éléments
tels que vos espaces, coups de couteau ou même un nouveau caractère
de ligne Il s'agit simplement d'un
moyen très efficace de garantir que le texte que nous
produisons ou imprimons le
soit de la manière la plus
efficace possible, la manière la plus
efficace possible sans espace inutile C'est pourquoi le strip est très souvent utilisé chaque fois que nous
manipulons des fichiers texte. Maintenant, c'est complètement optionnel. En fait, vous n'êtes pas obligé d'utiliser la méthode du
strip. Si je supprime la méthode du strip et que je ferme simplement mon
support normalement, si je lance le programme, il fonctionnera exactement de la même manière. Permettez-moi de vous donner un nouveau nom. Disons Mandy. À titre d'exemple. Voilà. Nous avons le nom d'utilisateur
Alice, le nom Alex, nom Mandy, voilà,
ça va toujours fonctionner Mais vous pouvez voir
maintenant que nous avons espace supplémentaire, les lignes entre
le nom d'utilisateur Alex, le nom
d'utilisateur Alex nom d'utilisateur Mandy parce que nous
utilisons le nouveau caractère de ligne, la nouvelle chaîne de ligne ici pour ajouter chaque entrée sur
une ligne séparée C'est à peu près
tout pour lire et écrire dans des fichiers texte. Merci d'avoir regardé. Je te
verrai au prochain cours.
47. Méthodes de lecture et d'écriture: Eh bien, revenez. Maintenant,
avant de poursuivre, je voulais vous faire
savoir qu'il existe différentes méthodes pour écrire
et lire nos fichiers. présent, nous avons eu affaire
à la méthode des points de fichier, qui est, bien sûr,
très simple. Donc, si je lance le
programme en ce moment, il créera
mon point d'exemple THD. Je l'ouvre et
voici Hello World. Désormais, l'écriture par points est utile et elle est
utilisée chaque fois que nous
écrivons des chaînes individuelles ou très
simples dans notre fichier. Hello world est très
simple, très simple. Mais que faire si nous voulions
écrire plusieurs chaînes ou écrire de
grandes quantités de texte ? L'écriture de fichiers ne sera
plus utilisée. Il va falloir utiliser une
autre méthode. Par exemple, si j'
avais une liste de noms, laissez-moi créer mes noms de liste. Permettez-moi d'ajouter le prénom,
Alex, et laissez-moi ajouter le
nouveau caractère de ligne barre oblique permet
à Python d'ajouter les noms restants Nous avons Alex, Bob, Caroline, Dave et Fred. Si je voulais écrire
ces chaînes, je ne peux plus utiliser le fichier, je devrai utiliser
une autre méthode. Ce que je vais faire
maintenant, c'est la largeur habituelle,
ouvrir, puis entre crochets,
puis se rappeler que
nous devrons ouvrir
notre fichier (par exemple, point CXt puis W, bien sûr, deux, écrire que nous avons deux points,
puis je vais dire,
désolé, en tant que fichier,
puis deux points Vous pouvez maintenant voir le fichier en pointillé sur
les lignes droites, puis nos noms. Écrivez le fichier par points sur des lignes Ceci est utilisé chaque fois que
nous écrivons plusieurs chaînes ou que nous
écrivons de gros morceaux
de texte dans notre fichier. Si je lance un programme en ce moment, et que je l'ouvre, vous y allez, nous avons les noms juste là. Veuillez en être conscient. À l'avenir, si
vous voulez créer des
programmes avancés qui
nécessiteront l'écriture de grandes quantités de texte ou de chaînes
dans un fichier particulier, créer des
programmes avancés qui
nécessiteront l'écriture de grandes quantités
de texte ou de chaînes
dans un fichier particulier,
vous préférerez utiliser
les
lignes d'écriture du fichier au lieu de l'écriture par points
habituelle. Tout comme pour l'écriture, nous avons également différentes
méthodes de lecture. Maintenant, jusqu'à présent, nous
avons utilisé le très simple read the file dot read laissez-moi simplement
copier du code ici. Permettez-moi de le transmettre
ici très rapidement. Jusqu'à présent, nous avons eu affaire
à un code comme celui-ci. Nous aurons un fichier, puis nous
dirons « content e calls file
point read » et le voilà. Si je gère un programme en
ce moment,
très, très simple, nous avons Alex Bob, Caroline, Dave et Fred. OK. L'avantage d'utiliser le point RED est qu'il permet de lire
le fichier entier en une seule fois, ce qui est excellent lorsque vous travaillez avec de
très petits fichiers. Cependant, si vous avez
affaire à des fichiers volumineux, cela fonctionnera toujours.
Ne vous méprenez pas. Je vais continuer à travailler, il
va toujours tout lire. Le problème
est cependant que, il va lire l'
intégralité du fichier en une seule fois, il devra utiliser
beaucoup de mémoire
pour charger tout le texte de ce fichier
en une seule fois. C'est là le problème.
Ce n'est pas très efficace lorsque
vous traitez grandes quantités de texte dans
un fichier, comme de gros fichiers. Vous souhaitez utiliser une
autre méthode. Maintenant, laissez-moi vous montrer. Je vais créer
un nouveau programme ici et dire « ouvert ». Supposons maintenant
que l'exemple TXT, dans ce scénario, contient de
grandes quantités de texte, c'est un très gros fichier. Je vais énoncer comme d'habitude, ajouter notre nom de fichier, puis
R, puis dire un fichier. Maintenant, regarde ça. Je vais dire que la ligne est égale à la ligne lecture
du point du fichier.
Remarquez la différence. Ce n'est plus une lecture de fichier, c'est maintenant une ligne de lecture par point de fichier, puis je peux créer ma
boucle et dire while line. Lorsque notre fichier est ouvert,
il contient du texte. Nous voulons imprimer la ligne. Nous pouvons également dire que la ligne
est égale à la ligne de lecture du point du fichier. Et voilà. Si je
devais relancer le programme, vous verrez
maintenant que nous avons peu près
exactement les mêmes résultats. Vous ne
remarquerez pas vraiment la différence,
car nous avons quand même affaire à un petit
fichier. Cependant, gardez
à l'esprit qu'à l'avenir, comme avec la bonne méthode, si vous devez
traiter grandes quantités de fichiers à lire,
vous devez utiliser une ligne de lecture par points. S'il s'agit d'un très petit
fichier, le point de fichier Read sera utilisé. C'est idéal pour ces scénarios. Cependant, nous n'en avons pas terminé. Il existe une autre méthode qui
consiste à lire les lignes par points du fichier. Cela permet de lire
toutes les lignes en même temps et
nous les renverrons sous forme de liste de chaînes où chaque élément est une
ligne du fichier. En d'autres termes, il
combine les avantages de votre lecture et votre ligne de lecture en lisant
le fichier entier en une seule fois, tout comme le fichier lu par points. Cependant, il va
stocker chaque ligne en tant qu' élément individuel dans une liste. Permettez-moi donc de vous donner un exemple. Je vais y retourner. Je vais modifier ceci
pour changer la deuxième ligne. Égal aux lignes de lecture par points du fichier. Maintenant, au lieu d'
utiliser la boucle Wil, je vais
passer à la boucle à quatre. Je vais dire
quatre lignes, deux points, et maintenant nous pouvons simplement
imprimer entre crochets. Ou mieux encore,
ajoutons la méthode des bandes
afin de supprimer tout espacement
inutile Voilà, si je
devais exécuter le programme,
c'est parti. Alex, Bob, Caroline,
Dave et Fred. Encore une fois, vous
ne remarquerez la différence lorsque vous
traitez un très petit fichier. Encore une fois, gardez à l'esprit que si vous avez affaire
à des fichiers volumineux, vous devez utiliser
soit la ligne de lecture soit les lignes de lecture. La dernière méthode
que je veux vous
montrer sera la ligne
for dans le fichier. Le but ici est de lire le fichier ligne par ligne de manière efficace en
mémoire. Je vais y retourner. Permettez-moi de supprimer les lignes. Nous avons avec un exemple ouvert
un fichier TXT, RS. Maintenant, je vais dire pour la ligne
dans, je pourrais dire fichier, pour la ligne dans le fichier, maintenant il suffit d'imprimer une bande de points et de ne jamais lancer le
programme, voilà. Cette approche est
en fait très similaire à l'utilisation de votre ligne de lecture, mais elle est en fait plus
concise et considérée comme la meilleure pratique pour lire fichiers
volumineux, car chaque itération récupère
une seule ligne, donc l'utilisation de la mémoire
sera faible En résumé, si vous
souhaitez lire un fichier de petite taille, la lecture habituelle de notre fichier
sera la meilleure solution. Si vous lisez
un fichier volumineux, vous pouvez utiliser
votre ligne dans le fichier. C'est mieux que la ligne de lecture par points de votre
fichier, et également meilleure que les lignes de lecture par points de votre
fichier. Maintenant, je tiens également à
souligner qu'en plus des modes pour votre
mode lecture, votre mode d'ajout , votre mode d'écriture, nous avons également modes
supplémentaires tels que
votre mode lecture et écriture,
votre mode écriture et lecture,
ainsi que votre mode d'ajout
et de lecture Par exemple,
au lieu de R ici, je peux dire R puis plus. Tout cela s'appelle
le mode lecture et écriture. Cela va ouvrir un fichier à fois
pour la lecture et pour l'écriture. N'oubliez pas
que le fichier doit exister et que son contenu peut
être lu et modifié. Votre fichier doit déjà exister pour que vous puissiez
utiliser ce mode particulier. Nous avons également le mode
écriture et lecture, qui
sera W puis plus. Ceci ici ouvrira
un fichier pour la lecture et écriture, mais il était destiné à
remplacer tout contenu existant. Enfin, bien sûr, vous
avez votre mode Append plus,
qui est le mode Ajouter et lire Cela ouvrira un fichier
pour la lecture et l'écriture, en ajoutant du nouveau contenu à la fin sans modifier le contenu
existant N'hésitez pas à
jouer avec ces modes et voir comment ils modifient votre
fichier. Merci d'avoir regardé. Je te verrai
au prochain cours.
48. Gérer les erreurs de fichiers: Au fur et à mesure que
vous progressez
dans votre parcours tant que programmeur Python ou en tant
que programmeur en général, je veux que vous
adoptiez une habitude qui
impliquera d'écrire des programmes
ou de concevoir capables de gérer
les erreurs potentielles de manière élégante Vous voyez, la plupart des
programmeurs créent tous
ces excellents programmes qui peuvent faire ceci, faire cela Cependant, si quelque chose ne
va pas, peut-être que l'utilisateur du
programme a ajouté
un type d' entrée ou peut-être utilisé des chiffres au lieu de lettres
ou quelque chose comme ça. Souvent, ces programmes finissent par se bloquer parce que le programmeur n'a pas conçu le programme telle sorte que si de telles erreurs
potentielles se produisent, le programme sache
comment les gérer Nous avons brièvement parlé de la gestion des erreurs lorsque nous avons
parlé des boucles, mais nous allons maintenant
aller un peu plus en profondeur. Sur mon écran en ce moment, j'ai un programme très simple
qui lit le fichier, l'exemple point TXT. Mais notez cependant
que ce programme, le court bloc de code, repose sur ce fichier, exemple point TXT
réellement existant. Et si j'avais fait une erreur ou si j'avais utilisé le programme, l'utilisation du
programme, avait fait une erreur. Au lieu de l'exemple point TXT, nous avons l'exemple point TXT. Maintenant, ce fichier n'existe pas. Ce n'est pas dans mon annuaire. Si je lance le programme, vous pouvez
maintenant voir
que nous avons une erreur. Python nous dit
que, hé, désolé, aucun fichier ou répertoire de ce type, erreur «
fichier introuvable ».
Ça n'a pas l'air bien. Nous voulons écrire nos
programmes de manière ce que, si une telle
erreur se produit, ils puissent la gérer de
manière très élégante et
professionnelle. Ce que nous voulons faire maintenant, c'est me
permettre de revenir ici et d' ajouter un exemple de point TXT. Nous allons utiliser
le bloc Try except. Nous en avons parlé
lorsque nous avons parlé de boucles, mais parlons-en à nouveau. Ce que vous voulez faire, c'est
dans le bloc de code où il est possible
que l'erreur se produise, par
exemple ici, une chose que vous
voulez faire est commencer par dire « essayer ». Essayez maintenant de
vous assurer qu'il est
correctement indenté , car le code
après l'essai devrait se trouver en dessous Maintenant, nous disons, OK, essayez d'
ouvrir ce point d'exemple de fichier THD. S'il existe et tout ça, vous pouvez imprimer le
contenu du fichier. Mais que faire si le
fichier n'existe pas ? Maintenant, nous pouvons dire sauf,
puis sous exception, nous pouvons dire imprimer, puis nous pouvons dire quelque chose
comme fichier introuvable. Ajoutons une colonne juste là
pour except. Ça y est. En gros, nous disons : « Hé, essayez d'exécuter ce bloc de code si, pour une
raison ou une autre, le fichier n'est pas trouvé et
imprimez simplement le fichier introuvable Si je lance le programme en ce moment, tout fonctionne correctement
car le fichier existe. Cependant, si je change le nom du fichier et que je lance le programme, vous pouvez voir de
manière très professionnelle qu'il
indique simplement que le fichier est introuvable. C'est parce que nous utilisons
le bloc try except. Bien que cela fonctionne
bien, pour aller plus loin, je veux que vous commenciez à
utiliser ce que nous appelons les exceptions communes
liées aux fichiers. Il en existe une grande variété. Python comporte des exceptions spécifiques pour de nombreuses erreurs courantes liées aux
fichiers. La première et
la plus courante
est l' erreur « fichier introuvable », comme nous l'avons fait ici. Au lieu de
simplement dire « essayer sauf
là où vous avez l'exception », vous pouvez maintenant saisir l'erreur «
fichier introuvable ». Ici, nous demandons à
Python de
vérifier spécifiquement si l'
erreur est
due au fait que le
fichier n'a pas été trouvé. Si je
réexécute mon programme en ce moment, vous pouvez voir qu'il
fonctionne toujours parfaitement. Cependant, il s'agit d'un moyen beaucoup plus
propre et plus efficace de gérer l'erreur,
car ici, nous
vérifions spécifiquement si l'erreur s'est produite parce que
le fichier n'existe pas. Le bloc try except gère à lui
seul toutes les erreurs. Que le fichier n'ait pas été
trouvé, qu'il s'agisse d'une flèche d'autorisation d'une flèche de répertoire
ou d'une erreur système ouverte, il s'occupera de tout. Donc oui, cela
fonctionnera très bien. Je
vais m'occuper de la flèche. Mais encore une fois, une
méthode plus propre sera de spécifier le type d'erreur auquel
vous vous attendez réellement. Nous avons donc l'erreur « fichier
introuvable ». Nous avons également une erreur d'
autorisation. Peut-être, par exemple, que le
fichier en question n'est accessible qu'
à un administrateur. Maintenant, il essaie d'être
accessible à un utilisateur normal. De toute évidence, vous
allez avoir l'erreur suivante : «
Désolé, vous n'
avez pas la permission ». Dans ce scénario,
il suffit dire, vous savez, désolé, que vous n'êtes pas autorisé
à consulter ce fichier, et c'est tout ce
que nous devons faire. Donc, si vous vous attendez à
une erreur d'autorisation, vous devez utiliser le bloc de code contenant la
flèche d'
acceptation des autorisations. Nous avons également une flèche de répertoire. Peut-être que l'utilisateur
essayait d'ouvrir un répertoire qui
n'existe plus. Entrez simplement ici,
puis vous tapez est une
erreur de répertoire », et elle est là. Et maintenant, à partir de là, nous pouvons spécifier le message d'impression exact. Donc dans ce cas, ce sera quelque chose comme Sorry. Vous n'êtes pas
autorisé à accéder à ce répertoire ou à ce SOI. Ce répertoire n'
existe pas, quelque chose comme ça. Ensuite, la dernière
sera l' erreur du système d'exploitation. Il s'agit généralement de l'exception
générale pour les autres erreurs liées aux fichiers. Peut-être que le disque est plein, peut-être que c'est un
problème d'entrée-sortie, quelque chose comme ça. Donc, tout ce que vous avez à faire pour le
moment est de simplement dire sauf, puis O error. Ensuite, vous pouvez simplement taper
quelque chose comme, désolé, une erreur s'est produite
ou une erreur du système ouvert s'est produite,
quelque chose comme ça. C'est exactement comme ça
que ça fonctionnerait. Encore une fois, vous devez adopter cette
approche professionnelle assurer
en permanence
que vos blocs
de code, chaque fois code, chaque fois
qu'une erreur se produit, ont été conçus vous assurer
en permanence
que vos blocs
de
code, chaque fois
qu'une erreur se produit, ont été conçus de manière à pouvoir gérer toute erreur potentielle
en utilisant le bloc try except
puis pour l'
instruction accept elle-même, vous pouvez spécifier l'erreur exacte laquelle vous vous attendez. Merci d'avoir regardé. Je te
verrai au prochain cours.
49. Multiples sauf les blocs: Bon retour. Dans
la vidéo précédente, nous avons parlé de la gestion des flèches ainsi que des
différents types d' erreurs
spécifiques, sauf celles liées aux
fichiers avec
lesquelles nous devrions travailler. Mais que se passerait-il si nous voulions vérifier la présence de plusieurs
types d'erreurs ? Peut-être qu'en plus du
fichier introuvable, il est possible que le fichier ait été trouvé, alors peut-être que
les autorisations pour
le fichier ne sont pas correctes ou peut-être que le répertoire n'était pas
correct, quelque chose comme ça. Nous voulons créer un programme, un bloc de code capable de
gérer plusieurs types d' erreurs et d'imprimer des messages d'erreur
différents
pour chaque erreur. Dans l'état actuel des choses, j'ai
une erreur qui est l'erreur de fichier introuvable et il va
imprimer le fichier introuvable. Mais que se passerait-il si je voulais également
inclure la permission
Al ? C'est très, très simple. Tout ce que je dois
faire, c'est simplement ouvrir un autre bloc,
puis simplement dire « accepter ,
puis « autoriser ».
J'ajoute deux points et maintenant je peux imprimer
entre crochets, puis dire «
désolé, vous n'
avez pas la permission ». Pour accéder à ce fichier.
C'est tout ce que j'ai à faire. Ajoutons une autre flèche, donc je peux dire sauf, puis je peux dire flèche du système d'exploitation. Peut-être qu'il y a eu un problème
avec le système d'ouverture. Ensuite, je peux utiliser
deux points, puis je peux dire « imprimer », puis entre crochets, il y a une flèche du système d'exploitation. Et si je voulais
ajouter un autre bloc de code capable de gérer
tout autre type
de flèche potentiel ? Tout ce que j'ai
à faire est de répéter, sauf maintenant, la touche « exception » sous la forme E. En gros, cette ligne gérera tout autre type d'erreur
susceptible de se produire. Ensuite, je vais simplement dire « publier un message général »
et « imprimer », puis je vais simplement dire qu'une flèche
inattendue s'est produite. Nous voulons maintenant
souligner le E ici. Ce E va
représenter la flèche. Ce que je vais faire
maintenant, c'est utiliser la chaîne F comme d'habitude. Et puis les bretelles bouclées, je vais ajouter
le E juste La dernière ligne ici
gérera tout autre type d' erreur et le système
indiquera qu'une erreur inattendue s' est produite, puis vous
spécifierez le type
d'erreur à cause de la variable E que nous avons créée ici et c'est tout. Je vais exécuter mon programme, et bien sûr, vous pouvez le voir, il fonctionnera
parfaitement bien. C'est ainsi que vous pouvez créer
plusieurs blocs sauf qui géreront
différents types d'erreurs potentielles
susceptibles de se produire. Pour regarder. Je
te verrai au prochain cours.
50. La déclaration finale: Lorsqu'il s'agit d'ouvrir
des fichiers avec Python, oubliez pas que nous
n'avons pas toujours d'utiliser l'instruction with. La raison pour laquelle nous utilisons
with la plupart du temps est qu'avec l'instruction with, le fichier sera
automatiquement fermé une fois qu'il aura
été consulté. Dans le scénario actuel où nous travaillons simplement avec la fonction d'ouverture pour
ouvrir le fichier, nous devons fermer
le fichier manuellement en disant «
fichier qui se ferme ». le cas contraire, le fichier
restera ouvert, ce qui pourrait
entraîner des erreurs. La question qui se pose actuellement est la suivante :
comment gérerons-nous les erreurs dans ce scénario
particulier ? Eh bien, nous devrons
utiliser le dernier bloc. Maintenant, tout en haut, je vais commencer
par essayer comme d'habitude, puis me rappeler,
bien sûr, que tout doit être essayé. Maintenant, à la cinquième ligne, c'est ici que nous
allons ajouter l'acceptation. Cherchons maintenant l'erreur « fichier
introuvable ». Colon. Si le fichier n'a pas été trouvé, nous pouvons simplement imprimer
le fichier introuvable. Cependant, et si le
fichier était effectivement trouvé, il n'y a pas d'erreur. Ce que nous allons
faire maintenant, c'est enfin le dire. Maintenant, s'il s'agit d'un fichier, attendez. Maintenant, nous disons, enfin, s'il n'y a aucun
message d'erreur, si le fichier a effectivement été
trouvé, que devons-nous faire maintenant ? Nous pouvons simplement imprimer le contenu et maintenant nous
pouvons également fermer le fichier. En fait, pour faire bonne mesure, n'est pas nécessaire, mais
pour faire bonne mesure, nous pouvons simplement imprimer le fichier
fermé, à titre d'exemple. Bien sûr, si je lance
le programme en ce moment, vous pouvez voir qu'il fonctionne
parfaitement et il indique même que le fichier est fermé. À première vue, ce programme semble bon pour le moment. n'y a pas eu d'erreur,
le fichier a été trouvé il
a été imprimé et, bien entendu, le fichier a également été fermé. Cependant, nous n'avons pas encore terminé. Parce qu'en fait, si je devais délibérément
changer le nom du fichier pour que nous obtenions
l'erreur « fichier introuvable », si je lance mon programme
, vous pouvez le constater maintenant, nous avons toujours la méthode désagréable
habituelle d' affichage ou
de
gestion des erreurs. C'est comme si le
bloc de code try except ne fonctionnait pas du tout. Qu'est-ce qui se passe ici ? Vous devez également garder
à l'esprit que si vous
n'utilisez pas l'instruction
width, vous devrez
non seulement fermer
manuellement votre fichier, mais également l'
initialiser dès
le début Parce qu'à l'heure actuelle,
Python ne
sait même pas vraiment quel est le fichier lui-même,
quelle est la
valeur par défaut du fichier ? Un fichier n'est pas équivalent à l'exemple suivant : si
le fichier n'était pas trouvé, comment Python le saurait-il, s' il y a en fait
une flèche ici, quelle sera la valeur par défaut que la variable de fichier
doit avoir ? C'est là que nous
devrons tout en haut, dire que file est égal à none. Au tout début, nous initialisons
la variable de fichier, nous lui attribuons la valeur
par défaut none Il s'agit d'une pratique courante
lorsqu'il s'agit ressources qui peuvent ou non
être allouées avec succès. L'utilisation de non ici permettrait d'obtenir une
valeur par défaut très sûre qui empêchera toute opération accidentelle sur
une variable non initialisée C'est une autre chose que vous
devez garder à l'esprit. heure actuelle, si je lance le programme une
fois de plus, il fonctionne bien. Si je change
délibérément le nom du fichier pour produire
le message d'erreur, vous pouvez voir maintenant qu'il
a géré l'erreur avec élégance C'est exactement pourquoi, lorsqu'il
s'agit de gérer des fichiers, nous utilisons généralement l'
instruction with , car avec
l'instruction with, vous n'avez pas à initialiser
vos variables ou vos fichiers et vous n'avez pas non plus à
les fermer manuellement L'instruction W est si puissante qu'elle initialise automatiquement
nos fichiers et variables
et ferme le
fichier automatiquement une fois qu'il a été consulté Néanmoins, vous devez en
être conscient si vous vous
trouvez dans un scénario
ou dans un code de programmation dans lequel l'
instruction width n'est pas utilisée, comment géreriez-vous les erreurs ? Comment fermeriez-vous
le fichier manuellement ? Bien sûr, comment
initialiseriez-vous également le fichier manuellement ?
Merci d'avoir regardé. Je te verrai
au prochain cours.
51. Section Bibliothèques et modules intro: Bienvenue dans la section des bibliothèques
et des modules. Et, bien sûr, ici, vous
allez apprendre
à travailler avec eux. Que sont exactement les
bibliothèques et les modules ? Considérez-les comme
des programmes qui ont déjà été écrits
par d'autres développeurs Python. N'oubliez pas que la
communauté Python est importante. Vous avez des développeurs qui ont écrit leur propre type de code. Il y a peut-être un programmeur qui a déjà écrit son propre code
pour chiffrer un mot de passe Ainsi, au lieu d'
avoir à écrire un tel
programme à partir de zéro, vous pouvez simplement l'
importer dans votre propre programme. Puis modifiez-le pour
faire autre chose. C'est donc en quelque sorte
l'intérêt de travailler avec des
bibliothèques et des modules. Dans cette section,
vous allez découvrir
les différents types de bibliothèques
et de modules, ainsi que les différences entre
les
bibliothèques et les modules. Et bien sûr, nous allons
également avoir différents défis et exercices de
codage. Alors, sans perdre plus de
temps, allons-y.
52. Introduction aux bibliothèques et aux modules: Bienvenue dans une toute nouvelle section, et nous
allons
parler ici de bibliothèques et de modules. Alors, c'est quoi exactement ? Dessinons un scénario, non ? Et si nous voulions écrire un programme capable de
hacher du texte brut, n'est-ce pas ? Supposons, par exemple, que
nous voulions
stocker les mots de passe dans un fichier. De toute évidence, nous
voudrions les hacher. Nous ne voulons pas stocker les
mots de passe en texte brut. Alors, comment écririons-nous un programme capable de
hacher ces mots de passe ? Il y a deux options, d'accord ? Nous pouvons soit décider d'écrire
le programme à partir de zéro, ce qui peut prendre beaucoup
de temps,
soit tout simplement utiliser
un module qui contient déjà le code dont nous avons besoin
pour hacher notre texte Un module est donc généralement un fichier Python qui contient
déjà du code. Il peut s'agir de fonctions, variables, de classes, d'
instructions, etc., qui répondent à un
objectif spécifique, tandis qu'une bibliothèque, comme vous l'avez peut-être imaginé, est souvent un groupe empaqueté de ces modules organisés
autour d'un objectif plus large. Vous pouvez donc considérer les modules comme des fonctions
très spécifiques
ayant un objectif très spécifique, alors qu'une bibliothèque serait une
collection de tels modules. À titre d'exemple, nous avons
le point datetime pi. Il s'agit d'un module
qui possède des fonctions spécifiques pour marcher
avec les dates et les heures. Nous avons également une bibliothèque appelée
HH Lib, la bibliothèque HH, qui serait la
bibliothèque que nous devrions
utiliser pour hacher
notre Maintenant, qu'avons-nous
dans la bibliothèque de hachage ? Nous avons différents
types d'algorithmes. Nous avons le MD Five, qui créera un hachage de 128 bits Nous avons le Shall
, qui générera un hachage de 160 bits, le Shaw 256, qui générera les
25, six et, bien sûr, le Shell cinq et
deux, qui
généreront un hachage de 512 bits Il existe également d'autres
types de fonctions dans cette bibliothèque, comme
le hash leap point u, qui accepte deux paramètres, données de
nom que nous pouvons
ensuite utiliser pour créer un hachage avec un nom d'
algorithme spécifique À l'avenir, les bibliothèques
peuvent donc être intégrées. Nous les appelons bibliothèques standard. Cela sera fourni par défaut avec
votre installation Python ou nous pouvons également utiliser
des bibliothèques externes. Nous les appelons des tiers. Ces bibliothèques ne sont pas fournies
avec votre installation Python, vous devrez
donc
les installer vous-même manuellement Elles sont développées par
la communauté Python. Donc, une fois de plus, les modules ont un
code très spécifique qui remplit fonction
très spécifique,
tandis que les bibliothèques
seront une collection
de ces modules. Une autre chose que je veux que vous
sachiez , c'est qu'au sein de
la communauté Python, vous pouvez également entendre parler d'un autre
terme appelé packages. Les packages se situent quelque part
entre les modules et les bibliothèques en ce sens qu' ils constituent également une
collection de modules, mais les objectifs des modules ont tendance à être très étroitement liés. Elles ne sont pas aussi
vastes que les bibliothèques. Ainsi, par exemple, vous pouvez
avoir votre package de courrier électronique et dans le package de courrier électronique, vous aurez des modules
tels que email point message, your email point mime,
your email point Utils et bien plus encore Un autre avantage des
packages est qu'ils peuvent nous permettre d'organiser ces modules dans une structure
hiérarchique en
utilisant des dossiers et des sous-dossiers. Ainsi, chaque package
contiendra généralement le fichier int PY. Ce qui indique à Python que, hé, ce répertoire en particulier
n'est pas une bibliothèque. Il s'agit en fait d'un package. C'est ainsi que nous pouvons aider Python à différencier le
package de la bibliothèque. Le package contiendra un fichier spécifiquement appelé
fichier ini point py. C'est donc tout pour les bibliothèques, les
modules et les packages. German Vinexway nous ne
commencerons pas à travailler avec eux.
53. Créer un module personnalisé: Commencez à travailler avec
les modules
et bibliothèques standard de Python.
Je veux que nous créions
notre propre module personnalisé, Je veux que nous créions notre propre module personnalisé puis que nous utilisions ce module dans
l'un de nos programmes, d'accord ? Voici donc notre fichier
de programme principal ici, le point principal pi. Ce que je vais faire,
c'est créer un nouveau fichier, d'accord, puis l'appeler
maths sur le score de l'annonce. Point PY. OK ? Ce sera le fichier qui contiendra
notre propre module personnalisé. Maintenant, le module
que nous allons
concevoir sera très simple, il prendra deux nombres
et les additionnera. OK ? Rappelez-vous donc comment nous avons
créé nos fonctions personnalisées. Nous avons utilisé la fonction fine. Et maintenant, je vais ajouter
le nom de la fonction, qui sera ajouté
aux nombres carrés, puis à deux variables. Il va falloir additionner deux
chiffres. Nous pouvons utiliser n'importe quelle lettre
pour les représenter. Je vais utiliser F et V, juste à titre d'exemple, puis
ajouter ma colonne à la fin. Maintenant, qu'est-ce que je veux que
la fonction fasse ? Je veux ajouter F et V. Donc
je vais dire renvoyer la valeur de F
plus V. Et voilà. Nous avons maintenant un module personnalisé
qui ajoutera deux variables, F et V, puis nous
transformerons le résultat. OK. Si je devais revenir à
mon fichier PI principal maintenant, et que je voulais utiliser
ce module que nous avons conçu dans le fichier
Method ad Pi, ce que je vais faire
maintenant, c'est que je devrai utiliser la fonction
appelée Import. C'est la fonction
que nous devons maintenant utiliser pour importer notre module personnalisé. Ce sera donc
le nom du fichier,
qui est écrit en maths sur le score de l'annonce. OK ? Et maintenant, que
devons-nous faire ? Nous devons fournir deux chiffres. OK ? Je peux donc dire que
le numéro un est égal à cinq, puis le numéro
deux est égal à sept. OK ? Juste à titre d'exemple. D'accord. Maintenant, nous
voulons imprimer les résultats de
l'ajout du
numéro un et du numéro deux. Donc, oh, au fait,
pardonne-moi. Il ne doit pas y avoir
d'espace entre le numéro un et le numéro deux. Pardonne-moi. Puisque
c'est une variable, d'accord ? Donc, pas d'espaces dans les
noms des variables, excusez-moi. Nous voulons donc
imprimer ce résultat. Je peux donc attribuer une variable appelée résultat égale
à quoi ? Je vais maintenant intégrer le module personnalisé, qui était basé sur les mathématiques sur
le score et OK. Et maintenant, point, quelle
était la fonction ? La fonction que nous avions dans notre méthode Ad file est d'ajouter des numéros de
soulignement. OK ? Alors maintenant, je vais revenir à mon fichier principal et maintenant dire « ajouter des traits de soulignement ». Et maintenant, entre parenthèses,
qu'ajoutons-nous ? Nous ajoutons le numéro un et
le numéro deux. Et voilà. ne me reste plus
qu'à
imprimer les résultats pour le moment . Je dirais des impressions,
puis entre crochets, ajoutons un code, puis
je peux dire que la somme est, et je peux ajouter une virgule, puis simplement dire
résultat, et le voilà Et maintenant, si je lance le programme, voilà, il
dit que la somme est 12. Donc, pour vous donner un bref
récapitulatif,
nous avons tout d'abord créé un fichier séparé, et nous avons remarqué que les fichiers se trouvent dans le même dossier OK, c'est très,
très important. Nous avons donc créé un fichier
appelé Mth Underscore ad, qui devait
être notre module personnalisé Nous avons défini le nom
de la fonction étant Ajouter des numéros de soulignement. Il prend deux
variables quelconques, F et V, puis nous renvoyons la valeur de l'
ajout de ces deux variables. Pour en revenir à
notre fichier principal, la première chose à faire était d'
importer ce module personnalisé, qui est une annonce de
soulignement mathématique ici Nous devons maintenant fournir les
valeurs de nos deux variables. Je ne veux pas que tu
te perdes. Ne pensez pas cela, car
dans notre module personnalisé, nous avons utilisé F et V. Par conséquent, dans le fichier principal, F
doit être égal à cinq, puis V doit
être égal à sept. Pourquoi utilisons-nous le
numéro un, le numéro deux ? Gardez toujours à l'esprit
que ces variables, ces paramètres, ne
représentent pratiquement rien. C'est juste une façon de dire à la
fonction d'AtlPyn que, dans cette fonction, nous
allons accepter deux variables, puis nous allons les
additionner Nous aurions pu utiliser
n'importe quelle lettre ici. Nous aurions pu utiliser B, C, Z.
Nous aurions pu utiliser X. Nous
aurions pu utiliser n'importe quoi. Nous
aurions pu utiliser le numéro un. Deuxièmement, nous avons utilisé n'importe quel nom, importe quel nom pour représenter
ces paramètres, d'accord ? Donc ne pensez pas que, oh, les paramètres que
vous spécifiez ici doivent être les mêmes
ici, non, d'accord ? Tout ce que Python devrait savoir, c' est que,
OK, cette fonction va
prendre deux variables. Il va prendre
deux nombres puis les ajouter, d'accord ? Donc ici, nous avons dit que le
numéro un est égal à cinq, le numéro deux est égal à sept. Et maintenant c'est la
partie la plus délicate, d'accord ? Ligne six. Nous voulons
imprimer les résultats J'ai
donc créé un v appelé result, qui serait désormais
égal à tout d'abord au nom du module qui
est math point add puis point parce que nous voulons ajouter la fonction
que nous avons créée La fonction ici est «
Ajouter des numéros soulignés ». Nous l'avons donc ajouté aux
maths sur l'annonce de partition, et maintenant, entre parenthèses,
il suffit de saisir le
numéro un, le numéro deux, puis la dernière chose est
d'imprimer les résultats Nous avons donc dit que la somme était puis le
résultat, et c'est ainsi que nous en sommes
arrivés là. Alors félicitations. Vous avez écrit votre tout
premier module personnalisé, et vous avez également
réussi à l'
importer et à
l'utiliser. Merci d'avoir
regardé la vidéo. Je te verrai au prochain cours.
54. Comment woker avec un module standard: Bon retour. Ainsi, lors de la leçon
précédente, nous avons créé avec succès notre
propre module personnalisé, et nous avons pu l'importer et l'
utiliser dans notre fichier principal. Mais maintenant, je veux
vous montrer comment importer certaines des bibliothèques
et modules standard fournis
avec Python. Permettez-moi donc de
supprimer tout ce code, et je vais laisser
le mot clé Import, la fonction principale,
et le nom
du module que nous allons
importer sont appelés aléatoires. Il s'agit d'un module intégré
à Python qui nous
permettrait de créer ou de générer des nombres aléatoires à
partir d'une séquence En fait, permettez-moi de vous montrer un peu de la
documentation ici. Vous pouvez voir que Python possède un module intégré
appelé random. Et le truc avec le hasard, c'
est qu'
il est si puissant, qu'il comporte tellement de méthodes. Jetez un œil à la méthode de
choix. Cela renverra
un élément aléatoire de la séquence donnée. Je vais utiliser cette méthode particulière pour
générer une lettre aléatoire. Alors regarde ça, d'accord ? Je vais
d'abord créer
une variable appelée lettres
, puis égale à deux, et je vais taper
toutes les lettres ici, A à Z, d'accord ? Nous voulons donc que notre
programme génère
une lettre aléatoire à partir de cette liste, d'
accord, à partir de cette séquence. Alors, comment allons-nous procéder ? Eh bien, je vais
créer une nouvelle variable appelée random dos
appelée Letter, d'accord ? Et maintenant, je vais
dire random Remember, la séquence,
tout d'abord, nous devons ajouter le nom du module
ou de la bibliothèque, donc c'est
aléatoire ici. Et maintenant, la méthode, qui est le choix, va
être le point et maintenant le choix. Et maintenant, entre parenthèses, des lettres. C'est tout ce que j'ai à faire. Et maintenant, que faisons-nous ?
Nous imprimons et je peux dire que la lettre choisie au hasard est. Ensuite, je peux ajouter
ma virgule, puis
simplement ajouter une lettre de
soulignement aléatoire Et voilà. C'est
tout ce que nous avons à faire. Alors maintenant, si je lance le
programme, il est là. La lettre
choisie au hasard est M. D'accord. Essayons de relancer
le programme. Peut-être que nous choisirons
une autre lettre que je devrais. Et voilà. Maintenant c'est C. Encore une fois, maintenant c'est A. Une fois de plus,
c'est V. Vous pouvez voir maintenant que cela fonctionne réellement. Bref récapitulatif,
qu'avons-nous fait ? Tout d'abord, nous avons importé le module standard
appelé random qui contient une liste de différents types de
méthodes permettant de générer une lettre aléatoire. La première chose que nous avons
faite a donc été de créer une variable de lettres qui
contiendra toutes les lettres
de A à Z, puis nous avons attribué
une autre variable appelée lettre aléatoire
qui
contiendra désormais la lettre réelle
qui sera générée. Il s'agit en fait d'une
lettre aléatoire qui a été générée. Ensuite, nous avons dit random
bin le nom du module ,
puis nous avons ajouté la
méthode qui est point Choice, puis entre crochets, des lettres Et maintenant, nous avons simplement imprimé la lettre aléatoire
choisie à la quatrième ligne. Voilà, merci d'
avoir regardé la vidéo. Je te verrai
au prochain cours.
55. Génération de mots de passe avec des modules aléatoires et des chaînes de caractères: Eh bien, revenez. Dans
la leçon précédente, nous avons appris avec succès comment générer une
lettre aléatoire en utilisant le module aléatoire ainsi que la méthode du choix aléatoire des
points. Une question que vous pourriez vous
poser ici est si
nous voulions générer plusieurs lettres
et pas une seule ? Ce que nous devons faire,
c'est d'abord changer la méthode du choix
aléatoire des points au choix aléatoire des points,
car maintenant c'est au pluriel Nous avons affaire à
plus d'une lettre. Une autre chose à propos
des choix aléatoires en tant que méthode de fonctionnement est
qu'ils accepteront deux paramètres au lieu d'un. La première sera ce que
nous appelons la population, qui est essentiellement de là que nous
tirons les lettres. Ensuite, le second
sera
le nombre réel de lettres que
nous voulons générer. Donc dans ce cas, pour l'
instant, je vais dire que K est égal à trois. C'est bon. Maintenant, je peux changer le
texte d'impression de lettre en lettre, puis changer E en
R. Maintenant, si je lance le programme, nous avons KJ, je peux le réexécuter Nous avons QMW, non ? Vous pouvez donc garder cela à l'esprit. Cependant, nous voulons
aller plus loin pour générer un mot de passe aléatoire. Nous ne nous contentons donc
plus de lettres. Nous allons maintenant
combiner des lettres avec des majuscules et
des chiffres, etc. Et je suis sûr que vous avez déjà vu générateurs de mots de passe
aléatoires. C'est peut-être sur le site Web où on
vous demande de
créer un compte. Vous souhaitez créer un compte, puis ils vous proposent de
générer un mot de passe, que vous pourrez ensuite modifier ultérieurement. Je vais vous montrer
comment créer notre générateur de mots de passe aléatoires, et nous allons simplement
utiliser cinq lignes pour ce faire. En fait, quatre lignes,
juste quatre lignes, d'accord ? Tu ne me crois pas.
Jette un œil à ça. Donc, tout d'abord, nous allons garder l'
importation aléatoire parce que nous voulons
évidemment randomiser
les lettres et les chiffres, mais nous allons importer
une bibliothèque appelée chaîne parce que nous
allons manipuler nos chaînes, qui incluront des lettres, des
chiffres, etc. Nous avons donc une chaîne d'importation, et maintenant je vais créer une variable qui
représentera le mot de passe. Je vais l'appeler mot de passe égal
à mot de passe. Et je me souviens que lors de
la leçon précédente, je vais parler de choix aléatoires, ok point, parce que maintenant nous allons avoir
affaire à plusieurs lettres. Et maintenant, entre parenthèses, souvenez-vous que le premier paramètre cette fonction ou méthode sera la population. Nous devons indiquer à
la fonction
d'où elle doit tirer la ficelle
des lettres. Le truc avec
la bibliothèque de chaînes c'est que je vais juste vous
montrer ici, le module de chaînes plutôt, nous avons une variété de méthodes, ou dans ce cas, nous
les appelons constantes, d'accord ? Nous pouvons donc dire string point
Ask the score letters. Cela fera apparaître des lettres à la fois majuscules et minuscules Ensuite, nous pouvons
préciser. Nous pouvons dire string point Ask lowercase Cela n'affichera que des lettres
minuscules, puis nous aurons pour les
majuscules, les chiffres, les chiffres hexadécimaux, ponctuation, Nous avons donc toutes ces méthodes, toutes ces constantes
avec
lesquelles nous pouvons travailler lors de
l'importation du module de chaîne. Alors laisse-moi emporter celui-ci. Ce que nous allons
faire maintenant, c'est pour les choix aléatoires, nous voulons tirer sur le point pour demander et maintenant souligner les
lettres. OK ? Nous allons tirer des lettres
au hasard. Et puis en plus, nous voulons aussi saisir quels chiffres, nous voulons également avoir des chiffres
dans notre mot de passe. Donc, en gros, nous disons la fonction, nous
disons à Python que , pour le choix des lettres, pour le mot de passe, nous allons saisir des lettres majuscules et minuscules
, puis aussi des chiffres. Et puis, bien sûr,
le deuxième paramètre, nous devons spécifier le
nombre de lettres et de chiffres qui figureront dans notre mot de passe. Je vais dire que K est égal, et allons-y avec dix. OK ? Donc un mot de passe assez
fort. Et maintenant, il ne
nous reste plus qu'à faire quoi ? Il suffit d'imprimer. Nous
allons imprimer. Et je vais dire généré. Mot de passe ainsi généré. OK. Et puis laissez-moi ajouter
ma virgule puis mon mot de passe C'est ça. Nous allons
générer le mot de passe. Et maintenant, essayons-le, d'accord ? Je vais donc commencer tout
de suite, lancer le programme, et voilà. Nous avons K, nous avons six, nous avons F majuscule, nous avons six, zéro Smoleta, H, J,
zéro, W majuscule,
puis le capital Vous pouvez donc voir
maintenant qu'il a
créé avec succès un mot de passe de
dix caractères. Nous avions également des lettres
majuscules , des lettres minuscules et
quelques chiffres. Mais que se passerait-il si, au lieu d'avoir les caractères
séparés par une virgule et des codes, nous voulions
tout réunir pour n'avoir qu'
une seule chaîne Comment allons-nous procéder ? Nous devrons utiliser
une fonction spéciale appelée fonction
de jointure, d'accord ? C'est en fait une méthode. Donc, ce que vous voulez
faire maintenant, c'est ici où il est indiqué que les choix sont
aléatoires, nous allons ajouter cette
fonction très spéciale appelée jointure par points, et ça se passe comme ça, d'accord ? Nous allons avoir
un seul code, puis les joindre par points, et maintenant nous allons devoir
ouvrir un crochet pour couvrir tout ce qui se trouve
ici et là. Donc, cela va
générer le mot de passe, mais ensuite tous les personnages
seront joints pour y accéder. Maintenant, si je lance le programme
une fois de plus, c'est parti. Maintenant, ça a l'
air beaucoup mieux. Je peux le relancer,
et voilà. Lancez-le encore une fois,
et voilà. C'est donc incroyable de constater qu'
avec seulement quatre lignes de code, nous avons pu créer notre propre générateur de
mots de passe aléatoires. Bien entendu, nous avons dû
utiliser deux modules standard,
le module random, puis le module string, et bien sûr, deux lignes de code
supplémentaires, et le tour est joué. Alors c'est tout. Merci d'
avoir regardé la vidéo. Je te verrai
au prochain cours.
56. Le module datetime: Continuons à travailler
avec les modules standard. Et le prochain sera très,
très important car non seulement c'est un module très utile, mais il est également pertinent pour
le monde de la cybersécurité. Et je parle
du module date/heure. Il s'agit d'un module
que vous pouvez utiliser pour afficher des éléments tels que votre
heure, la date actuelle. Vous pouvez manipuler
la date et ainsi de suite. Alors laissez-moi vous montrer
comment travailler avec. Je vais supprimer tout
cela et simplement dire import puis date/heure, d'accord ? Supposons maintenant que nous voulions
enregistrer la date et l'heure actuelles. vais venir
ici et je vais dire que le
temps de soulignement
actuel est égal, d'accord ? Et maintenant, nous devons appeler le
module qui est la date, l'heure, le
point, et maintenant la méthode, qui sera utilisée pour afficher la date et l'heure
actuelles. Et il est également appelé point
date-heure maintenant. Il est intéressant de noter
que dans le module daytime, vous avez une fonction appelée day time now qui est
réellement utilisée. Donc, tout ce que j'ai à
faire à partir de maintenant, c'est
simplement de dire « imprimer ». Ensuite, entre parenthèses, je peux dire que la date
et l'heure actuelles sont l'espace, puis vous pouvez ajouter ma virgule ici,
puis simplement dire « actuel »
sur la partition, heure et voyons voir Je vais lancer le
programme, et voilà. La date et l'heure actuelles
sont le 27 octobre 2024, et c'est l'
heure exacte, comme vous pouvez le voir. Cependant, je voudrais
vous présenter autre chose. voyez, étant donné
qu'ici nous avons jour puis
le jour, c'est un peu redondant, non ? Je veux dire, le code fonctionne toujours parfaitement bien.
Ne vous méprenez pas. Le code fonctionne.
Mais si vous voulez être très professionnel à ce sujet, une chose que nous pouvons faire est dire,
vous savez quoi ? À partir du module de jour, importons spécifiquement la méthode de
la date et de l'heure. Donc, ce que je vais faire
maintenant, c'est ici, je vais dire à partir de
datetime, importer le jour Et maintenant, ce qui
est beau, c'est qu'ici, nous n'avons plus besoin de dire point
diurne, mais vous pouvez
simplement supprimer tout cela. Et dites simplement « point
diurne » maintenant. Parce que pour le moment, nous avons
dit à Python
que, à partir du module
appelé daytime, je veux que vous importiez
spécifiquement la classe ou la méthode appelée datetime Maintenant, si je lance le programme à nouveau, vous pouvez voir qu'il
fonctionne toujours parfaitement bien C'est juste que c'
est une façon un peu plus professionnelle et une bien meilleure
façon d'écrire votre code. Maintenant, je veux que nous
allions ce programme un peu plus loin et que nous combinions le module diurne
avec le module aléatoire. Nous
allons donc essentiellement générer des activités
aléatoires telles que la connexion, déconnexion, le téléchargement de fichiers, le changement de mot de
passe, vous savez, des choses qu'un utilisateur peut faire sur un système informatique, nous allons
les générer de manière aléatoire et les générer
également avec
des horodatages, d'accord ? Je vais donc y retourner. Et juste après le module de
jour, nous allons maintenant
importer des données aléatoires. D'accord ? Maintenant, indiquons les différents types d' actions que nous
allons randomiser Je vais donc dire que
les actions sont égales, et maintenant nous pouvons créer notre liste. Et ajoutons-en une
variété, d'accord ? Tout d'abord, allons-y, connectez-vous
par une virgule. Allons-y également avec Logout. D'accord, nous avons quelques suggestions
ici, comme s'inscrire, réinitialiser le mot de passe, et d'accord, je pense que j'aime bien ces quatre suggestions. Je pense que quatre c'est suffisant, d'accord ? Donc différentes actions comme la connexion, la
déconnexion, l'enregistrement, la
réinitialisation du mot de passe Nous allons donc
randomiser ces actions. Permettez-moi d'ajouter un trait de soulignement
entre la réinitialisation et le mot de passe. Chaque fois que vos chaînes
comportent plus d'un mot, s'il s'agit de deux mots,
utilisez toujours un trait de soulignement pour les
joindre C'est une bien meilleure façon d'
écrire vos Donc, une chose que je vais
faire maintenant est ici, je vais faire en sorte que
l'heure actuelle soit égale au point diurne maintenant. Cependant, nous devons également
créer une variable qui contiendra l'action
aléatoire Je vais donc venir
ici tout de suite et dire que l'action de soulignement de l'utilisateur équivaut
désormais à un choix aléatoire de points Et puis, entre parenthèses, les
actions. Et voilà. Et tout ce que nous avons à faire pour
le moment, c'est simplement d' imprimer que l'utilisateur exécute une action de scie
à un moment donné. Nous pouvons donc le faire. Je vais dire imprimer et maintenant la chaîne F, et je dirais que l'utilisateur a joué et maintenant nos accolades pour
représenter l'action Ce sera donc l'action de l'utilisateur
sur le score. Et maintenant, je peux dire « à et
puis les bretelles bouclées », l'
heure actuelle souligne Ajoutez les codes de fermeture, fermez le support, et
c'est tout. Alors allons-y maintenant et lançons le programme,
et voilà. L'utilisateur a effectué un enregistrement sur S et ainsi de suite. Réexécutons-le. J'ai effectué la connexion
cette fois-ci, d'accord, j'ai défini un mot de passe. Comme vous pouvez le constater,
cela fonctionne. Et si, comme
dans la leçon précédente, nous
voulions que l'utilisateur
exécute plusieurs actions ? Qu'est-ce que tu vas
faire très simplement ? Nous allons venir ici, changer nos choix en choix. Et puis n'oubliez pas
que nous devrons indiquer nombre d'actions
que nous voulons randomiser Je vais dire que K est égal à deux, et maintenant ici, je peux dire que l'utilisateur
a effectué, gardons le
texte imprimé tel quel. Exécutons à nouveau le programme. Et maintenant, vous pouvez voir qu'il est
écrit « utilisateur a effectué », vous avez dit « connexion par mot de passe », réexécutez », et maintenant
« identifiant » et maintenant « logo ». C'est ainsi que vous pouvez travailler
avec le module diurne
conformément au module
aléatoire pour simplement générer des actions aléatoires
à différents moments. Merci d'avoir
regardé la vidéo. Je te verrai au prochain cours.
57. Travailler avec une bibliothèque externe: Pour terminer cette section sur
les bibliothèques et les modules, je dois vous montrer
comment vous pouvez travailler avec une bibliothèque externe. Et celle avec
laquelle nous allons
travailler sera une bibliothèque très,
très puissante,
et ce
sera la bibliothèque de cryptographie Et en fait, permettez-moi de passer en
revue la documentation. Cette bibliothèque en particulier est
donc développée et maintenue
par la communauté Python. Vous pouvez vous rendre sur Cryptography point IO si vous
souhaitez en savoir plus Mais ici, ils
nous fournissent des idées sur la façon
d'importer réellement la bibliothèque et particulier une fonction
particulière, qui est la fonction Fernet OK ? C'est ce qui
est principalement utilisé pour chiffrer et
crypter les messages. Alors laissez-moi vous montrer comment nous
allons travailler avec cela. Et j'ai ajouté
quelques notes ici parce qu'il est très
important que vous compreniez étape par étape comment notre programme va
réellement fonctionner, car pour être honnête, cela peut être assez
confus, d'accord ? Je ne vais pas mentir.
N'oubliez pas qu'en matière de chiffrement, nous pouvons chiffrer une clé, c'est vrai, nous allons utiliser un chiffrement, que nous
pouvons ensuite utiliser pour chiffrer Mais ensuite, nous pouvons également déchiffrer le message qui a
été crypté, d'accord ? Donc, la façon dont cela fonctionne est que, tout d'
abord, en utilisant
la fonction frente, nous devrons générer la clé que nous allons utiliser à la fois
pour le chiffrement et le chiffrement puis nous pouvons
transmettre cette clé à notre algorithme de
chiffrement N'oubliez pas que dans le
monde du chiffrement, nous allons utiliser
des chiffrements qui combinent un algorithme et la clé
pour le chiffrement
et le chiffrement proprement dits Il s'agit donc essentiellement de quatre étapes. Tout d'abord, nous
générons notre clé. Nous disons donc que frente
ne génère pas de clé. Cela générera
la clé, puis nous
pourrons passer la clé à notre algorithme de chiffrement Et maintenant, pour chiffrer
le message lui-même, nous allons dire chiffrer parce que maintenant il contient la clé
et le Et puis, entre crochets, notre message de
fonction est encodé par points. Et puis, au
contraire, pour déchiffrer, on peut dire que le
message déchiffré sera égal Et maintenant entre crochets
parce que nous sommes en train de déchiffrer le message
crypté le message
crypté Nous allons donc le transmettre
, puis ajouter la dernière méthode de décodage par points
pour déchiffrer notre message Commençons donc par le
début, d'accord ? La première chose que je vais
faire est d'importer. Je vais donc dire qu'à partir du
cryptographe P point Fernet, nous allons importer
la classe de OK ? C'est la
toute première étape. Maintenant, n'oubliez pas que la première étape consiste à générer la clé. Je vais donc dire que la clé est égale, et maintenant Fern génère la clé du score. Cela
créera une clé. Et maintenant, nous pouvons dire que
cipher sera égal à Fernet puis À ce stade, j'
aimerais que nous imprimions d'abord la clé générée
que nous avons créée. Je peux donc venir ici
tout de suite et dire imprimer, puis entre crochets,
disons clé générée. OK ? Ainsi, narré, puis clé, peut ajouter deux points, puis une virgule, puis un point
clé sur le code C'est bon. Donc, voici cette fonction
particulière que nous allons
utiliser pour afficher la clé sous forme de chaîne. Maintenant, la prochaine étape sera
de chiffrer le message. Alors, que faisons-nous ? Nous
pouvons dire que le message est égal. Ajoutons le message. Ici, la valeur par défaut
est « hello world ». Rendons les choses un
peu plus complexes. Je vais dire bonjour à tout le monde.
Il s'agit d'un message de circuit. OK, je pense que c'est bon. Il s'agit d'un message de circuit. OK ? C'est donc le message
que nous allons tout d'
abord chiffrer
puis déchiffrer Je vais donc venir
ici tout de suite et dire crypté sur le message de scope. Nous allons maintenant chiffrer
le message, et pour ce faire,
nous allons dire
chiffrement par points chiffrés, puis entre crochets,
nous allons transmettre le
message
et la méthode de
codage par points pour chiffrer puis entre crochets,
nous allons transmettre le
message
et notre message codage par points pour Jusqu'ici, tout va bien. La
prochaine étape consiste maintenant à imprimer. Nous pouvons imprimer le
message crypté dès maintenant, je vais
donc l'
imprimer entre crochets. Ajoutons nos codes,
puis je peux dire que le message crypté est deux points. Maintenant, ajoutez
ma virgule, puis dites
simplement crypté
sur le message de partition OK ? Jusqu'ici, tout va bien. La dernière étape, bien sûr, après le chiffrement
sera de déchiffrer Donc je vais dire qu'un message
Underscore déchiffré est égal Des points chiffrés parsèment la crypte. Ensuite, entre crochets, nous
allons transmettre le message de soulignement
crypté, puis mettre des points sur le code Supports, fermez
le dernier support, et le tour est joué. Donc, la dernière étape pour le
moment consiste simplement à imprimer message
déchiffré,
puis à le Maintenant, je peux voir
que nous avons Oh, il n'y a pas de
crochet de fermeture, excusez-moi. J'ai fait une erreur juste là. Et j'espère que cela devrait fonctionner. Laisse-moi partir tout de suite
et m'enfuir. Et voilà. Donc, en ce moment, vous pouvez le
voir sur mon écran. Il est écrit « Chargement de l'environnement
Nix ». Donc, l'avantage de Python
lorsqu'il s'agit d'une bibliothèque externe, c'est que même s'il s'agit en fait
d'une bibliothèque externe, il va
automatiquement importer la bibliothèque car c'est essentiellement elle qui est
installée Maintenant, le
programme est en cours d'exécution, et il indique que la clé
générée était celle-ci, d'accord ? C'est une longue clé. Donc, le message crypté
est maintenant ici,
très, très longtemps, comme vous pouvez le voir. Et bien sûr, le
message crypté est « Bonjour tout le monde ». C'est un message secret. Essayons de remplacer le
message par un autre message. Et je dois dire que
Python est incroyable. Refaisons-le,
et voilà. Nous avons donc maintenant une clé
générée différente et, bien
sûr, un message
crypté différent. Voici donc comment travailler avec
la bibliothèque de cryptographie. Et juste pour vous donner un
bref récapitulatif, nous avons tout d'
abord importé le module furnit depuis
la bibliothèque Ensuite, bien sûr, dans le
monde de la cryptographie, nous
aurons une clé que nous
utiliserons pour le chiffrement
et le déchiffrement Nous avons généré la clé
ici en utilisant
la méthode Fn Dogenerate key, puis nous avons attribué cette
clé à notre Cipher Nous avons imprimé la clé
générée en utilisant la fonction de décodage des
touches Ensuite, pour chiffrer le message, nous devons tout d'abord ajouter ce qu'il est réellement Le message ici est que
Python est incroyable. Ensuite, nous disons : OK, le message
crypté
sera égal à maintenant à la fonction
cipher point encrypt,
puis entre crochets, le
message point Donc, la
méthode d'encodage par points ici convertira le texte brut
ou la chaîne en octets, d'accord ? Et maintenant, le chiffrement par points
prendra en compte le message codé. Je vais ensuite le chiffrer pour
produire une version cryptée. Et bien entendu, le
résultat sera égal au message crypté
sur le score. Et puis la dernière étape
consiste à
déchiffrer le message Donc, cipher point
decrypt ici. Nous allons prendre le
message crypté, puis le déchiffrer, remettre
au format d'origine, puis le
décoder par point, ici Cette méthode reconvertira les octets déchiffrés en
un format de chaîne lisible Et, bien sûr,
finalement, nous avons imprimé le véritable message
déchiffré Voilà, merci d'
avoir regardé la vidéo. Je te verrai
au prochain cours.
58. Introduction au projet d'outil de cryptage et de décryptage: Bienvenue dans le
prochain mini-projet. Et ici, nous
allons créer un outil pour chiffrer
et déchiffrer des fichiers Maintenant, la façon dont cela fonctionne est qu'
une fois que l'utilisateur a
exécuté le programme, quatre options différentes lui seront proposées. Vous pouvez voir sur votre écran qu'ils peuvent soit générer
une clé de chiffrement, chiffrer le fichier, le
déchiffrer, soit simplement quitter le programme Donc, si je choisis l'option
numéro
un pour générer
une clé de chiffrement, vous pouvez
maintenant voir qu'on
va nous demander d' entrer
le chemin du
fichier pour enregistrer la clé. Le fait est que nous allons en fait donner
à l'utilisateur
la possibilité d'
utiliser la clé par défaut que nous allons créer nous-mêmes ou d'utiliser sa
propre clé personnalisée. C'est tout l'intérêt de
cette question ou de cette invite, demandant à l'utilisateur de
fournir le chemin du fichier. Donc, si l'utilisateur décide
d'utiliser la clé par défaut, je vais appuyer sur
Entrée maintenant Vous verrez
maintenant que nous avons créé un fichier appelé Encryption underscoolk
point key qui
possède désormais une
clé particulière pour le chiffrement possède désormais une
clé particulière Alors maintenant, si je devais retourner au programme et que je tapais
l'
option numéro deux pour crypter un fichier, j'ai créé un exemple de fichier tx ici
avec du texte aléatoire Imaginons, par exemple, que
nous voulions chiffrer ce fichier Je vais maintenant fournir
le nom du fichier,
échantillonner le point TXT, appuyer sur Entrée. Nous pouvons maintenant donner un
nom au fichier de sortie. Nous pouvons donc appeler celui-ci crypté
sous le fichier sco point TXT, ok. Et maintenant, nous appuyons sur Entrée. Et maintenant, nous pouvons entrer le chemin de la
clé de chiffrement à utiliser. Encore une fois, nous allons
utiliser la touche par défaut. Je vais
donc appuyer sur Entrée.
Maintenant, notre fichier a été crypté et enregistré un autre fichier appelé fichier de
soulignement crypté DTXT Vous pouvez voir que c'est
le fichier ici. Donc, si je l'ouvre,
vous pouvez voir maintenant qu'il s'agit de
la version cryptée de notre exemple de fichier DTXT Maintenant, si je reviens en arrière et que j'opte l'option numéro trois pour
déchiffrer un fichier, d'accord ? Et maintenant, déchiffrons le fichier que nous venons de chiffrer, d'accord ? Je vais donc passer au fichier
Underscore crypté point TXT. Il s'agit du fichier
que nous venons de chiffrer. Alors maintenant, j'appuie sur Entrée. Et maintenant, quel est le nom
du fichier de sortie ? Nous pouvons dire déchiffré, le fichier de
soulignement est marqué par un point TXT. Nous appuyons sur Entrée, puis nous
appuyons à nouveau sur Entrée pour
utiliser la touche par défaut. Maintenant, nous avons
déchiffré le fichier
et l'avons envoyé dans un nouveau fichier appelé
Decrypted et l'avons envoyé dans un nouveau fichier appelé Decrypted Et si je l'ouvre
ici, vous pouvez voir que nous avons reçu exactement
le même texte. Donc, en gros, la façon dont le
programme fonctionne est que nous
allons fournir un fichier, dans ce cas,
qui va maintenant être échantillonné sur TXT Nous allons le chiffrer à l' aide de la clé de chiffrement
que nous avons générée Nous allons le
stocker dans un fichier appelé texte chiffré NSCofldo, puis nous allons essayer déchiffrer le fichier, puis
d'
enregistrer le contenu dans un texte
chiffré Osco FL Et comme vous pouvez le constater en ce moment, cela fonctionne parfaitement bien. Je vais donc vous montrer exactement comment nous pouvons créer ce type d'outil
en particulier. Je vais diviser
l'ensemble du projet en trois sujets différents. Donc, dans le premier cas,
nous allons créer une clé de chiffrement, puis
dans la deuxième vidéo, nous allons créer à la fois les clés de
chiffrement et de déchiffrement, les fonctions Enfin, dans la
tâche numéro trois, nous ajouterons l'interface utilisateur. Sans perdre plus de
temps, commençons.
59. Tâche 1 Créer la clé de chiffrement: Très bien, alors commençons. Et la toute première
chose que nous allons faire est d'importer
la bibliothèque requise, et ce sera,
bien sûr,
le point de cryptographie Furnt Je vais donc venir
ici et dire « from » puis cryptography point furnt »
et maintenant « import net ». OK. Nous voulons maintenant écrire
une fonction que nous pouvons utiliser pour générer et enregistrer
notre clé de chiffrement. Allons-y et
créons une fonction. Je vais appeler
celui-ci define et disons generate underscore key,
et maintenant dans Bracket Ce sera donc
le nom de notre fonction que nous allons utiliser pour
générer notre clé de chiffrement. Maintenant, chaque fois que
vous générez vos clés, chaque fois que vous
utilisez cette fonction, nous pouvons ajouter un type
particulier de paramètre, qui sera le chemin du fichier. Nous pouvons créer le
nom de notre fichier. Donc, ce que je vais
faire maintenant c'est dire fichier, et maintenant souligner le chemin OK, ce
sera maintenant égal, et maintenant nous pouvons ajouter
le nom du fichier Dans ce cas, en ce moment, dans les codes, je vais dire que le chiffrement
souligne la clé, le point, la clé C'est ainsi que vous souhaitez enregistrer le fichier pour votre clé
de chiffrement. Ce sera le
nom, puis la touche point. Et je vais ajouter ma chronique à la fin. Très,
très important. Maintenant, pour générer la clé
elle-même, vous pouvez voir que nous nous avons déjà
donné les informations. Je vais dire que la
touche est égale et maintenant fernt ne génère pas de trait de
soulignement, et maintenant Voici donc
ce que nous allons utiliser pour
générer la clé réelle. Nous allons utiliser
cette méthode, qui est la fougère pour générer la clé, et nous allons l'enregistrer
dans une variable appelée key Alors maintenant, créons
le fichier lui-même. Je vais donc y
entrer tout de suite, et je vais dire avec, d'accord, W et maintenant ouvert. Nous allons donc
créer notre fichier, et maintenant entre crochets,
je vais
ajouter le chemin du fichier, d'accord ? Et maintenant la virgule, et
maintenant le bon mode. Ce sera donc WB, et maintenant je vais dire
S K sur le fichier de partition Donc, ceci ici va
ouvrir un fichier dans ce que nous appelons un mode binaire correct. Maintenant, vous vous demandez peut-être
ce qu'est exactement WB. C'est similaire au
mode d'écriture, qui sera simplement W, que nous connaissons
déjà, mais dans WB, vous allez écrire des données dans un format binaire
au lieu de texte brut Donc, en gros, cela signifie
qu'il écrira les données sous forme octets
bruts
plutôt que de caractères. Maintenant, vous vous
demandez peut-être, d'accord, alors à quoi bon exactement ?
Quel est l'avantage ? Eh bien, si vous écrivez des données
binaires en utilisant votre mode texte
habituel, qui sera W, le programme essaiera d'interpréter
les bits comme des caractères, ce qui peut très souvent
entraîner des erreurs d'encodage, corruption
des données ou peut-être
même une perte d'intégrité des données. est donc toujours
recommandé d'utiliser WB chaque fois que
vous travaillez avec du chiffrement, des fichiers image ou des données autres que du texte afin de
garantir que les données seront correctement stockées dans leur format de bit d'origine
sans aucune modification Très bien, nous devons maintenant écrire la clé du fichier. Je vais donc
venir ici tout de suite, et je vais dire
clé sur le fichier de partition, et maintenant la méthode d'écriture, et
maintenant que transmettons-nous ? Nous transmettons la clé
elle-même. Donc, ici, nous allons
écrire la clé du fichier, puis c'est fait, mais nous pouvons aussi simplement écrire
quelque chose à imprimer. Disons donc simplement imprimer. Et maintenant, entre crochets, nous pouvons utiliser une chaîne. Et je vais parler de codes. Supposons que la clé de
chiffrement soit également enregistrée, et maintenant nous pouvons ajouter le chemin de soulignement du chemin du
fichier, et le tour est joué Nous avons donc créé avec succès la fonction de génération de
notre clé de chiffrement. Mais maintenant, nous allons également écrire
une autre fonction pour charger la
clé de chiffrement depuis le fichier. Je vais donc venir ici. Je vais dire « define load underscore key » et
maintenant, entre crochets, je vais ajouter un chemin de fichier Et maintenant, cela
équivaudra, bien entendu, au chiffrement par clé de chiffrement, clé de
soulignement, clé à point À partir de là,
je vais dire largeur et maintenant ouvrir pour ajouter le fichier
sur le chemin de la partition. Et maintenant, nous voulons lire. Nous voulons lire un extrait du fichier. Alors, que pensez-vous que
nous allons utiliser ? Nous allons utiliser
RB plutôt que WB. Ce seront donc maintenant des codes. Ce sera RB. Permettez-moi d'ajouter mon coma juste là, puis de fermer le
crochet et maintenant en tant que clé sur le fichier de partition. Il y avait une colonne. Enfin, pour lire la
clé dans le fichier, nous pouvons simplement dire key equal,
puis key,
underscore file, point,
la méthode de lecture, et maintenant entre crochets, et maintenant nous pouvons simplement
renvoyer notre clé Ainsi, la fonction que nous
venons de créer ici, la
clé de soulignement de chargement,
lira et renverra simplement la
clé de chiffrement stockée dans le fichier, et bien sûr, ce
sera
la clé qui sera nécessaire à la fois
pour le chiffrement
et le déchiffrement Voici la vidéo suivante où
nous allons commencer dès
maintenant à
écrire des fonctions pour crypter un fichier et aussi
pour le déchiffrer
60. Tâche 2 créer les fonctions de chiffrement et de déchiffrement: Bon retour. Ainsi, dans
la vidéo précédente, nous avons créé avec succès
la clé de chiffrement, et nous lui avons donné le chemin du fichier de chiffrement onscorekey point key Et nous avons également écrit une
fonction simple pour charger la clé. Alors maintenant, écrivons les
fonctions que nous allons
utiliser pour chiffrer réellement nos fichiers, mais aussi pour les déchiffrer Au fait, je viens de
remarquer ici, à la ligne 9, que je n'ai pas ajouté
deux points à la fin. Donc, s'il vous plaît, si vous ne l'
avez pas fait, assurez-vous de le faire également. Et puis, à la ligne 5,
j'ai également oublié deux Veuillez
donc ajouter les colonnes à ligne cinq et à la ligne neuf également.
D'accord, nous allons donc écrire une fonction pour
crypter notre fichier Je vais donc venir
ici et disons définir. Et appelons la
fonction crypter,
chiffrer, souligner le fichier, Maintenant, réfléchis à ça, d'accord ? Notre fonction, parce que nous
allons chiffrer un fichier, nous allons avoir besoin de trois paramètres
différents, d'accord ? Le premier paramètre
sera le fichier lui-même
, que nous
allons chiffrer. Appelons donc ce fichier l'
entrée du fichier de partition. D'accord ? Maintenant, nous
allons également devoir créer un fichier qui contiendra
la version cryptée. Appelons donc ce fichier le
résultat On the sco file. D'accord. Enfin, nous allons avoir besoin de la clé
réelle que nous allons utiliser
pour chiffrer le fichier
d'entrée, n'est-ce pas ? Permettez-moi donc d'ajouter mes
deux points à la fin. Donc, la première chose que nous allons faire maintenant
est de
créer notre objet frente
avec la clé fournie Je vais donc dire que
Fernet est maintenant égal à F, Fernet et maintenant entre crochets, nous allons ajouter la touche R. D'accord. À partir de là, nous voulons lire le fichier d'entrée. D'accord ? Ce sera évidemment
la prochaine étape qui consistera à ouvrir le
fichier d'entrée que nous voulons chiffrer Je vais donc dire avec
open et maintenant entre crochets, je vais dire l'
entrée sur le fichier de partition, et maintenant quel mode nous
allons utiliser avec le mode binaire de
lecture, donc R B, d'accord. Maintenant, je vais
parler d'un fichier et maintenant, ce que nous allons
faire, c'est lire le contenu du fichier, et nous allons passer ce
contenu à une autre variable. Appelons donc la
variable original. Je vais dire que l'original en ce
moment sera égal à quoi ? Le fichier n'
est pas lu parce que nous voulons lire
le contenu du fichier, et ajoutons nos
crochets juste là. OK, nous nous en sortons très bien.
Nous nous en sortons très bien. Nous devons maintenant chiffrer le fichier. D'accord ? Au
fait, j'ai oublié d' ajouter la colonne
ici, à la ligne 16. Ajoutons donc une
colonne juste là. OK, maintenant que nous avons
ouvert le fichier, nous voulons maintenant le chiffrer Je vais donc dire que celui-ci
est crypté. Il s'agira de la
variable permettant de stocker la version chiffrée réelle. Je vais donc dire que le
chiffrement sera équivalent à maintenant Furnt point encrypt Maintenant, entre crochets,
parce que nous avons passé, le point de fichier est lu dans la
variable d'origine. Je vais venir
ici tout de suite et simplement dire read null, alors quelle est la dernière
chose que nous allons faire ? Il faudrait écrire le contenu
crypté dans un fichier. Je vais donc dire width
open, et maintenant entre crochets, la sortie sur le fichier d'appel, et maintenant le mode
sera binaire correct, donc WB Et maintenant, je vais dire « fichier » entre nos deux points, juste là. Et tout ce que nous avons à faire pour l'
instant, c'est de dire « fichier point » correctement parce que
nous cryptons notre fichier, et maintenant, entre crochets,
quel sera-t-il Il va être crypté. Je vais donc dire crypté. Cela va donc écrire le contenu
crypté dans le fichier. Et bien sûr, nous pouvons simplement ajouter une déclaration d'impression que
vous pouvez dire imprimer. Et oui, nous pouvons utiliser
ce fichier d'impression crypté et enregistré dans
le fichier de sortie. À partir de là, ce que nous devons faire maintenant
sera de créer la fonctionnalité que nous pourrons
utiliser pour déchiffrer le fichier Ce sera donc essentiellement
l'inverse
de ce que nous venons de faire. Alors regarde ça pour
que je vienne ici. Et appelons notre fonction «
déchiffrer » sur le fichier de partition. Et puis, comme
pour le chiffrement, nous aurons besoin de
trois paramètres le fichier d'entrée, le
fichier de sortie et la clé. Je vais donc ajouter,
comme vous pouvez le voir, le fichier d'entrée, le fichier
de sortie, puis la clé. Et maintenant, comme d'habitude, je vais dire que Fernet est égal, puis Fernet majuscule, puis Backers Ce sera donc la clé
que nous allons
utiliser pour déchiffrer notre fichier Maintenant, ce que nous voulons faire, lire le contenu
du fichier crypté. Je vais donc venir
ici sur une nouvelle ligne. Je vais dire « ouvert »,
et maintenant, qu'est-ce qu'on ouvre ? Nous ouvrons l'
entrée sur le fichier de partition, et maintenant quel mode R B ? Je vais dire
fichier S et deux points. Alors maintenant, que voulons-nous faire ? Nous voulons déchiffrer. Je vais donc dire que le
chiffré ici est égal à la lecture par points de fichier, nous passons
le contenu du fichier crypté à une variable
appelée crypté parce que
maintenant nous allons
créer une autre variable
appelée décryptée, et maintenant elle
sera égale Maintenant, je vais passer le décryptage
entre crochets chiffré. Voici donc comment nous
allons déchiffrer le
contenu de notre fichier Et maintenant, quelle est la dernière étape ? Nous voulons enregistrer les
informations déchiffrées dans un nouveau fichier. Maintenant, je vais simplement
dire avec ouvert,
et maintenant entre crochets, et maintenant entre crochets, le fichier de soulignement de sortie, et maintenant WB un fichier, deux points, et maintenant simplement le point droit du fichier, et maintenant déchiffré,
nous allons écrire
connect au Enfin, nous pouvons simplement ajouter les instructions d'impression habituelles. Nous pouvons donc dire
quelque chose comme imprimer, entre crochets la colonne F, et
disons fichier déchiffré et
enregistré dans le fichier de sortie Je pense, OK, je
pense que c'est bon. Et ça y est. D'accord. En fait, permettez-moi
d'améliorer celui-ci. Je peux dire fichier. D'accord ? Et maintenant, refroidissez les bretelles, puis le fichier d'entrée D'accord. Et maintenant, je vais dire décrypté et enregistré dans le fichier
de sortie Je pense que c'est mieux, et voilà. Donc, encore une fois, nous créons des fonctions pour crypter
et déchiffrer nos fichiers Pour la fonction de chiffrement, nous avons besoin de trois paramètres. Le fichier d'entrée que
nous allons chiffrer, le fichier que nous allons créer,
je
vais stocker les informations
cryptées,
qui sont le fichier de sortie,
puis la clé pour le chiffrement
proprement dit Nous avons donc créé cette clé
ici en disant
find est égal à fini,
puis Bracket key Maintenant, nous avons ouvert
le fichier original et nous avons stocké le contenu
du fichier dans
notre variable appelée
original en disant que le
point de lecture du fichier est égal à l'original. Et maintenant, pour effectuer le
chiffrement lui-même, nous avons dit que crypté
est égal à freno encrypt et maintenant entre crochets, original,
et maintenant avec open
parce que nous voulons stocker
les informations cryptées dans et maintenant avec open
parce que nous voulons stocker un nouveau fichier, le fichier de sortie, nous avons créé le fichier
ici aux lignes 19, 20 et 21, puis nous avons fait à
peu près exactement le contraire
avec la fonction de déchiffrement Alors, attention à la prochaine vidéo, nous allons maintenant créer la fonction principale pour l'interaction avec
l'utilisateur
61. Tâche 3 ajouter l'interface utilisateur: Passons à la dernière partie du
programme où nous allons créer l'interaction
utilisateur principale. Nous allons proposer à l'utilisateur quatre options différentes. Peut-être aimeraient-ils
générer un fichier crypté clé, un fichier décrypté,
peut-être même Ensuite, en fonction de
l'option qu'ils choisiront, nous devrons
faire quelque chose. Commençons donc, d'accord ? Je vais donc dire « define main ». Ce sera le nom
de notre interface, et laissez-nous imprimer un message de bienvenue
général. Ce n'est pas nécessaire, mais
bon, allons-y. Bienvenue dans l'outil de chiffrement et de
déchiffrement. OK. OK. Nous allons maintenant créer la boucle while qui
va passer en revue
les quatre options. Je vais dire « vrai colon » pendant longtemps
et maintenant. Et maintenant, laissez-nous
imprimer les options. Je vais donc passer à l'impression. Et maintenant, numéro un,
générez une clé de chiffrement. OK. Passons maintenant
à l'option numéro deux, qui consisterait
simplement à crypter un fichier. L'option numéro trois
sera ce que les cryptes feront Dossier. Et maintenant, la dernière option, qui est l'
option la plus ennuyeuse, quitte le programme. OK, ça y est. Maintenant que nous avons
les quatre options, demandons à l'
utilisateur de
nous indiquer l'option qu'
il souhaite choisir. Je vais donc
venir ici tout de suite, et passons à la
variable ou à l'option. OK ? Je vais donc dire option
et maintenant égale et maintenant entrée. Demandons donc à l'
utilisateur de nous dire quelle option
souhaitez-vous utiliser avec un point d'
interrogation, d'accord ? Demandons donc à l'utilisateur
: « Hé, qu'est-ce que tu aimerais faire ? Nous devons maintenant
créer les instructions IL pour chaque option particulière. Passons donc à la
première. Je vais donc dire que si l'
option est égale à un, que voulons-nous
faire très simplement, nous pouvons générer notre clé. Je peux donc venir ici tout de
suite et simplement dire générer une touche de soulignement, et maintenant entre crochets, quel est
le nom de la clé ? Il s'agit de la clé de
soulignement du chiffrement. Nous pouvons donc exécuter la fonction
immédiatement, non ? Et cela fonctionnera
parfaitement bien. Cependant, je voudrais te
montrer quelque chose, d'accord ? Ce n'est pas nécessaire. Mais que se passerait-il si nous voulions
donner à
l'utilisateur la possibilité d'utiliser sa propre clé personnalisée et pas seulement la clé par défaut
que nous avons déjà créée ? Nous donnons donc deux options à l'
utilisateur, d'accord ? Vous pouvez soit utiliser
la clé par défaut que nous avons déjà, soit nous
fournir le chemin d'accès à
votre propre clé de chiffrement. Maintenant, comment ferions-nous cela ? Eh bien, j'ai déjà écrit
la ligne ici, d'accord ? Alors laisse-moi juste prendre ça, couper. Je vais venir ici
puis coller. Et laissez-moi vous expliquer
ce qui se passe ici. Nous allons donc devoir le
transmettre dans le
chemin de soulignement du fichier variable. Et maintenant, entrez. Demandons donc à l'utilisateur d' entrer le chemin du fichier
pour enregistrer la clé. Maintenant, ici où il est indiqué que le cryptage
par défaut sous clé à points fait toujours
partie de la chaîne. J'indique simplement
à l'utilisateur que,
si vous ne nous
fournissez pas votre propre clé personnalisée, nous utiliserons la clé par défaut,
qui est
le cryptage
sous la clé à points. Maintenant, c'est très important, là où il est dit, ou cryptage
sous clé à point. Maintenant, ici même, nous
disons à Python
que, même si l'utilisateur
a eu
la possibilité d'utiliser sa
propre clé personnalisée,
s'il veut utiliser notre propre clé
par défaut, il devrait même si l'utilisateur
a eu
la possibilité d' utiliser sa
propre clé personnalisée, l'utiliser. Nous avons donc dit ici ou et maintenant
le nom de notre clé par défaut. Tout ce que nous avons à faire
ici est de supprimer l'option par défaut,
puis de simplement transmettre le fichier
sur le chemin de la partition. Et voilà. C'est donc l'option numéro
un, toute présentée. Passons à l'
option numéro deux. Je vais venir
ici et dire,
L F, le choix est égal à deux, deux points. Donc, ici, nous aimerions
crypter le fichier. Maintenant, n'oubliez pas que pour
chiffrer le fichier, nous avons besoin de trois paramètres Tout d'abord, nous devons demander
à l'utilisateur de
nous indiquer le fichier qu'il
souhaite chiffrer, qui sera le fichier d'entrée Et puis aussi où je voudrais stocker
le contenu crypté. Quel sera le
nom du fichier de sortie ? Et puis, troisièmement,
quelle clé aimeraient-ils utiliser
pour effectuer le chiffrement. Je vais donc
venir ici tout de suite. Passons la variable
saisie au choix de la partition. Oh, pardonne-moi. Ce devrait être l'
option LI. Pas le choix Je me suis laissé emporter,
option, pas le choix. Donc, entrez le fichier d'entrée. Excusez-moi, entrez le fichier de
soulignement. Je vais dire égal à égal. Maintenant, demandons à
l'utilisateur de
nous dire quel est le nom des fichiers. Je vais dire entrez
le chemin du fichier à chiffrer, laissez-moi
supprimer ce message Entrez donc le chemin
du fichier à chiffrer. OK ? Invitons donc
l'utilisateur à le faire. Et puis la sortie du fichier Sco sera égale à l'entrée. Et maintenant, demandons à
l'utilisateur de
nous indiquer le nom de l'Apple fs. Je vais vous dire d'entrer le
nom du fichier de sortie. Colonne. Et maintenant, enfin, qu'en est-il de la clé ? Je vais dire clé
sur le chemin de la lunette. D'accord, ce
sera égal à l'entrée. Et maintenant, nous pouvons dire, entrez le chemin de la clé de
chiffrement. Sinon, la valeur par défaut
sera utilisée, d'accord ? Je vais donc simplifier l'instruction de
chaîne ici. Je ne vais pas indiquer
le nom de l'enfant par défaut. Je ne pense pas que ce soit nécessaire. Donc, tout ce que nous avons
à faire pour le
moment est simplement de
dire également le cryptage ou. Soulignez le point clé. Et voilà, non ? Donc, une chose que nous devons
faire ici est de tenir compte
des erreurs, d'accord ? Et si l'utilisateur avait fourni
le mauvais fichier d'entrée
ou
si le mauvais fichier d'entrée le nom du
fichier de sortie était incorrect, ou même si la
clé n'était pas correcte. Que devrait-il se passer ? Donnons donc l'option dès
maintenant pour y répondre Donc je vais vous dire d'essayer. N'oubliez pas cela, et maintenant la clé
est égale à la touche de soulignement de charge. Et maintenant, entre parenthèses,
le chemin clé, d'accord ? Et maintenant, les parties les plus importantes cryptées sur le fichier de partition Et maintenant, entre parenthèses, quels
sont les trois paramètres ? Nous avons l'entrée dans
le fichier de partition, nous avons la sortie, dans
le fichier de partition, et maintenant nous avons également la clé. Voici donc les
trois paramètres. Et s'il y a une erreur,
générons-la. Je vais dire,
sauf Exception. OK, en tant que E. Et maintenant nous pouvons
imprimer notre message en forme de flèche. Je vais donc
utiliser la chaîne F, puis je vais dire quelque chose
comme une flèche pendant le chiffrement. OK, deux points et maintenant nous
pouvons utiliser nos accolades pour indiquer quelle est
l'erreur en question, et voilà Nous avons donc
créé avec succès l'option numéro deux avec x user pour fournir le chemin du
fichier à chiffrer, le nom du fichier de sortie, puis également la clé Et nous avons également ajouté
un peu de gestion des erreurs. Fantastique Maintenant, tout ce que je vais faire c'est récupérer
ce bloc de code, d'accord ? Et je vais simplement le coller parce
que j'y pense, d'accord ? Le
cryptage et le processus de chiffrement sont presque identiques. C'est juste le contraire, non ? Je vais donc copier
tout ce bloc de code, je vais venir ici, et maintenant je vais le coller. OK ? Notez maintenant, cependant, que l'indentation
n'est pas correcte Assurez-vous donc que lorsque vous faites exactement la
même chose que moi, assurez-vous que votre
indentation est correcte Assurez-vous que tout
est correctement aligné, et cela devrait aller. OK, tout ce que nous devons faire pour le
moment est de changer les
options ici, donc les options numéro
trois à numéro deux. Fichier d'entrée, je vais
dire entrez le chemin
du fichier vers ce qu'il faut déchiffrer OK. Fichier de sortie. Entrez le nom
du fichier de sortie. C'est très bien Entrez le chemin
de la clé de chiffrement. Sinon, d'accord,
gardez à l'esprit que la clé de chiffrement est exactement la même chose que la clé de
déchiffrement, nous n'avons
donc pas besoin de
modifier le texte ici Vous pouvez le modifier
si vous le souhaitez, mais je vais le
laisser tel quel. Enfin, d'accord,
ici aussi, suffit de changer cela il suffit de changer cela
et le tour est joué, la
gestion des erreurs est intacte. Et il y a encore une chose que nous
devons changer, c'est qu'il sera
écrit de chiffrer le fichier Ici, ça devrait
être un fichier décrypté, d'accord ? Vous devez donc vous assurer que
chaque fois que vous copiez et collez du code et que vous
devez modifier du texte, assurez-vous de
le parcourir correctement. Sinon, vous risquez de
rencontrer des problèmes. OK, il ne nous
reste plus qu' à ajouter la quatrième option. Je vais donc venir
ici et dire que option
est égale à quatre. Nous pouvons imprimer des X dans le programme. Et maintenant, nous allons également avoir
la déclaration break,
car n'oubliez pas que
même si nous avons fourni quatre
options à l'utilisateur, il peut devenir assez stupide et décider de choisir l'
option numéro cinq six
ou sept ou
toute autre option qui n'existe même pas Nous devons donc également
en tenir compte. Je vais donc dire break
, puis je vais fournir
la déclaration Ls finale. Maintenant, nous pouvons simplement dire
imprimer, puis dire à l'utilisateur de choisir une option valide. Et voilà.
Et voilà. Et maintenant, il ne nous reste plus
qu'à exécuter la fonction principale, et voilà. J'espère donc que le
programme devrait fonctionner. Permettez-moi de
lancer le programme dès maintenant ,
et voilà. OK, alors laissez-nous tester cela. Tout d'abord, avec l'option numéro un, appuyez sur Entrée. Je vais
utiliser la valeur par défaut, donc je vais appuyer à
nouveau sur Entrée . Et
voilà. Génial Vous pouvez donc voir maintenant
que
nous avons la clé de cryptage créée
par le programme. Alors maintenant, essayons
de chiffrer un fichier. Je vais donc
venir ici tout de suite et créer un
exemple de fichier D TXT. Ajoutons du texte ici. Il s'agit d'un exemple de texte nous allons
chiffrer et déchiffrer OK. Alors voyons voir. Je vais commencer tout de
suite et passer au programme. Passons à l'option
numéro deux dès maintenant. Essayons donc de chiffrer
notre exemple de fichier TXT. Je vais appuyer sur
Entrée. Et maintenant, quel sera le
nom du fichier de sortie ? Appelons cela le fichier d'appel
crypté point TXT. Allons-y. Nous allons
utiliser la clé par défaut. Je vais appuyer sur
Entrée. Et voilà. Jetons donc un coup d'œil. Nous avons le texte crypté sous scoefLED, et le voilà Il s'agit de la version cryptée
de notre exemple de fichier texte. Alors maintenant, essayons de déchiffrer le fichier crypté et voyons si nous allons
récupérer le même texte Je vais opter pour l'
option numéro trois. Entrez le chemin
du fichier à déchiffrer,
il sera crypté
sous le point SCOFLE TXT il sera crypté
sous le point SCOFLE Et ce sera le
nom du fichier de sortie. Nous pouvons l'appeler décrypté,
souligné par le point TXT. Nous allons
utiliser la clé par défaut. Et le message Oh, oh, oh, oh, je suis désolée, nous avons
un message d'erreur. Il dit : « Aucun fichier de ce type, Dicture crypté
underscoflt Qu'est-ce que j'ai mal fait ? Nous avons Oh,
tu vois ce que j'ai fait ? Mon fichier est appelé
crypté, pas crypté. Je m'excuse. Je dois me procurer une nouvelle
paire de lunettes. Je m'excuse. Essayons de gagner encore une fois. Donc,
option numéro trois. Le fichier ici est donc crypté. Ah, allons-y, file point TxD. Maintenant, le nom du fichier de sortie, je vais utiliser « décrypté Dans un fichier Les Go, pointez TXT. Clé par défaut, et voilà. D'accord, jetons maintenant un coup d'
œil au fichier déchiffré, et vous verrez Donc, tout d'abord, nous avons
chiffré le point d'échantillon TXT. Nous avons un fichier crypté,
que vous pouvez voir maintenant, puis nous avons déchiffré
ce fichier pour obtenir exactement les mêmes
textes que vous pouvez voir en ce moment, il fonctionne Essayons l'option numéro
quatre pour quitter le programme. OK, j'ai quitté le programme. Exécutons le programme
une fois de plus, et passons à l'
option numéro sept. Et il est dit, veuillez
choisir une option valide, et c'est parti. Alors Whoa, nous avons également
créé avec succès un
cryptage et un décryptage. Cela fait beaucoup, mais j'espère que vous avez appris de nouveaux concepts
tels que l'utilisation
des modes d'écriture
binaire et de lecture binaire. Vous avez également appris
comment vous pouvez permettre l'utilisateur d' utiliser sa propre clé personnalisée
ou d'utiliser la clé par défaut. Et j'espère que vous avez
beaucoup appris dans le cadre de ce projet financier. Merci beaucoup d'avoir regardé, et bien sûr, je
vous verrai au prochain cours.
62. Introduction à la section Oop: Bien, alors bienvenue dans
ce qui pourrait bien être la dernière section de ce
cours Et ici, nous
parlons de l'OOP, la programmation orientée objet.
On dirait une bouchée. Cela semble très compliqué,
mais ne vous inquiétez pas. Je vais aborder tous
les éléments de base ici. Ce sera donc un sujet très, très
vaste, parce que
croyez-le ou non, si vous maîtrisez le POO, vous pouvez écrire des programmes vraiment
incroyables, d'accord ? Dans cette section, nous allons donc apprendre ce que sont les objets. Nous allons également parler de
cours, d'accord ? Quelle est donc la relation
entre un objet et une classe ? Et bien sûr, vous allez en
apprendre davantage sur les méthodes. Je vais vous donner de
nombreux exemples. Il y aura également quelques exercices de
codage. Vous allez également apprendre
des concepts très importants tels que l'encapsulation, l' héritage et
même le polymorphisme Oh, c'
est quoi exactement le polymorphisme ? Cela semble très
compliqué, non ? Ce n'est pas aussi compliqué qu' il y paraît. Ne t'inquiète pas pour ça. Ce sera donc un sujet très,
très intéressant, et je suis très heureuse de vous parler
de l'OOP Alors, comme d'habitude,
sans perdre plus de temps,
allons-y.
63. Introduction au POO: Accédez à la toute nouvelle section où nous allons examiner la programmation
orientée objet, connue sous le
nom de OOP OK, c'est ici que nous allons aborder certains
aspects avancés de la programmation Mais ne vous inquiétez pas,
je serai là pour vous
expliquer de la manière la
plus simple possible. Alors, qu'est-ce que l'OOP exactement ? Ce que vous voyez devant vous est essentiellement une bibliothèque, n'est-ce pas ? Tu as toutes sortes de livres. Vous avez des livres
sur l'anthropologie, l'archéologie, la biologie,
la chimie, les mathématiques, etc. Imaginez que vous étiez bibliothécaire. Vous étiez le
responsable de tous ces livres. Idéalement, bien sûr, vous
auriez besoin d'
une sorte de système pour gérer
ces livres, n'est-ce pas ? Tu devras savoir
où mettre les livres. Vous devez connaître les
caractéristiques de chaque livre, comme, vous savez, le
titre du livre, l'auteur du livre. Et aussi, que
les livres soient disponibles ou non, ils ont
peut-être été effacés,
vous savez, des trucs comme ça Alors, imaginez que nous ayons créé
une classe appelée book, d'accord ? Et comme je l'ai dit,
cette classe peut définir plusieurs types de caractéristiques chaque livre, comme
le titre du livre, l'auteur, le genre,
la couleur de couverture. Mais outre les
caractéristiques physiques du livre, nous pouvons également
parler de ce que nous pouvons faire avec le livre. Peut-être que tu peux emprunter le livre. Et si nous le pouvons, pendant combien de temps
pouvons-nous emprunter le livre ? Peut-être que nous pouvons même mordre
le livre et ainsi de suite. OK, pensez à tous
ces attributs contenus dans le livre de classe. D'accord ? Maintenant, des choses comme le
titre, l'auteur, le genre, les éléments qui décrivent
physiquement le livre, nous pouvons les appeler des
attributs, n'est-ce pas ? Nous avons
déjà parlé des attributs dans ce cours. Mais alors les méthodes, les méthodes décriront
ce que nous pouvons réellement faire avec chaque
livre. Peux-tu, mon garçon ? Peux-tu mordre ? Donc, en gros, la classe book
définira à la fois les attributs
et les méthodes. En d'autres termes, le cours de lecture est comme une description
générale de ce à quoi pourrait
ressembler un livre et de ce que nous pouvons
réellement en faire. Mais nous ne parlons pas encore d'
un livre en particulier. D'accord. Maintenant, chaque
livre de la bibliothèque est ce que nous appelons un
objet de la classe de livres. Encore une fois, le
cours de lecture
nous donnera une description générale
des attributs et des
méthodes de chaque livre, tandis que les livres eux-mêmes,
les livres individuels, seront appelés
objets de la classe de livres. Ainsi, les
attributs d'objet du livre A, par
exemple, pourraient être le
titre « Programmation Python ». L'auteur pourrait être Jack, puis la couleur
pourrait être bleue, non ? Et puis jetons
un coup d'œil au livre B. Le titre pourrait être «
cyber one oh one ». L'auteur est Alice
et la couleur est le rouge. Il s'agit d'
attributs individuels propres à chaque livre, et ces attributs
ont leurs propres valeurs. La valeur de la couleur de
l'attribut pour livre A est le bleu
par exemple, à droite, etc. ce qui concerne les méthodes, nous pouvons également, par
exemple, dire que le livre A utilise
une méthode appelée emprunter, selon laquelle, une fois
le livre
emprunté, la bibliothèque devra
mettre à jour les enregistrements pour indiquer que le livre
n'est plus disponible
pour être emprunté. De même, imaginez que le livre B ait été emprunté dans le passé, mais qu'il ait maintenant été rendu. Nous pouvons ensuite marquer le livre
B comme étant de nouveau disponible. Ce sont donc des méthodes,
des attributs. Donc, pour vous donner un bref récapitulatif, la classe est un peu comme
la description générale du livre où les attributs
et les méthodes sont définis L'objet est une instance. En gros, un
livre spécifique dans une bibliothèque, un objet spécifique relevant de
la classe, de la classe de livres. Les attributs seront une
description physique de chaque livre, tandis que les méthodes
connues sous le nom d'actions sont bien connues, essentiellement les
actions qui peuvent être effectuées sur chaque livre. Donc, une vidéo de Jerman Vernick où nous allons commencer
à examiner quelques exemples
64. Créer un cours de base: Nous allons
maintenant créer un code
centré sur l'exemple
précédent que
je créer un code centré sur l'exemple
précédent vous
ai donné concernant
la bibliothèque, les livres, les
attributs et les méthodes
associés à chaque livre. La première chose
à faire est donc définir le livre de classe. Je vais donc dire livre de classe et c'est ainsi que nous créerions la classe appelée livre de manière
très simple. Maintenant,
nous devons indiquer
les attributs qui
seront
associés à chaque
objet du livre. D'accord ? Donc, pour ce faire, je vais dire l'amende. Et maintenant, dedans,
soulignez, soulignez. Et maintenant, entre crochets, c'est ici que nous
allons
indiquer les
attributs qui seront
associés à chaque livre. Vous commencez
généralement par quelque chose qui s'appelle soi. D'accord ? C'est très, très courant dans la
programmation orientée objet, d'accord ? Le self est donc un moyen de faire référence à chaque objet individuel de la
classe à laquelle nous avons affaire. Dans ce cas, pour le moment, il s'agira de chaque livre
individuel. Vous allez donc toujours
commencer par vous-même,
et maintenant par l'attribut lui-même . Je vais donc choisir le titre, l'auteur, et ajoutons-en un autre.
Disons Gênes. D'accord ? Pourquoi pas ? Gênes, Colon. Jusqu'ici, tout va bien.
OK. Nous devons maintenant attribuer des variables à
chacun de nos attributs. Je vais donc commencer
par dire self point title. Tu vois comment ça
marche en ce moment ? Le titre à points fixes est égal au titre. Maintenant, pouvez-vous deviner que le point
suivant est l'auteur égal à l'auteur. Et puis, encore une fois, self dot
Gena est égal au genre. Jusqu'ici, tout va bien. Je vais
ajouter un autre attribut. Techniquement, ce n'est pas
un attribut que nous avons défini jusqu'à présent, mais il sera utile
une fois que nous aurons commencé à créer les méthodes que nous
appliquerons au livre, d'accord ? C'est-à-dire que nous voulons
indiquer si un livre est disponible
pour être emprunté ou non. Je vais donc dire
Self Dot disponible. Bien,
disons que le moi va bien, est-ce que cela est disponible sur le score, d'accord ? Nous voulons initialiser cela pour qu'il soit vrai dès le
début, d'accord ? Donc, au tout début, tous les livres peuvent
être empruntés, d'accord ? Maintenant, nous avons défini les
attributs, le titre, l'auteur, le genre. Nous avons également ajouté
l'une des méthodes, l'
un des paramètres
que nous allons utiliser dans nos méthodes, savoir si
le livre est disponible ou non. Alors maintenant, définissons les méthodes
elles-mêmes. Et celui auquel nous allons
avoir affaire ici sera l'emprunt. Donc je vais
dire emprunter et maintenant entre
parenthèses, soi, d'accord ? Nous sommes en train de créer une méthode que nous pouvons appliquer au livre d'objets. Disons donc que si le livre est effectivement disponible,
que devrait-il se passer ? Je vais donc dire si réfère
à ce que le livre est, en fait, disponible ?
Que faisons-nous ? N'oubliez pas qu'une fois que le livre
sera prêt à être emprunté, nous devrons mettre à jour les
dossiers de la bibliothèque pour indiquer que le
livre n'est plus disponible parce qu'il
vient d'être emprunté, n'est-ce pas ? Nous allons donc dire que
self point est disponible, ne
devrait pas être égal à quoi ? Faux, car il
n'est plus disponible. D'accord ? Regardez à nouveau la ligne 11. C'est parce que c'est
très, très important, d'accord ? Ici, nous le faisons
pour la toute première fois, quelqu'un veut
emprunter ce livre, peut-être pas pour la
première fois, mais le livre est actuellement disponible.
Alors, que devrait-il se passer ? Nous devrions dire que, d'accord, nous devrions mettre à jour les dossiers pour indiquer que le livre n'
est plus disponible, puis nous laisser
imprimer quelque chose, d'accord ? Disons imprimer. Et maintenant, entre crochets,
je vais utiliser la chaîne F parce que je veux faire référence au titre réel du livre qui a
été emprunté. Je vais donc
ouvrir mes bretelles universitaires, et je vais dire Self Dot Quel titre de point. OK. Et maintenant, nous pouvons taper
ce que nous voulons, nous voulons taper «
a été emprunté ». D'accord ? Aux
codes de fermeture. Et voilà. Deux choses devraient donc se produire si le livre est
disponible pour être emprunté. Tout d'abord, nous devons
mettre à jour les dossiers
pour indiquer que le livre n'est plus disponible parce qu'il a
maintenant été emprunté. Ensuite, nous devrions
imprimer le message
indiquant que le livre
a été emprunté. Ese, à quoi
sert cette déclaration ? Pourquoi nous indiquons-nous ? Nous devons l'indiquer parce qu'
à la ligne 11, il est écrit : « Si le livre est disponible en ce
moment », le programme suppose que le livre est actuellement disponible. Mais que se passerait-il
si l'utilisateur de la bibliothèque souhaitait emprunter un
livre qui n'était pas réellement disponible
au départ ? C'est ce que la déclaration L va représenter
ici. Donc, si le livre n'était pas
disponible initialement, il
suffit d'imprimer Imprimer, imprimer. Ensuite, nous pouvons simplement dire « désolé ». Ce livre n'est pas disponible
actuellement. Et j'ai oublié de
le mettre entre guillemets. Désolé, ce livre n'est pas disponible
actuellement. Bien entendu, nous pouvons
également utiliser la chaîne F et le titre personnel pour faire référence
au nom réel du livre, mais cela n'est pas nécessaire. Mais je dois juste dire,
désolé, ce livre
n'est pas disponible actuellement. OK. Génial Maintenant,
définissons une autre méthode, qui serait de
retourner le livre. Nous pouvons donc emprunter le livre,
mais nous pouvons également le rendre. Je vais donc dire de définir le
rendement sur le livre de scores lui-même. Nous avons donc donné la
fonction de la méthode appelée Return On score
Book, puis self. Dans ce cas,
que devrait-il se passer maintenant si le
livre est retourné ? Maintenant, nous allons dire que
self point is available doit maintenant être égal à ce qui vrai, car le livre
est maintenant disponible. Et allons-y dès
maintenant, imprimons un message et
disons, référençons également. Je vais donc dire chaîne F, puis le nom du
livre a été renvoyé. D'accord ? Essayons donc ceci. Mettons-le en action, d'accord ? Je vais donc faire
tout le chemin jusqu'ici. Supposons que le trait de soulignement A du livre soit désormais égal à l'
objet réel appelé livre Et maintenant, à l'intérieur,
donnons
le nom, le titre du
livre,
tout d'abord disons Python un par un. D'accord ? Quelle est la prochaine étape pour l'auteur ? Appelons donc l'auteur Alice. D'accord ? Et puis quel sera
le genre ? Disons programmation, non ? Programmation. D'accord ? Et maintenant, créons un autre objet. Cet objet sera représenté
par un livre sur la partition, B est égal, et maintenant encore un livre, et maintenant entre parenthèses, disons cyber
deux oh un, d'accord ? Et puis l'auteur
ici sera Jack et ensuite quel
sera le genre ? Disons simplement technologie,
technologie, non ? La technologie devrait être le genre. Et voilà. Je vais donc faire
tout le chemin jusqu'ici. Et maintenant, examinons
les méthodes, d'accord ? Tout est
en place pour le moment. Appelons nos méthodes,
qui, bien entendu, consistent emprunter puis à rembourser. Je peux donc dire livre, tout d'abord, souligner un point
Borrow entre crochets D'accord ? Donc, tout d'abord, nous allons emprunter le livre. Ensuite, laissez-moi exécuter le programme. Voyez-vous qu'en ce
moment, il est écrit : OK, Python un oh un a été
emprunté parce qu'ici, cela
indiquera 11 en ligne. Cela indiquera
au tout début que,
OK, le livre est disponible. Il a maintenant été emprunté, nous devrons
donc mettre à jour les
dossiers pour indiquer que c'est faux. Et maintenant, nous allons dire que
le livre a été emprunté. Mais à ce stade, le livre n'est pas disponible, n'est-ce pas ? Ciblons donc
l'instruction L. Il devrait maintenant être imprimé, désolé, ce livre n'est pas disponible
actuellement si je réexécute la méthode. Et si quelqu'un d'autre
vient maintenant et veut emprunter le livre qui n'est pas
encore disponible ? Que va-t-il se passer ? Je
vais exécuter le programme. Et maintenant, vous le voyez
dire « désolé, ce livre n'
est pas disponible actuellement ». OK. Mais que se passerait-il si
je retournais le livre maintenant ? Qu'est-ce que ça va
dire ? Cela va dire que Python
a été renvoyé en tête-à-tête. Et maintenant, si je réexécute la
méthode return, je suis désolée, la méthode borrow
encore une fois. Allait-il le
dire ? Cela va dire que Python 11 a été emprunté. Vous pouvez donc le voir maintenant,
cela fonctionne parfaitement bien. Donc, juste pour vous donner un
bref récapitulatif, tout d'abord, nous avons dû créer une classe
appelée book now inside, nous devons définir les attributs
associés à chaque livre Et nous l'avons fait en disant : définissez le
score sur le score, puis les paramètres ou
les attributs entre parenthèses. Ensuite, nous avons attribué à
chaque attribut une valeur, de sorte que self ou title
soit égal au titre, self point author
soit égal à author, self point genre
soit égal à Gena Ensuite, nous avons également créé une
méthode qui
indiquera si
nous pouvons emprunter le livre ou non. Il s'agit donc essentiellement
d'un attribut booléen. Nous avons dit : « D'accord, le point self est disponible au tout début et
doit être égal à vrai ». Et maintenant, nous avons créé deux méthodes
différentes. Le premier
serait l'emprunt. Que se passe-t-il donc lorsqu'
un livre est emprunté ? S'il était initialement disponible, nous mettrons à jour les enregistrements pour indiquer que self is available n'est plus
disponible, donc c'est faux. Ensuite, nous devrions
imprimer le titre qui dit «
désolé, ce livre
a été emprunté ». Cependant,
si le livre a déjà été
emprunté au départ, nous devrions simplement l'imprimer désolé, ce livre n'est pas disponible
actuellement. Et puis la deuxième méthode, que se passe-t-il lorsque le
livre est retourné ? Nous devrions maintenant mettre à jour nos
dossiers une fois de plus pour indiquer que self is
available est désormais vrai, et nous pouvons imprimer le nom
du livre indiquant qu'il
a été retourné. Enfin,
nous apprenons à créer des objets individuels
dans des livres individuels. Nous pouvons simplement dire que le trait de
soulignement A est égal à livre, puis entre crochets, nous devrons renseigner les
valeurs des attributs Ensuite, nous avons créé
un autre livre, livre B, qui s'intitule Cyber
to one Jack Technology. Ensuite, nous avons appelé les méthodes, et
c'est à peu près tout. Merci donc d'avoir
regardé la vidéo. Je te verrai
au prochain cours.
65. Créer un cours de base, partie 2: Avant de passer
à une nouvelle leçon programmation orientée objet, je voulais vous donner
un autre exemple afin que vous puissiez vraiment comprendre
ce que nous faisons. Créons donc une classe
différente. OK ? Faisons quelque chose en
rapport avec la cybersécurité. Supposons, par exemple, que
nous voulions créer une classe appelée user, d'accord ? Et les comptes utilisateurs
auront des attributs différents tels que le nom d'utilisateur, le rôle, d'accord ? Et puis
créons également une méthode. Disons, par exemple,
que peut faire l'utilisateur ? L'utilisateur peut se connecter. OK ? Alors faisons-le. Je vais donc supprimer
tout ce code. Et tout en haut,
je vais juste
dire classe d'utilisateur. OK ? Alors, comment
créons-nous notre utilisateur ? Nous disons « classe », puis « utilisateur », «
colon ». Et maintenant, que devons-nous faire ? Nous devons définir
les attributs qui seront associés à
chaque compte utilisateur. Je vais donc dire d'y définir le soulignement. Sur le score. Et maintenant, entre parenthèses,
qu'est-ce que nous avons ? Nous avons le moi parce que
nous devons faire référence à chaque compte utilisateur
individuel. Je vais donc dire self, puis les attributs seront nom
d'utilisateur, et passons
au rôle ? Encore une. Rouleau. Il fait froid
, et c'est tout. Quelle sera
la prochaine chose à faire ? La prochaine étape consiste
maintenant à attribuer des variables à chacun
de nos attributs. Je vais donc dire que self
point use a name equals, use a name. C'est assez
simple. Et puis le rouleau de points automatique doit
être égal à quel rouleau. Ça y est. OK, nous avons donc
défini les attributs. Maintenant, qu'en est-il des méthodes ? Créons une seule
méthode appelée login, d'accord ? Ainsi, un utilisateur peut réellement se connecter. Je vais donc dire «
mort », puis me connecter. Et puis entre parenthèses,
qu'est-ce que ça va être ? Ça va être soi-même. Lui-même. Colon. Et maintenant, que doit-il se passer une fois qu'un
utilisateur s'est connecté ? Laissez-nous imprimer un message de bienvenue. Je vais donc utiliser
les codes de chaîne F, puis nous pouvons dire « bienvenue » et laisser notre Python remplir le reste des informations sur
place. Alors, bienvenue. Et puis le nom d'utilisateur personnel. Et voilà, c'est
tout ce que nous devons faire. Et maintenant, enfin et surtout, créons un objet, essentiellement un compte utilisateur,
puis appelons notre méthode. Arme ? Je vais donc dire
admin sur le score utilisateur, cela peut représenter
notre premier compte qui sera réservé à un administrateur. Ce sera
égal à quel utilisateur. Et maintenant, entre crochets, nous
devons renseigner les valeurs des attributs qui
sont username et roll. Donc, dans ce cas, le nom d'utilisateur sera Alex pour le
moment. OK ? Le nom d'utilisateur est Alex. Sorry encode, Alex,
et puis le rôle d' Alex est évidemment celui
d'un administrateur Donc, administrateur. OK. Et enfin, appelons notre méthode. Ce sera donc admin
scouser point log in Brackets. Et si ce programme fonctionne, il devrait dire quelque chose
comme : « Bienvenue Alex ». Fuyons. Et voilà. Bienvenue, Alex. C'est donc un autre exemple de création
d'une classe, de définition des attributs de chaque objet de cette classe. Ensuite, nous avons également
créé une méthode pour chaque objet individuel. Et puis, bien sûr, nous avons créé un objet réel, puis nous avons finalement
appelé la méthode associée à l'objet. J'espère donc que vous avez maintenant une
meilleure compréhension de l'OOP. Merci d'avoir
regardé la vidéo. Je te verrai au prochain cours.
66. L'encapsulation (1080p): L'un des
concepts fondamentaux de la programmation orientée objet
OOP est connu
sous le nom d'encapsulation, qui consiste essentiellement à garder certaines
données privées afin qu'elles ne soient accessibles
ou modifiées que de certaines manières Maintenant, c'est très utile en
cybersécurité car cela nous
permet de protéger les
données sensibles comme les mots de passe, d'accord ? Ainsi, par exemple, nous pourrions écrire ou
créer une classe et des objets qui stockeront le mot de passe d'
un utilisateur en privé, puis
fourniront uniquement un moyen de vérifier si le mot de passe saisi
est réellement correct. Permettez-moi donc de vous montrer comment nous pouvons
encapsuler des données à l'aide de l'OOP. Je vais suivre
exactement le même cours, d'accord ? Donc, classe utilisateur, je vais changer le rôle
attributif en mot de passe OK ? Et puis,
évidemment, ici, je vais changer notre rôle
de point personnel en mot de passe, et ce
sera également égal à notre mot de passe. Cependant, la seule façon
de dire à Python que, hé, cet attribut en particulier, nous voulons qu'il soit privé. Ce n'est pas une information publique. Ceci est privé
uniquement pour l'utilisateur. Et nous pouvons le faire en
passant ici devant
le P pour le mot de passe, puis
en ajoutant un double trait de soulignement Donc, ici, les doubles traits de soulignement
indiqueront à Python que,
hé, il s'agit d'un attribut
privé Nous voulons résumer
les informations ici. Créons maintenant une méthode que nous pouvons
utiliser pour vérifier
si l'entrée
fournie par l'utilisateur correspond
réellement au vrai
mot de passe de cet utilisateur. Donc, ce que je vais
faire maintenant, c'est définir notre méthode, et appelons-la authentifier, d' accord ? Définissez donc authentifier. Et maintenant, entre parenthèses, je vais choisir
moi et mon mot de passe, d'accord ? Et nous le
faisons parce que self désigne
ici l'utilisateur
dont nous
voulons réellement vérifier le mot de passe,
puis le mot de passe lui-même
que nous sommes en train de vérifier, d'accord ? Et maintenant c'est la clé. Il faudrait revenir
et maintenant self dot Osco, passe sera désormais
égal au mot de passe Nous voulons donc vérifier si le
mot de passe
stocké pour l'utilisateur sera le même que le mot de passe
fourni en entrée. C'est ce que cela va faire
ici, ligne 8. Donc, si le mot de passe correspond, ligne huit renverra vrai, mais s'il n'y a pas de correspondance, elle renverra faux. OK ? Nous devons donc maintenant créer nos objets utilisateur
et nous assurer que, bien entendu, chaque fois que vous
créez
des objets utilisateur, indentation se trouve à l'extérieur Il devrait être sur la
même indentation que la classe elle-même, d'accord ? Ne le faites pas à l'intérieur de la classe mais à l'extérieur.
Il faut que ça corresponde, d'accord ? Donc, ici, je ne
vais pas dire utilisateur égal, et maintenant utilisateur, disons que nous
devons fournir un nom d'utilisateur. Allons-y avec un invité, d'accord. Allons-y avec un invité.
Un invité très simple. Et maintenant pour le mot de passe, je vais choisir
S puis dire SOD,
Fish, un, deux, trois, d'accord ? C'est donc le
mot de passe que nous avons créé pour notre utilisateur invité, d'accord ? Bien. Maintenant, essayons d' authentifier l'utilisateur en utilisant des mots de passe
différents, d'accord ? Essayons donc d'utiliser le bon mot de passe, puis
le mauvais, d'accord ? Alors, comment allons-nous
appeler notre méthode ? Je vais dire imprimer. Et maintenant, entre crochets, le point
d'authentification de l'utilisateur. Nous appelons donc
la méthode en ce moment pour authentifier notre utilisateur Et entre parenthèses, nous voulons fournir le mot de passe que
nous voulons vérifier. Donc, si le mot de passe est
là en ce moment,
laissez-moi choisir le bon. Ce sera le même SOD,
poisson un, deux, trois, non ? Et puis Brackets, d'accord ? Si je lance le programme en ce moment, et oh, la ligne 12 est
un message d'erreur. Oh, nous devrions avoir un support
supplémentaire ici. Désolée pour ça. Laisse-moi
essayer de le lancer à nouveau. Et voilà. Maintenant, cela dit vrai parce que
le mot de passe ici, STfish 123, est le même que le mot de passe réel que
nous avons donné à l'utilisateur Maintenant, ce que je vais faire,
c'est simplement copier cette ligne, d'accord, copier-coller. Essayons maintenant d'utiliser
un autre mot de passe. Je vais donc
passer à la majuscule A, en Colombie-Britannique, un, deux, trois, et d'accord, c'est tout. Alors laisse-moi y aller maintenant. Exécutez à nouveau le programme, et vous pouvez
maintenant voir qu'il est faux car notre méthode a vérifié que ABC 123
n'est pas égal à SotFish 123 C'est ainsi que nous pouvons encapsuler des données l'aide de la
programmation orientée objet. Tout ce que nous avons vraiment
à faire pour indiquer qu' un attribut particulier est
privé et que nous voulons
encapsuler est d'avoir doubles traits de soulignement
devant
le nom de l'attribut réel Alors, merci d'avoir
regardé la vidéo. Je te verrai
au prochain cours.
67. Héritage: concept très important de la programmation orientée
objet sera le concept
d'héritage. Et tout comme en
anglais, nous savons que l'héritage
se produit lorsque, vous savez, quelque chose est transmis d'
une personne à une autre, n'est-ce pas ? Ainsi, en Python, nous
pouvons créer des versions
spécialisées d'une classe sans même avoir
à réécrire le code Nous pouvons essentiellement créer une classe
enfant qui peut hériter attributs et des méthodes
d'une classe parent Je veux donc vous donner un
exemple ici, d'accord ? Puisque nous avons affaire
à une classe d'utilisateurs, évidemment dans les systèmes
et les réseaux, nous avons différents niveaux
d'autorisations, n'est-ce pas ? Un utilisateur normal peut
accéder à certains types de fichiers,
puis les imprimer, tandis qu'un utilisateur administrateur
pourra faire
exactement les mêmes choses qu'un utilisateur normal. Mais comme il s'agit
d'un utilisateur administrateur,
il aura des autorisations supplémentaires,
comme la possibilité de dire, par
exemple, de modifier
ces fichiers, n'est-ce pas ? Donc, ce que je vais faire
maintenant, c'est créer
une classe pour l'utilisateur normal, puis
je vais une classe pour l'utilisateur normal créer
une autre classe qui sera l'utilisateur administrateur qui
héritera des méthodes
de l'utilisateur normal Donc, ici, nous
avons un utilisateur de classe, et maintenant je définis
un attribut de base, et ce sera
le nom d'utilisateur, d'accord ? Maintenant, l'étape suivante consistera
simplement à dire que nom d'utilisateur
self point
est égal à égal,
puis, bien sûr, le nom d'utilisateur. Maintenant, je veux créer une méthode spécialement
pour notre utilisateur ici. Je vais donc dire définir, et disons qu'un
utilisateur normal peut se connecter, n'est-ce pas ? Ils peuvent se connecter. Je
vais donc vous dire de vous connecter. Et maintenant, entre parenthèses,
je vais dire « moi ». D'accord ? Et puis, quand ils
se connectent, faisons quelque chose. Supposons que l'utilisateur imprime et
que son nom d'utilisateur soit connecté. Disons qu'il a de l'espace
ici, qu'il s'est connecté. D'accord. Jusqu'à présent, ce que nous avons fait
ici, c'est que nous avons créé la classe utilisateur avec l'
attribut username. Nous avons également attribué une
méthode appelée Log in qui affichera essentiellement le nom de
l'utilisateur qui s'est connecté. Cependant, je vais maintenant
créer une autre classe qui héritera
non seulement du nom d'utilisateur de l'attribut de la classe utilisateur, mais également de la méthode de connexion Comment est-ce que je vais m'y prendre ?
Je vais venir ici et ensuite remarquer l'
intention que je fais jusqu'au bout. Maintenant, je vais dire classe et fournir le
nom de cette nouvelle classe. Je vais donc dire admin. Et puis nous pouvons même dire
admin user à titre d'exemple. En fait,
restons-en à l'administrateur, d'accord ? Donc admin, et maintenant entre crochets, je vais dire utilisateur. Colon. Donc, ici, à la ligne 9, nous avons créé une nouvelle
classe d'utilisateur appelée admin user qui héritera
de l'attribut, du nom
d'utilisateur, puis de la méthode de
connexion à la classe utilisateur Je vais aller
plus loin et ajouter maintenant une méthode
supplémentaire,
car il s'agit d'un utilisateur administrateur, il
peut faire des choses supplémentaires. Je vais donc dire :
définissons, appelons cet accès sur ceux appelés
journaux parce qu'ils sont administrateurs, ils peuvent accéder aux journaux. Je vais donc
dire « moi », « appelez ». Et maintenant,
imprimons simplement entre crochets. Je peux utiliser la chaîne F et disons quelque chose comme le point self. Le nom d'utilisateur accède aux journaux. Et ça y est. Et voilà. Nous avons terminé. Alors maintenant, ce que je vais
faire, c'est créer notre utilisateur administrateur. Je vais donc
dire que admin est égal, et maintenant en majuscule admin user. Et puis, entre parenthèses, nous allons
fournir le nom d'utilisateur admin. D'accord ? Et maintenant,
laissez-nous exécuter les méthodes. Je vais donc dire admin
point Login brackets. Et exécutons également
la deuxième méthode, qui sera admin point, Access underscore
logs. Et c'est ici. Voyons maintenant si cela fonctionnera
réellement. Fuyons. Et oh, j'ai un autre
administrateur Arrow Oh, je m'excuse. Ce devrait être l'administrateur ici. Je me suis laissé emporter. Admin est égal à admin, puis ils
utilisent le nom admin. Je m'excuse. Alors laissez-moi exécuter
le programme une fois de plus. Et voilà, d'accord,
donc l'administrateur s'est connecté, et maintenant l'administrateur
accède aux journaux, et c'est tout. Nous n'avons donc pas eu à spécifier
que l'utilisateur administrateur, l'administrateur de classe, aura le nom d'utilisateur du paramètre ou de l'
attribut ou la méthode de connexion. Tout ce que nous avions à faire était d'
indiquer à Python que ce nouvel administrateur de classe hérite
en
fait attributs et
des méthodes de la classe utilisateur d'origine Et c'est un héritage pour toi. Merci d'avoir
regardé la vidéo. Je te verrai au prochain cours.
68. Polymorphisme: Un autre concept de l'OOP est le concept de polymorphisme, qui se traduit essentiellement par même action, mais Le problème avec le polymorphisme, c'
est qu'il va permettre aux classes d'avoir des méthodes
portant exactement le même nom, mais de se comporter différemment Ainsi, à titre d'exemple, toujours en ce qui concerne
la classe d'utilisateurs, nous pouvons avoir différents
types d'utilisateurs qui se connectent
aux deux d'une manière différente. Donc, à titre d'exemple, prenons
des règles différentes. Je vais donc
créer une classe pour l'utilisateur normal, puis une
classe pour l'utilisateur administrateur, puis ils auront
des moyens uniques de se connecter. Alors regarde ça d'accord. Je vais venir
ici tout de suite et créer une classe d'utilisateur régulier. OK. Et maintenant, je vais définir très simplement la méthode, connecter et me connecter, d'accord ? Notez que je n'ai transmis
aucun attribut. Je passe directement
à la méthode, d'accord ? Donc, ce que je vais faire maintenant,
c'est simplement dire imprimer maintenant. Je dirais simplement que l'utilisateur
normal s'est connecté. OK ? Maintenant, regardez ceci, je vais créer
une autre classe, et
appelons-la l'utilisateur admin. OK, appelez, et maintenant encore une fois, définissez et maintenant exactement la
même méthode, connectez-vous vous-même. Mais maintenant, ce sera
un
message d' impression différent, car maintenant je
vais dire que l'administrateur
s'est connecté. Et permettez-moi de fermer ceci, et le tour est joué. Maintenant, pour ce qui est du polymorphisme
proprement dit, je vais m'en servir, assignons un utilisateur
égal à un utilisateur normal Créons nos
premiers objets ici pour l'utilisateur normal. Créons également un objet pour l'utilisateur administrateur,
et bien sûr, je l'appellerai admin égal
à admin user, et c'est le cas. Nous avons donc créé des objets pour l'utilisateur normal
et l'utilisateur administrateur. Appelons-les maintenant. Je vais donc dire «
user dot login ». Des crochets, et maintenant aussi un
point d'administration Log N. Et voilà. Alors maintenant, essayons d'exécuter le
programme, et voilà, l'utilisateur
normal s'est connecté, administrateur s'est connecté. C'est donc le concept de polymorphisme où vous pouvez
avoir deux classes différentes Avec exactement la même méthode, mais cette méthode agira
différemment, selon l'objet
ou
l'objet de classe qui appelle cette méthode. La méthode utilisée ici
est évidemment la méthode de connexion. Cela s'applique à
la fois à l'utilisateur normal la classe
et à l'utilisateur administrateur de classe, mais il
se comportera différemment car il imprimera un message différent en fonction l'objet de classe
réellement connecté. C'est donc du polymorphisme pour vous. Même action, comportement différent. Merci d'avoir
regardé la vidéo. Je te verrai au prochain cours.
69. Aperçu du projet final: Bienvenue dans le projet final, notre dernier projet Python. Et ensemble, nous
allons créer un système d'
enregistrement des utilisateurs très puissant. Maintenant, nous avons déjà construit quelque chose de
similaire, mais cela va
être beaucoup plus amélioré. Maintenant, j'ai caché le code. Je ne veux pas que tu voies
le code pour l'instant. Donc, ce que je vais faire, c'est
lancer le programme pour que vous puissiez
voir de quoi il s'agit. Nous avons donc le système d'
enregistrement des utilisateurs, trois options principales :
s'inscrire, se connecter ou quitter. Je vais donc essayer de m'
inscrire et je vais
entrer un nom d'utilisateur Allons-y avec Alex, d'accord ? Et je vais vérifier ça, d'accord ? Je vais utiliser
un mot de passe assez puissant. Mais maintenant,
regardez ça, d'accord ? Cela indique que le mot de passe
n'est pas assez fort. Le mot de passe doit comporter au moins
huit caractères. Nous avons donc un outil
de vérification des mots de passe. Mais regarde ça, d'accord. Je vais y retourner pour m'
inscrire, d'accord ? Laisse-moi venir
ici, appuyer sur le bouton 1. Entrez un autre nom
d'utilisateur cette fois. Laisse-moi partir avec Boris, d'accord ? Et maintenant, regardez ça. OK, je vais
opter pour le Bis 123. Boris. C'est donc assez long. Cela représente plus de
huit personnages. J'appuie sur Entrée. Mais alors il dit mot de passe, il n'est
pas assez fort. Le mot de passe doit inclure au
moins un symbole spécial. Notre outil de vérification des mots de passe
va donc vérifier
quatre critères principaux Il va
s'assurer que le mot de
passe comporte au moins huit
caractères, une
lettre majuscule, un chiffre et un symbole spécial, d'accord ? Je vais donc essayer de m'inscrire
à nouveau, d'accord ? Cette fois, je
vais utiliser le nom d'utilisateur Alice. Et maintenant, allons-y avec un
vrai mot de passe. Je vais choisir Alice un,
deux, trois avec le symbole d'ajout. Et voilà, il est écrit « L'utilisateur a réussi », et maintenant je vais
essayer de me connecter. D'accord ? Jette un œil à ça.
Tu vas adorer ça, je vais me connecter en tant qu'Alice. D'accord ? Et maintenant, mot de passe ,
Alice, un, deux, trois,
avec le symbole d'ajout. Et maintenant, la connexion a réussi,
mais jetez un œil à ceci. Nous avons un menu de post-connexion. Nos utilisateurs connectés
pourront donc accéder à un menu de connexion où ils pourront consulter leurs journaux ou
simplement se déconnecter. Alors maintenant, en tant qu'Alice, si je voulais voir mes journaux, j'appuie sur un, et c'est parti. Il indique pour le moment que
les journaux de l'utilisateur Alice. Alice s'
est enregistrée avec succès à cette date, puis Alice s'est également connectée
avec succès. Nous allons donc mettre
en œuvre essentiellement un système d'audit qui
gardera une trace de chaque
utilisateur et de chaque activité du système. Regardez également ceci, nous allons avoir le fichier
TXT des utilisateurs qui
stockera tous les noms d'utilisateur et leurs mots de
passe correspondants, mais jetez un œil à ceci. Les mots de passe
vont être hachés. Ils ne
seront pas en texte brut. Nous allons implémenter
une fonction de hachage pour hacher les de passe
pour des raisons de sécurité Vous pouvez donc voir
ici que nous allons également implémenter
un certain hachage, mais ce n'est pas le cas. Nous allons
également créer un fichier journal d'audit
qui gardera une trace de tous les journaux du système Vous pouvez donc voir dès maintenant le champ
d'inscription pour Alex, champ
d'enregistrement pour Boris, Ale s'est
enregistré avec succès, puis Ale s'est également
connecté avec succès. Il s'agira donc d'un système
d'enregistrement avancé complet avec un outil de vérification de mot de passe, et il comportera également un hachage de tous les mots de passe ainsi qu'une
fonction Alors voilà le truc, d'accord ? Je vais vous fournir un document texte contenant
quelques conseils
et astuces utiles si vous
voulez essayer d' écrire ce programme vous-même,
d'accord ? Donc, en annexe à cette vidéo, je vais vous
fournir un fichier texte avec tous les conseils et astuces utiles. Je vais vous expliquer le processus de réflexion
général. Et si vous choisissez de
ne pas le faire, si vous
voulez simplement travailler avec moi, j'ai divisé l'ensemble du
projet en
huit mini-projets. Je vais donc le décomposer étape par étape. Nous allons ajouter
les fonctionnalités une par une, une par
une, une par une. Et j'espère que la façon dont j'ai
abordé la décomposition de
ce projet
vous permettra de le comprendre plus facilement et
de le suivre. Donc, comme d'habitude, si vous
avez des
questions, si vous essayez de créer le programme vous-même
et que vous êtes coincé quelque part, vous pouvez toujours me contacter, et j'essaierai vous
aider et de vous
aider de toutes les manières possibles. Je suis donc très heureux
de travailler avec vous à la création de ce système
d'enregistrement des utilisateurs. Sans perdre plus de
temps, commençons.
70. Partie 1 : créer l'interface utilisateur: OK, alors commençons. Et la première chose que
nous allons
faire est de créer
l'interface utilisateur qui
permettra à l'utilisateur de choisir
entre les options d'enregistrement, de connexion et de sortie, d'accord ? Appelons donc cette fonction
la fonction principale. Je vais donc dire définir les crochets
principaux, deux points. Et maintenant, disons que c'est vrai. OK, donc tant que le
programme est en cours d'exécution, affichons les options du menu. Je vais donc dire, tout d'
abord, les impressions, et nous pouvons dire, tout d'abord, laissez-moi ajouter
mes codes ici. Je vais donc dire l'option
numéro un, le registre des points. OK. Fermons la colonne. Et puis
imprimons l'option numéro deux, au point, Connectez-vous. Et puis, option numéro
trois, très,
très ennuyeuse,
il suffit de sortir. OK ? C'est bon. En fait, vous savez,
imprimons une autre déclaration
tout en haut, peu comme un message de bienvenue. Alors, imprimons,
disons bienvenue dans le système d'enregistrement des utilisateurs. OK. Et voilà. Très bien, nous avons
donc toutes les
options définies. Maintenant, demandons à l'utilisateur
de nous fournir une option. Quelle option particulière
voudront-ils choisir ? Je vais appeler
la variable choice pour stocker l'option particulière. Je vais donc faire part de vos contributions,
puis laissez-nous vous dire ce que vous aimeriez faire ? OK. Et
voilà. C'est bon. Ainsi, une fois que l'utilisateur a
fourni son option, nous devons créer des scénarios affectés à chacun d'entre eux. Je vais donc commencer
par la toute première
option et dire que notre choix correspond à l'
option numéro un, nous allons imprimer, disons, l'
enregistrement des inscriptions. Sélectionné. OK. Maintenant, évidemment, rien d'autre ne
va se passer pour le moment. Nous ajouterons la
fonctionnalité réelle ultérieurement. Mais passons
à l'option suivante. Je vais donc dire LIF, le choix est égal, puis l'option numéro deux Ajoutons deux points. Alors, que
va-t-il se passer ici ? Nous pouvons dire imprimer,
puis nous pouvons dire se connecter en sélectionnant OK. Ajoutons maintenant l'
option numéro trois, choix
AF est égal à l'option
numéro trois et à deux points. Nous pouvons simplement dire imprimer et quitter le système. OK ? Et je pense que
ça devrait aller. N'oubliez donc pas qu'il
sera également nécessaire d'ajouter l'instruction break au
cas où l'utilisateur déciderait de choisir une
option qui n'existe pas. Je vais donc entrer et
dire break et maintenant break, saisir autre chose dans notre colonne, et maintenant nous pouvons imprimer. Supposons que le choix ne soit pas valide, veuillez réessayer.
OK, j'aime bien ça. Choix non valide,
veuillez réessayer. Et voilà. OK, alors allons-y
dès maintenant pour exécuter le programme. Je vais donc
dire « main » et maintenant « crochets », et voyons ce qui va se passer. Allons-y et
lançons le programme. Et puis vous vous dites : OK, essayons l'option numéro un. OK ? Enregistrer sélectionné.
Option numéro deux, connexion sélectionnée,
option numéro trois. Quitter le système.
OK, jusqu'ici bien, nous avons ajouté le premier
élément de notre programme. Nous avons ajouté l'interface
utilisateur. la prochaine vidéo,
nous allons donc commencer à aborder chaque option à la fois, commençant par la fonction
d'enregistrement.
71. Partie 2 ajouter la fonction d'enregistrement de l'utilisateur: Reviens. Passons maintenant à la première fonction
principale du programme qui permettrait l'utilisateur de s'inscrire. D'accord ? Allons donc jusqu'
en haut,
poussons la
fonction de l'interface utilisateur jusqu'en bas, et revenons ici. En fait, je
vais juste ajouter une note et dire fonction d'enregistrement. OK. OK, alors comment
appelle-t-on cette fonction ? Disons enregistrer un utilisateur de
soulignement, non ? Enregistrer un utilisateur, crochets. Ajoutons deux points OK, nous voulons
donc accepter le
nom d'utilisateur et le mot de passe de l'utilisateur. Invitons-les donc
à le faire. C'est bon. Je vais donc dire que le nom
d'utilisateur est égal et maintenant entre crochets, disons, un nom d'utilisateur. Colon. OK. Ensuite, demandons-leur également
le mot de passe. Donc, le mot de passe est égal, entrez, puis entre crochets, entrez un mot de passe, deux points, et le tour est joué. Très bien, donc pour le
moment, une fois que l'utilisateur a fourni le nom d'utilisateur
et le mot de passe, nous aimerions les
stocker dans un fichier. Nous pouvons appeler le fichier users
point TXT par exemple, d'accord ? Donc, ce que nous allons faire, c'est dire
avec et maintenant ouvrir. OK ? N'oubliez pas que nous avons besoin de cette
fonction pour créer notre fichier. Ajoutons maintenant le
nom du fichier. Je vais l'appeler
users point TXT. Et maintenant, activons
le mode ajout. Donc je vais dire A. D'accord.
Et puis en tant que fichier ? Colon. C'est bon. Maintenant, nous pouvons utiliser
les bonnes fonctions. Je dirais le point du fichier à droite. Et maintenant, entre crochets, nous pouvons utiliser notre chaîne F, puis ajouter des accolades
sympas, le nom d'utilisateur Fermons cela, puis nous
pouvons également ajouter deux points pour séparer le mot
de passe du nom d'utilisateur. Cole se reporte donc, puis nous pouvons
ajouter notre mot de passe Ensuite, pour faire bonne mesure, nous pouvons faire la barre
oblique inverse puis N pour que les informations de chaque utilisateur soient stockées sur
une ligne séparée Chaque identifiant d'utilisateur
sera stocké sur une ligne séparée,
et voilà OK, tout ce que nous avons à faire pour
le moment, c'est
imprimer un message simple qui
dira quelque chose comme imprimer, puis nous pourrons dire que l'
enregistrement de l'utilisateur a réussi. OK. Et voilà. D'accord, alors comment intégrer maintenant
notre fonction d'enregistrement à
la fonction principale elle-même ? Ce que nous allons
faire maintenant, c'est aller jusqu'au bout et dire : si le choix
est égal à un, alors nous pouvons le supprimer. OK, nous n'avons plus besoin de
cette déclaration imprimée. Et nous allons simplement
appeler la fonction. Et la fonction que
nous avons créée ici était celle de register underscore user Ici, je vais simplement dire « enregistrer un
utilisateur d'Underscore », puis entre crochets Et puis voilà. J'espère donc que cela devrait fonctionner. Allons-y dès
maintenant et testons-le. Je vais donc lancer le programme. OK ? Premièrement, nous voulons nous
inscrire, appuyez sur Entrée. Entrez, nom d'utilisateur. Je
vais y aller avec Alex. Mot de passe. Je vais juste repartir
avec Alex, d'accord ? Juste pour un test. Entrez et OK. L'enregistrement de l'utilisateur
a été réussi, et nous avons le
fichier texte des utilisateurs à points ici Et si je l'ouvre, génial, vous pouvez le voir, dit Alex Alex. C'est tellement fantastique. Vous pouvez
voir en ce moment que cela fonctionne vraiment bien
jusqu'à présent. Rejoignez-moi dans la leçon suivante
où nous allons maintenant créer la fonction qui
permettra à nos utilisateurs de se connecter.
72. Partie 3 ajouter la fonction de connexion: Eh bien, revenez. Alors maintenant, ajoutons la fonction
permettant à nos utilisateurs de se connecter. Je vais donc dire « define », et allons-y avec le login le score
sera le nom d'utilisateur. Ajoutons une colonne. En fait,
ajoutons une note, d'accord ? Et nous pouvons simplement dire fonction
de connexion. Et voilà. D'accord. Ainsi, pour que l'utilisateur puisse se connecter,
il aura besoin du
nom d'utilisateur et du mot de passe. Commençons donc par
dire que le nom d'utilisateur est égal à, puis entrez entre crochets, les codes entrent votre nom d'utilisateur. Colon. OK.
Ensuite, nous pouvons également ajouter le mot de passe égal à la saisie, entre crochets, entrer votre mot de passe, et le tour est joué. D'accord. Maintenant, afin vérifier que le nom d'utilisateur
et le mot de passe existent, nous allons devoir
ouvrir le fichier TXT à points de nos utilisateurs. Je vais donc dire avec open, et maintenant entre crochets, quel est
le nom du fichier ? C'est le point TXT des utilisateurs. Et puis quel est le mode
que nous allons utiliser ? Nous optons pour le mode lecture. Parce que nous voulons
lire dans le fichier, et je vais
dire en tant que fichier, deux points. Et maintenant, créons
une variable appelée
users qui accepterait la fonction
file point red lines. Parce que n'oubliez pas que
nous allons devoir lire ligne par ligne les informations de chaque utilisateur dans le texte à
points du fichier. Je dirais donc que les utilisateurs sont égaux
aux lignes de lecture des points du fichier, et maintenant aux crochets,
et le tour est joué. Nous devons maintenant vérifier si les informations d'identification
de l'entité
correspondent à un enregistrement stocké. Alors, qu'allons-nous faire ? Nous allons
créer une boucle à quatre boucles. Je vais donc dire quatre. Utilisons la variable
user dans users. OK ? Alors maintenant, que
voulons-nous vérifier ? Nous voulons vérifier le
nom d'utilisateur puis le mot de passe. Nous pouvons donc créer deux
variables ici. Nous pouvons utiliser le
OK stocké, stocké sur la partition, le
nom d'utilisateur, puis la virgule, nous pouvons également utiliser le mot de passe stocké
sur la partition Let crée deux
variables pour représenter le nom d'utilisateur enregistré
, puis le mot de passe enregistré. Et maintenant, comment vérifier ?
Tout d'abord, vérifier si le nom d'utilisateur est correct, puis
aussi le mot de passe. Mais maintenant,
regardez ça, d'accord ? Les utilisateurs pointent le textifle tel quel. Nous avons Alex
, puis le point deux-points ALC. Nous devons donc
trouver un moyen séparer le nom d'utilisateur du mot
de passe, et nous savons que c'est le symbole
deux-points qui les
sépare, d'accord ? Nous pouvons donc utiliser la fonction split pour séparer le
nom d'utilisateur et le mot de passe. Mais nous pouvons également utiliser
la fonction strip. N'oubliez pas la fonction strip. Nous l'utilisons pour supprimer
les caractères blancs ou les espaces vides,
des choses comme ça. OK ? Alors revenons ici. Donc, ce que nous allons
faire maintenant c'est dire utilisateur, et maintenant ajoutons la fonction strip pour supprimer tout l'
espace nécessaire dans le nom d'utilisateur, accord, nos crochets, et maintenant je vais ajouter la fonction split. Et par quoi séparons-nous le nom d'utilisateur et le mot de passe ? Ce sera le colon, et voilà. Nous allons donc
diviser le nom d'utilisateur et le mot de passe par deux points. Donc, à partir de
maintenant, nous pouvons vérifier. Nous pouvons dire si le nom
d'utilisateur est le
même que le nom d'utilisateur du trait de
soulignement enregistré, et quel mot de passe est égal du
trait de soulignement.
Que voulons-nous faire ? Nous voulons imprimer et dire « Connectez-vous ». Succès et voilà. Génial, génial aussi.
Et puis à partir d'ici, nous pouvons simplement revenir
pour le moment, d'accord. Plus tard, nous ajouterons
des fonctionnalités supplémentaires. Mais pour l'instant,
revenons simplement au
début du programme. Nous allons donc
quitter la fonction après une connexion réussie. Et bien sûr, nous pouvons également imprimer au cas où quelque chose
ne se passerait pas correctement. Nous pouvons imprimer neuf crochets. Nous pouvons simplement dire « non valide »
en utilisant n ou mot de passe. Et voilà. Permettez-moi d'ajouter un peu
d'espace ici, et c'est parti. OK, alors j'espère que
cela devrait fonctionner. Permettez-moi de l'
intégrer dans la fonction principale. Donc, ce que nous voulons
faire maintenant, c'est là qu'il est indiqué le
choix AF numéro deux, nous pouvons supprimer l'
instruction d'impression et simplement ajouter le nom
de la fonction, qui est « login » sur l'
utilisateur de la partition et maintenant entre crochets, et le tour est joué. OK. Je croise les doigts. Laisse-nous exécuter le programme. Et voyons voir. Je vais
directement me connecter, car nous avons
déjà créé le nom d'utilisateur et le mot de passe
Alex. Le nom d'utilisateur est donc Alex. Le mot de passe est Alex,
et voilà. Génial, connexion réussie. Essayons de voir si nous
accepterons un nom d'utilisateur différent
qui n'existe pas. Je vais donc utiliser Log In, et allons-y avec Philip. Entrez le mot de passe, triez,
pêchez, et c'est parti. Il indique un
nom d'utilisateur ou un mot de passe invalide, donc cela fonctionne,
génial, génial. Nous avons donc ajouté avec succès
la fonction d'enregistrement. Nous avons également ajouté avec succès
la fonction de connexion. Alors maintenant, rejoignez-moi dans
la toute prochaine vidéo où nous allons faire
avancer le programme en
présentant le vérificateur de mots de passe qui garantira que le mot de passe créé répond à
certains critères de sécurité Je te verrai alors.
73. Partie 4 ajouter l'outil Vérificateur de force du mot de passe: Eh bien, revenez. Nous devons donc maintenant implémenter l'outil
de vérification des mots de passe. Jusqu'à présent, tout va bien, nos utilisateurs peuvent créer
des comptes, se connecter. Mais nous voulons nous assurer que les mots de passe
qu'ils ont utilisés pour créer leurs comptes sont suffisamment solides. Et nous avons une liste de critères. Nous voulons nous assurer
que le mot de
passe comporte au moins huit caractères. Il contient une majuscule. Il contient un chiffre et il contient également au
moins un symbole spécial. Maintenant, les symboles sont ceux que j'ai écrits
ici, vous pouvez le voir. Je les ai tous listés. Donc, ce que je vais
faire, c'est tout en haut, d'accord, allons-y. Permettez-moi de couper ceci d'
abord, je vais le couper. Nous allons donc
devoir importer une bibliothèque, qui sera la bibliothèque d'expressions
régulières. Donc, tout en haut, disons import
puis R E. D'accord ? Permettez-moi donc
d'ajouter une note indiquant Importer pour les
expressions régulières. OK ? C'est bon. Alors maintenant, ajoutons une note, et je parlerai de la fonction de vérification des
mots de passe OK. Je pense que c'est bon. Fonction de vérification de mot de passe. OK, alors créons
le nom de la fonction. Je vais donc l'appeler define, et ensuite nous pouvons dire si le score est fort sur le score comme mot de passe. OK ? Que diriez-vous de ça ? Et
maintenant, bien sûr, à l'intérieur, nous allons
accepter une variable, qui sera le mot de passe
lui-même. OK ? Et ajoutons
deux points. Voilà. C'est bon. Commençons par
ajouter les critères. Le tout premier
critère ici
sera la longueur du mot de passe. Nous pouvons donc dire si et
maintenant la fonction len, qui représentera la longueur
du mot de passe. OK ? Donc, s'il est inférieur à
huit, ajoutons nos deux points. Qu'allons-nous dire ?
Nous allons renvoyer faux. OK, nous allons
renvoyer faux. En fait faux F, fausse virgule. Ensuite, nous pouvons fournir
quelque chose comme un feedback. Dire à l'utilisateur que « Hey », votre mot de passe
doit comporter au moins huit caractères.
Alors faisons-le. OK. Alors remarquez maintenant
deux choses qui se sont produites. Tout d'abord, nous
renvoyons des faux, ce qui signifie que le mot de passe n'est pas assez
fort, puis nous envoyons également
un commentaire Gardez cela à l'esprit, cela va
être très, très important. Passons
aux critères suivants. Je vais donc venir
ici et dire que
si et maintenant aucune recherche RE n'est effectuée, nous voulons effectuer une recherche à
l'aide du module RE Permettez-moi de m'assurer que je l'ai bien tapé
, Research. Et maintenant, entre crochets, nous voulons rechercher
s'il y a
des lettres majuscules
dans la chaîne. OK ? Nous disons donc rechercher
et maintenant Roy code, des codes
uniques,
ajoutons nos crochets. Que recherchons-nous ?
Nous recherchons de A à Z. Voici
donc une méthode utilisant la bibliothèque d'
expressions régulières Nous voulons rechercher dans
notre mot de passe pour
vérifier s'il y a une
majuscule entre A et Z.
Donc de A à Z, puis une virgule, puis un OK ? On peut donc renvoyer de la fausse
fourrure et pourquoi fausse ? Parce que nous avons dit, sinon. Donc, si le programme recherche
le mot de passe et ne trouve pas de lettre majuscule
de A à Z, ce ne sera pas le cas. Nous allons donc renvoyer faux, puis nous pourrons fournir
quel commentaire. Je peux donc dire que le mot de passe
doit
inclure au moins une lettre
majuscule OK ? Et permettez-moi d'ajouter
le point juste là,
et voilà. OK, maintenant, pouvez-vous essayer d'
écrire le code à rechercher pour
voir si un chiffre de 0 à 9
se trouve dans le mot de passe OK ? Nous pouvons dire, sinon, que nous effectuons une recherche par points. OK. Ensuite, entre parenthèses
R et maintenant entre codes simples, je vais ouvrir une nouvelle
tranche, maintenant 0-1 à neuf Maintenant, nous
cherchons le mot de passe. Nous voulons savoir si le
mot de passe comporte un chiffre de 0 à 9. Et bien sûr, si ce n'est pas le cas, nous allons renvoyer faux. Ensuite, nous pouvons dire que le mot de passe doit inclure au moins un chiffre. Permettez-moi de remplacer les chiffres par
des chiffres, en fait. OK. Et voilà. Nous avons donc vérifié la
longueur du mot de passe. Nous avons vérifié qu'
il contient une lettre majuscule. Nous avons vérifié qu'
il comporte au moins un chiffre. Enfin,
vérifions-le s'il possède un symbole spécial. Donc, la dernière,
nous allons dire,
sinon, concerne la recherche par points. Et maintenant, entre parenthèses
se trouvent des codes singuliers. Et maintenant, ouvrons
les crochets principaux. Et maintenant je vais coller
tous les symboles spéciaux. Oh, il y en a
un certain nombre, en fait, d'accord ? Je
vais donc ajouter ça. Maintenant une virgule et maintenant un mot de passe. OK, ajoutez deux points. Et maintenant, si ce n'est pas le cas,
je vais retourner à Falls. OK. Et puis les codes, je dirais que le mot de passe doit inclure au moins
un symbole spécial. Permettez-moi de changer de
caractère en symbole. Simba code, et voilà. OK, nous avons donc vérifié
les quatre critères principaux. Mais
que se passe-t-il si le mot de passe créé
est vraiment bon ? C'est un mot de passe fort. Donc, pour cela, je
vais venir ici et je vais
redevenir honnête. OK ? Je vais dire vrai, et nous pouvons même
imprimer quelque chose qui
indique que le mot de passe est fort. Et voilà. OK. Donc, pour vous donner un bref résumé de ce que
nous avons fait ici, nous avons importé la bibliothèque d'
expressions régulières parce que nous voulons utiliser une méthode de fonction
particulière, la
fonction de recherche pour parcourir le mot de passe et vérifier
des types de critères spécifiques Donc, dans un premier temps, on vérifie
la longueur du mot de passe. C'est moins de huit ? S'il est inférieur à huit, renvoyez false, puis
fournissez un commentaire indiquant que mot de passe doit comporter au moins
huit caractères. Maintenant, nous voulons
rechercher s'
il y a une
majuscule entre A et Z. Nous utilisons
donc la méthode
e point search, puis entre crochets R, les codes, puis les crochets A
à Z, puis le mot de passe Ensuite, nous fournissons
les commentaires, puis nous avons fait
de même
pour rechercher au moins un numéro, puis nous avons fait de
même pour rechercher au moins un symbole spécial. Enfin, si les
quatre critères sont satisfaits, nous retournerons vrai, puis nous dirons que le mot
de passe est fort. Maintenant que nous avons défini les critères relatifs à
la force du mot de passe,
nous devons l' intégrer à la
fonction d'enregistrement et nous
assurer qu'avant que le
compte de l'utilisateur ne soit enregistré, le mot de passe
passe réellement le test. Donc, une fois que nous avons
demandé à l'utilisateur de fournir nom d'utilisateur et
le mot de passe, avant de commencer à ouvrir le fichier dotexti de l'utilisateur
pour stocker les informations d'identification,
introduisons le vérificateur de
mot de passe Je peux donc créer une
variable appelée is valid. Nous allons vérifier si le mot de passe est réellement valide. Ensuite, nous avons travaillé le
feedback ou le message Vous pouvez modifier la
variable si vous le souhaitez, mais je vais m'en
tenir aux commentaires. Je vais dire que c'est valide,
souligner les commentaires, et je vais les transmettre à
la fonction que
nous avons utilisée pour créer La portée du mot de passe est
ce qui est fort, mot de passe souligné, puis le mot de passe entre crochets. OK. Nous pouvons donc maintenant dire
si ce n'est pas valide, donc si ce n'est pas le cas, c'est valide. Donc, si le mot de passe qu'ils ont
fourni n'est pas assez fort, nous pouvons simplement l'imprimer, puis nous pouvons dire que le mot de passe
n'occupe pas trop d'espace. Le mot de passe n'est pas assez
fort. OK. Et puis que pouvons-nous faire d'autre ? Nous pouvons imprimer le
commentaire en disant : « Bonjour, votre mot de passe doit comporter
au moins un chiffre, ou votre mot de passe doit inclure au moins une lettre en majuscule. Je peux donc venir ici, ajouter une autre déclaration imprimée et simplement transmettre
le commentaire. Et voilà. Enfin et surtout, nous
allons simplement y
retourner et voilà. C'est ainsi que nous pouvons implémenter l'outil de
vérification de mot de passe Nous avons répertorié les
critères, la longueur, les chiffres, les majuscules, les symboles, et maintenant que vous avez la fonction
d'enregistrement, nous avons ajouté : « OK, si le
mot de passe n'est pas valide, dites qu'il n'est pas
assez fort, puis
fournissez également des commentaires Dans le cas contraire, il suffit de le retourner. Voyons maintenant si cela fonctionne. J'espère que cela devrait être le cas.
Alors, courons. OK, je vais m'inscrire. Utilise un nom, disons, Bob. Mot de passe, je vais
utiliser la majuscule LISA N six, un, deux, trois, B V. C'est Enta et génial. Cela indique que le mot de passe
n'est pas assez fort. Le mot de passe doit inclure au
moins un symbole spécial. OK, je vais ouvrir le textifle à points de
l'utilisateur
et m'assurer que Bob
n'a pas été Génial Retournons en arrière. Et maintenant, essayons de créer
un véritable compte réel. Appelons donc Alice. Mot de passe, P O P trois, quatre, SDR, puis
le symbole d'ajout Je pense que cela devrait
être suffisamment solide. Voilà. OK,
super utilisateur. Est un succès. Et maintenant, si je reviens au
TXT de mes utilisateurs, voilà. Nous avons maintenant Alice et son
mot de passe. Alors félicitations. Nous avons amélioré notre programme, notre logiciel pour inclure désormais également
un vérificateur de mots de passe Rejoignez-moi dans la toute
prochaine vidéo où nous
allons poursuivre et découvrir comment chiffrer nos mots de passe.
Je te verrai alors.
74. Partie 5 hachage des mots de passe des utilisateurs: Eh bien, revenez.
Ajoutons maintenant une
fonctionnalité de sécurité supplémentaire à notre programme. Et ici, nous allons inclure
le hachage. Nous allons hacher mots en
utilisant le SHA deux,
cinq, six, l'algorithme de hachage sécurisé avec, bien sûr, une
taille
de données de Pour ce faire,
nous allons donc devoir
importer une autre bibliothèque. Et celle-ci sera
la bibliothèque de hachage. Permettez-moi simplement d'ajouter un nœud
ici et j'importe également pour le hachage. Et voilà. C'est bon. Maintenant, ajoutons en haut
la fonction permettant de
hacher réellement le mot de passe Permettez-moi simplement d'ajouter une
fonction de nœud pour hacher les mots de passe. Le nom de la fonction,
je peux le définir
et nous pouvons utiliser le mot de passe de
hachage Maintenant, bien sûr,
entre crochets, nous allons travailler
avec le paramètre du mot de passe ,
puis j'ai renseigné ma colonne. Je vais y jeter un œil
pour hacher le mot de passe, vous pouvez simplement dire return Now, le nom de la
fonction elle-même dans
le module hashlib, sa Maintenant, point deux, cinq, six. Maintenant, entre parenthèses, qu'est-ce qu'on est en train de
hacher ? C'est le mot de passe. Maintenant, je vais utiliser
la méthode appelée code, ouvrir une nouvelle paire de crochets,
fermer les crochets précédents et maintenant point. Enfin, nous pouvons hex diigest d'ajouter à nouveau des crochets de
fermeture,
et le tour est
joué et Il s'agit d'une ligne particulière
que vous pouvez mémoriser. Il s'agit de la fonction
qui
hachera réellement mots de passe en utilisant le
module hashlib Tout ce que nous avons à faire pour le
moment sera très simplement de l'
intégrer dans la fonction
d'enregistrement proprement dite. Revenons
jusqu'à la toute fin, là
où le mot de passe
a été utilisé avec succès, là où il est écrit «
Imprimer les commentaires », retourner » juste avant de commencer à écrire le mot de passe aux
utilisateurs ou à envoyer le fichier par SMS Passons maintenant au hachage Après la déclaration écrite, je vais ajouter une
petite note et nous
pouvons dire hacher le C'est bon. Donc, ce que nous voulons faire maintenant,
c'est très, très simplement, nous pouvons créer une variable appelée
hash underscore password, puis nous pouvons transmettre le mot de passe
que nous venons Je vais dire hash sur le mot de
passe de la partition et maintenant, entre crochets, suffit de le dire mot de passe
et le voilà Tout ce que nous avons à faire très simplement, c'est l'endroit où nous
écrivons le mot de passe. Au lieu du mot de passe
d'origine, nous devons maintenant écrire
le mot de passe haché Ici, il est écrit « fichier » ou
« F », nom d'utilisateur. Maintenant, au lieu du mot de passe,
nous allons le remplacer
par la variable
hachée sur le mot de passe du score,
et voilà nous allons le remplacer
par la variable
hachée sur le , nous avons ajouté le hachage
avec succès Voyons si
cela fonctionnera réellement. Je vais commencer tout de
suite et lancer le programme. Laissez-nous nous inscrire. Je vais ajouter un
nouveau nom ici. Je vais appeler celui-ci, disons, David. OK, mot de passe. Je vais utiliser un mot de passe très
fort,
SOD, fish,
SOD, fish, puis 234 at, puis le
symbole stérique,
et voilà SOD, fish,
SOD, fish, puis 234 at, puis symbole stérique,
et Maintenant, ouvrons les
utilisateurs de textifle et de C and wonderful.
Voilà. Voici la version hachée du mot de passe
de David,
qui est SOT fish, 234 at
et le symbole des astérisques. C'est tellement merveilleux que nous avons ajouté le
hachage à notre programme. Cela devient de plus
en plus avancé, et passez maintenant à la
leçon suivante où nous allons
ajouter notre audit à la
fonctionnalité CU. Je voulais donc juste
vous faire une mise à jour rapide. Oui, nous venons d'ajouter
la fonction de hachage. Cependant, lorsque nous le testerons, vous remarquerez peut-être qu'
il ne fonctionne pas. Donc, si je devais aller
ici tout de suite et que
je voulais enregistrer un
nouvel utilisateur et que je disais, appelons le nouvel
utilisateur Victor, n'est-ce pas ? Victor. Ensuite, j'ai
ajouté un mot de passe ,
Victor 123, puis VC, puis le symbole publicitaire,
et j'appuie sur Entrée. Cela indique que l'
enregistrement de l'utilisateur a réussi. Cependant, si j'essaie de me
reconnecter en tant que Victor, j'ai le nom d'utilisateur. Et maintenant, si je tape le
mot de passe, Victor 123,
Vc, vous verrez tout de
suite qu'il indique un
nom d'utilisateur ou un mot de passe invalide. Donc, pour une raison ou une autre, la fonction de
connexion n'est pas en mesure de détecter que le nom d'utilisateur correspond
au mot de passe. Et c'est l'une des
raisons pour lesquelles vous voulez vraiment tester votre code chaque fois que vous
ajoutez de nouvelles fonctionnalités. Je me suis donc rendu compte qu'
ici, à la ligne 60, où il est écrit, où se trouve la fonction de connexion, il est dit que si le nom d'utilisateur est égal au nom d'utilisateur
enregistré et le mot de passe
est égal au mot de passe enregistré, alors nous pouvons permettre
à l'utilisateur de se connecter avec succès. Vous pouvez voir pour l'instant
que cela ne
fonctionnera pas car, tel que le code
est écrit en ce moment, il compare le mot de passe
au format texte brut et non à la version cryptée ou à
la version hachée C'est pourquoi nous
avons ce problème. Nous sommes donc censés entrer
tout de suite et dire, taper un nom et maintenant nous
soulignons le
mot de passe par hachage Et maintenant, entre crochets, le mot de passe. Donc, ici, nous disons maintenant au programme et à Python que, hé, comparez le mot
de passe haché de l'utilisateur et non
la version simple Cela devrait donc fonctionner dès maintenant. Si je devais revenir en arrière et créer un nouveau compte
pour l'utilisateur. En fait, arrêtons
le programme, d'accord ? Et je vais tout
recommencer à zéro. Alors maintenant, permettez-moi d'
enregistrer un nouvel utilisateur, appeler l'utilisateur Mac
puis Mac un, deux, trois sur Mac
pour le mot de passe. Et maintenant, essayons de nous
connecter à nouveau en tant que Mac. Je vais donc dire Mac. Et maintenant Mac un, deux, trois sur Mac. Et maintenant, vous pouvez voir que la connexion
a été réussie. C'est donc, encore une fois, un rappel que chaque fois que vous
ajoutez de nouvelles fonctions et de nouvelles lignes de code, vous devez tester avant de commencer à ajouter de plus en plus
de lignes de code à votre programme. Alors, veuillez
mettre à jour la ligne où il est écrit : Si vous utilisez le nom d'
utilisateur et le mot de passe de démarrage de Nemicol, vous devez vous assurer que c'est la version hachée du mot de
passe que nous Merci de votre attention,
et bien sûr, je vous verrai
au prochain cours.
75. Partie 6 : ajouter l'outil d'audit: Bon retour. Nous allons donc maintenant ajouter une fonctionnalité vraiment intéressante, qui sera l'outil
d'audit qui nous permettra de
suivre toutes les activités
de notre système, qu'il s'agisse des utilisateurs, de la
connexion, de la création
de comptes, etc. Alors allons-y et faisons-le. Et pour que cela se produise, nous devons importer une
bibliothèque et un module spéciaux, qui
seront la date et l'heure. vais donc venir
ici et je
dirais depuis la bibliothèque de jour. Importons le module
diurne. D'accord ? Et je peux ajouter
une note ici qui indique la saisie de la date et de l'heure. D'accord. Maintenant,
créons notre fonction, et où pouvons-nous la placer ? Tu sais quoi ? Plaçons la fonction juste avant la fonction
d'enregistrement, d'accord ? Je vais donc aller jusqu'
ici, ajouter la note,
et nous pouvons appeler
celle-ci la fonction permettant de
consigner les activités des utilisateurs. Loi sur les activités. Je ne l'ai pas
correctement orthographié, Activts. D'accord. D'accord, je vais
appeler cette fonction définie, puis enregistrer l'événement de soulignement Ce sera le
nom de la fonction. Et puis le paramètre sera bien
sûr event. D'accord. Ajoutez deux points, et très bien. C'est donc là que la
magie va opérer. Transmettons la date et l'
heure réelles dans une variable
appelée horodatage. D'accord ? Je vais dire que l'
horodatage est égal à. Nous allons maintenant
utiliser
une fonction du module de
jour. Cette fonction s'appelle désormais
datetime point. D'accord ? C'est donc la
fonction qui récupérera la date et l'heure réelles, d'accord ? Mais maintenant je vais ajouter une
méthode ici point STR FT. Cette méthode est celle
que nous allons utiliser
pour formater réellement
la date et l'heure. Donc, que nous
voulions afficher l'année, le mois, le jour ou
peut-être simplement le jour du mois. Et puis l'heure, peut-être
voulons-nous afficher l'heure, la minute, la seconde,
des choses comme ça. Nous allons donc
utiliser cette méthode, la méthode STR FT. Et maintenant, entre crochets,
nous devons indiquer comment nous voulons que la date et l'
heure soient formatées. Donc, à l'intérieur, je vais
ajouter mes manteaux. Alors faisons-le comme ça, d'accord. Nous allons afficher l'année, le mois, le jour. Ce sera pour la date. Ensuite, pour l'
heure, nous allons simplement afficher l'heure, la minute,
puis la seconde. Que diriez-vous de ça ?
D'accord ? Ça a l'air bien. Pour ce faire, je vais utiliser le
symbole du pourcentage, et maintenant Y. Cela représentera l'année,
puis nous pouvons ajouter moins
puis pourcentage, puis M pour le mois, puis encore moins, pourcentage pour quoi pour le
jour qui sera D. D'accord ? Et maintenant un espace, et maintenant pour le temps
lui-même, je vais
recommencer, pourcentage, H pour l'heure, d'accord ? Et maintenant, au lieu du signe négatif, nous pouvons utiliser les deux points
parce que je pense qu'il est
préférable d'utiliser des deux-points chaque fois que
vous avez
affaire au temps réel, à mon avis. Nous pouvons utiliser deux points, puis pendant la minute,
puis à nouveau deux points, puis un pourcentage ou un S, et le tour est joué. Il s'agit du format, de
votre jour du mois, puis de l'heure, de la
minute et de la seconde, et je pense que cela devrait convenir. Maintenant, nous devons commencer à nous connecter
à
toutes ces activités. OK, donc ce que nous allons
faire , c'est pour la fonction
d'enregistrement, fois que l'utilisateur s'est inscrit, nous devons enregistrer l'événement, d'accord ? Maintenant, nous devons
venir ici et dire « ouvert », car nous voulons créer un véritable fichier texte qui
représentera le journal d'audit. Je vais donc dire « ouvert ». Et puis, entre parenthèses,
nous appellerons l'audit des fichiers. Sur le journal des scores. Soulignez le point log TXT. Ce sera donc le
nom du fichier journal. Et ensuite, que voulons-nous faire ? Nous voulons l'ajouter, d'accord ? Je vais donc mettre le
mode A, et ensuite comme quoi ? Ouvrez une session dans le fichier de partition, puis ajoutez deux points. Et ensuite, que voulons-nous faire ? Nous voulons écrire dans
le fichier journal. Je vais dire « Connectez-vous au fichier de
partition ». Point droit. Et maintenant, entre crochets, nous pouvons utiliser notre chaîne F, puis nous pouvons
simplement ajouter deux points, puis j'ajouterai mon
crochet, mes accolades, horodatage, puis l'événement,
et ça Voilà. Nous allons donc créer un
fichier appelé Audit Log point TXT. Et lorsque nous écrivons dans le fichier, nous allons
écrire un horodatage Et puis aussi l'événement. Peut-être que l'utilisateur a créé
un compte le 6 janvier 2024 à 17 h 30.
Et 14 secondes, quelque chose comme ça, vous
savez, c'est exactement ce que nous avons fait ici Génial, génial, génial.
Nous devons donc maintenant nous assurer que chaque activité
est effectivement enregistrée. Donc, ici en bas, la première activité
sera l' inscription, n'est-ce pas ? Alors, vérifions-le.
En fait, tu sais quoi ? Nous pouvons même nous connecter lorsque le mot de passe n'était pas
assez fort. Que diriez-vous de ça ? D'accord ? Nous pouvons également l'enregistrer. Donc, juste ici où il est
écrit les commentaires d'impression, je peux simplement venir
ici tout de suite, ajouter une nouvelle ligne et dire «
log underscore event Et maintenant, entre crochets, nous pouvons simplement indiquer
le champ d'enregistrement pour le nom d'utilisateur. D'accord. J'aime bien ça.
Qu'est-ce que tu en penses ? Je pense que c'est bon.
Champ d'enregistrement pour le nom d'utilisateur. L'enregistrement n'a donc pas réussi car le
mot de passe n'était pas assez fort. J'aime bien ça. Nous sommes donc
verrouillés là-bas. Alors maintenant, enregistrons l'
événement dans un scénario où l'enregistrement a été effectivement réussi.
Et c'est où ? Nous l'avons à la ligne
56 qui indique que l'
enregistrement de l'utilisateur
a été réussi. Donc, juste en dessous, nous pouvons maintenant ajouter notre événement
log underscore Et maintenant, entre parenthèses, nous pouvons simplement dire F,
puis enfilons des manteaux
, puis, dans nos bretelles, nous pouvons dire utiliser un nom D'accord. Ensuite, utilisez un nom
enregistré avec succès. Que diriez-vous de ça ? Et voilà. D'accord. Maintenant, de quoi d'autre
avons-nous besoin pour nous connecter ? Nous devons nous connecter lorsque les utilisateurs
se sont également connectés. Et nous l'avons ici sous la fonction de connexion où
il est indiqué que la connexion est réussie. Ici, je vais
créer une nouvelle ligne, et maintenant nous pouvons enregistrer l'événement,
donc enregistrer l'événement de soulignement Et puis entre parenthèses,
nous pouvons dire F, ficelle, puis ajouter nos
manteaux, nos colli bretelles Alors, utilise un nom, d'accord ? Eh bien, laissez-moi mettre
un peu d'espace ici. Utilisez un nom
connecté avec succès. Et voilà. Y a-t-il autre chose
que nous devons enregistrer ? D'accord, s'il est indiqué que le nom d'utilisateur ou le mot de passe
n'est pas valide, nous pouvons également enregistrer cet
événement ici. Nous enregistrons donc tout,
tout, d'accord ? Enregistrez donc l'événement F, puis nous pouvons ajouter nos codes, puis nous pouvons dire que la tentative de
connexion a échoué pour l'utilisateur, puis avec le
nom d'utilisateur et le tour est joué. D'accord. Cela me plaît jusqu'à présent. Y a-t-il
autre chose que nous devons enregistrer ? Nous pouvons également nous connecter à
la troisième option. Lorsque l'utilisateur
quitte réellement le système, ce n'est pas nécessaire, mais
vous savez, nous pouvons aussi bien le faire Donc, là où il est écrit imprimer,
quitter le système, nous pouvons également l'enregistrer En fait, permettez-moi de le faire
avant la déclaration imprimée. Option numéro trois, enregistrons
simplement l'événement de soulignement. Ensuite, nous pouvons simplement dire
quelque chose comme quitter le système. D'accord. Et voilà. OK, je pense que ça devrait
fonctionner. Cela devrait fonctionner. Et je vais commencer
tout de suite et lancer le programme, d'
accord, voyons voir. Je vais créer
un nouveau compte, donc je vais utiliser le
numéro un, appuyer sur Entrée. Ajoutons un nom d'utilisateur. Je vais donc y aller avec Tracy. D'accord ? Et le mot de passe, Tracy 21, OP, hashtag Et voilà. OK, génial. Cela a donc été un succès. Tout d'abord,
assurons-nous que sous le code D TXT de l'utilisateur, nous avons Tracy. C'est le mot de
passe de hachage. Et maintenant, l' autre Dc TXT, et voilà. Génial, génial. Génial Tracy, s'est inscrite avec succès. Et, bien sûr, vous pouvez
voir le format ici, 2024, le 10
novembre à 9h01 08 Nous avons donc également ajouté avec succès
la fonctionnalité de journalisation. Merci beaucoup d'avoir
regardé la vidéo. Je te verrai
au prochain cours.
76. Partie 7 ajouter la fonction de journaux de vue: Reviens.
Ajoutons donc une fonctionnalité supplémentaire. Et cette fois, ce sera une fonctionnalité pour nos utilisateurs connectés. Nous voulons qu'ils puissent
consulter leurs propres journaux personnels. Cela va donc se
faire en deux étapes. abord, nous devrons créer une fonction qui
leur permettrait de consulter leurs journaux. Ensuite, nous devrons
créer un menu de post-connexion. Ainsi, nos utilisateurs connectés
auront un menu séparé dans lequel ils auront la
possibilité de consulter le journal. Cela va donc
être en deux parties. Tout d'abord, créons la fonction
leur permettant de consulter le journal. Je vais donc le faire
juste en dessous de la fonction de connexion
principale. Permettez-moi donc d'ajouter une note
ici qui dit fonction,
désolé, fonction pour afficher les journaux. D'accord ? Je vais appeler cette fonction afficher
sous les journaux d'appels Et bien sûr, nous
allons transmettre
le paramètre nom d'utilisateur. OK, ajoutez mes deux points. Très bien, alors commençons imprimer un
message général disant quelque chose comme,
vous savez, les journaux de l'utilisateur, puis, vous savez,
l'utilisateur en question Je vais donc dire imprimer. D'accord ? Et ensuite,
nous aurons une chaîne F, puis des codes. Et puis laissez-moi ajouter
ma barre oblique arrière N, puis nous pouvons dire logs, quatre Utilisateur, puis nous
avons nos accolades, puis nous pouvons
avoir le nom d'utilisateur OK, ce n'est pas nécessaire,
mais c'est bien de l'avoir. Bien, nous allons maintenant
ouvrir le journal d'audit D TextFile
parce que c'est à partir de là nous allons extraire les Je vais donc dire, maintenant ouvert et maintenant entre crochets,
quel est le nom du fichier ? Il s'agit d'un audit sous le
nom de Log TXT. Et maintenant, bien sûr, nous
voulons avoir le mode lecture. D'accord, parce que nous allons
lire le fichier et
nous allons indiquer
qu'il s'agit du
fichier Log On Score dans notre colonne. OK, nous allons maintenant
parcourir les
journaux et le fichier. Passons-les donc dans
une variable appelée logs. Et maintenant, le
fichier Log Underscore est marqué de points rouges. OK. Et voilà. OK. Maintenant, nous allons devoir
créer
une sorte de boucle
à quatre boucles qui traversera chaque journal
individuel. Et que recherchons-nous exactement
? Nous recherchons
tous les journaux qui
correspondront à un nom d'utilisateur en particulier. Donc je vais venir
ici tout de suite, non ? Et je vais dire que les journaux des utilisateurs, accord, les journaux de soulignement seront égaux à,
et maintenant jetez un œil à ça Je vais ouvrir
mes crochets ici. Je vais dire log point strip et la raison pour laquelle j'utilise
la fonction strip est encore une fois que
je veux supprimer tout espace blanc
ou toute marge
inutile dans les noms d'utilisateur, donc je vais
dire log ou strip. Et maintenant, je vais
dire quatre journaux de connexion. Nous recherchons donc
chaque identifiant individuel dans nos journaux. Et que
recherchons-nous ? Nous cherchons à savoir si le nom
d'utilisateur figure dans le journal. Nous recherchons donc un nom d'utilisateur
très spécifique dans nos fichiers journaux. Alors maintenant, si nous
trouvons effectivement une correspondance entre le journal et le
nom d'utilisateur, que devons-nous faire ? Nous allons donc dire, si journaux
d'utilisateur undercool
ajoutent notre colonne, et maintenant je vais dire quatre journaux
d'
utilisateurs Underscoe qui se connectent ,
que voulons-nous Nous voulons simplement imprimer. Je vais donc dire imprimer,
puis enregistrer, et voilà. Et bien sûr, nous devons
créer une condition. Et si aucun journal n'a été trouvé ? Nous pouvons simplement dire le contraire, et maintenant nous pouvons imprimer. Nous pouvons dire qu'aucun journal n'a été trouvé. Dans votre compte, car
n'oubliez pas que c'est
pour l'utilisateur qui se connecte, et voilà. Donc, juste pour vous donner un
bref récapitulatif, non ? Nous avons défini la fonction
comme Afficher les journaux d'appels DOS, et nous avons transmis le nom d'utilisateur. Et maintenant, nous avons imprimé un message
général disant, vous savez, des journaux pour l'utilisateur. Et puis le
nom d'utilisateur. Ensuite, nous avons ouvert l'autre
journal, le fichier texte. Nous allons le lire sous forme
de fichier journal, puis nous avons créé une variable
appelée logs qui utilisera en fait la méthode read lines pour chaque fichier journal
en particulier. Et maintenant, ici, nous avons créé nos quatre boucles qui
vont parcourir chaque journal individuel
dans les journaux et voir s'il y a une correspondance
pour ce nom d'utilisateur. Maintenant, s'il y
a effectivement une correspondance, nous pouvons simplement imprimer le
journal pour cet utilisateur en particulier. Dans le cas contraire, nous indiquerons simplement qu' aucun journal n'a été trouvé
dans leur compte. Alors voilà.
Nous avons créé avec succès une fonction
pour les journaux vidéo. Rejoignez-moi dans la prochaine vidéo
où nous allons créer le menu de post-connexion
pour nos utilisateurs connectés.
77. Partie 8 ajouter le menu de connexion de publication: Eh bien, revenez. Nous allons maintenant créer
la fonction qui
affichera le menu de post-connexion pour nos
utilisateurs connectés avec des options. Faisons donc cela juste au-dessus de la fonction pour
afficher les journaux. Donc, juste ici. Je vais dire fonction pour
afficher le menu Post log in. OK. Bien, comme d'habitude, nous
allons appeler celui-ci,
disons, publier sur la partition.
Connectez-vous dans le menu des partitions Je pense que c'est un bon nom. Et, bien sûr, à l'intérieur,
nous allons passer un
nom d'utilisateur périmétrique entre deux points. OK, nous allons donc
créer une déclaration while. Alors que l'utilisateur est en fait
connecté, imprimons maintenant
les options pour lui. Donc tout d'abord,
je vais imprimer,
genre, un message normal. Je peux donc dire
quelque chose comme login, je suis désolée, menu de
post-connexion, à droite,
Post, tableau de bord, menu de connexion. OK, et permettez-moi d'ajouter mon N en arrière pour que
ce soit sur la nouvelle ligne OK, nous pouvons maintenant
imprimer les options. Il n'y
en aura que deux. OK ? L'option numéro un
sera donc de simplement consulter mes journaux. N'oubliez pas que c'est personnalisé. C'est pour l'utilisateur connecté. Et puis l'option numéro deux, eh bien, se déconnecter, je suppose Et voilà. Nous allons donc devoir demander à l'utilisateur quelle option
il souhaite choisir. Je vais donc dire que le choix
est égal, puis la saisie, puis nous pouvons dire
quelque chose comme, vous savez, que
voudriez-vous faire ? Point d'interrogation. OK. Nous
allons donc maintenant devoir créer les instructions IL
pour chaque scénario. Je vais donc choisir le premier
si le choix est égal à un, que voulons-nous faire, si nous
voulons consulter les journaux
et, bien sûr, ils utilisent un nom. Nous allons donc faire
appel à la fonction, qui est le nom d'utilisateur des journaux, donc très, très simple. Ensuite, nous pouvons dire,
si le choix est égal à deux. Et ensuite, que
voulons-nous faire ici ? Eh bien, nous pouvons simplement imprimer un message indiquant que nous nous sommes
déconnectés avec succès. Mais n'oubliez pas
que nous voulons enregistrer chaque tâche. Nous allons donc ajouter la déclaration des événements du
journal ici. Donc, enregistrez l'événement, puis nous
pouvons dire quelque chose comme Fstring, puis nous pouvons dire que l'utilisateur a un
collie et un code unique, nom
d'utilisateur Et voilà. Et, bien sûr,
n'oubliez pas que nous avons besoin l'instruction break shot au cas où l'
utilisateur connecté déciderait,
pour une raison ou une autre, de
choisir l'option trois ,
quatre, cinq ou toute autre
option qui n'existe pas. Nous allons donc dire
break, puis sinon, nous pouvons simplement
imprimer un message indiquant que le choix n'est pas valide. Veuillez réessayer. Et voilà. OK, nous avons donc
créé
avec succès la fonction qui
affichera le menu après la connexion. Cependant, comment le lier
réellement à
la fonction de connexion ? Parce qu'une fois que l'utilisateur se connecte, nous voulons appeler cette fonction. Alors, que faisons-nous ? Nous allons passer à
la fonction de connexion principale. Et maintenant, regardons le code. Où l'utilisateur s'est-il connecté ? Il est écrit ici,
connexion réussie. Donc, là où il est
indiqué que la connexion est réussie, je vais venir
ici tout de
suite et appeler notre fonction. Donc ici, je vais dire post underscore login,
underscore menu Et, bien sûr, entre parenthèses, nous allons ajouter le
nom d'utilisateur et c'est parti. Alors c'est tout. Je pense que nous avons
terminé avec succès l'écriture de notre code. Nous allons maintenant le tester. Je vais exécuter le code, d'accord ? Et je vais me connecter, tout d'
abord, comme
en fait, tu sais quoi ? Je vais essayer autre
chose, d'accord ? Je viens d'enregistrer un nouvel utilisateur. OK ? Et je vais
appeler cet utilisateur Boris. OK ? Ensuite, Bois 1, 2, 3 avec le symbole publicitaire passera
. OK ? Maintenant, laissez Boris se connecter. Donc Boris, puis Boris un, deux, trois, avec le symbole publicitaire. Et voilà, oui, nous pouvons voir que Bois a maintenant le menu de
post-connexion, et que Bois peut voir ses journaux, mais en appuyant sur
un et voilà, Logs pour les corps des utilisateurs. Les corps ont été
enregistrés avec succès à 8 h 10 35. Et puis il s'est
connecté avec succès à 8 h 10 45. Et si nous regardons le
point TXT de nos utilisateurs, le tour est joué. Nous avons des corps avec
son mot de passe de hachage. Et puis ici,
nous avons l'Alex enregistré
avec succès. John s'est connecté avec succès. Ce sont évidemment des tests
que j'ai effectués hors écran. Mais vous pouvez voir
maintenant que le programme fonctionne effectivement avec succès. Il existe quelques autres
tests que nous pouvons effectuer. Nous pouvons nous en
assurer si je tape l' option numéro cinq ici,
d'accord ? J'en ai saisi cinq et
j'ai appuyé sur Entrée, cela peut indiquer un
choix non valide, veuillez réessayer. Alors laissez-moi essayer de me déconnecter maintenant et vous pouvez voir qu'il s'est effectivement déconnecté
avec succès. Et si j'appuie
sur trois dans le menu principal, vous pouvez voir qu'il
a quitté le système et que le
programme
fonctionne correctement. Alors voilà. Félicitations. Nous avons créé
avec succès un système d'
enregistrement des utilisateurs assez avancé qui permettrait aux
utilisateurs de s'inscrire. Nous avons également mis en place
un vérificateur de mot de
passe pour nous
assurer que le mot de passe est
suffisamment fort . Il comporte au moins
huit caractères, une lettre majuscule Opa, un chiffre et
un symbole spécial Bien entendu, nous avons également ajouté des fonctionnalités de sécurité
supplémentaires pour
hacher le mot de passe
afin qu'il soit stocké dans un format haché Et, bien entendu, nous avons également créé un menu de post-connexion pour les
utilisateurs connectés, dans lequel ils peuvent ensuite
consulter leurs propres journaux personnels. Ça y est, c'était amusant.
Merci beaucoup d'avoir regardé. Je te verrai au prochain cours.
78. Conclusion du projet final: Très bien, alors félicitations. Nous avons
développé avec succès le système d'enregistrement des utilisateurs, et je voulais juste
vous donner quelques conseils supplémentaires. Sul au cas où vous
voudriez
améliorer davantage le programme ou apporter quelques ajustements
ici et là. Au lieu de hacher
les mots de passe, par
exemple, vous pouvez
essayer de les chiffrer. Vous pouvez donc essayer de supprimer la fonction de
hachage, puis la
remplacer par la fonction de
chiffrement De toute évidence, vous
devrez importer la bibliothèque de cryptographie pour
pouvoir le faire Et puis vous pouvez même ajouter
une option supplémentaire pour l'utilisateur connecté en plus de consulter
les journaux. Vous pouvez créer une fonction, une fonction mathématique simple qui peut calculer une sorte de multiplication
ou d'addition. Vous pouvez demander à l'utilisateur de fournir deux ou trois nombres,
il les fournit, puis la fonction peut
faire une sorte de calcul, les multiplier ou les ajouter,
vous savez, quelque chose de
très, très basique. Vous pouvez également l'ajouter en
tant qu' option supplémentaire pour
l'utilisateur connecté. Il existe donc de nombreuses
manières d'
améliorer ou de modifier le système d'enregistrement des utilisateurs
que nous venons de créer. Soyez donc créatifs,
sortez des sentiers battus, cherchez des moyens d'
améliorer ou de modifier le programme. Et si vous avez des idées très
intéressantes, j'adorerais avoir de vos nouvelles. J'adorerais que vous
partagiez également votre code, que partagiez votre code
avec la communauté vous
partagiez également votre code avec les autres étudiants qui suivent
le cours. C'est donc à peu près
tout pour le projet. J'espère que vous avez pris beaucoup de plaisir développer le système
d'enregistrement des utilisateurs, et j'espère que vous avez également beaucoup
appris. Merci donc d'avoir regardé. Merci d'avoir développé le
système d'enregistrement des utilisateurs avec moi. Je te verrai au prochain cours.
79. Conclusion du cours: Félicitations.
Vous êtes arrivé à la fin de ce cours, Python
pour la cybersécurité. Et j'espère que vous avez trouvé le
cours très utile, instructif, éducatif,
mais aussi amusant. Et j'espère qu'à ce stade, vous avez maintenant les compétences nécessaires pour écrire des programmes
avec Python. si vous avez des questions sur tout ce que nous avons
abordé dans ce cours, comme d'habitude, je me ferai un plaisir de
vous aider , de vous répondre et de
vous aider de toutes les manières possibles. N'hésitez pas à me
contacter. Et si vous avez trouvé
ce cours utile, n'
oubliez pas de
laisser un commentaire écrit sur le cours et de faire savoir
au monde entier que vous avez apprécié le cours. Alors c'est tout. Je m'appelle Alex. Cela a été un plaisir.
Si vous voulez suivre un autre de mes cours de
cybersécurité. J'espère que je vous
verrai également suivre ces cours. Mais si c'est un adieu, permettez-moi simplement de
vous souhaiter bonne chance dans votre aventure avec Python et dans votre parcours en tant que professionnel de
la cybersécurité Je
ne vous souhaite que du succès
et encore plus de
succès à l'avenir. Alors Lassa, merci
beaucoup d'avoir suivi le cours
pour Marlin et je
te verrai la prochaine fois. Au revoir.