⊗pyPmFnFIF 20 of 129 menu

Συνάρτηση μέσα σε συνάρτηση στην Python

Στην Python, μέσα σε μια συνάρτηση μπορούμε να δηλώσουμε άλλες. Ας υποθέσουμε ότι έχουμε μια εξωτερική συνάρτηση outer, μέσα στην οποία βρίσκεται η συνάρτηση inner:

def outer(): def inner(): pass

Το παραπάνω παράδειγμα φαίνεται αρκετά απλό. Ωστόσο, συχνά υπάρχουν περιπτώσεις όπου στο σώμα της συνάρτησης outer εκτός από την inner εκτελούνται και άλλες λειτουργίες. Για απλοποίηση του κώδικα θα μπορούσε να βγει η inner στο εξωτερικό μπλοκ κώδικα, ωστόσο αυτή η συνάρτηση θα χρησιμοποιηθεί μόνο μία φορά και μόνο μέσα στη συνάρτηση outer. Επομένως, δεν έχει νόημα να βγει έξω από τα όριά της.

Ας δούμε ένα παράδειγμα, όπου στη συνάρτηση outer μεταβιβάζεται μια λίστα. Και με τη βοήθεια της συνάρτησης inner το αριθμητικό στοιχείο της λίστας θα υψώνεται στο τετράγωνο. Για αυτό, μετά τη συνάρτηση inner δηλώνουμε μια κενή λίστα res, στην οποία θα συσσωρεύονται τα στοιχεία που υψώθηκαν στο τετράγωνο σε έναν βρόγχο:

def outer(lst): def inner(num): return num ** 2 res = [] for el in lst: res.append(inner(el)) return res

Ας καλέσουμε τη συνάρτηση outer, να της μεταβιβάσουμε ως παράμετρο τη λίστα και να εμφανίσουμε το αποτέλεσμα στην κονσόλα:

print(outer([2, 3, 5])) # θα εμφανίσει [4, 9, 25]

Γράψτε μια εξωτερική και μια εσωτερική συνάρτηση, των οποίων η κοινή εργασία θα εμφανίζει κάθε συμβολοσειρικό στοιχείο της λίστας με κεφαλαίο γράμμα.

Δίνονται συναρτήσεις:

def func1(num): if num > 0: num += 2 return num def func2(iter): res = [] for el in iter: res.append(func1(el)) return res

Ξαναγράψτε τον κώδικα έτσι ώστε η func1 να είναι εσωτερική συνάρτηση της func2.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη