Avant d'apprendre les fonctions, vous avez toujours suivi : la programmation orientée processus, c'est-à-dire : l'implémentation de fonctions de haut en bas basées sur la logique métier. Vous pouvez réfléchir s'il existe plusieurs codes. pour une certaine fonction. Est-il possible de l'écrire une seule fois s'il est utilisé à chaque endroit ? Comment le code devrait-il être défini à ce stade? Observez d'abord le cas suivant :
while True :
si utilisation du processeur> 90 % :
#Envoyer un rappel par e-mail
Se connecter au serveur de boîte aux lettres
Envoyer un e-mail
Fermer le connexion
Utilisation de la mémoire> 80 % :
#Envoyer un rappel par e-mail
>
def Envoyer un e-mail (contenu)
#Envoyer un rappel par e-mail
Se connecter au serveur de messagerie
Envoyer un e-mail
Fermer la connexion
pendant que Vrai :
si taux d'utilisation du processeur > 90 % :
Envoyer un e-mail (« Alarme du disque dur »)
si utilisation de la mémoire> 80 % :
Envoyer un e-mail (« Alarme de mémoire »)
Pour ce qui précède deux méthodes d'implémentation, la deuxième fois doit être meilleure que la première fois en termes de réutilisabilité et de lisibilité. Cela peut réduire beaucoup de temps de code et de développement. Il peut être défini en un seul endroit et appelé à plusieurs endroits. programmation fonctionnelle
Le concept de programmation fonctionnelle :
Lors du développement d'un programme, un certain morceau de code est nécessaire plusieurs fois. Utiliser, mais afin d'améliorer l'efficacité de l'écriture et la réutilisation du code, des blocs de code avec des fonctions indépendantes sont organisé en un petit module. C'est la définition et l'appel de la fonction
fonction
def printInfo(): print '---------------- ---------------- ----------' print 'La vie est courte, j'utilise Python' print '---------- ----------- -------------'
La définition de la fonction comporte principalement les points suivants :
• def : mot-clé représentant une fonction • Nom de la fonction : le nom de la fonction, la fonction est appelée selon le nom de la fonction lors de l'appel
• Corps de la fonction : effectué dans la fonction Une série de logiques calculs ou le contenu fonctionnel de la fonction.
• Paramètres : fournir des données pour le corps de la fonction
• Valeur de retour : lorsque la fonction est exécutée, les données peuvent être renvoyées à l'appelant.
<2> Appeler une fonction
Après avoir défini une fonction, cela équivaut à avoir un code avec certaines fonctions Pour réaliser celles-ci. codes exécutables, vous devez l'appeler (notez que le contenu à l'intérieur ne sera pas exécuté lors de la définition de la fonction)
L'appel de la fonction est très simple, et l'appel peut être complété via le nom de la fonction () demo :
# Après avoir défini la fonction, la fonction ne sera pas exécutée automatiquement, vous devez l'appeler printInfo()
< 3> description du document de fonction
Exemple :
... "Utilisé pour compléter la somme de 2 nombres"
... print("%d"%(a+b))...
>>>
Exécuter, le code suivant
>>> help(test)Vous pouvez voir les instructions pertinentes de la fonction de test===== ===== =====================================
Aide sur la fonction test dans le module __main__ :
test(a, b)
permet de compléter la somme de 2 nombres
(FIN)
==============================================
Paramètres de fonction-valeur de retour
<1> une fonction avec des paramètres
L'exemple est le suivant :
def addnum(a, b):
c = a+b
print c
<2> Appeler une fonction avec des paramètres
Pour appeler la fonction add2num(a, b) ci-dessus : Exemple :
def addnum(a, b):
c = a+b
print c
add2num(11, 22) #Lors de l'appel d'une fonction avec des paramètres, vous devez passer les données entre parenthèses
Résumé :
• Le les paramètres entre parenthèses lors de la définition sont utilisés pour recevoir des paramètres, et sont appelés "paramètres formels"
• Les paramètres entre parenthèses lors de l'appel sont utilisés pour passer à la fonction, sont appelés "paramètres réels"
ps : Il y aura un blog séparé expliquant les paramètres des fonctions en détail plus tard
<3>
Exemple :
def add2num(a, b):
Return c
Un exemple de la valeur de retour de la fonction enregistrée est la suivante :
#Define function
def add2num(a, b):
Return a+ b
result = add2num(100,98)
#Parce que le résultat a enregistré la valeur de retour de add2num, il peut être utilisé ensuite imprimer le résultat
Résultat :
198
En python nous pouvons renvoyer plusieurs valeurs
(a, b) :... shang = a//b
... yushu = a%b
... retourner shang, yushu
...
> sh, yu = divid(5, 2)
> ;>> sh
5
>>> yu
1
Les fonctions peuvent être combinées entre elles selon qu'il y a des paramètres et s'il y a une valeur de retour. Il y a 4 types au total
• Pas de paramètres, pas de valeur de retour
• Pas de paramètres, pas de valeur de retour • Il y a des paramètres, pas de valeur de retour
• Il y a des paramètres, il y a une valeur de retour
<1>Fonction sans paramètres, pas de valeur de retour
Les fonctions de classe ne peuvent pas recevoir de paramètres, mais peuvent renvoyer certaines données. Généralement, ces fonctions sont utilisées pour collecter des données
. <3> Fonctions avec paramètres et aucune valeur de retour
Paramètres, mais ne peuvent pas renvoyer de données De manière générale, lors de la définition de données pour certaines variables sans exiger de résultats, utilisez ce type de fonction
<4> paramètres et valeur de retour
Ce type de fonction, Elle peut non seulement recevoir des paramètres, mais aussi renvoyer certaines données. Généralement, pour les applications qui traitent des données et nécessitent des résultats, utilisez ce type de fonction
Petit résumé<.>
Les fonctions peuvent être combinées entre elles selon qu'elles ont ou non des paramètres et des valeurs de retour• Lors de la définition d'une fonction, elle est conçue en fonction des exigences fonctionnelles réelles, donc les types de fonctions écrits par différents développeurs sont différents• Qu'est-ce qu'une fonction exactement ? S'il n'y a pas de valeur de retour, cela dépend s'il y a un retour, car seul le retour peut renvoyer des données
• Il peut y avoir plusieurs instructions return dans une fonction, mais tant qu'une instruction return est exécutée, cela signifie que l'appel de cette fonction est terminé
•
Essayez de ne pas répéter les noms des fonctions dans un programme. Lorsque les noms de fonctions sont répétés, les derniers écraseront les précédents (remarque : ne répétez pas également le nom de la variable et il sera écrasé)
Imbrication de fonctions
def testB():
print('---- testB start----')
print('Ceci est testB Le code exécuté par la fonction...(omis)...')
print('---- testB end----')
def testA():
print('---- testA start----')
testB()
print('---- testA end----')
Appeler
testA()
Résultat :
---- testA start----
---- testB start--- -
Voici le code exécuté par la fonction testB...(omis)...
---- fin testB----
---- fin testA----
Petit résumé:
• Une fonction appelle une autre fonction, C'est ce qu'on appelle appel de fonction imbriquée
• Si une autre fonction B est appelée dans la fonction A, alors toutes les tâches de la fonction B seront exécutées en premier avant de revenir à la fonction précédente. position où la fonction secondaire A est exécutée
Cas d'imbrication de fonctions :
1. Écrivez une fonction pour trouver la somme de trois nombres
2. Écrivez une fonction pour trouver la moyenne de trois nombres
# Trouvez la somme de trois nombres
def sum3Number(a,b , c):
return a+b+c # return peut être suivi d'une valeur numérique ou d'une expression
# Complétez la moyenne de 3 nombres
def moyenne3Nombre(a,b,c):
# Parce que la fonction sum3Number a déjà complété la somme de trois nombres, il suffit de l'appeler
# Autrement dit, les trois nombres reçus peuvent être transmis comme paramètres réels
sumResult = sum3Number(a,b,c)
aveResult = sumResult/3.0
return aveResult
# Appelez la fonction pour compléter la moyenne de 3 nombres
result = Average3Number(11,2,55)
print("average is %d"%result)
Variables locales et variables globales de la fonction
Variables locales
Exemple :
Dans [8] : def text1():
...: a = 200
. ..: Imprimer ("Texte1 ----- %D" %A)
...: Imprimer ("Après modification")
...: A = 300
..: imprimer. ("text1----%d" %a)
...:
a = 400 print("text2- ----%d" %a) 🎜> text1----200
Modifié
text1----300
text2- ----400
Résumé
• Les variables locales sont des variables définies à l'intérieur d'une fonction
• Le rôle des variables locales, afin de sauvegarder temporairement les données, il faut définir des variables dans la fonction de stockage, c'est son rôle
Variables globales
Concept : Si une variable peut être utilisée dans une fonction ou dans d'autres fonctions, une telle variable est une variable globale
Exemple :
text1():...: print("----text1----% d" %a) ...: Dans [14]: def text2( ): )
----text1----250.
Dans [16] : text2()
----text2----250
Lorsque les variables locales et les variables globales ont le même nom Quand :
Dans [23] : a = 250 # Variable globale
Dans [24] : def text1():
. .: ..: # Variable locale
...: ...:
Dans [25] : def text2(): .. .: print("----text2----%d" %a)
.. .:
Dans [26] : text1()
----text1----666
Dans [ 27] : text2()
Dans [28] :
Résumé :
• Les variables définies en dehors d'une fonction sont appelées variables globales
• Les variables globales sont accessibles dans toutes les fonctions • Si le nom de la variable globale est le même que le nom de la variable locale, alors les variables locales sont utilisées, une petite astuce pour tenir les serpents locaux à distance
Modifier les variables globales à l'intérieur de la fonction :
Dans [32] : def text1(): . ..: a = 520 ...: print("----text1----%d" %a )
Dans [33] :
Dans [ 33]: def text2():
...:
global
a
...: a = 666
...: Print("----text2-- --%d" %a)
... :
Dans [34] : # Aucune fonction n'est appelée
Dans [35] : print( a)
250
Dans [36] : # Appel text1
Dans [37] : text1()
----text1-- --520
Dans [38] : # Imprimer à nouveau---->
Dans [39] : print(a)
250
Dans [40] : # Trouvé que la valeur n'a pas été modifiée
Dans [41] :
# Appeler text2
Dans [42] : text2()
----text2----666
Dans [43] : # Imprimer à nouveau un
Dans [ 44] : print(a)
666
Dans [45] : # La valeur a été modifiée
Résumé :
• Si vous modifiez une variable globale dans une fonction, vous devez utiliser global pour la déclarer, sinon cela équivaut à la redéfinir à l'intérieur de la fonction (sans passer de paramètres) Un objet de la même variable
La différence entre - les variables globales de type variable - et les variables globales de type immuable - modifiées à l'intérieur de la fonction
ps : Il y aura sera un blog plus tard qui expliquera en détail les concepts de types variables et de types immuables
Exemple : -------> ;Type immuable : Dans [46] : a = 6 Dans [47] : def demo(): ...: a += 1 ...: print(a)
...:
Message d'erreur :
------------- --------------- ----------------------------------- ------------
UnboundLocalError Traceback (dernier appel le plus récent)
1 def demo():
——> a += 1
3
UnboundLocalError : variable locale 'a' référencée avant l'affectation
------------------------------- - -----------------------------------------------
Remarque : Evidemment elle ne peut pas être modifiée
------->Type de variable :
Dans [49] : a = [1,]
Dans [50] :
Dans [50] : def demo():
...: a.append(2)
print(a)
. .:
Dans [51] : demo()
[1, 2]
Dans [52] : a
Sortie[52] : [1, 2]
Lorsqu'une fonction est appelée, la valeur de la liste est modifiée à l'intérieur de la fonction lorsque la fonction est exécutée - et également modifiée lorsqu'elle est imprimée en externe.
Résumé :
○ Si vous modifiez une variable globale dans une fonction, vous devez utiliser global pour la déclaration, sinon une erreur se produira
○ Ne pas utiliser de déclaration globale dans la fonction L'essence des variables globales ne peut pas être modifiée est que ne peut pas modifier le point des variables globales , signifie que ne peut pas pointer les variables globales vers de nouvelles données .
○ Pour les variables globales de type immuable , les données pointées par ne peuvent pas être modifiées , donc si global n'est pas utilisé, ne peut pas modifier la variable globale .
○ Pour les variables globales de type de variable , les données pointées par peuvent être modifiées , donc lorsque global n'est pas utilisé, peut également modifier le global variable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!