Le contenu du didacticiel Python (chapitre 4) est résumé dans une puce.
Article précédent: Un résumé du contenu du tutoriel Python (chapitre 3)
introduction
Examen de base pour la certification d'ingénieur Python3 En guise de contre-mesure, il s'agit d'un mémo personnel qui résume le contenu du didacticiel Python (livre) dans des bulletins faciles à mémoriser.
Matériel de référence
Tutoriel Python: https://docs.python.org/ja/3/tutorial/
Chapitre 4: https://docs.python.org/ja/3/tutorial/controlflow.html
Livres: https://www.oreilly.co.jp/books/9784873117539/
"Chapitre 4 Outil de structure de contrôle"
- Score d'examen de base de la certification d'ingénieur Python3
―― 9/40 questions (22,5%) ☆☆☆☆☆ (importance: grande)
--Thème
- Branche conditionnelle
- boucle
--pass instruction
- Définition des fonctions
- Norme de codage (PEP8)
4.1 instruction if
- ** if, elif, else ** peut être utilisé.
--Indent les blocs dans la condition.
--if, elif est suivi d'une condition et d'un deux-points:.
- Vous pouvez écrire plusieurs elifs.
--Esthe est suivi de deux points:.
- Au fait, Python else est également utilisé dans des boucles telles que for et while (décrit plus loin).
--Il n'y a pas d'instruction switch en Python.
(Référence) instruction while
--Sur le tutoriel, ["3.2 Programmation, la première étape"](https://qiita.com/Wakii/items/cc4158d602a7646758d9#32-%E3%83%97%E3%83%AD%E3%82%B0% E3% 83% A9% E3% 83% 9F% E3% 83% B3% E3% 82% B0% E3% 81% AF% E3% 81% 98% E3% 82% 81% E3% 81% AE% E4% La syntaxe décrite dans B8% 80% E6% AD% A9).
—— Personnellement, c'est plus facile à retenir avec for, alors je vais le décrire ici.
- ** while ** Peut être écrit comme une expression conditionnelle **: **.
- Répéter l'exécution tant que l'expression conditionnelle est vraie.
--Indent la partie du corps de la boucle.
--Il est également possible de nicher et de le mettre à l'intérieur.
4.2 pour la déclaration
--Python pour pour traiter tous les éléments dans ** séquences (listes et chaînes) ** dans l'ordre d'index.
- ** pour ** w ** en ** mots **: ** peut être écrit comme.
--Indent la partie du corps de la boucle.
- Lors de la modification de l'élément en boucle, il est recommandé de boucler la copie de la séquence.
--Utilisez ** notation de tranche (découpage) ** pour copier la séquence. (-> Chapitre 3)
--Il est également possible de nicher et de mettre à l'intérieur pour.
4.3 fonction range ()
- La fonction ** range () ** renvoie un objet de séquence d'égalité.
- Peut être écrit comme plage (début, fin, incrément).
- range(5) #[0, 1, 2, 3, 4]
- range(1, 5) #[1, 2, 3, 4]
- range(0, 10, 3) #[0, 3, 6, 9]
- En combinant for et range (), une itération numérique peut être obtenue.
-
- pour idx dans la plage (5): * Répétez le processus pendant que #idx est compris entre 0 et 4.
--L'objet renvoyé par range () n'est pas une liste, mais ** itérable **.
Les structures et les fonctions qui ciblent des objets répétables, tels que --for, sont appelées ** itérateurs **.
-La fonction ** list () ** peut être utilisée pour créer une liste à partir d'un corps répétable.
-
- test = list (range (5)) * #test est une liste de [0, 1, 2, 3, 4].
--list () est également un répéteur.
4.4 Instructions break et continue, clause else dans la boucle
- ** break ** franchit la boucle la plus profonde (pour ou pendant) qui l'entoure.
- ** continue ** ignore le traitement en boucle suivant et démarre l'itération suivante.
--La boucle ** else: ** est exécutée si break n'est pas appelé à l'intérieur de la boucle.
--Pour et while et else sont décrits avec le même retrait.
4.5 Déclaration de réussite
- ** l'instruction pass ** ne fait rien.
--Syntactiquement, une instruction est requise, mais s'il n'y a rien à faire (attendre l'interruption du clavier, etc.), écrivez-la.
4.6 Définition des fonctions
- ** def ** Nom de la fonction ** (** Liste d'arguments formels **): peut être écrit comme **.
: Indentez la partie du corps de la fonction.
- La première phrase du corps de la fonction est ** [docstring](https://qiita.com/Wakii/items/39fb6eee9250c4196a61#476-%E3%83%89%E3%82%AD%E3%83%A5 % E3% 83% A1% E3% 83% B3% E3% 83% 86% E3% 83% BC% E3% 82% B7% E3% 83% A7% E3% 83% B3% E6% 96% 87% E5 % AD% 97% E5% 88% 97-docstiring) ** peut être écrit.
--Une référence à l'objet est transmise comme argument de la fonction.
- En d'autres termes, les modifications apportées du côté de la fonction sont reflétées du côté de l'appelant.
- Un appel de fonction (exécution) crée une nouvelle ** table de symboles locaux ** pour cette fonction.
- ** Table de symboles ** est un répertoire dans l'espace de noms, et la table de symboles pour les variables locales de la fonction est la table de symboles locale.
- Lorsqu'elle est affectée à une fonction, la valeur est stockée dans la table de symboles locale.
- Les arguments (références d'objet) passés à la fonction sont également stockés dans la table de symboles locale.
- Lorsqu'une fonction appelle une fonction, une autre nouvelle table de symboles locale est créée.
--Si vous attribuez un nom de fonction à une variable, vous pouvez appeler la fonction avec ce nom de variable.
- Les fonctions, comme les variables, sont ajoutées à la table de symboles courante une fois définies.
- L'interpréteur le reconnaît comme une valeur du type appelé fonction définie par l'utilisateur.
- ** return statement ** renvoie une valeur et retourne à partir de la fonction.
--Si aucune valeur n'est spécifiée en retour, ** Aucun ** est renvoyé.
--Returns None même si la fin de la fonction est atteinte sans écrire return.
- Aucun n'est généralement ignoré par l'interprète.
- Au fait, bien qu'il ne soit pas écrit en 4.6, l'argument défini dans la déclaration de fonction est appelé ** argument formel ** (paramètre), et l'argument passé dans l'appel de fonction est appelé ** argument réel ** (argument).
4.7 En savoir plus sur la fonction
4.7.1 Valeur par défaut de l'argument
- Vous pouvez définir la ** valeur par défaut ** pour les arguments de fonction.
- L'argument avec la valeur par défaut peut être omis.
- La valeur par défaut n'est évaluée qu'une seule fois à l'heure et à la portée lorsque la fonction est définie.
--Si vous définissez des valeurs par défaut pour les objets variables (listes, dictionnaires, instances de classe, etc.), les valeurs par défaut peuvent changer chaque fois que la fonction est appelée.
- En guise de contre-mesure, il existe une méthode permettant de définir la valeur par défaut de l'argument sur Aucun et d'affecter l'objet initialisé à l'argument lorsque None est passé dans la fonction.
4.7.2 Arguments de mots-clés
- ** Il existe deux types d'arguments de mots clés ** comme suit.
--Arguments passés sous forme de mot-clé = valeur au moment de l'appel ... Une paire mot-clé / valeur
--Arguments reçus au format dictionnaire avec ** à gauche du nom ... Plusieurs paires mot-clé / valeur
--Pour les arguments de mot-clé, les éléments suivants sont appelés ** arguments positionnels **.
--Arguments qui ne transmettent que des valeurs ... un argument
--Arguments reçus sous forme répétable avec * à gauche du nom ... Arguments multiples
--Si vous passez un argument de la manière suivante, une erreur se produira.
--Lorsque vous passez un argument mot-clé qui n'est pas écrit dans la liste d'arguments formels
--Lorsqu'il est passé à la fois comme argument de position et comme argument de mot-clé pour un argument
--Lorsque l'argument mot-clé est passé avant l'argument positionnel
4.7.3 Liste des arguments optionnels
- Les arguments au format Taple sont un nombre variable d'arguments.
- Un nombre variable d'arguments doit être placé à la fin de la liste d'arguments formels.
- Vous pouvez mettre un argument normal devant lui.
--Si vous placez un argument normal après lui, il sera traité comme une partie d'un argument de longueur variable.
-Dans le cas du format * args, tous les arguments formels suivants sont des arguments de mots-clés.
- ** Taple ** est une séquence de données similaire à une liste, mais elle est immuable et contient souvent un mélange d'éléments de types différents. (-> [5.3 Taples et séquences](https://qiita.com/Wakii/items/34585aa75bf8c6a5b219#53-%E3%82%BF%E3%83%97%E3%83%AB%E3%81%A8 % E3% 82% B7% E3% 83% BC% E3% 82% B1% E3% 83% B3% E3% 82% B9))
4.7.4 Déballage de la liste d'arguments
--Récupérer chaque élément de la liste, du tapple et du dictionnaire et le transmettre à une variable ou à un argument s'appelle ** unpack **.
--Les listes et taples sont décompressés et deviennent des arguments de position en ajoutant * à gauche du nom.
--Dictionary est décompressé et devient un argument de mot-clé en ajoutant ** à gauche du nom.
--Par exemple, si vous voulez passer la liste args = [0, 10, 3] à la fonction range () sous la forme de * range (0, 10, 3) , vous pouvez écrire * range ( args) *.
4.7.5 Expression lambda
- ** Une petite fonction anonyme (fonction lambda) peut être écrite à l'aide du mot clé lambda **.
Les fonctions --Lambda peuvent être utilisées partout où un objet fonction est nécessaire.
- En tant que limitation syntaxique, vous ne pouvez avoir qu'une seule expression.
- Comme une définition de fonction normale, vous pouvez utiliser des variables dans la portée qui l'entoure à partir de la fonction lambda.
--Par exemple, si vous définissez une fonction lambda dans la fonction func (), vous pouvez vous référer à la variable locale de func () dans la fonction lambda.
4.7.6 chaîne de documentation (docstiring)
- La première ligne doit toujours être un résumé court et concis de l'objectif de l'objet.
- La première ligne commence par une majuscule et se termine par un point.
- Lors de l'écriture continue, la deuxième ligne doit être vide et le résumé et les autres descriptions doivent être séparés.
- L'analyseur Python ne supprime pas l'indentation des littéraux de chaîne multiligne.
--Si vous souhaitez le supprimer, utilisez l'outil qui traite le document.
4.7.7 Annotation de fonction (annotation de fonction)
- ** L'annotation de fonction ** correspond aux informations de métadonnées de type.
- Complètement facultatif et utilisé dans les fonctions définies par l'utilisateur.
- Stocké sous forme de dictionnaire dans l'attribut ** \ _ \ _ annotations__ ** de la fonction.
- La définition de l'annotation d'argument est suivie de deux points et d'une expression après le nom de l'argument.
- La définition de l'annotation de la valeur de retour est de mettre un littéral "->" et une expression entre la liste d'arguments formels de l'instruction def et les deux points.
--Exemple: * >>> def f (jambon: str, oeufs: str = 'oeufs') -> str: *
4.8 Connexion inter-rideaux: style de codage
--Il y a ** PEP8 ** dans la norme de codage Python. Quelques extraits ci-dessous.
――4 espaces sont parfaits pour l'indentation. N'utilisez pas d'onglets car ils peuvent prêter à confusion.
- Enveloppez les lignes de 79 caractères ou moins.
--Utilisez des lignes vides pour séparer les fonctions, les classes et les gros blocs au sein des fonctions.
- Si possible, rendez la ligne de commentaire indépendante.
- [docstring](https://qiita.com/Wakii/items/39fb6eee9250c4196a61#476-%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83% B3% E3% 83% 86% E3% 83% BC% E3% 82% B7% E3% 83% A7% E3% 83% B3% E6% 96% 87% E5% AD% 97% E5% 88% 97- docstiring) est utilisé.
--Mettez un espace autour de l'opérateur ou après la virgule, mais pas seulement à l'intérieur ().
- Donner un nom cohérent aux classes et aux fonctions.
--La classe est CamelCase
- Les fonctions et méthodes sont des cas inférieurs avec des scores
- Utilisez toujours self comme premier argument de la méthode.
- Le meilleur encodage est UTF-8 (par défaut Python) ou ASCII.
- N'utilisez pas de caractères non ASCII pour les identificateurs.
Article suivant: Un résumé du contenu du didacticiel Python (Chapitre 5)