Καλησπέρα και χρόνια πολλά !!!!Μια ερώτηση θέλω να κάνω ποτέ βάζουμε return σε μια συνάρτηση ???( Υποθέτω όταν λέει η συνάρτηση να επιστρέφει )έχω δει όμως και ασκήσεις που δεν βάζουμε return και όταν εκτελώ το πρόγραμμα φαίνεται ότι αν καλέσω την συνάρτηση στο πρόγραμμα θα επιστραφεί το αποτέλεσμα στο πρόγραμμα κανονικα
Καλησπέρα και Χρόνια πολλά.Ναι όταν μία άσκηση ζητάει να επιστρέφεται μία τιμή χρησιμοποιούμε το return.
στην Python αν δεν χρησιμοποιήσουμε Return έτσι κι αλλιώς επιστρέφετε πάντα το None.
Το μόνο που μπορώ να σκεφτώ το οποίο να φαίνεται ότι επιστρέφεται μία τιμή χωρίς να χρησιμοποιήσω το return όπως λες, είναι να χρησιμοποιούν μία καθολική global μεταβλητή. κάτι το οποίο δεν είναι και καλή ιδέα Όσον αφορά τον προγραμματισμό γενικά.
Καλημέρα και χρόνια πολλά σε όλους.
Επίσης οι λειτουργίες συναρτήσεων σε mutable (τροποποιήσιμα) αντικείμενα "επιστρέφονται" σε αυτά με ή χωρίς return χωρίς βέβαια να αλλάζει η ταυτότητα του αντικειμένου
alist = [1,2,3]
id(alist)
2156977133888
def mod_list():
alist.append(4)
alist
[1, 2, 3, 4]
def mod_list1(x):
x.append(5)
mod_list1(alist)
alist
[1, 2, 3, 4, 5]
def mod_list2():
alist.append(6)
return alist
[1, 2, 3, 4, 5, 6]
id(alist)
2156977133888
def mod_list3(x):
x.append(7)
return x
mod_list3(alist)
[1, 2, 3, 4, 5, 6, 7]
id(alist)
2156977133888
Πολύ σωστά.
ασκήσεις πάνω στο θέμα υπάρχουν στο παρακάτω κουίζ στο Moodle
Quiz Ασκήσεις - Παράμετροι συναρτήσεων ΙΙ (https://moodle.sepchiou.gr/mod/quiz/view.php?id=1319)
Όπου βρίσκονται και αναλυτικές οδηγίες
Σημείωση Βιβλίου: Όταν οι παράμετροι περνάνε με αναφορά, σημαίνει ότι αν αλλάξουμε μια παράμετρο μέσα στη συνάρτηση, η αλλαγή είναι μόνιμη και μετά την κλήση της συνάρτησης
Τι γίνεται όταν τα ορίσματα είναι λίστες.
Οι μέθοδοι insert (https://moodle.sepchiou.gr/mod/glossary/showentry.php?eid=292&displayformat=dictionary), append (https://moodle.sepchiou.gr/mod/glossary/showentry.php?eid=236&displayformat=dictionary), pop (https://moodle.sepchiou.gr/mod/glossary/showentry.php?eid=238&displayformat=dictionary) και ο τελεστής += ( Λίστα += [στοιχείο] ) Διατηρούν την αναφορά στην αρχική λίστα με αποτέλεσμα η αλλαγή να είναι μόνιμη και μετά την κλήση της συνάρτησης.
Οι εντολές προσθήκης στοιχείων είτε στην αρχή είτε στο τέλος της λίστας
Λίστα = Λίστα + [ στοιχείο ]
Λίστα = [ στοιχείο ] + Λίστα
όπως και η απόδοση τιμής σε μια λίστα, Λίστα =[λίστα τιμών]
δεν προσθέτουν το στοιχείο στην ήδη υπάρχουσα λίστα αλλά δημιουργούν μια νέα λίστα κάθε φορά, οπότε αλλαγές στη λίστα μέσα στη συνάρτηση, δεν επιστρέφουν στα ορίσματα ώστε να γίνουν γνωστές έξω από τη συνάρτηση.
Όταν κάνουμε ταξινόμηση σε συνάρτηση τους ταξινομημένος πίνακες δεν τους κάνουμε return??? Και απλά μέσα στο πρόγραμμα καλούμε τη συνάρτηση σωστά????αν τώρα κάποιος κάνει rerurn είναι σωστό ή λάθος????
Τελικα βάζουμε return στην ταξινόμηση όταν γίνεται σε def ή όχι???
Ο κώδικας που φαίνεται στην εικόνα νομίζω ότι απαντάει στην ερώτησή σου
list.png
Ευχαριστώ!!!