Selon le glossaire informatique, «fonction» est Il existe "une série d'instructions qui reçoivent des données appelées arguments, exécutent le traitement spécifié et renvoient le résultat". Un programme est un ensemble de fonctions car le programme lui-même traite en fonction des données et renvoie le résultat. Si vous écrivez à chaque fois que vous utilisez un programme qui fait la même chose sans utiliser de fonction, le programme devient redondant. De plus, si une correction est nécessaire, toutes les pièces doivent être corrigées. Si vous en faites une fonction, vous pouvez réduire la quantité de code dans le programme, et vous n'avez qu'à modifier une fonction, donc cela ne prend pas de temps. Il est également indispensable lors de la création du "module" décrit plus loin.
Créez une fonction simple. C'est un programme qui utilise une fonction qui détermine si l'année donnée en argument est une année humide. Une fonction qui stocke un numéro favori dans l'année sur la 9ème ligne (stocke actuellement 2015) et détermine l'année Vérifions que leap_year () fonctionne correctement.
leap_year.py
def leap_year(year):
if year % 400 == 0 or (year % 100 != 0 and year % 4 == 0) :
leap = True
else:
leap = False
return leap
year = 2015
print("{0} = {1}".format(year,leap_year(year)))
La fonction est définie sous la forme suivante.
** def ** * Nom de la fonction * ** (** * Argument * **): ** En traitement ** return ** * valeur de retour *
Vous pouvez également définir une fonction sans valeur de retour en n'écrivant pas d'instruction de retour.
leap_year2.py
def leap_year(year):
if year % 400 == 0 or (year % 100 != 0 and year % 4 == 0) :
print("{0} is leap year".format(year))
else:
print("{0} is not leap year".format(year))
year = 2015
leap_year(year)
Si vous omettez l'argument d'une fonction normale, une exception se produira.
argment_ERRROR.py
def plus_4(arg1,arg2,arg3,arg4):
return arg1+arg2+arg3+arg4
print("no arg:{0}".format(plus_4()))
TypeError: plus_4() takes exactly 4 arguments (0 given)
Cependant, lorsque la fonction est définie, l'argument est omis en écrivant * argument * ** = ** * valeur par défaut *. Vous pouvez définir la valeur par défaut.
argment_ERRROR.py
def plus_4(arg1=2000,arg2=0,arg3=10,arg4=5):
return arg1+arg2+arg3+arg4
print("no arg:{0}".format(plus_4()))
Le résultat suivant est sorti. C'est pratique. no arg:2015
Vous pouvez créer une fonction qui ne détermine pas le nombre d'arguments à l'avance.
argments.py
def spam(*args):
print("{0}".format(args))
spam("arg1",2,3.4)
Le résultat de sortie est ('arg1', 2, 3.4) Ce sera. Vous pouvez passer une valeur à l'argument sous forme de tapple en définissant ** \ * nom de variable ** dans l'argument.
argments2.py
def spam(**args):
print("{0}".format(args))
spam(taro=165,jiro=180,saburo=170)
Une autre façon de définir des arguments de longueur variable consiste à définir les arguments comme ** \ * \ * nom de variable **. Vous pouvez passer une valeur comme argument en tant que dictionnaire.
Les variables globales sont des variables qui peuvent être référencées de n'importe où. En le déclarant en dehors de la fonction, il peut être utilisé à l'intérieur ou à l'extérieur de la fonction. Inversement, les variables locales, qui sont des variables déclarées à l'intérieur d'une fonction, ne peuvent pas être utilisées en dehors de la fonction.
global_explain.py
var1 = "global"
def hoge(str):
var2 = "local"
return var1 + str + var2
print("{0}".format(hoge("-")))
print("{0}".format(var2))
#print("{0}".format(var1))
Le programme ci-dessus lèvera une exception d'exécution. Vous devriez voir quelque chose comme ceci:
global-local Traceback (most recent call last): print("{0}".format(var2)) NameError: name 'var2' is not defined
La variable var2 étant une variable déclarée dans la fonction hoge, elle ne peut pas être utilisée de l'extérieur. La variable var1 déclarée en dehors de la fonction peut être utilisée à l'intérieur et à l'extérieur de la fonction. Du programme Commentez "print (" {0} ".format (var2))" et À la place, décommentez "print (" {0} ".format (var1))" et réexécutez le programme. Cette fois, aucune exception n'est soulevée.
Ensuite, je vais vous montrer comment changer la variable globale à l'intérieur de la fonction.
change_global_NG.py
var1 = "global"
def spam():
var1 = "change global"
var2 = "local"
print(var1,var2)
spam()
print("var1 : {0}".format(var1))
ange global local var1 : change global
Je m'attends à ce qu'il soit affiché, mais en réalité
ange global local var1 : global
Il sera affiché. Pourquoi ne puis-je pas changer la variable globale à l'intérieur de la fonction? Même si vous stockez la valeur dans une variable avec le même nom que la variable globale dans la fonction, elle sera interprétée comme une variable locale avec le même nom. Si vous souhaitez modifier la variable globale dans la fonction, spécifiez que la variable est globale comme indiqué ci-dessous, puis modifiez-la.
change_global.py
def spam():
global var1
var1 = "change global"
var2 = "local"
print("{0}".format(var1+" "+var2))
spam()
print("var1 : {0}".format(var1))
change global local var1 : change global
Le résultat attendu était la sortie.
Suivant: Cours de base Python (13 classes)
Recommended Posts