Το Στέκι των Πληροφορικών

Επαγγελματικό Λύκειο => Γενικά => Προγραμματισμός Υπολογιστών => Μήνυμα ξεκίνησε από: theoni στις 17 Απρ 2023, 11:52:02 ΜΜ

Τίτλος: Συναρτησεις
Αποστολή από: theoni στις 17 Απρ 2023, 11:52:02 ΜΜ
Καλησπέρα και χρόνια πολλά !!!!Μια ερώτηση θέλω να κάνω ποτέ βάζουμε return σε μια συνάρτηση ???( Υποθέτω όταν λέει η συνάρτηση να επιστρέφει )έχω δει όμως και ασκήσεις που δεν βάζουμε return και όταν εκτελώ το πρόγραμμα φαίνεται ότι αν καλέσω την συνάρτηση στο πρόγραμμα θα επιστραφεί το αποτέλεσμα στο πρόγραμμα κανονικα
Τίτλος: Απ: Συναρτησεις
Αποστολή από: polikarpos στις 19 Απρ 2023, 07:16:33 ΜΜ
Καλησπέρα και  Χρόνια πολλά.
Ναι όταν μία άσκηση ζητάει να επιστρέφεται  μία τιμή χρησιμοποιούμε το return.
στην Python  αν δεν χρησιμοποιήσουμε  Return έτσι κι αλλιώς επιστρέφετε πάντα το None.
Το μόνο που μπορώ να σκεφτώ το οποίο να φαίνεται  ότι επιστρέφεται μία τιμή χωρίς να χρησιμοποιήσω το  return  όπως λες,  είναι να χρησιμοποιούν μία καθολική global μεταβλητή.  κάτι το οποίο δεν είναι και καλή ιδέα Όσον αφορά τον  προγραμματισμό γενικά.
Τίτλος: Απ: Συναρτησεις
Αποστολή από: taxata στις 20 Απρ 2023, 11:20:30 ΠΜ
Καλημέρα και χρόνια πολλά σε όλους.
Επίσης οι λειτουργίες συναρτήσεων σε 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
Τίτλος: Απ: Συναρτησεις
Αποστολή από: polikarpos στις 20 Απρ 2023, 07:30:33 ΜΜ
Πολύ σωστά.
ασκήσεις πάνω στο θέμα υπάρχουν στο παρακάτω κουίζ στο 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) και ο τελεστής += Λίστα += [στοιχείο] ) Διατηρούν την αναφορά στην αρχική λίστα με αποτέλεσμα η αλλαγή να είναι μόνιμη και μετά την κλήση της συνάρτησης.
Οι εντολές προσθήκης στοιχείων είτε στην αρχή είτε στο τέλος της λίστας
Λίστα = Λίστα + [ στοιχείο ]
Λίστα = [ στοιχείο ] + Λίστα 
όπως και η απόδοση τιμής σε μια λίστα, Λίστα =[λίστα τιμών]
δεν προσθέτουν το στοιχείο στην ήδη υπάρχουσα λίστα αλλά δημιουργούν μια νέα λίστα κάθε φορά, οπότε αλλαγές στη λίστα μέσα στη συνάρτηση, δεν επιστρέφουν στα ορίσματα ώστε να γίνουν γνωστές έξω από τη συνάρτηση.

Τίτλος: Απ: Συναρτησεις
Αποστολή από: theoni στις 05 Ιουν 2023, 07:05:08 ΜΜ
Όταν κάνουμε ταξινόμηση σε συνάρτηση τους ταξινομημένος πίνακες δεν τους κάνουμε return??? Και απλά μέσα στο πρόγραμμα καλούμε τη συνάρτηση σωστά????αν τώρα κάποιος κάνει rerurn είναι σωστό ή λάθος????
Τίτλος: Απ: Συναρτησεις
Αποστολή από: theoni στις 09 Ιουν 2023, 07:11:07 ΠΜ
Τελικα βάζουμε return στην ταξινόμηση όταν γίνεται σε def ή όχι???
Τίτλος: Απ: Συναρτησεις
Αποστολή από: evry στις 09 Ιουν 2023, 07:40:49 ΠΜ
Ο κώδικας που φαίνεται στην εικόνα νομίζω ότι απαντάει στην ερώτησή σου
list.png
Τίτλος: Απ: Συναρτησεις
Αποστολή από: theoni στις 09 Ιουν 2023, 12:31:36 ΜΜ
Ευχαριστώ!!!