Heim > Artikel > Backend-Entwicklung > Einführung in die Grundlagen der Python-Funktionen
In diesem Artikel wird vorgestellt, wie Anweisungen in Funktionen organisiert werden, sowie das Konzept von Parametern und deren Verwendung in Programmen. Freunde in Not können sich darauf beziehen
Pythond-Funktionen werden durch eine neue Anweisung geschrieben, nämlich def , def ist eine ausführbare Anweisung – die Funktion existiert erst, wenn Python def ausführt.
Funktion wird durch Zuweisung übergeben, und Parameter werden durch Zuweisung an die Funktion übergeben
Die def-Anweisung erstellt ein Funktionsobjekt und weist es einem Variablennamen zu. Das allgemeine Format der def-Anweisung lautet wie folgt:
Code kopieren Der Code lautet wie folgt:
def function_name(arg1,arg2[,...]):
Anweisung
[Rückgabewert]
Der Rückgabewert ist nicht erforderlich. Wenn keine Rückgabeanweisung vorhanden ist, gibt Python standardmäßig den Wert None zurück.
Benennungsregeln für Funktionsnamen:
Funktionsnamen müssen mit einem Unterstrich oder Buchstaben beginnen und können eine beliebige Kombination aus Buchstaben, Zahlen oder Unterstrichen enthalten. Es können keine Satzzeichen verwendet werden.
Bei Funktionsnamen muss die Groß-/Kleinschreibung beachtet werden.
Funktionsnamen können keine reservierten Wörter sein.
Python verwendet das Konzept des Namespace, um Objekte zu speichern. Dieser Namespace ist der Bereich, in dem das Objekt agiert. Verschiedene Objekte existieren in unterschiedlichen Bereichen. Im Folgenden sind die Bereichsregeln für verschiedene Objekte aufgeführt:
Jedes Modul hat seinen eigenen globalen Bereich.
Das von der Funktion definierte Objekt gehört zum lokalen Bereich und ist nur innerhalb der Funktion gültig und hat keinen Einfluss auf die Objekte im globalen Bereich.
Das zugewiesene Objekt befindet sich im lokalen Bereich, sofern es nicht mit dem globalen Schlüsselwort deklariert wird.
LGB-Regeln sind die Regeln für Python, um Namen zu finden:
1 Die meisten Namensreferenzen werden in drei Bereichen durchsucht: lokal (Lokal) zuerst und global (. Global), wieder eingebaut (Build-in).
Code kopieren Der Code lautet wie folgt:
>>> a=2
>>>
>>> def test(b):
... test=a*b
... return test
>>>print test(10)
20
b befindet sich im lokalen Bereich und a im globalen Bereich.
2. Wenn Sie das Objekt des globalen Bereichs im lokalen Bereich ändern möchten, müssen Sie das Schlüsselwort global verwenden.
Code kopieren Der Code lautet wie folgt:
#Die Situation, wenn global nicht verwendet wird
>>> "
>>> def set():
... name="ringkee"
...
>>> set()
>> ;> print name
Jims
#Die Situation nach der Verwendung von global
>>> name="Jims"
>>> 🎜>. globaler Name
... name="ringkee"
...
>>> set1()
>>> print name
ringkee
Code kopieren Der Code lautet wie folgt:
>>> a=1
>>> a):
... a=a+1
... print a
...
>>> test(a)
2
> >> ; a
1 # ein Wert bleibt unverändert.
Code kopieren Der Code lautet wie folgt:
>>> b=[1,2 ]
>>> def test(a,b):
... a=5
... b[0]=4
.. . print a,b
...
>>> test(a,b)
>>> 🎜>>> > b
[4, 2] # b-Wert wurde geändert
Der Parameter ist ein Objektzeiger und es besteht keine Notwendigkeit, den übergebenen Objekttyp zu definieren . Zum Beispiel:
Der Code lautet wie folgt:
>>> .. return a +b...
>>> #Numerischer Typ3
>>> b") # Zeichentyp
'ab'
>>> test([12],[11]) #List
[12, 11]
Parameter in der Funktion Empfangen Sie den übergebenen Wert. Die Parameter können in Standardparameter unterteilt werden, wie zum Beispiel:
def function(ARG=VALUE)
Tupelparameter:
def function(*ARG)
Wörterbuchparameter:
def function(**ARG)
Einige Funktionsregeln:
Der Standardwert muss in einem nicht standardmäßigen After liegen die Parameter;
In einer einzelnen Funktionsdefinition können nur ein Tupelparameter (*ARG) und ein Wörterbuchparameter (**ARG) verwendet werden.
Der Tupelparameter muss nach den Verbindungsparametern und Standardparametern stehen.
Wörterbuchparameter müssen zuletzt definiert werden.
1. Häufig verwendete Funktionen
1.abs(x)
abs() gibt den absoluten Wert einer Zahl zurück. Wenn eine komplexe Zahl angegeben wird, ist der Rückgabewert der Modul der komplexen Zahl.
Code kopieren Der Code lautet wie folgt:
>>>print abs(-100)
100
> >> ;print abs(1+2j)
2.2360679775
2.callable(object)
Die Funktion callable() wird verwendet, um zu testen, ob das Objekt aufrufbar ist und gibt 1 zurück, wenn dies möglich ist (True); andernfalls wird 0 (False) zurückgegeben. Zu den aufrufbaren Objekten gehören Funktionen, Methoden, Codeobjekte, Klassen und Klasseninstanzen, die über definierte „Aufruf“-Methoden verfügen.
Code kopieren Der Code lautet wie folgt:
>>> a="123"
>>> callable(a )
0
>>> print callable(chr)
1
3.cmp(x,y)
cmp ()-Funktion Vergleicht zwei Objekte x und y und gibt eine Ganzzahl basierend auf dem Vergleichsergebnis zurück. Wenn x
Code kopieren Der Code lautet wie folgt:
>>>a=1
>>>b=2
>>>c=2
>>> print cmp(a,b)
-1
>>> print cmp(b,a)
1
>>> print cmp(b,c)
0
4.pmod(x,y)
pmod(x, y)-Funktion Schließt die Divisionsoperation ab und gibt den Quotienten und den Rest zurück.
Code kopieren Der Code lautet wie folgt:
>>> pmod(10,3)
(3, 1)
> ;>> pmod(9,3)
(3, 0)
5.isinstance(object,class-or-type-or-tuple) -> bool
Testobjekttyp
Code kopieren Der Code lautet wie folgt:
>>> '
> >> b=1234
>>> Falsch
> >> Programm zeigt die isinstance-Funktion. Verwendung:
Code kopieren
Der Code lautet wie folgt:
def displayNumType(num):
if isinstance( num, (int, long, float, complex)):
print 'a number of type:', type(num).__name__else: print 'not Überhaupt eine Zahl!!!
Das Ergebnis der Codeausführung ist wie folgt:
Code kopieren
Der Code lautet wie folgt:
-69 ist a Zahl vom Typ: int
99999999999999999999999999 ist eine Zahl vom Typ: long
565,8 ist eine Zahl vom Typ: float
(-344,3+34,4j) ist eine Zahl vom Typ: complex
xxx ist nicht überhaupt eine Zahl!!!
6.len(object) -> integer
len() Funktion gibt die Länge von String und Sequenz zurück.
Code kopieren Der Code lautet wie folgt:
>>> len("aa")
2
> >> ; len([1,2])
2
Code kopieren
Der Code lautet wie folgt:
>>> print pow(2,4)
16
> ;> > print pow(2,4,2)
0
8.range ([lower ,]stop[,step])
range()-Funktion kann eine kontinuierliche geordnete Liste von Ganzzahlen gemäß Parametern generieren.
Code kopieren Der Code lautet wie folgt:
>>> Bereich(10)
[0, 1, 2, 3 , 4, 5, 6, 7, 8, 9]
>>> Bereich(1,10)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> Bereich(1,10,2)
9.round(x[,n])
Die Funktion „round()“ gibt den gerundeten Wert der Gleitkommazahl x zurück. Wenn der Wert n angegeben ist, stellt er die Anzahl der Nachkommastellen dar.
Code kopieren Der Code lautet wie folgt:
>>> Round(3.333)
3.0
>> > Runde (3)
3.0
>>> Runde(5.9)
6.0
10.type(obj)
type( ) Funktion kann den Datentyp des Objekts zurückgeben.
Code kopieren Der Code lautet wie folgt:
>>> type(a)
>>> type(copy)
>>> type(1)
11.xrange([lower,]stop[,step])
Die Funktion xrange() ähnelt range(), jedoch erstellt xrnage() keine Liste, sondern Gibt ein xrange-Objekt zurück. Es verhält sich wie eine Liste, berechnet jedoch nur bei Bedarf Listenwerte. Diese Funktion kann uns Speicherplatz sparen, wenn die Liste groß ist.
Code kopieren Der Code lautet wie folgt:
>>> a=xrange(10)
>>> print a[ 0]
0
>>> print a[1]
1
>>> print a[2]
2
2. Integrierte Typkonvertierungsfunktion
1.chr(i)
Die Funktion chr() gibt die Zeichenfolge zurück, die dem ASCII-Code entspricht.
Code kopieren Der Code lautet wie folgt:
>>> print chr(65)
A
>> ;> print chr(66)
B
>>> print chr(65)+chr(66)
AB
2.complex(real[ ,imaginär] )
Die Funktion complex() kann eine Zeichenfolge oder Zahl in eine komplexe Zahl umwandeln.
Code kopieren Der Code lautet wie folgt:
>>> complex("2+1j")
(2+1j )
>>> complex("2")
(2+0j)
>>> complex(2,1)
(2+1j)
>> ;> complex(2L,1)
(2+1j)
3.float(x)
float()-Funktion konvertiert eine Zahl oder Zeichenfolge in eine Gleitkommazahl umwandeln.
Code kopieren Der Code lautet wie folgt:
>>> float("12")
12.0
> >> ; float(12L)
12.0
>>> float(12.2)
12.199999999999999
4.hex(x)
hex() Funktion wandelt Ganzzahlen in Hexadezimalzahlen um.
Code kopieren Der Code lautet wie folgt:
>>> >> ; hex(123)
'0x7b'
5.long(x[,base])
long()-Funktion wandelt Zahlen und Zeichenfolgen in lange Ganzzahlen um , base ist eine optionale Basis.
Code kopierenDer Code lautet wie folgt:
>>> long("123")123L
> >> ; long(11)
11L
6.list(x)
list()-Funktion kann Sequenzobjekte in Listen konvertieren. Zum Beispiel:
Code kopierenDer Code lautet wie folgt:
>>> list("hello world")[' h', ' e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
>>> ; list(( 1,2,3,4))
[1, 2, 3, 4]
7.int(x[,base])
int()-Funktion Konvertiert Zahlen und Zeichenfolgen in eine Ganzzahl, Basis ist eine optionale Basis.
Code kopierenDer Code lautet wie folgt:
>>> int(3.3)3
>> > int (3L)
3
>>> int("13")
13
>>>
8.min(x[,y,z...])
Code kopieren
Der Code lautet wie folgt:>>> min(1,2,3,4)
1> ;>> min((1,2,3),(2,3,4))
(1, 2, 3)
9.max(x [,y ,z...])
Code kopieren
Der Code lautet wie folgt:>>> max(1,2,3,4)
4> ;>> max((1,2,3),(2,3,4))
(2, 3, 4)
10.oct(x )
Code kopieren Der Code lautet wie folgt:
>>> oct(8)
'010'
>>> ; oct( 123)
'0173'
11.ord(x)
ord()-Funktion gibt den ASCII-Code oder Unicode-Wert eines String-Parameters zurück.
Code kopieren Der Code lautet wie folgt:
>>> ord("a")
97
> >> ; ord(u"a")
97
12.str(obj)
str()-Funktion wandelt das Objekt in eine druckbare Zeichenfolge um.
Code kopieren Der Code lautet wie folgt:
>>> str("4")
'4'
>> ;> str(4)
'4'
>>> str(3+2j)
'(3+2j)'
13.tuple (x)
tuple()-Funktion wandelt Sequenzobjekte in Tupel um.
Code kopieren Der Code lautet wie folgt:
>>> tuple("hello world")
('h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd')
>>> [1, 2,3,4])
(1, 2, 3, 4)
3. Sequenzverarbeitungsfunktionen
1 () Neben den üblichen Funktionen kann min() auch mit Sequenzen verwendet werden.
2.filter(function,list)
Wenn filter() aufgerufen wird, wendet es eine Funktion auf jedes Element in der Sequenz an und gibt alle Werte zurück, wenn die Funktion echte Elemente zurückgibt , wodurch alle Elemente herausgefiltert werden, die einen falschen Wert zurückgeben.
Code kopieren Der Code lautet wie folgt:
>>>... Return s. find(" bad") == -1
...
>>> s = ["bad", "good", "bade", "we"]
>> ;> filter(nobad,s)
['good', 'we']
Code kopieren Der Code lautet wie folgt:
>>> import string
>>> python", "zope", "linux"]
>>> map(string.capitalize,s)
['Python', 'Zope', 'Linux']
Code kopieren Der Code lautet wie folgt:
>>> Importoperator
>>> =[1, 2,3]; t=[3,2,1]
>>> map(operator.mul,s,t) # s[i]*t[j]
[3, 4, 3]
Code kopieren Der Code lautet wie folgt:
>>> ,4]; c=[5,6]
>>> map(None,a,b,c)
[(1, 3, 5), (2, 4, 6)]
Code kopieren Der Code lautet wie folgt:
>>> import-Operator
>>> mul,[ 2,3,4,5]) # ((2*3)*4)*5
120
>>> Reduce(operator.mul,[2,3,4, 5], 1) # (((1*2)*3)*4)*5
120
>>> Reduce(operator.mul,[2,3,4,5], 2) # (((2*2)*3)*4)*5
240
zip( ) kombiniert entsprechende Elemente aus zwei oder mehr Sequenzen und gibt sie im Tupelformat zurück. Sie stoppt, nachdem alle Elemente in der kürzesten Sequenz verarbeitet wurden.
Code kopierenDer Code lautet wie folgt:
>>> ,[7 ,8,9])[(1, 4, 7), (2, 5, 8)]
Wenn der Parameter eine Sequenz ist, ist zip() dies ein Tupel Das Format gibt jedes Element zurück, zum Beispiel:
Der Code lautet wie folgt:
>>> ,2,3,4 ,5))[(1,), (2,), (3,), (4,), (5,)]
>>> [1,2,3 ,4,5])
[(1,), (2,), (3,), (4,), (5,)]
4. Andere
def-Anweisungen werden in Echtzeit ausgeführt. Bei der Ausführung wird ein neues Funktionsobjekt erstellt und einem Variablennamen zugewiesen. Alle Python-Anweisungen werden in Echtzeit ausgeführt so
Da es sich um eine Anweisung handelt, kann def überall dort erscheinen, wo eine Anweisung erscheinen kann – sogar verschachtelt in anderen Anweisungen:
Code kopieren Der Code lautet wie folgt:
if test:
def fun():
...
else:
def func():
...
...
func()
Sie können die Funktion einem anderen Variablennamen zuweisen und sie über den neuen Variablennamen aufrufen:
othername=func( )
othername( )
Funktion erstellen
Mit der integrierten aufrufbaren Funktion kann ermittelt werden, ob die Funktion aufrufbar ist:
Code kopieren Der Code lautet wie folgt:
>>> import math
>>> x=1
>>> y=math.sqrt
>>> ; callable(x)
False
>>> callable(y)
True
Verwenden Sie del-Anweisung, um eine Funktion zu definieren:
Kopieren Sie den Code Der Code lautet wie folgt:
>>> def hello(name):
return 'Hallo, '+name+'!'
>>> ; print hallo('world')
Hallo Welt!
>>> print hallo('Gumby')
Hallo, Gumby!
Schreiben Sie eine Fibnacci-Sequenzfunktion:
Code kopieren Der Code lautet wie folgt:
>>>
result=[0,1 ; )
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
>>> >[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377]
Parametern innerhalb einer Funktion Werte zuweisen ändert den Wert externer Variablen nicht:
Code kopieren
>>> : n='Mr.Gumby'>> ;> name='Mrs.Entity'
>>> try_to_change(name)>>>
'Mrs.Entity'
Da Zeichenfolgen (und Tupel und Zahlen) unveränderlich sind, ändern sie sich nicht, wenn sie als Parameter verwendet werden. Was passiert jedoch, wenn eine veränderbare Datenstruktur wie eine Liste vorhanden ist? Wird als Parameter verwendet:
Code kopieren
>>> name='Mrs.Entity' >>> try_to_change(name) >>> name
'Mrs.Entity'>>> ='Mr.Gumby'
> ;>> name=['Mrs.Entity','Mrs.Thing']
>>> change(name)
> ;>> Name
['Mr. Gumby', 'Mrs.Thing']
Die Parameter haben sich geändert, was einen wichtigen Unterschied zum vorherigen Beispiel darstellt
Machen Sie es noch einmal, ohne eine Funktion zu verwenden:
Der Code lautet wie folgt:
>>> Entity','Mrs.Thing']>>> #Noch einmal das Parameterübergabeverhalten simulieren>>> #Ändern Sie die Liste>>> Name
['Mr. Gumby', 'Mrs.Thing']
Wenn sich zwei Variablen gleichzeitig auf eine Liste beziehen , verweisen sie gleichzeitig auf dieselbe Liste. Um diese Situation zu vermeiden, können Sie eine Kopie der Liste erstellen. Beim Slicing in einer Sequenz ist das zurückgegebene Slice immer eine Kopie, wenn Sie also das Slice des Ganzen kopieren Liste, Sie erhalten eine Kopie:
Code kopieren
Der Code lautet wie folgt:
>>> n=names[:]>> =NamenTrue
Eine Änderung von n zu diesem Zeitpunkt hat keine Auswirkungen auf Namen:
Code kopieren
Der Code lautet wie folgt:
>>> n[0]='Mr.Gumby'
>>> n
['Mr.Gumby', 'Mrs.Thing']
>>> Namen
['Mrs.Entity', 'Mrs.Thing']
>>> change(names[:])
>>>
['Mrs.Entity', 'Mrs.Thing']
Schlüsselwortparameter und Standardwerte
Die Reihenfolge der Parameter kann durch Angabe von Parameternamen geändert werden (aber Parameter Namen und Werte müssen übereinstimmen):
Code kopieren Der Code lautet wie folgt:
>>> ):
print '%s,%s!'%(greeting, name)
>>> hello(greeting='hello',name='world!')
hello,world !!
Das Mächtigste an Schlüsselwortparametern ist, dass Sie Standardwerte für Parameter in Parametern angeben können:
Kopieren Sie den Code Der Code ist wie folgt:
>>> def hello_1(greeting='hello',name='world!'):
print '%s,%s!'%(greeting ,Name)
> >> hello,world!!
>>> grüße,world!!
>>> hello_1(' Greeting','universe')
Greeting,universe!
Wenn Sie möchten, dass die Begrüßung den Standardwert verwendet:
Kopieren Sie den Code
Der Code lautet wie folgt:
>>> hello_1(name='Gumby')Hallo, Gumby!
Sie können der Funktion eine beliebige Anzahl von Parametern bereitstellen, und die Implementierung ist nicht einfach:
Code kopieren
Der Code lautet wie folgt:& gt; & gt; & gt; )
>>> print_params(1,2,3)(1, 2, 3)
Code kopieren
Der Code lautet wie folgt:
>>> def print_params_2(title, *params):
print titleprint params>>> print_params_2('params:',1,2,3)
params:(1, 2, 3)
>>> )
Nichts:
()
Das Sternchen bedeutet „sammeln Sie die verbleibenden Positionsparameter“. Wenn keine Elemente zur Sammlung bereitgestellt werden, ist params ein leeres Tupel
aber Schlüsselwortparameter können nicht verarbeitet werden:
Code kopieren
>>> print_params_2('Hmm...' ,something=42)
Traceback (letzter Aufruf zuletzt): Datei „
Versuchen Sie es mit „**“:
Code kopieren
Der Der Code lautet wie folgt:
>>> def print_params(**params):
print params>>> print_params(x=1 ,y=2,z=3){'y': 2, 'x': 1, 'z': 3}
>>> ,*pospar,**keypar): print x,y,z
print pospar
print keypar
>>> 6,7,foo=1,bar=2)
1 2 3
(5, 6, 7)
{ 'foo': 1, 'bar': 2}
>> ;> parames(1,2)
1 2 3
{}
>> > def print_params_3(**params):
print params
>>> print_params_3(x=1,y=2,z=3)
{'y': 2 , 'x': 1, 'z': 3}
>>> #Gibt ein Wörterbuch anstelle eines Tupels zurück
>>> #Kombinieren Sie '#' und '##'
>>> 1,2,3,5,6,7,foo=1,bar=2)
1 2 3
{'foo': 1, 'bar': 2}
>>> print_params_4(1,2)
1 2 3
()
{}
Das obige ist der detaillierte Inhalt vonEinführung in die Grundlagen der Python-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!