Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. Python
Code

Python à partir de zéro - Fonctions et modules

by
Difficulty:BeginnerLength:LongLanguages:
This post is part of a series called Python from Scratch.
Python from Scratch: Variables, Data Types and Control Structure
Python from Scratch: Object Oriented Programming

French (Français) translation by Jeane Jade (you can also view the original English article)

Bienvenue à la Python à partir de Zéro de la série.  Dans la leçon précédente, nous avons appris comment utiliser des variables et des structures de contrôle pour stocker et manipuler des données. Vérifiez si vous avez besoin d'une remise à niveau!


Tutoriel Vidéo


Transcription

Dans le tutoriel d'aujourd'hui, nous allons être à la recherche à des fonctions - ce qu'ils sont, comment ils fonctionnent, et comment faire votre propre.  Nous allons également examiner certaines des fonctions intégrées, et comment les utiliser efficacement. Enfin, nous allons avoir un regard sur la création et l'importation de modules.


Les fonctions d'Écriture de votre Propre

Les fonctions sont une étape importante pour couvrir, lors de l'introduction de complexité supplémentaire dans votre programmation. Si une variable est un nom de conteneur pour les données, une fonction est un nom de conteneur pour un bloc de code qui peuvent être exécutées sur demande.  Ceci est utile si vous avez un programme qui exécute une opération donnée beaucoup de temps. Au lieu de copier et de coller le code pour faire cette opération chaque section où c'est nécessaire, vous pouvez simplement écrire une fonction unique de le faire pour vous.

Une fonction est un nom de conteneur pour un bloc de code.

 Il existe deux types de fonctions: celles que vous écrivez vous-même et à inclure dans votre code, et ceux qui sont inclus dans Python en mode natif, qui réalisent des procédures communes, telles que la conversion d'un entier en une chaîne de caractères, ou de trouver la longueur d'une chaîne.

 Nous allons nous intéresser à l'écriture d'une fonction simple maintenant, et de montrer comment elle peut être utile dans le monde réel de code. Ensuite, nous allons jeter un oeil à certaines des plus importantes fonctions intégrées.

Un Exemple simple

 Imaginons que nous voulons faire un script pour un panier d'achat qui prend le coût de tous les articles dans votre panier, puis de les ajouter ensemble pour renvoyer un coût total. Pour écrire une fonction qui prendrait les deux coûts, ajoutez-les, et ensuite, imprimez la sortie, nous pourrions faire quelque chose comme:

Pour définir la fonction, nous devons utiliser le 'def' mot-clé, puis le nom de la fonction. Ensuite, nous avons le type de deux parenthèses (nous y reviendrons plus loin), et puis deux points. Après cela, tout le code que nous voulons être enfermé à l'intérieur de la fonction doit être mis en retrait, comme si, les boucles while et for.

 Pour rendre le code dans la fonction exécuter, on tape le nom de la fonction, suivi par les deux parenthèses de nouveau.  Si vous exécutez ce code, vous verrez qu'il imprimer '35', qui est le bon de sortie.

Arguments

 C'est très bien, mais pour le moment, nos fonctions sont un peu rigides – tout à propos de la fonction est codée en dur dans.  Par exemple, imaginons que nous voulons utiliser le sumCart fonction quelque part ailleurs, dans une autre partie du programme, mais au lieu d'ajouter coût1 et cost2 ensemble, nous voulons ajouter deux autres coûts qui ont eu lieu dans différentes variables.  Nous devrions avoir à écrire une toute nouvelle fonction, même si cette nouvelle fonction serait exactement le même que l'actuel, avec les noms des variables échangées autour - qui ne semble guère être une solution efficace.

 Pour résoudre ce problème, nous utilisons des "arguments", et c'est ce que les parenthèses sont pour.  Un argument est une façon de transmettre des données dans une fonction lorsque nous ne savons pas quelles sont les variables ou les variables de données va être dans la. Si cela est source de confusion, nous allons prendre l'exemple que je viens de référence. Nous allons ajouter deux autres coûts: cost3 et cost4.

 Maintenant, nous allons ajouter deux arguments pour les deux articles que nous voulons ajouter. Les Arguments sont définis à l'intérieur des parenthèses, et chaque argument est donné un nom, avec une virgule séparant chaque.  Un argument agit comme un renvoi temporaire pour les données que vous avez passé en tant que la fonction est en cours d'exécution.

 Lorsque nous appelons la sumCart la fonction, les deux variables que nous avons adopté en (coût1 et cost2) sont mis dans les arguments item1 et item2. Ce qui se passe toujours dans le même ordre que vous définissez les arguments – en d'autres termes, la première variable que vous transmettez est attribué au premier argument, le deuxième au deuxième argument, et ainsi de suite pour autant d'arguments que votre fonction prend.

Ce qui se passe réellement lors de l'exécution de la fonction, c'est que ces deux arguments sont converties en variables locales et sont affectés par les valeurs des variables que vous passez dans la fonction lorsque vous l'appelez – dans ce cas, la valeur de coût1 est mis dans la variable locale élément1, et la valeur de cost2 est mis dans la variable locale item2. Cela signifie que vous pouvez facilement les utiliser à l'intérieur de la fonction.

 Une autre façon de voir les choses est, lorsque vous passez une variable comme argument, partout que cet argument est le nom apparaît dans la fonction, il est remplacé par la variable passée dans. Ainsi, dans cet exemple, où qu'item1 est écrite à l'intérieur de la fonction, elle est remplacée par coût1, et la même chose avec item2 et cost2.

 Pour prouver que vous pouvez passer tout les numéros que vous voulez, si vous exécutez ce code, vous devriez recevoir une somme de cost3 et cost4:

 Argument Par Défaut

 Notez qu'une fonction accepte un nombre quelconque d'arguments, mais n'oubliez pas: lorsque vous appelez la fonction, vous devez passer le même nombre d'arguments que vous avez défini, sinon, vous recevrez un message d'erreur. Il y a un moyen de contourner cela: vous pouvez définir une valeur par défaut pour tout argument, qui est utilisé dans le cas où vous ne fournissez pas de valeur.

Compte tenu de notre code actuel, imaginons que nous voulons que le deuxième élément de coût 5 si nous ne donnons pas la fonction d'une autre valeur.  Ce n'est pas un scénario le plus probable, mais il va illustrer le concept.

 Si nous exécutez ce code, vous verrez que, dans le premier appel, la sortie est de 20, ce qui est bien (coût1 + 5).  Ce n'est pas, cependant, affecter le comportement lorsque les deux arguments sont fournis.

Le retour des valeurs

 Il y a une fonctionnalité finale de fonctions que nous allons examiner aujourd'hui: le retour des valeurs.   Nous avons appris comment faire une fonction qui n'a pas l'esprit quels sont les moyens qu'il faut, mais que faire si nous voulions pour stocker la réponse à "prixtotal" dans une variable plutôt que de l'imprimer?  Peut-être ce que nous voulons faire est de travailler sur le coût de la première de deux éléments, et de le stocker dans une variable, puis faites de même avec la seconde deux éléments et de les stocker cette réponse dans un deuxième variable.  Avec la configuration actuelle de notre fonction, nous ne pouvions pas le faire dans un texte lisible et facile à comprendre.

Tout comme la façon dont nous pouvons nous passer des arguments à une fonction, de sorte que nous n'avons pas de code en dur où les données proviennent d', nous pouvons faire la même chose à la sortie.  Je vais vous montrer avec un exemple dans notre fonction précédente, je vais remplacer le mot "imprimer" avec le mot "retour":

 De toute évidence, la fonction ne va plus pour imprimer la réponse pour nous – ce qu'il va faire à la place est de passer de nouveau la valeur de la variable prixtotal à l'endroit où nous avons appelé la fonction.  De cette façon, nous pouvons utiliser la réponse quel que soit le contexte nous en avons besoin. Maintenant, dans notre précédent programme, qui ne serait pas particulièrement utile, parce que nous n'avons pas spécifier n'importe où à stocker, donc j'ai aussi changé la façon dont nous appelons la fonction.

 Nous avons besoin de fournir Python avec une variable pour stocker la réponse, et puis nous sommes aller tout simplement pour définir la variable est égale à notre déclaration de l'appel de la fonction.  Lorsque la fonction renvoie une valeur, cette valeur sera désormais stocké dans la variable spécifiée.


Fonctions - Built-in

 Nous avons appris à faire nos propres fonctions, et comment les utiliser, mais il y a certaines opérations qui sont effectuées assez souvent que Python est inclus pour une utilisation dans n'importe quel programme.  La façon dont vous les appelez, est exactement le même que d'appeler votre propre, mais vous n'avez pas à les définir en premier.  Nous allons avoir un bref regard sur les plus importantes maintenant, mais assurez-être avoir un coup d'oeil à la documentation Python, car il y a des tas de fonctions utiles qui sont disponibles pour l'utilisation, ce qui nous n'ont pas le temps de couvrir la droite maintenant.

 Reportez-vous à la documentation Python pour une liste de toutes les fonctions intégrées.

str()

 Tout d'abord, examinons l'une des fonctions les plus utiles en Python: la chaîne de conversion de la fonction.  Il ya beaucoup de fois dans l'écriture de script lorsque vous avez une variable qui contient un nombre, ou un autre type de données, mais vous avez besoin de convertir cette valeur en chaîne dans le but de faire quelque chose avec elle – normalement à imprimer sur l'écran.

 Disons que nous avons un nombre dans une variable, et que nous voulons imprimer, avec le message "Le nombre est" et le nombre. Si nous écrivons:

 ...puis nous allons à la rencontre d'une erreur, parce que ce que vous demandez Python à faire est d'ajouter un nombre et une chaîne de concert, ce qui ne veut pas vraiment faire beaucoup de sens.  Ce que nous devons faire est de convertir le nombre 10 dans la chaîne 10.  Si nous faisons cela, Python va comprendre que ce que nous essayons de faire est de ne pas trouver une somme, mais au lieu de concaténer deux chaînes de caractères en un seul.

 C'est là que la fonction str.  Il accepte une valeur, et retourne une chaîne de caractères pour le représenter. Dans le cas où vous transmettre un certain nombre, il suffit de retourner le nombre, mais dans un format de chaîne.

 Maintenant que nous avons enfermé le nombre dans une chaîne de conversion de fonction, le code fonctionne parfaitement.  La fonction str n'a pas à prendre un certain nombre cependant, il peut aussi prendre d'autres valeurs, comme une valeur Booléenne:

Le str() fonction trouve le plus proche de la chaîne de match, il peut trouver de la valeur ‘true’ et la retourne, ce qui signifie que nous pouvons sortie joliment.

 len()

Une autre tâche commune pour cordes est d'être en mesure de trouver la longueur d'eux, et, de nouveau, Python dispose d'une fonction intégrée pour cela.  Prenons la chaîne ‘Bonjour le Monde’ et essayer de trouver sa longueur.  Pour ce faire, nous allons avoir besoin de l'intégré dans la fonction len (), qui se tient pour la longueur.  Tout ce que nous devons faire est de passer de la chaîne que nous voulons utiliser, et il sera de retour le nombre de caractères qu'il contient:

La fonction len() est capable de plus que cela, cependant.  Ce qu'il fait réellement, c'est compter le nombre d'éléments dans l'objet que vous lui donner – si vous lui donnez une chaîne de caractères, alors que c'est le nombre de caractères, mais vous pouvez aussi lui donner une liste ou un tuple, par exemple, et il sera de retour le montant des éléments de cet objet particulier.

 int()

 Sur la route, souvent, vous êtes donné un certain nombre comme 10.6 ou 3.896, ce qui n'est pas un nombre entier, mais vous avez besoin d'un nombre entier à partir d'eux. La fonction intégrée permettant de convertir un nombre entier est appelé int(), et il fonctionne assez prévisible.  La fonction retournera la conversion d'entier de ce nombre.  Notez que cette fonction ne prend PAS en rond à l'entrée à l'entier le plus proche – il très simplement jette quoi que ce soit après le point décimal et renvoie le numéro pour vous. Donc l'entrée de 10,6 sera de retour 10, 11. De même, 3.25 serait de retour 3.

La fonction int pouvez également convertir une chaîne en un type de données int. Par exemple, compte tenu de cela, la sortie serait encore 10:

Cependant, soyez prudent, parce que, lorsqu'il est en train de convertir une chaîne en un entier de type int() ne traitera PAS avec les décimales.  Si vous le fournir:

 Puis il lève une erreur, car l'entrée n'était pas un entier, il ne savait pas comment le gérer.

 (plage)

 Enfin, nous allons chercher rapidement à la plage de fonction (); il vient étonnamment souvent, lorsque vous commencez à faire des tâches plus complexes en Python, et, alors qu'il peut ne pas sembler massivement utile pour le moment, il vaut la peine de regarder et d'apprendre à savoir comment il fonctionne. La gamme est une fonction que vous utilisez pour créer une liste de numéros à la suite d'un certain modèle. L'exemple le plus simple est que peut-être vous avez besoin d'une liste contenant tous les nombres de 0 à 10. Au lieu de les taper manuellement, vous pouvez utiliser la fonction range de le faire en une seule ligne.

 Gamme accepte un entier comme paramètre, et, dans ce cas, nous allons passer à 11.  La fonction arrêtera commence à zéro, et établit une liste de comptage vers le haut, jusqu'à ce qu'il frappe un de moins que le nombre que vous mettez dans.  Donc ici, si l'on place dans le 11, il va stocker les nombres de 0 – 10 dans les numéros de la liste:

 Que faire si nous voulions pour imprimer les numéros de cinq à dix à la place? Eh bien, en option, nous pouvons inclure un autre argument pour le nombre de départ, ce qui permettra d'imprimer les numéros de cinq à dix:

Enfin, si nous voulions pour imprimer uniquement les nombres impairs de moins de 10? Ainsi, la gamme accepte une troisième valeur, qui est la quantité d'aller jusqu'à chaque étape.  Donc, si nous commençons à 1, régler le pas de deux et la limite supérieure à 11, nous devrions nous retrouver avec tous les nombres impairs de moins de dix:

 Comme note finale, l'un de ces numéros peut être négatif, donc si nous voulions le compte à rebours de 10 à 1 au lieu d'en haut, nous avons pu définir le pas pour être négatif, 1, la valeur de départ à 10 et la limite à 0, comme suit:

Notez que la gamme ne traitons qu'avec des entiers, alors assurez-vous que vous ne lui donnez pas toutes les valeurs qui ne sont pas des entiers, ou vous allez lancer une erreur.


Modules - Création de vos Propres

 Bien, nous avons maintenant couvert fonctions; passons au deuxième sujet de la leçon d'aujourd'hui: des modules.  Si les fonctions sont des groupes de code, puis les modules sont des groupes de fonctions.  Il n'y a plus pour eux, mais c'est une bonne façon de penser pour l'instant.

 Comme nous l'avons discuté plus tôt, vous ne pouvez pas faire un programme complexe, sans tri code en fonctions, et que votre programme continue à croître, de même qu'ils deviennent encombrants.  Vous devez les trier dans un autre niveau hiérarchique.  Ce sont des modules.  Donc, nous pouvons les résumer comme un structurelles et organisationnelles de l'outil pour notre code.

Les Modules sont très faciles à créer.  Ils sont simplement des fichiers Python, comme régulièrement vos scripts.  Pour créer un module, écrire une ou plusieurs fonctions dans un fichier texte, puis enregistrez-le avec un .py extension.  Faisons-le maintenant avec un exemple.  Ouvrez un nouveau fichier de votre éditeur de texte ou IDE, et de faire une fonction.  Je vais continuer avec l'exemple d'un panier d'achat à partir plus tôt et faire une fonction pour calculer la taxe sur les produits.

 Créer un nouveau fichier dans votre IDE ou un éditeur de texte et nous allons créer une fonction pour le calcul de l'impôt sur un produit.

 Si nous enregistrer ce fichier avec une .py extension dans le même répertoire que notre script, nous pouvons l'utiliser comme un module!  Il est important de lui donner un nom descriptif, donc vous savez ce qu'il fait quand vous revenez plus tard, alors appelez cela un finance.py


 L'importation des modules

 Pour utiliser les modules, on peut utiliser soit à l'importation ou à partir de mots clés.  l'importation est le plus simple et le plus commun, essayons donc que la première.  Vous devez ensuite spécifier le nom du module, qui est simplement le nom du fichier, sans le .py extension. Par exemple, avec notre module de finance dans le même dossier que notre script, nous pourrions écrire:

 ...et nous avons accès à toutes les fonctions dans le script.  Ensuite, nous pouvons les appeler comme nous l'avons fait avant.  Vous pouvez également utiliser le mot-clé, qui permet de sélectionner les fonctions spécifiques de la bibliothèque, si vous savez ceux qui vous avez besoin à l'avance.  Pour un module qui contient des centaines de fonctions, il est recommandé de le – il fait gagner du temps de chargement sur les fonctions qui ne sont même pas utilisés.

 Vous pouvez importer plusieurs en les séparant de leurs noms par des virgules.

Et vous pouvez même utiliser le caractère générique astérisque tout importer.

 Après l'importation du module, pour utiliser les fonctions qu'il contient, vous utilisez le nom du module, suivi d'un point, puis le nom de la fonction.

 Il devrait en résulter 105 lorsque le script est exécuté. Un simple résultat, mais cela signifie que vous avez une fonction de fonctionnement!


Modules intégrés

 Il y a beaucoup de construit dans les modules, comme il y en a avec des fonctions intégrées. C'est là que Python excelle!  Il prend ce qu'on appelle les “piles”.

 Parce que Python a une telle vaste gamme de modules intégrés, il n'y a aucun moyen de les couvrir tous, dans une leçon.  Certains sont assez obscure, et il n'y a pas de point de l'enseignement d'une charge de renseignements que vous pourriez ne jamais avoir une utilisation.  Au lieu de cela, nous allons couvrir quelques-uns des plus utiles.

  • aléatoire
  • mathématiques
  • os
  • datetime
  • urllib2

aléatoire

 Bon pour commencer est aléatoire , car il est facile à comprendre et utile dans la plupart des scripts que vous allez écrire.  Que vous vous attendez, ce module vous permet de générer des nombres aléatoires.  Par exemple, lors de l'utilisation de Python pour créer un site web, ils peuvent être utilisés dans la fabrication de votre mot de passe de la base de données la plus sécurisée ou d'alimenter une page au hasard fonctionnalité.  Si nous voulions un entier aléatoire, nous pouvons utiliser la fonction randint, comme suit:

 Cela permettra de sortie 1, 2, 3, 4 ou 5. Randint accepte deux paramètres: un plus bas et un plus grand nombre.  Comme vous pouvez le voir, il comprend le plus grand nombre, mais va du 1 ci-dessus, le nombre le plus bas. Si vous souhaitez de façon aléatoire un nombre à virgule flottante, vous pouvez utiliser la fonction de lecture aléatoire:

...ce qui génère un nombre aléatoire entre 0 et 1, pour une charge de décimales. Si vous voulez un plus grand nombre, vous pouvez multiplier. Par exemple, un nombre aléatoire entre 0 et 100:

 Le module random a aussi une fonction pour choisir un élément au hasard dans un jeu tel qu'une liste de choix.

mathématiques

Le module math donne accès à de constantes mathématiques et de fonctions.

 Il y a beaucoup plus de fonctions dans le module, mais ce sont les plus utiles.  Vous pouvez trouver une liste complète ici.

datetime

 Si vous avez besoin de travailler avec des dates et des heures, puis le module datetime est votre ami.  Celui-ci est très utile à connaître pour le développement web. Si vous faites un site web avec des commentaires, ou d'un blog, alors vous aurez probablement être l'affichage de leur âge, ou le temps qu'ils ont été créés.

 Nous allons importer le module comme d'habitude:

 Pour plus de commodité, vous pouvez également importer la date et le temps de composants séparément, de sorte que vous n'avez pas à taper que beaucoup plus tard.

 Jetons un coup d'oeil à certaines des fonctions qu'il assure:

 Il y a quelques fonctions utiles pour la conversion des dates dans utilisable cordes. strftime vous permet de formater une chaîne de caractères basée sur des caractères spéciaux précédé d'un symbole de pourcentage.  %d représente le jour, par exemple.

os

 Le prochain module, nous sommes à la recherche à l'est de l'os, qui offre des fonctions qui vous permettent de faire l'interface avec le système d'exploitation que Python est en cours d'exécution sur l' - être que Windows, Mac ou Linux. Nous allons nous concentrer sur le chemin du sous-module.  Il vous permet de manipuler et de trouver les propriétés des fichiers et des dossiers sur le système, de sorte qu'il est le plus utile pour le développement web.  Vous aurez souvent besoin de gérer les fichiers, par exemple les téléchargements des utilisateurs.

 Ces horodateurs peut être converti utilisable chaînes en utilisant le module datetime - vous pouvez voir comment vous pouvez combiner des modules.

 La dernière fonction dans le module os, nous allons regarder est de rejoindre. Il combine deux voies en une seule. Vous pensez peut-être: "Pourquoi ne puis-je pas simplement concaténer les chaînes?", mais ce n'est pas aussi simple que cela. Sur Windows, le délimiteur de chemin est une barre oblique inverse, sur Mac et Linux c'est une barre oblique.  Ce module soulage les problèmes comme ça et s'assure que vos scripts Pythons travailler sur n'importe quel système.

urllib2

 Pour terminer notre visite de Python standard library, nous allons faire un bref coup d'oeil à urllib2.  Ce module vous permet d'interface avec le web, donc il est évidemment tout à fait pertinente pour nous.  La plupart des fonctions utiles qu'il propose est urlopen, qui permet de télécharger une page.

 Vous l'utilisez comme suit:

 Vous pouvez bien évidemment swap de la chaîne d'URL pour un site.  Cela permettra de télécharger du contenu HTML de la page.  Cela ne peut pas retourner une chaîne de caractères, donc nous avons besoin de lire les données à obtenir cela:

 Ce sera le retour de la 100 premiers caractères du code source HTML de Nettuts+.  Une fois que vous avez ces données, vous pouvez trier et extraire le nécessaire dont vous avez besoin.


Derniers Conseils:

 Si votre module est dans un autre répertoire que votre script, c'est un peu plus compliqué pour les importer. Vous devez créer un fichier qui indique à Python le dossier est un ensemble.  Par exemple, si vous avez un dossier, sous-répertoire appelé, dans le même dossier que votre script, et ensuite votre module à l'intérieur de ce sous-répertoire, vous devez créer un fichier appelé __init__.py dans le même dossier que le module. Ce fichier peut être vide.  Puis, à partir de votre script, vous souhaitez importer:

 %de le revoir si vous avez besoin d'une remise à niveau!


Tutoriel Vidéo


Transcription

Dans le tutoriel d'aujourd'hui, nous allons être à la recherche à des fonctions - ce qu'ils sont, comment ils fonctionnent, et comment faire votre propre. Nous allons également examiner certaines des fonctions intégrées, et comment les utiliser efficacement. Enfin, nous allons avoir un regard sur la création et l'importation de modules.


Les fonctions d'Écriture de votre Propre

Les fonctions sont une étape importante pour couvrir, lors de l'introduction de complexité supplémentaire dans votre programmation. Si une variable est un nom de conteneur pour les données, une fonction est un nom de conteneur pour un bloc de code qui peuvent être exécutées sur demande. Ceci est utile si vous avez un programme qui exécute une opération donnée beaucoup de temps. Au lieu de copier et de coller le code pour faire cette opération chaque section où c'est nécessaire, vous pouvez simplement écrire une fonction unique de le faire pour vous.

Une fonction est un nom de conteneur pour un bloc de code.

Il existe deux types de fonctions: celles que vous écrivez vous-même et à inclure dans votre code, et ceux qui sont inclus dans Python en mode natif, qui réalisent des procédures communes, telles que la conversion d'un entier en une chaîne de caractères, ou de trouver la longueur d'une chaîne.

Nous allons nous intéresser à l'écriture d'une fonction simple maintenant, et de montrer comment elle peut être utile dans le monde réel de code. Ensuite, nous allons jeter un oeil à certaines des plus importantes fonctions intégrées.

Un Exemple simple

Imaginons que nous voulons faire un script pour un panier d'achat qui prend le coût de tous les articles dans votre panier, puis de les ajouter ensemble pour renvoyer un coût total. Pour écrire une fonction qui prendrait les deux coûts, ajoutez-les, et ensuite, imprimez la sortie, nous pourrions faire quelque chose comme:

Pour définir la fonction, nous devons utiliser le 'def' mot-clé, puis le nom de la fonction. Ensuite, nous avons le type de deux parenthèses (nous y reviendrons plus loin), et puis deux points. Après cela, tout le code que nous avons w

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.