Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in die Grundlagen der Python-Funktionen

Einführung in die Grundlagen der Python-Funktionen

巴扎黑
巴扎黑Original
2017-08-05 16:10:171799Durchsuche

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

3. Die „globale“ Deklaration ordnet den zugewiesenen Namen dem Bereich eines Moduls zu, das ihn enthält.

Die Parameter einer Funktion sind die Brücke zwischen der Funktion und der Außenwelt. Sie kann von außen übergebene Werte empfangen. Die Regeln für die Parameterübergabe lauten wie folgt:

4. Die Zuweisung eines Parameternamens in einer Funktion hat keine Auswirkungen auf den Aufrufer.

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.

5. Das Ändern eines variablen Objektparameters in einer Funktion wirkt sich auf den Aufrufer aus.

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:

Code kopieren

Der Code lautet wie folgt:

>>> .. return a +b...

>>> #Numerischer Typ

3
>>> 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 xy, wird 0 zurückgegeben.

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):

print num, 'is ',

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

7.pow(x,y[,z])

pow()-Funktion gibt x als zurück Basis, y ist die Potenz des Exponenten. Wenn ein z-Wert angegeben ist, berechnet die Funktion den Wert von x hoch y-potenz modulo z.

Code kopieren

Der Code lautet wie folgt:



>>> print pow(2,4)
16
> ;> > print pow(2,4,2)
0

>>> print pow(2.4,3)

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)

[1, 3, 5, 7, 9]

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 kopieren

Der Code lautet wie folgt:

>>> long("123")

123L
> >> ; long(11)
11L


6.list(x)

list()-Funktion kann Sequenzobjekte in Listen konvertieren. Zum Beispiel:

Code kopieren

Der 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 kopieren

Der Code lautet wie folgt:

>>> int(3.3)

3
>> > int (3L)
3
>>> int("13")
13
>>>


8.min(x[,y,z...])

min()-Funktion gibt den Mindestwert des angegebenen Parameters zurück, der eine Sequenz sein kann.

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...])

max()-Funktion gibt den Maximalwert des angegebenen Parameters zurück, der eine Sequenz sein kann.

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 )

Die Funktion oct() kann die angegebene Ganzzahl in eine Oktalzahl umwandeln.

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']

Dieses Beispiel filtert alle Elemente heraus, die „bad“ enthalten, indem die Funktion nobad() auf alle Elemente angewendet wird in der s-Sequenz.

3.map(function,list[,list])

Die Funktion map() wendet eine Funktion auf alle Elemente in der Sequenz an und gibt eine Liste zurück.

Code kopieren Der Code lautet wie folgt:

>>> import string
>>> python", "zope", "linux"]
>>> map(string.capitalize,s)
['Python', 'Zope', 'Linux']

map() kann auch auf mehrere Listen gleichzeitig angewendet werden. Zum Beispiel:

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]

Wenn Sie einen None-Wert anstelle einer Funktion übergeben, kombiniert map() die entsprechenden Elemente in jeder Sequenz und gibt das Tupel zurück. Beispiel:

Code kopieren Der Code lautet wie folgt:

>>> ,4]; c=[5,6]
>>> map(None,a,b,c)
[(1, 3, 5), (2, 4, 6)]

4.reduce(function,seq[,init])

Die Funktion „reduce()“ ruft die ersten beiden Elemente in der Sequenz ab und übergibt sie an die bereitgestellte Funktion Nach dem Ergebnis wird die Reihenfolge ermittelt. Das nächste Element wird zusammen mit dem Ergebnis an die Funktion übergeben usw., bis alle Elemente verarbeitet wurden.

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

5.zip(seq[,seq,...])

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 kopieren

Der 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:

Code kopieren

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

Der Code lautet wie folgt:

>>> : 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

Der Code lautet wie folgt:

>>> 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:

Code kopieren

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:

>>> ','Mrs.Thing']

>>> 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)

Normale Parameter mischen:



Code kopieren
Der Code lautet wie folgt:

>>> def print_params_2(title, *params):

  print title

  print 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

Der Code lautet wie folgt:

>>> print_params_2('Hmm...' ,something=42)

Traceback (letzter Aufruf zuletzt):

Datei „“, Zeile 1, in print_params_2('Hmm...',something =42)TypeError: print_params_2() hat ein unerwartetes Schlüsselwortargument „etwas“ erhalten


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

(5, 6, 7)

{'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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn