####ID 40-friends-of-friends #### Άσκηση: #### #### Γράψτε μια συνάρτηση σε python #### #### fof(D, name) #### #### όπου D είναι ένα λεξικό του οποίου τα κλειδιά είναι ονόματα (strings). Η τιμή του κάθε κλειδιού k είναι #### μια λίστα με τα ονόματα όλων των φίλων του k. Η παράμετρος name είναι ένα όνομα (string). #### Η συνάρτηση θα πρέπει να επιστρέφει σε μια λίστα εκείνα τα άτομα που εμφανίζονται στο D τα οποία είναι #### φίλοι φίλων του name αλλά όχι φίλοι του name. #### #### * Το ίδιο το name πρέπει να μην υπάρχει σε αυτή τη λίστα επιστρέφει η συνάρτηση. #### * Δεν επιτρέπεται ένα άτομο να εμφανίζεται παραπάνω από μια φορά στη λίστα επιστρέφει η συνάρτηση. #### * Η λίστα που επιστρέφει η συνάρτηση πρέπει να είναι σε αύξουσα αλφαβητική σειρά. #### #### Η σχέση φιλίας δεν είναι συμμετρική: υπάρχει περίπτωση ο A να είναι στους φίλους του B αλλά ο B να μην #### είναι στους φίλους του A (όπως στο παράδειγμα D που φαίνεται παρακάτω). #### #### *** Παράδειγμα *** #### #### Για παράδειγμα, αν #### D = {"Mihalis": ["Yannis", "Manolis"], #### "Yannis": ["Mihalis", "Kostas", "Manolis"], #### "Manolis": ["Kostas", "Dimitris"], #### "Kostas": ["Yannis", "Giorgos"] #### } #### και name="Mihalis" τότε το αποτέλεσμα είναι η λίστα ["Kostas", "Dimitris"]. #### #### *** Γενικές Οδηγίες: *** #### #### Γράφετε τον κώδικά σας αποκλειστικά ανάμεσα στις γραμμές START και STOP παρακάτω. #### Δεν πρέπει να πειράξετε καθόλου τις υπόλοιπες γραμμές #### #### Για να τρέξετε το πρόγραμμά σας (αποθηκευμένο στο αρχείο user.py) δίνετε την εντολή #### #### python3 user.py #### #### ενώ για να το ελέγξετε με τον tester δίνετε την εντολή #### #### python3 tester.py #### #### φροντίζοντας τα αρχεία user.py και tester.py να είναι στον ίδιο κατάλογο (directory) #### #### ****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ**** #### Μη γράψετε καμιά εντολή εισόδου (input) ή εξόδου (print) #### στον κώδικα που θα βάλετε ανάμεσα στα START και STOP. Αυτά είναι ήδη γραμμένα. #### Αν βάλετε και σεις το πρόγραμμά σας βγαίνει λάθος. #### D = {"Mihalis": ["Yannis", "Manolis"], #### "Yannis": ["Mihalis", "Kostas", "Manolis"], #### "Manolis": ["Kostas", "Dimitris"], #### "Kostas": ["Yannis", "Giorgos"] #### } #### #### print("Το λεξικό είναι το: {}".format(D)) #### name=input("Παρακαλώ δώστε το όνομα: ") #### #### #### Υποθέσεις: #### #### Στο σημείο αυτό έχει οριστεί το λεξικό D, και ο χρήστης έχει επιλέξει το όνομα name. #### #### Απαιτήσεις: #### #### Στο τέλος του προγράμματός σας θα πρέπει #### #### η συνάρτηση fof #### #### να υπολογίζει αυτό που περιγράφεται στην εκφώνηση. #### Μην αλλάξετε ό,τι είναι από τη γραμμή αυτή και πάνω ####START Από δω και κάτω γράφετε το πρόγραμμά σας.---------------------------------------------------------------- def fof(D, name): #### ####STOP Μην αλλάξετε ό,τι είναι από τη γραμμή αυτή και κάτω-------------------------------------------------------- print("Η απάντηση είναι {}.".format(fof(D, name))) ####