c7p έγραψε:Ασκήσεις για Python !
http://codingbat.com/python
http://openbookproject.net/pybiblio/practice/
Να 'σαι καλά!

Συντονιστής: konnn
c7p έγραψε:Ασκήσεις για Python !
http://codingbat.com/python
http://openbookproject.net/pybiblio/practice/
c7p έγραψε:Για προσπαθήστε να λύσετε την άσκηση http://codingbat.com/prob/p126968 να δούμε πόσες διαφορετικές λύσεις θα έχουμε-κατά προτίμηση χωρίς ταξινόμηση για μεγαλύτερη δυσκολία
-.
def centered_average(nums):
min, max = nums[0], nums[0]
for i in nums:
if i >= max:
max = i
if i <= min:
min = i
sum = 0
for i in nums:
sum = sum + i
sum = sum - (min + max)
return (sum / (len(nums) - 2))
Giannis = Epafes(1)
Kwstas = Epafes(2)
print('Ποια επαφή θέλεις να δεις;') ; d = input()
d.tell()
migf1 έγραψε:Επειδή python δεν γνωρίζω, έχω μια απορία: υπάρχει κάποιος ιδιαίτερος λόγος που το sum υπολογίζεται σε ξεχωριστό loop και όχι μαζί με τα min και max στο αρχικό loop? Αυτή η υλοποίηση κάνει τον διπλάσιο χρόνο να εκτελεστεί!
migf1 έγραψε:Επίσης, υποθέτω πως η len( nums ) είναι κάποια συνάρτηση που επιστρέφει το πλήθος των στοιχείων του πίνακα nums. Αν η python δεν έχει κάποιο μηχανισμό να υπολογίζει δυναμικά το πλήθος των στοιχείων την 1η φορά που τον διατρέχουμε κι ενδεχομένως να το κρατάει σε κάποια εσωτερική μεταβλητή που διαβάζει κατόπιν η len() (ή έστω κάποιον εσωτερικό μηχανισμό που προ-υπολογίζει και αποηθηκεύει το πλήθος των πινάκων κατά τον ορισμό του) τότε το κάλεσμα της συνάρτησης len στην παραπάνω υλοποίηση είναι επιπρόσθετη επιβάρυνση σε ταχύτητα.
Θα μπορούσε κι αυτό να υπολογίζεται δυναμικά με μια έξτρα μεταβλητή μέσα στο αρχικό loop, μαζί με όλα τα υπόλοιπα. Έτσι ο κώδικας θα διέτρεχε τον πίνακα 1 μόνο φορά, αντί για 3 που τον διατρέχει τώρα.
migf1 έγραψε:Ναι, σωστός! (κάτσε να το κάνω edit)