Funktionale Programmierung verwendet eine Reihe von Funktionen, um Probleme zu lösen. Wenn wir mit einem Problem konfrontiert werden, denken wir: „Wie mache ich es?“, während die funktionale Programmierung „Was möchte ich tun“ ist Tun". Was die Merkmale der funktionalen Programmierung betrifft, werden wir sie vorerst nicht zusammenfassen. Lassen Sie uns direkt Beispiele verwenden, um zu verstehen, was funktionale Programmierung ist.
Lambda-Ausdruck (anonyme Funktion):
So definieren Sie gewöhnliche Funktionen und anonyme Funktionen:
#Ordinary function def add( a ,b):
return a + bprint add(2,3) #匿名函数add = lambda a,b : a + bprint add(2,3)#========输出===========5 5
Die Benennungsregeln anonymer Funktionen werden durch das Schlüsselwort lamdba identifiziert. Die linke Seite des Doppelpunkts (:) gibt die Parameter an Von der Funktion (a, b) empfangen, stellt die rechte Seite des Doppelpunkts (:) den Rückgabewert der Funktion (a+b) dar.
Da lamdba beim Erstellen nicht benannt werden muss, wird es als anonyme Funktion ^_^ bezeichnet.
Map-Funktion:
Berechnen Sie die Zeichenfolgenlänge
abc = ['com','fnng','cnblogs']for i in range(len(abc)): print len(abc[i])#========输出===========347
Abc-String-Array definieren, die Länge von abc berechnen und dann eine Schleife ausführen, um die Länge jeder Zeichenfolge im Array auszugeben.
Sehen wir uns an, wie die Funktion „map()“ diesen Prozess implementiert.
abc_len = map(len,['hao','fnng','cnblogs'])print abc_len#========输出===========[3, 4, 7]
Obwohl die Ausgabeergebnisse gleich sind, sind ihre Formen unterschiedlich. Der erste ist ein reiner numerischer Wert und die Ausgabe der Funktion map() ist still Das Format des Arrays bleibt erhalten.
Groß-/Kleinschreibung;
Python bietet Upper() und Lower() zum Konvertieren von Groß- und Kleinschreibung.
#Case-Konvertierung ss='hello WORLD!'
print ss.upper() #In Großbuchstaben konvertieren print ss.lower() #In Kleinbuchstaben konvertieren# = =======Ausgabe===========HALLO WELT!
Hallo Welt!
Konvertiert durch die Funktion map():
def to_lower(item): return item.lower()name = map(to_lower,['cOm','FNng','cnBLoGs'])print name#========输出===========['com', 'fnng', 'cnblogs']
Im Beispiel können wir sehen, dass wir eine Funktion in „Upper“ geschrieben haben. Diese Funktion ändert den übergebenen Wert nicht. Sie führt lediglich eine einfache Operation für den übergebenen Wert aus und gibt ihn zurück. Dann verwenden wir es in der Kartenfunktion, um klar zu beschreiben, was wir tun möchten.
Sehen wir uns an, wie man die String-Groß-/Kleinschreibung auf übliche Weise implementiert:
abc = ['cOm','FNng','cnBLoGs']lowname = []for i in range(len(abc)): lowname.append(abc[i].lower())print lowname#========输出===========['hao', 'fnng', 'cnblogs']
map()-Funktion plus Lambda-Ausdrücke (anonyme Funktionen) können leistungsfähigere Funktionen erreichen.
#Quadrate finden#0*0,1*1,2*2,3*3,....8*8squares = map(lambda x : x*x ,range(9))quadrate drucken #========Ausgabe===========[0, 1, 4, 9, 16, 25, 36, 49, 64]
Reduzierfunktion:
def add(a,b): return a+b add = reduce(add,[2,3,4])print add#========输出===========9 对于Reduce函数每次是需要对两个数据进行处理的,首选取2 和3 ,通过add函数相加之后得到5,接着拿5和4 ,再由add函数处理,最终得到9 。
Im vorherigen Kartenfunktionsbeispiel können wir sehen, dass die Kartenfunktion jeweils nur ein Datenelement verarbeitet.
Dann haben wir herausgefunden, wie einfach es ist, die Fakultät durch die Reduzierfunktion und den Lambda-Ausdruck zu implementieren:
#5 Fakultät #5! =1*2*3*4*5print Reduce(lambda x,y: x*y, range(1,6))#========Ausgabe===========120
Zusätzlich zu Map und Reduce verfügt Python auch über andere Hilfsfunktionen wie Filter, Find, All und Any (auch in anderen funktionalen Sprachen verfügbar), die Ihren Code prägnanter und benutzerfreundlicher machen können. lesen. Schauen wir uns ein komplexeres Beispiel an:
# Berechnen Sie den Wert der positiven Ganzzahl im Array number =[2, -5, 9, -7, 2, 5, 4, -1, 0, - 3, 8 ]
Anzahl = 0
sum = 0for i in range(len(number)):
if number[i]>0: count += 1 sum += number[i]print sum,countif count>0: average = sum/countprint average
#========Output===========30 6 5
Wenn Sie funktionale Programmierung verwenden, kann dieses Beispiel wie folgt geschrieben werden:
number =[2, -5, 9, -7, 2, 5, 4, -1, 0, -3, 8] sum = filter(lambda x: x>0, number) average = reduce(lambda x,y: x+y, sum)/len(sum)print average
#========Ausgabe========== =5
Endlich können wir sehen, dass funktionale Programmierung die folgenden Vorteile hat:
1) Der Code ist einfacher.
2) Datensätze, Operationen und Rückgabewerte werden alle zusammengestellt.
3) Wenn Sie den Code lesen, gibt es keinen Schleifenkörper, sodass Sie einige temporäre Variablen und die Logik der hin- und hergehenden Variablen speichern können.
4) Ihr Code beschreibt, was Sie tun möchten, und nicht, wie es zu tun ist.
Das obige ist der detaillierte Inhalt vonBeispiel-Tutorial zur Python-Funktionsprogrammierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!