διαγωνισμα Python ΚΕΦ 3-5

Ξεκίνησε από triantaf, 23 Ιαν 2017, 12:26:59 ΜΜ

« προηγούμενο - επόμενο »

triantaf

Ενα απλό διαγώνισμα για επανάληψη κεφ 3-5

evry

#1
Προσοχή όταν ζητάμε μετατροπή μεταξύ δομών επανάληψης διότι στην Python οι δομές while/for δεν είναι "ισοδύναμες" Για παράδειγμα τα δυο παρακάτω τμήματα κώδικα στο τέλος δεν θα εμφανίσουν τον ίδιο αριθμό:
Κώδικας: python
sum = 0
for i in range(10):
     sum += i
print i

Εδώ η for θα εμφανίσει στο τέλος τον αριθμό 9

ενώ η while παρακάτω
Κώδικας: python
sum = 0
i = 0
while i<10 :
     sum += i
     i = i + 1 
print i

θα εμφανίσει 10
Αυτό συμβαίνει διότι στη for η μεταβλητή i δεν αυξάνεται αλλά διατρέχει τα στοιχεία μιας λίστας όπως φαίνεται παρακάτω:
Κώδικας: python
sum = 0
for i in [0,1,2,3,4,5,6,7,8,9]:
     sum += i
print i

What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

triantaf

σωστα και ευχαριστώ , η προσπάθεια όμως μετατροπής δίνει την κατανόηση της διαφοράς

evry

σίγουρα οι ασκήσεις αυτές έχουν νόημα απλά η πρόταση είναι να δίνουμε μια εκφώνηση στην οποία να μην μιλάμε για ισοδύναμα τμήματα γιατί δεν υλοποιούν τα ίδια βήματα, αλλά για τμήματα κώδικα που εμφανίζουν τους ίδιους αριθμούς.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

dimitrios67

δηλ. η Python εχει "iterator" στο for....προχωρημενος προγραμματισμος....
Οι μαθητες μπορουν να ανταποκριθούν σε τετοιες εννοιες;
Η εμπειρια σας τι λεει;

evry

Στην τρίτη γυμνασίου που το δοκιμάζω μια χαρά ανταποκρίνονται.
Σαν έννοια είναι πιο εύκολο από την κλασική for που κρύβει τον μετρητή. Μπορεί εμάς να μας φαίνεται προχωρημένο γιατί έχουμε συνηθίσει αλλιώς.
Για παράδειγμα το παρακάτω τμήμα κώδικα:
Κώδικας: python
for i in [4,6,8,10]:
   print i*i


μπορεί να εξηγηθεί ως εξής:

Για κάθε αριθμό της λίστας [4,6,8,10]:
     Εμφάνισε το τετράγωνό του


Μπορεί κανείς να κάνει πιο απλά παραδείγματα όπως το παρακάτω:
Κώδικας: python
for team in ['aek', 'paok', 'pao', 'ethnikos']:
     print team + ' ' + team

Δεν φαίνεται πουθενά δείκτης που να αυξάνεται κάτι που δυσκολεύει πολύ τους μαθητές στη for.
Απλά θα πρέπει από πριν να δείξει ο καθηγητής μερικά παραδείγματα με απλές λίστες στον διερμηνευτή.

ΥΓ. Το παραπάνω παράδειγμα το έκανα σε σχολείο του Πειραιά  >:D
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

triantaf

#6
αυτο ζητηθηκε απο τους μαθητες (.py file το επισυναπτομενο)