Διδασκαλία των
μαθημάτων Αρχές
Προγραμματισμού
Υπολογιστών και
Προγραμματισμός
Υπολογιστών
Ευριπίδης Βραχνός
Σύμβουλος Εκπαίδευσης Πληροφορικής Πειραιά
sym86-depeir@sch.gr http://evripides.mysch.gr sym86depeir@gmail.com
Η γλώσσα προγραμματισμού Python στο ΕΠΑ.Λ.
• Αρχές Προγραμματισμού Υπολογιστών (από το 2015)
• Β ΕΠΑΛ, 4 ώρες (1Θ + 3Ε) (2η έκδοση 2017)
• Προγραμματισμός Υπολογιστών (από το 2016)
• Γ ΕΠΑΛ, 5 ώρες (3Θ + 2Ε)
• Διορθωμένη 2η έκδοση 2017
• Τετράδιο εργασιών
• Τεύχος Λύσεων
• Οδηγίες για τον/την εκπαιδευτικό
• Η μαγική λέξη: Εμβάθυνση
• Τι γνώσεις πρέπει να έχουν οι μαθητές από τη Β’ Λυκείου ?
• Βασικές δομές (τύποι / μεταβλητές / επιλογή / επανάληψη)
• Βασικές έννοιες για λίστες/αλφαριθμητικά
• Δημιουργία απλών συναρτήσεων
• Μπορεί να γίνει σε 4x25 = 100 ώρες?
Χαρακτηριστικά της Python
• Εξαιρετικά απότομη καμπύλη μάθησης
• Χρησιμοποιείται ευρέως
• YouTube, DropBox, Google, Instagram, NASA, BitTorrent, Calibre,
reddit, Spotify, Quora, chatGPT, BardAI
• Υποστηρίζει τρία διαφορετικά είδη προγραμματισμού
• Τεράστια κοινότητα (σημειώσεις, βιβλία, υλικό, MOOCS)
• Μεγάλη ποικιλία βιβλιοθηκών, απεριόριστες εφαρμογές
• case sensitive PyThOn ≠ Python Print ≠ print
• Είναι ελεύθερο λογισμικό
• Δωρεάν και ανοικτού κώδικα
• Μάθηση μέσω διερεύνησης – πειραματισμού στον διερμηνευτή
• Είναι απλή σαν … ψευδογλώσσα
Βρέθηκε  Ψευδής
i  1
Όσο i <= N και όχι Βρέθηκε Επανάλαβε
j  1
Όσο j <= N και όχι Βρέθηκε Επανάλαβε
Αν A[ i , j] = key Τότε
Βρέθηκε  Αληθής
Τέλος_Αν
j  j + 1
Τέλος_Επανάληψης
i  i + 1
Τέλος_Επανάληψης
def linearSearch2D( A, key ) :
for row in A :
for item in row :
if item == key :
return True
return False
Προγραμματισμός στα Ελληνικά vs Αλγοριθμική;
Οι Εντολές εκτελούνται για
κάθε στοιχείο της λίστας.
Η εντολή επανάληψης for για διάσχιση λίστας
Οι Εντολές εκτελούνται τόσες φορές όσες είναι και τα
στοιχεία της λίστας. (θυμίζει την foreach )
for item in List :
<Εντολές>
strangeList = [6, False, “False”, [ 0,1 ], [ ], [ [ ] ] ]
for element in strangeList:
print( 3*element, end = “ ” )
18 0 FalseFalseFalse [0,1,0,1,0,1] [ ] [ [ ], [ ], [ ] ]
https://spectrum.ieee.org/top-programming-languages-methodology
Διδακτέα / Εξεταστέα ύλη του μαθήματος
Αρχές Προγραμματισμού
Διδακτέα / Εξεταστέα ύλη του μαθήματος
Αρχές Προγραμματισμού
Προαπαιτούμενες Γνώσεις για το μάθημα του
Προγραμματισμού Η/Υ Γ’ τάξης
• Υπενθύμιση: 1Θ + 3Ε
• Εξοικείωση με το περιβάλλον προγραμματισμού
(όποιο και αν είναι αυτό ☺)
• Αλγοριθμικές Δομές
• Λίστες – Αλφαριθμητικά (πολύ σημαντικό!)
• Σειριακή Αναζήτηση
• Δημιουργία Συναρτήσεων
Άρα τα παραπάνω τα υπενθυμίζουμε στα πρώτα μαθήματα της Γ’ ή
έστω ελέγχουμε με ένα διαγνωστικό τεστ το βαθμό κατανόησης /
εξοικείωσης των μαθητών/τριών
Αφαίρεση - Γενίκευση
Αφαίρεση - Γενίκευση
Βασική Διδακτική Αρχή:
Μια νέα έννοια κάθε φορά
Συναρτήσεις πριν από τη δομή επιλογής
Προσοχή!! Παρακολούθηση Ύλης
Δηλώνουμε τον αριθμό της σελίδας στην οποία βρισκόμαστε για κάθε
ένα από τα δυο μαθήματα. Άρα δίνουμε απλά έναν αριθμό, όπως
φαίνεται παρακάτω:
Στο τέλος δηλώνουμε…….. ΤΕΛΟΣ.
11/12
22/01
19/02
19/03
24/04 ΤΕΛΟΣ σελ.226
Και αν δεν μου αρέσει η σειρά που προτείνεται;
Βιβλία και Οδηγίες Διδασκαλίας στο ΙΕΠ
Από τις συγγραφικές ομάδες (2015)
https://www.iep.edu.gr/el/component/k2/19-tomeas-pliroforikis
Προσοχή δεν ισχύουν σήμερα. Δεν
θεωρούνται επίσημες οδηγίες
Προσοχή στον Χρονοπρογραμματισμό. Αναφέρεται σε όλα
τα κεφάλαια και όχι μόνο στην εξεταστέα ύλη.
Αυτές είναι οι επίσημες οδηγίες
Η έκδοση
του Βιβλίου
Διαφορές Py2 vs Py3
Περιβάλλοντα προγραμματισμού
https://www.online-python.com/
Ο διερμηνευτής της Python και το IDLE
Τα σημαντικότερα προβλήματα που εντοπίσαμε κατά τη χρήση του
περιβάλλοντος προγραμματισμού IDLE (εκτός από τον καθαρισμό
του prompt ☺ ) ήταν δυο:
• Η παρανόηση που είχαν οι μαθητές ότι ο διερμηνευτής
συμπεριφέρεται ως συντάκτης κώδικα. Δεν είχαν καταλάβει ότι
αυτό που έβλεπαν στην οθόνη ήταν το ιστορικό των εντολών που
έχουν δώσει το οποίο δεν μπορεί να διορθωθεί.
• Η λάθος στοίχιση εντολών οδηγεί σε συντακτικά λάθη. Πολλοί
μαθητές είτε δεν πετύχαιναν τη σωστή στοίχιση είτε ξεχνούσαν το
σύμβολο ‘:’ που υποδηλώνει την αρχή ενός μπλοκ εντολών.
Δομές επανάληψης
1η επιλογή
2η επιλογή
Διδακτική Προσέγγιση: Η δομή επανάληψης
for i in range(A,M+1) ≠ Για i από Α μέχρι Μ
• Προσοχή!!! Μην συγχέετε τη for με τη Για πού ξέρουμε από το μάθημα
της ΑΕΠΠ. Έχουν διαφορετική λειτουργία
for i in range(1,5):
print i,
1 2 3 4
>>> print i
4
Για i από 1 μέχρι 4
Γράψε i
1 2 3 4
>>> Γράψε i
5
for i in [1, 2, 3, 4]:
for i in range(1,5): =
Αυτό πρέπει να εξηγήσουμε στους μαθητές
range: Διδακτική προσέγγιση
for i in [0,1,2,3,4]:
print i,
for i in range(5):
print i,
for i in range(0,5):
print i,
[0, 2, 4, 6, 8]
range(0,10, 2): =
Εκτελέστε τις παρακάτω εντολές. Τι παρατηρείτε; Με ποια εντολή θα
εμφανίσουμε όλους τους αριθμούς από 1 έως και 100;
Η range ικανοποιεί την αναγκαιότητα της αυτόματης παραγωγής μια
λίστας πολλών αριθμών.
Διδακτική Προσέγγιση: Η συνάρτηση range
• Να εκτελέσετε στον διερμηνευτή της Python τις
παρακάτω εντολές. Να περιγράψετε τη λειτουργία της
συνάρτησης (εντολής?) range .
>>> range( 5 )
???
>>> range(1, 5)
???
>>> range(1, 10, 2)
???
>>> range(10, 1, -2)
???
>>> range(0)
???
>>> range(1)
???
>>> range(–1)
???
>>> range(–100)
???
Διδακτική Προσέγγιση: Η συνάρτηση range
• Να εκτελέσετε στον διερμηνευτή της Python τις
παρακάτω εντολές. Να περιγράψετε τη λειτουργία της
συνάρτησης (εντολής?) range .
>>> range( 5 )
[0, 1, 2, 3, 4]
>>> range(8)
[0, 1, 2, 3, 4, 5, 6, 7]
>>> range(1, 5)
[1, 2, 3, 4]
>>> range(1, 10, 2)
[1, 3, 5, 7, 9]
>>> range(0)
[ ]
>>> range(1)
[ 0 ]
>>> range(10, 1, -2)
[10, 8, 6, 4, 2]
>>> range(–100)
[ ]
Οι μαθητές συγχέουν τη λειτουργία της print σε μια συνάρτηση με
τη λειτουργία της return
Επιστροφή από συναρτήσεις
Το πιθανότερο είναι ότι έπρεπε να ακολουθήσουμε διαφορετική
διδακτική στρατηγική και να δώσουμε περισσότερο βάρος στην
λειτουργία της return.
Διδακτική Στρατηγική: Διερεύνηση
•Στα πρώτα μαθήματα πρέπει να εκμεταλλευτούμε τον
διερμηνευτή
•Οι μαθητές μπορούν να πειραματιστούν με εντολές της
Python και να διερευνήσουν τη λειτουργία τους
•Όλες οι νέες έννοιες πρέπει πρώτα να δοκιμάζονται από
τους μαθητές στον διερμηνευτή και όχι να
παρουσιάζονται σε μορφή ολοκληρωμένου
προγράμματος
•Επίλυση προβλήματος (Ανακάλυψη) vs. Διερεύνηση
•Top Down vs. Bottom Up
Διδακτική Προσέγγιση: Παράδειγμα
•Να εκτελέσετε στον διερμηνευτή της Python τις
παρακάτω εντολές
• Να εξηγήσετε τα αποτελέσματα. Ποιο γράμμα είναι
στη θέση 7 της λέξης και ποιο στη θέση 1;
• Με αντίστοιχο τρόπο να εμφανίσετε τις παρακάτω
λέξεις: zizanio, zig zag , anna
>>> word = “zanneio gymnasio”
>>> word[0]+word[7]+word[9]+word[7]+word[8]
‘z y g’
• Προσοχή!!! Η εσοχή του μπλοκ εντολών της if καθορίζει ποιες
εντολές θα εκτελεστούν
• (εσοχή = εμφωλευμένη δομή = 4 κενά ή tab)
• Κλασικό λάθος: Ξεχνάμε το “ : ”
• Τι θα εμφανίσουν τα παραπάνω τμήματα κώδικα για x=0;
if x <= 0 :
print ( “αρνητικός” )
print ( “ή μηδέν” )
else :
print ( “θετικός” )
print ( “αριθμός” )
if x <= 0 :
print ( “αρνητικός” )
print ( “ή μηδέν ” )
else :
print ( “θετικός” )
print ( “αριθμός” )
Επιλέγουμε ☺
Προσοχή στις εσοχές!!!
Αν κάτι μπορεί να πάει στραβά θα πάει ότι και να κάνουμε
def factorial( n):
fact = 1
for i in range( 1, n+1 ):
fact = fact * i
return fact
>>> factorial(100)
1
Κλασικό λάθος: Οι μαθητές ξεχνούν το : και το βάζουν εκ
των υστέρων χωρίς όμως να διορθώσουν και τη στοίχιση
Θα μπορούσε να γίνει άσκηση: Βρες το λάθος ☺
Προσοχή στις εσοχές!!!
Να ξαναγράψετε την παρακάτω συνάρτηση θέτοντας τις σωστές
εσοχές.
def doSomething( n):
Sum = 1
for i in range( 1, n+1 ):
if i % 5 == 0 :
Sum = Sum + i
return fact
Προσοχή στις εσοχές!!!
Πόσες φορές θα εκτελεστεί η εντολή στην γραμμή 3 και πόσες φορές
η εντολή στη γραμμή 5;
1: i = 0
2: while i <= 10 :
3: s = s + i
4: i = i + 1
5: i = i + 5
Διαχωρισμός Λίστας
• Να γράψετε ένα πρόγραμμα το οποίο δεδομένης μια λίστας ακέραιων
αριθμών θα διαχωρίζει τους αριθμούς σε δυο νέες λίστες, μια για τους
θετικούς και μια για τους αρνητικούς, διατηρώντας τη σχετική σειρά μεταξύ
τους
positives = [ ]
negatives = [ ]
for number in numbers : # γλιτώνουμε τους μετρητές
if number > 0 : # για κάθε πίνακα
positives += [ number ]
elif number < 0 :
negatives += [ number ]
Διαχωρισμός Λίστας :
Αξιοποίηση του Python Tutor
Πηγές για εκμάθηση της γλώσσας Python
http://pythonies.mysch.gr/
Δωρεάν online βιβλία
Python for everybody : Exploring Data in Python3)
https://www.py4e.com/book
Learn Python the Hard Way
https://learnpythonthehardway.org/book
Think Python: How to think like a computer scientist
http://greenteapress.com/thinkpython/thinkpython.pdf
Μόνο το Think Python είναι σε Python 2.
https://mathesis.cup.gr/
https://coursity.gr/
επαλ python presentation - programming princinples

επαλ python presentation - programming princinples

  • 1.
    Διδασκαλία των μαθημάτων Αρχές Προγραμματισμού Υπολογιστώνκαι Προγραμματισμός Υπολογιστών Ευριπίδης Βραχνός Σύμβουλος Εκπαίδευσης Πληροφορικής Πειραιά sym86-depeir@sch.gr http://evripides.mysch.gr sym86depeir@gmail.com
  • 2.
    Η γλώσσα προγραμματισμούPython στο ΕΠΑ.Λ. • Αρχές Προγραμματισμού Υπολογιστών (από το 2015) • Β ΕΠΑΛ, 4 ώρες (1Θ + 3Ε) (2η έκδοση 2017) • Προγραμματισμός Υπολογιστών (από το 2016) • Γ ΕΠΑΛ, 5 ώρες (3Θ + 2Ε) • Διορθωμένη 2η έκδοση 2017 • Τετράδιο εργασιών • Τεύχος Λύσεων • Οδηγίες για τον/την εκπαιδευτικό • Η μαγική λέξη: Εμβάθυνση • Τι γνώσεις πρέπει να έχουν οι μαθητές από τη Β’ Λυκείου ? • Βασικές δομές (τύποι / μεταβλητές / επιλογή / επανάληψη) • Βασικές έννοιες για λίστες/αλφαριθμητικά • Δημιουργία απλών συναρτήσεων • Μπορεί να γίνει σε 4x25 = 100 ώρες?
  • 3.
    Χαρακτηριστικά της Python •Εξαιρετικά απότομη καμπύλη μάθησης • Χρησιμοποιείται ευρέως • YouTube, DropBox, Google, Instagram, NASA, BitTorrent, Calibre, reddit, Spotify, Quora, chatGPT, BardAI • Υποστηρίζει τρία διαφορετικά είδη προγραμματισμού • Τεράστια κοινότητα (σημειώσεις, βιβλία, υλικό, MOOCS) • Μεγάλη ποικιλία βιβλιοθηκών, απεριόριστες εφαρμογές • case sensitive PyThOn ≠ Python Print ≠ print • Είναι ελεύθερο λογισμικό • Δωρεάν και ανοικτού κώδικα • Μάθηση μέσω διερεύνησης – πειραματισμού στον διερμηνευτή • Είναι απλή σαν … ψευδογλώσσα
  • 4.
    Βρέθηκε  Ψευδής i 1 Όσο i <= N και όχι Βρέθηκε Επανάλαβε j  1 Όσο j <= N και όχι Βρέθηκε Επανάλαβε Αν A[ i , j] = key Τότε Βρέθηκε  Αληθής Τέλος_Αν j  j + 1 Τέλος_Επανάληψης i  i + 1 Τέλος_Επανάληψης def linearSearch2D( A, key ) : for row in A : for item in row : if item == key : return True return False Προγραμματισμός στα Ελληνικά vs Αλγοριθμική;
  • 5.
    Οι Εντολές εκτελούνταιγια κάθε στοιχείο της λίστας. Η εντολή επανάληψης for για διάσχιση λίστας Οι Εντολές εκτελούνται τόσες φορές όσες είναι και τα στοιχεία της λίστας. (θυμίζει την foreach ) for item in List : <Εντολές> strangeList = [6, False, “False”, [ 0,1 ], [ ], [ [ ] ] ] for element in strangeList: print( 3*element, end = “ ” ) 18 0 FalseFalseFalse [0,1,0,1,0,1] [ ] [ [ ], [ ], [ ] ]
  • 6.
  • 7.
    Διδακτέα / Εξεταστέαύλη του μαθήματος Αρχές Προγραμματισμού
  • 8.
    Διδακτέα / Εξεταστέαύλη του μαθήματος Αρχές Προγραμματισμού
  • 9.
    Προαπαιτούμενες Γνώσεις γιατο μάθημα του Προγραμματισμού Η/Υ Γ’ τάξης • Υπενθύμιση: 1Θ + 3Ε • Εξοικείωση με το περιβάλλον προγραμματισμού (όποιο και αν είναι αυτό ☺) • Αλγοριθμικές Δομές • Λίστες – Αλφαριθμητικά (πολύ σημαντικό!) • Σειριακή Αναζήτηση • Δημιουργία Συναρτήσεων Άρα τα παραπάνω τα υπενθυμίζουμε στα πρώτα μαθήματα της Γ’ ή έστω ελέγχουμε με ένα διαγνωστικό τεστ το βαθμό κατανόησης / εξοικείωσης των μαθητών/τριών
  • 10.
  • 11.
    Αφαίρεση - Γενίκευση ΒασικήΔιδακτική Αρχή: Μια νέα έννοια κάθε φορά
  • 12.
    Συναρτήσεις πριν απότη δομή επιλογής
  • 14.
    Προσοχή!! Παρακολούθηση Ύλης Δηλώνουμετον αριθμό της σελίδας στην οποία βρισκόμαστε για κάθε ένα από τα δυο μαθήματα. Άρα δίνουμε απλά έναν αριθμό, όπως φαίνεται παρακάτω: Στο τέλος δηλώνουμε…….. ΤΕΛΟΣ.
  • 15.
  • 16.
  • 17.
    24/04 ΤΕΛΟΣ σελ.226 Καιαν δεν μου αρέσει η σειρά που προτείνεται;
  • 18.
    Βιβλία και ΟδηγίεςΔιδασκαλίας στο ΙΕΠ Από τις συγγραφικές ομάδες (2015) https://www.iep.edu.gr/el/component/k2/19-tomeas-pliroforikis Προσοχή δεν ισχύουν σήμερα. Δεν θεωρούνται επίσημες οδηγίες
  • 23.
    Προσοχή στον Χρονοπρογραμματισμό.Αναφέρεται σε όλα τα κεφάλαια και όχι μόνο στην εξεταστέα ύλη.
  • 25.
    Αυτές είναι οιεπίσημες οδηγίες
  • 28.
  • 29.
  • 30.
  • 31.
  • 34.
    Ο διερμηνευτής τηςPython και το IDLE Τα σημαντικότερα προβλήματα που εντοπίσαμε κατά τη χρήση του περιβάλλοντος προγραμματισμού IDLE (εκτός από τον καθαρισμό του prompt ☺ ) ήταν δυο: • Η παρανόηση που είχαν οι μαθητές ότι ο διερμηνευτής συμπεριφέρεται ως συντάκτης κώδικα. Δεν είχαν καταλάβει ότι αυτό που έβλεπαν στην οθόνη ήταν το ιστορικό των εντολών που έχουν δώσει το οποίο δεν μπορεί να διορθωθεί. • Η λάθος στοίχιση εντολών οδηγεί σε συντακτικά λάθη. Πολλοί μαθητές είτε δεν πετύχαιναν τη σωστή στοίχιση είτε ξεχνούσαν το σύμβολο ‘:’ που υποδηλώνει την αρχή ενός μπλοκ εντολών.
  • 35.
  • 37.
    Διδακτική Προσέγγιση: Ηδομή επανάληψης
  • 38.
    for i inrange(A,M+1) ≠ Για i από Α μέχρι Μ • Προσοχή!!! Μην συγχέετε τη for με τη Για πού ξέρουμε από το μάθημα της ΑΕΠΠ. Έχουν διαφορετική λειτουργία for i in range(1,5): print i, 1 2 3 4 >>> print i 4 Για i από 1 μέχρι 4 Γράψε i 1 2 3 4 >>> Γράψε i 5 for i in [1, 2, 3, 4]: for i in range(1,5): = Αυτό πρέπει να εξηγήσουμε στους μαθητές
  • 39.
    range: Διδακτική προσέγγιση fori in [0,1,2,3,4]: print i, for i in range(5): print i, for i in range(0,5): print i, [0, 2, 4, 6, 8] range(0,10, 2): = Εκτελέστε τις παρακάτω εντολές. Τι παρατηρείτε; Με ποια εντολή θα εμφανίσουμε όλους τους αριθμούς από 1 έως και 100; Η range ικανοποιεί την αναγκαιότητα της αυτόματης παραγωγής μια λίστας πολλών αριθμών.
  • 40.
    Διδακτική Προσέγγιση: Ησυνάρτηση range • Να εκτελέσετε στον διερμηνευτή της Python τις παρακάτω εντολές. Να περιγράψετε τη λειτουργία της συνάρτησης (εντολής?) range . >>> range( 5 ) ??? >>> range(1, 5) ??? >>> range(1, 10, 2) ??? >>> range(10, 1, -2) ??? >>> range(0) ??? >>> range(1) ??? >>> range(–1) ??? >>> range(–100) ???
  • 41.
    Διδακτική Προσέγγιση: Ησυνάρτηση range • Να εκτελέσετε στον διερμηνευτή της Python τις παρακάτω εντολές. Να περιγράψετε τη λειτουργία της συνάρτησης (εντολής?) range . >>> range( 5 ) [0, 1, 2, 3, 4] >>> range(8) [0, 1, 2, 3, 4, 5, 6, 7] >>> range(1, 5) [1, 2, 3, 4] >>> range(1, 10, 2) [1, 3, 5, 7, 9] >>> range(0) [ ] >>> range(1) [ 0 ] >>> range(10, 1, -2) [10, 8, 6, 4, 2] >>> range(–100) [ ]
  • 42.
    Οι μαθητές συγχέουντη λειτουργία της print σε μια συνάρτηση με τη λειτουργία της return Επιστροφή από συναρτήσεις Το πιθανότερο είναι ότι έπρεπε να ακολουθήσουμε διαφορετική διδακτική στρατηγική και να δώσουμε περισσότερο βάρος στην λειτουργία της return.
  • 43.
    Διδακτική Στρατηγική: Διερεύνηση •Σταπρώτα μαθήματα πρέπει να εκμεταλλευτούμε τον διερμηνευτή •Οι μαθητές μπορούν να πειραματιστούν με εντολές της Python και να διερευνήσουν τη λειτουργία τους •Όλες οι νέες έννοιες πρέπει πρώτα να δοκιμάζονται από τους μαθητές στον διερμηνευτή και όχι να παρουσιάζονται σε μορφή ολοκληρωμένου προγράμματος •Επίλυση προβλήματος (Ανακάλυψη) vs. Διερεύνηση •Top Down vs. Bottom Up
  • 44.
    Διδακτική Προσέγγιση: Παράδειγμα •Ναεκτελέσετε στον διερμηνευτή της Python τις παρακάτω εντολές • Να εξηγήσετε τα αποτελέσματα. Ποιο γράμμα είναι στη θέση 7 της λέξης και ποιο στη θέση 1; • Με αντίστοιχο τρόπο να εμφανίσετε τις παρακάτω λέξεις: zizanio, zig zag , anna >>> word = “zanneio gymnasio” >>> word[0]+word[7]+word[9]+word[7]+word[8] ‘z y g’
  • 45.
    • Προσοχή!!! Ηεσοχή του μπλοκ εντολών της if καθορίζει ποιες εντολές θα εκτελεστούν • (εσοχή = εμφωλευμένη δομή = 4 κενά ή tab) • Κλασικό λάθος: Ξεχνάμε το “ : ” • Τι θα εμφανίσουν τα παραπάνω τμήματα κώδικα για x=0; if x <= 0 : print ( “αρνητικός” ) print ( “ή μηδέν” ) else : print ( “θετικός” ) print ( “αριθμός” ) if x <= 0 : print ( “αρνητικός” ) print ( “ή μηδέν ” ) else : print ( “θετικός” ) print ( “αριθμός” ) Επιλέγουμε ☺
  • 46.
    Προσοχή στις εσοχές!!! Ανκάτι μπορεί να πάει στραβά θα πάει ότι και να κάνουμε def factorial( n): fact = 1 for i in range( 1, n+1 ): fact = fact * i return fact >>> factorial(100) 1 Κλασικό λάθος: Οι μαθητές ξεχνούν το : και το βάζουν εκ των υστέρων χωρίς όμως να διορθώσουν και τη στοίχιση Θα μπορούσε να γίνει άσκηση: Βρες το λάθος ☺
  • 47.
    Προσοχή στις εσοχές!!! Ναξαναγράψετε την παρακάτω συνάρτηση θέτοντας τις σωστές εσοχές. def doSomething( n): Sum = 1 for i in range( 1, n+1 ): if i % 5 == 0 : Sum = Sum + i return fact
  • 48.
    Προσοχή στις εσοχές!!! Πόσεςφορές θα εκτελεστεί η εντολή στην γραμμή 3 και πόσες φορές η εντολή στη γραμμή 5; 1: i = 0 2: while i <= 10 : 3: s = s + i 4: i = i + 1 5: i = i + 5
  • 49.
    Διαχωρισμός Λίστας • Ναγράψετε ένα πρόγραμμα το οποίο δεδομένης μια λίστας ακέραιων αριθμών θα διαχωρίζει τους αριθμούς σε δυο νέες λίστες, μια για τους θετικούς και μια για τους αρνητικούς, διατηρώντας τη σχετική σειρά μεταξύ τους positives = [ ] negatives = [ ] for number in numbers : # γλιτώνουμε τους μετρητές if number > 0 : # για κάθε πίνακα positives += [ number ] elif number < 0 : negatives += [ number ]
  • 50.
  • 51.
    Πηγές για εκμάθησητης γλώσσας Python http://pythonies.mysch.gr/ Δωρεάν online βιβλία Python for everybody : Exploring Data in Python3) https://www.py4e.com/book Learn Python the Hard Way https://learnpythonthehardway.org/book Think Python: How to think like a computer scientist http://greenteapress.com/thinkpython/thinkpython.pdf Μόνο το Think Python είναι σε Python 2.
  • 52.
  • 53.