Προγραμματισμός για Επιχειρηματική Αναλυτική · Εβδομάδα 3 · φόρτωση Python…

Εισαγωγή στην Python

Ένας διαδραστικός οδηγός για την τάξη και το σπίτι, σε 8 βήματα. Ο κώδικας τρέχει μέσα στον browser σου: άλλαξέ τον, πάτησε Τρέξε (ή Ctrl+Enter) και δες τι γίνεται. Σε κάθε βήμα υπάρχουν κουίζ «τι θα τυπώσει;» και ασκήσεις που ελέγχονται αυτόματα.

1. Το περιβάλλον της Python

Κώδικα Python γράφουμε σε ένα script (αρχείο .py ή κελί σε Jupyter / Google Colab) και βλέπουμε το αποτέλεσμα στην κονσόλα (console). Εδώ το σκούρο παράθυρο παίζει τον ρόλο του script και το ανοιχτό κουτί από κάτω τον ρόλο της κονσόλας. Σε script, ό,τι θέλεις να δεις πρέπει να το τυπώσεις με print().

Η print() εμφανίζει μια τιμή. Ό,τι ακολουθεί το # είναι σχόλιο (comment): η Python το αγνοεί, είναι για τους ανθρώπους.

ΔΟΚΙΜΑΣΕΒάλε # μπροστά από την τελευταία print και ξανατρέξε. Μετά υπολόγισε 2 + 3 * 4 και (2 + 3) * 4: η προτεραιότητα είναι η μαθηματική.
Άσκηση 1

Υπολόγισε πόσο γίνονται 100 ευρώ με 10% ετήσιο τόκο μετά από 7 χρόνια, δηλαδή 100 * 1.1 ** 7, και τύπωσέ το.

2. Μεταβλητές και τύποι δεδομένων

Μια μεταβλητή (variable) είναι ένα όνομα που δείχνει σε μια τιμή: revenue = 1250. Το = σημαίνει «ανάθεση», όχι ισότητα. Τα ονόματα ξεχωρίζουν πεζά/κεφαλαία (case-sensitive).

Οι τέσσερις βασικοί τύποι (data types)

ΤύποςΤι είναιΠαράδειγμα
intακέραιος (integer)stock = 42
floatδεκαδικός (floating point), με τελείαprice = 25.5
strκείμενο (string), σε εισαγωγικάproduct = "Laptop"
boolλογική τιμή (boolean): True ή Falsein_stock = True

Η συνάρτηση type() σου λέει τον τύπο. Ο τύπος καθορίζει τη συμπεριφορά: το + προσθέτει αριθμούς αλλά ενώνει strings.

ΔΟΚΙΜΑΣΕΓράψε print("total: " + 3). Διάβασε το μήνυμα σφάλματος: η Python δεν ξέρει αν θες πρόσθεση ή ένωση. Διόρθωσέ το με str(3).

Κείμενο με τιμές μέσα: f-strings

Αντί για αλυσίδες από + και str(), γράφεις f"...{μεταβλητή}...". Μέσα στα άγκιστρα μπορείς να ζητήσεις μορφοποίηση: {x:.2f} δύο δεκαδικά, {x:,} διαχωριστικό χιλιάδων, {x:.1%} ποσοστό.

Συγκρίσεις: από πού έρχονται τα True και False

Οι τελεστές == != < <= > >= δίνουν boolean. Τα and, or, not τα συνδυάζουν. Προσοχή: = αναθέτει, == συγκρίνει.

Άσκηση 2

Τα έσοδα είναι 1250 και αυξάνονται 8% τον χρόνο. Συμπλήρωσε τον κώδικα ώστε να τυπώνει ακριβώς: Revenue 1250 now, 1836.66 in 5 years. Θυμήσου: αριθμός + string δίνει σφάλμα, χρειάζεσαι str() ή f-string.

3. Λίστες (lists) και δείκτες (indexes)

Μια μεταβλητή κρατά μία τιμή. Μια λίστα δίνει ένα όνομα σε πολλές τιμές: sales = [1200, 1550, 1000]. Μπορεί να περιέχει οποιονδήποτε τύπο, ακόμη και άλλες λίστες.

Χρήσιμα εργαλεία: len, in, sum, max

Δείκτες: η αρίθμηση ξεκινά από το 0

Το πρώτο στοιχείο έχει δείκτη 0, το δεύτερο 1 κ.ο.κ. Αρνητικοί δείκτες μετρούν από το τέλος: -1 είναι το τελευταίο. Πληκτρολόγησε μια έκφραση και δες ποια στοιχεία επιλέγει:

Άσκηση 3

Τύπωσε με τη σειρά: το δεύτερο στοιχείο, το τελευταίο στοιχείο (με αρνητικό δείκτη) και την τιμή του monitor.

4. Τμήματα λίστας (slicing) και αλλαγές

Με my_list[start:end] παίρνεις πολλά στοιχεία: ο start περιλαμβάνεται, ο end όχι. Αν παραλείψεις το start ξεκινά από την αρχή, αν παραλείψεις το end πάει ως το τέλος. Δοκίμασε x[1:3], x[:3] (πρώτο τρίμηνο), x[3:] (δεύτερο τρίμηνο), x[-2:]:

Αλλαγή, προσθήκη, διαγραφή

ΓΙΑΤΙ ΕΧΕΙ ΣΗΜΑΣΙΑΤο backup = sales δίνει δεύτερο όνομα στην ίδια λίστα, οπότε μια αλλαγή μέσω του backup φαίνεται και στο sales. Για ανεξάρτητο αντίγραφο γράψε list(sales) ή sales[:]. Είναι από τις πιο συχνές πηγές «μυστήριων» σφαλμάτων.
Άσκηση 4

Φτιάξε τις λίστες h1 (πρώτο εξάμηνο) και h2 (δεύτερο εξάμηνο) με την απλούστερη γραφή του slicing, διόρθωσε τον Δεκέμβριο σε 3000 και τύπωσε τα αποτελέσματα. (Πρόσεξε: το h2 φτιάξ' το πριν αλλάξεις την sales, ή σκέψου τι θα περιέχει αν το φτιάξεις μετά.)

5. Συναρτήσεις (functions) και μέθοδοι (methods)

Μια συνάρτηση είναι έτοιμος κώδικας με όνομα: output = function_name(input). Ήδη ξέρεις τις print() και type(). Άλλες χρήσιμες: len(), max(), round(), sorted(), help().

Μέθοδοι: συναρτήσεις που «ανήκουν» σε αντικείμενα

Κάθε τιμή στην Python είναι αντικείμενο (object) και κάθε τύπος έχει τις δικές του μεθόδους. Καλούνται με τελεία: city.upper(), customers.index("nikos").

ΣΥΧΝΟ ΛΑΘΟΣcustomers = customers.append("giorgos") κάνει τη customers ίση με None, γιατί η append() δεν επιστρέφει τίποτα· αλλάζει τη λίστα επί τόπου. Γράψε απλώς customers.append("giorgos"). Δοκίμασέ το παραπάνω για να δεις τι γίνεται.
Άσκηση 5

Χρησιμοποίησε τις μεθόδους λίστας index(), append() και reverse() σύμφωνα με τα σχόλια.

6. Πακέτα (packages)

Ένα πακέτο είναι μια συλλογή από έτοιμες συναρτήσεις, μεθόδους και τύπους. Για ανάλυση δεδομένων: NumPy (αριθμητικοί πίνακες), pandas (πίνακες δεδομένων), Matplotlib (γραφήματα), scikit-learn (μηχανική μάθηση). Τα εγκαθιστάς μία φορά (pip install numpy) και τα εισάγεις (import) σε κάθε script.

ΤρόποςΠώς το καλείς μετάΣχόλιο
import numpynumpy.array([1, 2])πλήρες όνομα, μακρύ
import numpy as npnp.array([1, 2])η συνήθης πρακτική (ψευδώνυμο, alias)
from numpy import arrayarray([1, 2])σύντομο, αλλά κρύβει από πού ήρθε

Εδώ στον browser υπάρχει το πακέτο math της βασικής Python, και μπορεί να φορτωθεί και το NumPy (πατώντας «Τρέξε» την πρώτη φορά θα αργήσει λίγα δευτερόλεπτα).

Άσκηση 6

Χρησιμοποίησε τη ceil() του πακέτου math (στρογγυλοποίηση προς τα πάνω) για να υπολογίσεις πόσα κουτιά χρειάζονται: 1250 / 48 = 26.04, άρα 27 κουτιά.

7. Όταν κάτι πάει στραβά: διαβάζοντας ένα σφάλμα

Ένα μήνυμα σφάλματος (traceback) διαβάζεται από κάτω προς τα πάνω: η τελευταία γραμμή λέει τι (τον τύπο και την αιτία), οι γραμμές από πάνω λένε πού (σε ποια γραμμή κώδικα). Τα τέσσερα που θα δεις πρώτα:

ΣφάλμαΤι σημαίνειΠαράδειγμα
NameErrorΌνομα που δεν έχει οριστεί (ή γράφτηκε αλλιώς)print(revenu)
TypeErrorΠράξη ανάμεσα σε ασύμβατους τύπους"total: " + 3
IndexErrorΔείκτης που δεν υπάρχει στη λίστα[1, 2, 3][3]
SyntaxErrorΗ γραμμή δεν διαβάζεται: λείπει παρένθεση ή εισαγωγικόprint("hello"

Τρέξε τον παρακάτω κώδικα, διάβασε το μήνυμα, και διόρθωσε ένα σφάλμα τη φορά μέχρι να τυπώσει Revenue: 1250 και 1650.

Άσκηση 7

Τρία σφάλματα, τρεις διορθώσεις: ένα NameError, ένα TypeError και ένα SyntaxError. Πάτησε «Έλεγξε», διάβασε το μήνυμα, διόρθωσε, ξαναπάτησε.

8. Τελικό κουίζ

Δώδεκα ερωτήσεις από όλη την εβδομάδα. Σκέψου πρώτα, μετά απάντησε· αν αμφιβάλλεις, άνοιξε το παράθυρο κώδικα στο τέλος και δοκίμασέ το.

Δοκιμαστήριο

ΓΙΑ ΤΟ ΣΠΙΤΙΕργασία: ολοκλήρωσε και τα 8 βήματα αυτής της σελίδας (κουίζ και ασκήσεις). DataCamp: Introduction to Python, κεφάλαια 1–3. Επόμενη εβδομάδα: NumPy.