Εργαςτιρια Πλθροφορικι ΙΙ. Εαρινό εξάμθνο Ειςαγωγι ςτθ Python

Σχετικά έγγραφα
Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε:

ΕΡΓΑΣΤΗΡΙΑ 1 και 2. Εργαςτήρια Πληροφορική ΙΙ. Ειςαγωγή ςτη Python

ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ. Κεφάλαιο 8 Η γλϊςςα Pascal

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

3 ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ ( while, do while )

5 ΜΕΘΟΔΟΙ - ΠΑΡΑΜΕΤΡΟΙ

Η γλώςςα προγραμματιςμού C

ΔΟΜΗ ΑΠΛΗΣ ΕΠΙΛΟΓΗΣ Αςκήςεισ με ψευδογλώςςα/ διάγραμμα ροήσ. Αντώνης Μαϊργιώτης

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

ΥΡΟΝΣΙΣΗΡΙΟ Μ. Ε. ΚΑΙ ΚΕΝΣΡΟ ΙΔΙΑΙΣΕΡΩΝ ΜΑΘΗΜΑΣΩΝ «ΚΤΡΙΣΗ» ΔΙΑΓΩΝΙΜΑ ΘΕΜΑΣΑ Β ΛΤΚΕΙΟΤ ΥΕΒΡΟΤΑΡΙΟ 2018 ΑΕΠΠ

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα

Εργαςτιριο Πικανοτιτων Σθμειϊςεισ προγραμματιςμοφ: βαςικζσ γνϊςεισ ανάπτυξθσ εφαρμογϊν. Κϊςτασ Αρβανιτάκθσ

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1

17. Πολυδιάςτατοι πίνακεσ

Θεςιακά ςυςτιματα αρίκμθςθσ

Δομθμζνοσ Προγραμματιςμόσ. Βαγγζλθσ Οικονόμου Εργαςτιριο 9

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ MICRO WORLDS PRO

Ειςαγωγι ςτθν Επιςτιμθ Υπολογιςτϊν. Ειςαγωγι ςτθν Python

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν

ΑΝΑΠΣΤΞΘ ΕΦΑΡΜΟΓΩΝ Ε ΠΡΟΓΡΑΜΜΑΣΙΣΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 3 ο ΓΕΝΙΚΟ ΛΤΚΕΙΟ Ν. ΜΤΡΝΘ- ΕΠΙΜΕΛΕΙΑ: ΠΤΡΙΔΑΚΘ Λ.

ΜΑΘΗΜΑΤΙΚΑ Α Γυμνασίου

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι

16. Πίνακεσ και Συναρτήςεισ

Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό. Βαγγζλθσ Οικονόμου

ΥΡΟΝΣΙ ΣΗΡΙΟ Μ. Ε. ΚΑΙ ΚΕΝΣΡΟ ΙΔΙΑΙΣΕΡΩΝ ΜΑΘΗΜΑΣΩΝ «ΚΤΡΙΣ Η» ΔΙΑΓΩΝΙ ΜΑ ΑΕΠΠ

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium V

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό.

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα

Αυτόνομοι Πράκτορες. Αναφορά Εργασίας Εξαμήνου. Το αστέρι του Aibo και τα κόκαλα του

Ονοματεπϊνυμο.. ΔΙΑΓΩΝΙΣΜΑ ΑΕΠΠ

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

ςυςτιματα γραμμικϊν εξιςϊςεων

Ανάπτυξη Εφαρμογών Σε Προγραμματιςτικό Περιβάλλον

Πόςο εκτατό μπορεί να είναι ζνα μη εκτατό νήμα και πόςο φυςικό. μπορεί να είναι ζνα μηχανικό ςτερεό. Συνιςταμζνη δφναμη versus «κατανεμημζνησ» δφναμησ

Δ ιαγώνιςμα ς το μάθημα Ανάπτυξη Εφαρμογών ςε Προγ ραμματιςτικό Περιβάλ λον

Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων. 18. Αλφαριθμητικά. Ιωάννθσ Κατάκθσ. ΕΡΛ 032: Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων

Διαχείριςθ του φακζλου "public_html" ςτο ΠΣΔ

Ε. ε περίπτωςθ που θ διαφορά των δφο ηαριϊν είναι 3 τότε ο παίκτθσ ξαναρίχνει μόνο ζνα ηάρι.

Παράςταςη ςυμπλήρωμα ωσ προσ 1

Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7)

ΦΥΕ 14 ΑΚΑΔ. ΕΤΟΣ Η ΕΡΓΑΣΙΑ. Ημερομηνία παράδοςησ: 12 Νοεμβρίου (Όλεσ οι αςκιςεισ βακμολογοφνται ιςοτίμωσ με 10 μονάδεσ θ κάκε μία)

8 τριγωνομετρία. βαςικζσ ζννοιεσ. γ ςφω. εφω και γ. κεφάλαιο

ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ. Ειρινθ Φιλιοποφλου

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν

Α) Ενδεικτικϋσ απαντόςεισ των θεμϊτων

Μονάδες 6. Μονάδες ΓΑΨΕ Δεν υπάρχει ρίηα 2. ΑΝ Α>0 ΤΟΤΕ 3. ΤΕΛΟΣ_ΑΝ 4. ΑΛΛΙΩΣ 5. ίηα Τ_(Α)

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 19. Αλφαριθμητικά II. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

ΘΕΜΑ Α / Αν μια μεταβλθτι ζχει τθν τιμι 47.0 τότε ο τφποσ τθσ μεταβλθτισ είναι ακζραιοσ.

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 15. Πίνακεσ ΙI. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

Πρόςβαςη και δήλωςη μαθημάτων ςτον Εφδοξο

1 ΕΙΣΑΓΩΓΗ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

4 ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ - for

ΕΡΓΑΣΗΡΙΟ ΕΦΑΡΜΟΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ

2 ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ. Η πιο απλι μορφι ςφγκριςθσ εντολισ ελζγχου ζχει τθ μορφι : if (<ζπλζήθε>) εληνιή; if(<ζπλζήθε>){ block εληνιώλ; }

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 3: Εργονομία

8 ΥΜΒΟΛΟΕΙΡΕ - STRINGS

Μεθολογία αςκιςεων αραίωςησ και ανάμειξησ διαλυμάτων (με τθν ίδια δ. ουςία).

Εργαςτιριο Βάςεων Δεδομζνων

Modellus 4.01 Συ ντομοσ Οδηγο σ

(Α3 1 ) Σασ δίνεται το παρακάτω αλγορικμικό τμιμα

1 ο Διαγώνιςμα για το Α.Ε.Π.Π.

Άςκθςθ 1θ: Να γραφεί αλγόρικμοσ που κα δθμιουργεί με τθ βοικεια διπλοφ επαναλθπτικοφ βρόχου, τον ακόλουκο διςδιάςτατο πίνακα:

Εγχειρίδιο Χρήςησ Support

Σχεδίαςη Σφγχρονων Ακολουθιακών Κυκλωμάτων

Ανάλυςη κλειςτϊν δικτφων

ΕΝΟΤΘΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΘ. ΚΕΦΑΛΑΙΟ 6: Θ «Βοικεια» ςτον Υπολογιςτι

Ηλεκτρονικι Επιχειρθςιακι Δράςθ Εργαςτιριο 1

Επαναλθπτικζσ Αςκιςεισ

ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ

Διαγώνισμα Φυσική ς Α Λυκει ου Έργο και Ενε ργεια

Megatron ERP Βάςη δεδομζνων Π/Φ - κατηγοριοποίηςη Databox

Ιδιότθτεσ πεδίων Γενικζσ.

9 ΕΞΑΙΡΕΕΙ - EXCEPTIONS

Λαμβάνοντασ υπόψη ότι κατά την πρόςθεςη δφο δυαδικϊν ψηφίων ιςχφει: Κρατοφμενο

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 6: Το γραφικό περιβάλλον Επικοινωνίασ (Γ.Π.Ε)

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. Διαφάνειεσ: Βαςικζσ Αρχζσ Προγραμματιςμοφ Α.Π.Θ. Δθμιτρθσ Βράκασ

Visual C Express - Οδηγός Χρήσης

Joomla! - User Guide

Ενδεικτική Οργάνωςη Ενοτήτων. Α Σάξη. Διδ. 1 ΕΝΟΣΗΣΑ 1. 6 Ομαδοποίθςθ, Μοτίβα,

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

ΗΥ101: Ειςαγωγι ςτθν Πλθροφορικι

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Περιφέρειες)

HY437 Αλγόριθμοι CAD

Διαχείριςη Αριθμοδεικτών (v.1.0.7)

assessment.gr USER S MANUAL (users)

GNSS Solutions guide. 1. Create new Project

ΣΤΟΙΧΕΙΑ ΜΑΘΗΜΑΤΙΚΗΣ ΛΟΓΙΚΗΣ

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν

Περιοριςμοί μιασ Β.Δ. ςτθν Access(1/3)

Δείκτεσ απόδοςθσ υλικών

ΑΝΣΙΣΡΟΦΗ ΤΝΑΡΣΗΗ. f y x y f A αντιςτοιχίηεται ςτο μοναδικό x A για το οποίο. Παρατθριςεισ Ιδιότθτεσ τθσ αντίςτροφθσ ςυνάρτθςθσ 1. Η. f A τθσ f.

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 2: Σο Τλικό του Τπολογιςτι

343 Ειςαγωγι ςτον Προγραμματιςμό

= = 124

Ραραμετροποίθςθ ειςαγωγισ δεδομζνων περιόδων

Transcript:

Εργαςτιρια Πλθροφορικι ΙΙ Εαρινό εξάμθνο 2015-2016 Ειςαγωγι ςτθ Python 1 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Εργαςτιρια 1-2 H Python είναι μια πολφ όμορφθ, ιδιαίτερα εκφραςτικι, αντικειμενοςτραφισ, υψθλοφ επιπζδου γλϊςςα προγραμματιςμοφ. Το ςφςτθμα τφπων τθσ είναι πλιρωσ δυναμικό και θ διαχείριςθ μνιμθσ αυτόματθ, θ standard υλοποίθςι τθσ (CPython) είναι ζνασ bytecode compiler και interpreter και θ βιβλιοκικθ τθσ πολφ πλοφςια. Βαςικι αρχι τθσ Python είναι ότι ο χρόνοσ του προγραμματιςτι είναι πολφ ςθμαντικότεροσ από τουσ κφκλουσ μθχανισ και τον απαλλάςςει από τισ χαμθλοφ επιπζδου λεπτομζρειεσ που πρζπει να φροντίςει ςτθ C/C++ ι, ωσ ζνα βακμό, ςτθ Java. Ζνα πρόγραμμα είναι μία ακολουκία εντολών θ οποία προςδιορίηει πωσ κα εκτελεςτεί ζνασ υπολογιςμόσ. Αυτόσ ο υπολογιςμόσ μπορεί να είναι κάτι μακθματικό, όπωσ το να λφνεισ ζνα ςφςτθμα εξιςϊςεων ι το να βρίςκεισ τισ ρίηεσ ενόσ πολυωνφμου, αλλά επίςθσ μπορεί να είναι ζνασ ςυμβολικόσ υπολογιςμόσ, όπωσ το να ψάχνεισ και να αντικακιςτάσ κείμενο μζςα ςε ζνα ζγγραφο ι (περιζργωσ) να μεταγλωττίηεισ ζνα πρόγραμμα. Ο προγραμματιςμόσ είναι επιρρεπισ ςε λάκθ. Τα λάκθ ςτον προγραμματι ςμό ονομάηονται ςτα αγγλικά bugs ενϊ ςτα ελλθνικά ςφάλματα και θ διαδικαςία εντοπιςμοφ τουσ ονομάηεται debugging ι αποςφαλμάτωςθ ςτα ελλθνικά. Τρία είδθ λακϊν μπορεί να ςυμβοφν ςε ζνα πρόγραμμα: ςυντακτικά λάκθ, λάκθ χρόνου εκτζλεςθσ και λογικά λάκθ. Είναι χριςιμο να γίνει διάκριςθ μεταξφ τουσ προκειμζνου να εντοπίηονται γρθγορότερα. υντακτικά λάκθ: Η Python μπορεί να εκτελζςει ζνα πρόγραμμα μόνο εάν ζχει ςωςτι ςφνταξθ, διαφορετικά ο διερμθνζασ εμφανίηει μινυμα λάκουσ. Η ςφνταξθ αφορά τθ δομι ενόσ προγράμματοσ και τουσ κανόνεσ αυτισ τθσ δομισ. Για παράδειγμα, οι παρενκζςεισ πρζπει να είναι πάντα ηεφγθ, ζτςι το (1 + 2) είναι ςωςτό, αλλά το 8) είναι ζνα ςυντακτικό λάκοσ (syntax error). Λάκθ χρόνου εκτζλεςθσ: Ο δεφτεροσ τφποσ λάκουσ είναι τα λάκθ χρόνου εκτζλεςθσ (runtime errors), ονομάηονται ζτςι επειδι τα λάκθ δεν εμφανίηονται μζχρισ ότου αρχίςει το πρόγραμμα να τρζχει. Αυτά τα λάκθ ονομάηονται επίςθσ εξαιρζςεισ (exceptions) επειδι ςυνικωσ υποδεικνφουν ότι κάτι ςθμαντικό (και κακό) ζχει ςυμβεί. Λογικά λάκθ: Ο τρίτοσ τφποσ λάκουσ είναι τα λογικά λάκθ (semantic errors). Εάν υπάρχει ζνα λογικό λάκοσ ςτο πρόγραμμά ςασ κα τρζξει επιτυχϊσ από τθν άποψθ ότι ο υπολογιςτισ δεν κα παράξει κανζνα μινυμα λάκουσ, αλλά δεν κα κάνει το ςωςτό. Θα κάνει κάτι διαφορετικό. Συγκεκριμζνα, κα κάνει αυτό που του είπατε να κάνει. Οι αςκιςεισ του ςυγκεκριμζνου εργαςτθρίου ζχουν ςχεδιαςτεί για να ςασ βοθκιςουν να αναπτφξετε τισ ικανότθτεσ ανάλυςθσ με ςκοπό να ςπάμε κάποια προβλιματα ςε ακόμθ μικρότερα. Επιπρόςκετα, θ ςυμπλιρωςθ αυτϊν των αςκιςεων κα ςασ βοθκιςει να οικειοποιθκείτε τθ ςφνταξθ τθσ Python. Ζτςι ςτα επόμενα μπορεί να μάκετε: Να παράγετε κάποια ζξοδο με μία διλωςθ ( ι αλλιϊσ εντολι) print. Να διαβάηετε μία είςοδο, ςυμπεριλαμβανομζνου του casting ςτθν ζξοδο που κζλετε εςείσ. Να υλοποιείτε υπολογιςμοφσ με αρικμοφσ ςυμπεριλαμβανομζνου ακεραίων και αρικμϊν κινθτισ υποδιαςτολισ χρθςιμοποιϊντασ τελεςτζσ τθσ Python, όπωσ: +, *, /, //, % και **. Να καλείτε ςυναρτιςεισ που χρειάηονται το math module Να ελζγχετε τθ μορφι τθσ εξόδου με τουσ προςδιοριςτζσ μορφισ (format specifiers) Η προτροπι ειςόδου εντολϊν (>>>) υποδεικνφει ότι ο διερμθνζασ περιμζνει τθν ειςαγωγι κάποιασ εντολισ από εςάσ. Για να εμφανίςουμε ζνα μινυμα ςτθ Python, π.χ. Python programming is fun! γράφουμε ςτθ προτροπι ειςόδου εντολϊν (prompt) τθν εξισ εντολι: >>> print( Python programming is fun! ) 2 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Για να εκτελεςτεί θ εντολι κα πρζπει να πατιςετε το πλικτρο Enter. Αν κάνετε κάποιο λάκοσ (π.χ. ςφάλμα πλθκτρολόγθςθσ) ο διερμθνζασ κα εμφανίςει ζνα μινυμα ςφάλματοσ. Γι αυτό το λόγο, αν εμφανιςτεί κάποιο μινυμα ςφάλματοσ, ξαναπλθκτρολογιςτε τθν εντολι και ςιγουρευτείτε ότι τθ γράψατε ακριβϊσ. Όταν κανείσ γράφει κώδικα όπωσ προθγουμζνωσ, τότε αυτό ονομάηεται λειτουργία script. Δθλαδι γράφει κανείσ κώδικα και είναι ςε κζςθ να τον ελζγχει άμεςα (διαδραςτικι λειτουργία). Εάν κζλετε να κάνετε αρικμθτικζσ πράξεισ, τότε δεν ζχετε παρά να γράψετε: >>> 2+2 Οι πράξεισ που γίνονται ςτθ Python (και με ςειρά προτεραιότθτασ), φαίνονται ςτο πίνακα που ακολουκεί: Στθν Python δεν δθλϊνουμε πουκενά μεταβλθτζσ και τφπουσ αυτϊν, μποροφμε όμωσ ανά πάςα ςτιγμι να εκχωριςουμε μια τιμι ςε ζνα όνομα: >>> a=1234 >>> a="hello world" >>> print a hello world ΠΡΟΟΧΘ!!! Αυτό δε ςθμαίνει ότι δε γνωρίηουμε τουσ τφπουσ δεδομζνων, αφοφ όλοι οι αρικμοί δεν είναι ίδιοι, δεν αποκθκεφονται με τον ίδιο τρόπο ι ακόμθ απλοφςτερα, μπορεί να δουλεφουμε με αλφαρικμθτικά. Προγραμματίηοντασ ζχει ςθμαςία να γνωρίηει κανείσ τι είναι τφποσ δεδομζνων. Οι πιο γνωςτοί τφποι δεδομζνων είναι οι: 3 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

1 ο πρόγραμμα ςε Python: Εμφάνιςθ μίασ γραμμισ κειμζνου # Printing a line of text in Python. print "Welcome to Python!" 2 ο πρόγραμμα: Πωσ μποροφμε να εμφανίςουμε περιςςότερεσ γραμμζσ ςτθ Python; Πρζπει να γράψουμε τθν εντολι: print "Welcome\nto\n\nPython!" ι να γράψουμε: print Welcome print to print Python ποιοί ειδικοί χαρακτιρεσ ( ι αλλιϊσ χαρακτιρεσ διαφυγισ escape characters) υπάρχουν όταν γράφουμε ζνα πρόγραμμα; Ακολουκία διαφυγισ Επεξιγθςθ Πρόςκεςθ δφο ακεραίων # Simple addition program. # prompt user for input integer1=raw_input("enter first integer:\n") #διάβαζε αλθαπιθμηηικό integer1 = int(integer1) # μεηέηπετε ηο string ζε integer (ακέπαιο) integer2 = raw_input( "Enter second integer:\n" ) # read string integer2 = int(integer2) #μεηέηπετε ηο string ζε integer (ακέπαιο) sum = integer1 + integer2 # compute and assign sum print "Sum is", sum # print sum Όηαλ θάλνπκε ηηο βαζηθέο πξάμεηο ηα απνηειέζκαηα πνπ ζα πξνθύςνπλ είλαη: >>> 3 / 4 # ακέπαια διαίπεζη (εξ οπιζμού ζςμπεπιθοπά) 0 >>> 3.0 / 4.0 # ππαγμαηική διαίπεζη (floating-point ηελεζηαίοι) 0.75 >>> 3 // 4 # διαίπεζη κάηυ μέποςρ [floor division (only behavior)] 0 4 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

>>> 3.0 // 4.0 # διαίπεζη κάηυ μέποςρ κινηηήρ ςποδιαζηολήρ floating-point floor division 0.0 >>> from future import division >>> 3 / 4 # true division (new behavior) 0.75 >>> 3.0 / 4.0 # true division (same as before) 0.75 Θπκεζείηε ηηο εληνιέο πνπ αθνινπζνύλ: input(): Πξνηξέπεη ην ρξήζηε λα δώζεη είζνδν πνιιέο θνξέο γξάθνληάο ηνπ θάηη θαη επηζηξέθεη ην string πνπ εηζάγεη ν ρξήζηεο. Αληίζηνηρα (θαη ίζσο θαιύηεξα) κπνξείηε λα ρξεζηκνπνηήζηε ηε raw_input. παξάδεηγκα >>> name = input("enter your name: ") Enter your name: Antonis >>> print("greetings", name, "!") Greetings Antonis! >>> age = input("enter your age: ") Enter your age: 37 int(): Επηζηξέθεη ηελ αθέξαηα (int) κνξθή ηνπ νξίζκαηνο float(): Επηζηξέθεη ηελ float form (Μνξθή θηλεηήο ππνδηαζηνιήο) ηνπ νξίζκαηνο eval(): Επηζηξέθεη ην απνηέιεζκα ηεο απνηίκεζεο ηνπ string νξίζκαηνο όπσο νπνηαδήπνηε έθθξαζε ηεο Python, ζπκπεξηιακβαλνκέλνπ ησλ αξηζκεηηθώλ εθθξάζεσλ Προςπακιςτε να λφςετε τισ αςκιςεισ που ακολουκοφν Άςκθςθ 1 Τι κα μασ δϊςουν ωσ αποτζλεςμα οι πράξεισ που ακολουκοφν; >>> 2 + 3 * 6 >>> (2 + 3) * 6 >>> 2 ** 8 >>> 23 / 7 >>> 23 // 7 >>> 23 % 7 >>> 2 + 2 Άςκθςθ 2 A) Σι κα μασ δϊςει ωσ αποτζλεςμα θ πράξθ; (5-1) * ((7 + 1) / (3-1)) Το αποτζλεςμα: 16.0 B) Τι αποτζλεςμα κα μασ δϊςουν οι πράξεισ που ακολουκοφν; >>> Alice + Bob κα μασ δϊςει ωσ αποτζλεςμα AliceBob >>> Alice + 42 κα μασ δϊςει Λάκοσ 5 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

>>> Alice * 5 κα μασ δϊςει 'AliceAliceAliceAliceAlice' >>> Alice * Bob κα μασ δϊςει Λάκοσ >>> Alice * 5.0 κα μασ δϊςει Λάκοσ Άςκθςθ 3 Να δθμιουργθκεί πρόγραμμα που εμφανίηει το όνομα και τθ διεφκυνςθ του θλεκτρονικοφ ταχυδρομείου, μορφοποιθμζνο κατά τζτοιο τρόπο ωσ να είναι ζξω από ζνα χάρτινο φάκελο που πρόκειται να ταχυδρομθκεί. Το πρόγραμμα δε ηθτείται να διαβάηει είςοδο από το χριςτθ. print("name") print("surname") print("mplampla@teiion.gr") Άςκθςθ 4 Να γραφεί πρόγραμμα που ρωτά το χριςτθ να ειςάγει ωσ είςοδο το όνομά του ι το όνομά τθσ. Το πρόγραμμα κα πρζπει να ανταποκρίνεται με ζνα μινυμα που λζει Hello ςτο χριςτθ, χρθςιμοποιϊντασ το όνομα που δόκθκε. name=input("δώζε ηο όνομά ζος:") print("hello", name, "how are you?") 6 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Εργαςτιριο 3 Οι επόμενεσ αςκιςεισ βαςίηονται ςτισ γνϊςεισ που ζχουμε αποκτιςει ςτα προθγοφμενα δφο εργαςτιρια. Άςκθςθ 1: Να γραφεί πρόγραμμα το οποίο κα διαβάηει ζναν κετικό ακζραιο, n, από τον χριςτθ και ςτθ ςυνζχεια κα εμφανίηει το άκροιςμα όλων των ακεραίων από το 1 μζχρι το n. Το άκροιςμα των πρϊτων n κετικϊν ακεραίων μπορεί να υπολογιςτεί με τθ βοικεια του τφπου: n=int(input("δώζε απιθμό:")) S=n*(n+1)/2 print("to athroisma einai: ", S) Εάν εκτελζςουμε το πρόγραμμα π.χ. για n=5 τότε: Δώζε απιθμό:5 To athroisma einai: 15.0 ΗΜΕΙΧΗ: Κανονικά κα ζπρεπε να ελζγχουμε εάν ο αρικμόσ που μασ δίνει ο χριςτθσ είναι πράγματι κετικόσ ακζραιοσ και ςε περίπτωςθ που δεν είναι να τον προτρζπουμε να το κάνει. Αυτό όμωσ κα το μάκουμε ςτα επόμενα μακιματα (επαλικευςθ ειςόδου) Άςκθςθ 2: Πολλοί άνκρωποι μιλοφν για το φψοσ τουσ ςε πόδια (feet) και ίντςεσ (inches), ακόμθ και ςε μερικζσ χϊρεσ που χρθςιμοποιοφν το γνωςτό μασ μετρικό ςφςτθμα. Να γραφεί πρόγραμμα που διαβάηει ζναν αρικμό ςε feet (πόδια) από το χριςτθ, ακολουκοφμενο από ζναν αρικμό από inches. Από τθ ςτιγμι που αυτζσ οι τιμζσ κα διαβαςτοφν, το πρόγραμμά ςασ κα πρζπει να υπολογίηει και εμφανίηει τον ιςοδφναμο αρικμό ςε centimeters. Βοικεια: 1 foot= 12 inches. 1 inch= 2.54 centimeters. # Θεωρϊ ότι εάν ηθτιςω να μου δϊςει κάποιοσ π.χ. το φψοσ του κα μου δϊςει μία πλθροφορία # τθσ μορφισ 5 feet και 4 inches. # Επομζνωσ γνωρίηοντασ ότι 1 foot=12 inches και γνωρίηοντασ ότι 1 inch=2.54 cm # μπορϊ να υπολογίςω ότι κάποιοσ που ζχει το πιο πάνω φψοσ κα ζχει φψοσ ςε cm ίςο με: # 5x12x2.54+4x2.54=(5x12+4)*2.54 f=int(input( Δώζε ηα πόδια )) i=int(input( Δώζε ηιρ ίνηζερ )) c=(f*12+i)*2.54 print( Τα centimeters είναι:, c) 7 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Άςκθςθ 3: Να γραφεί πρόγραμμα που ξεκινά με τθν ανάγνωςθ τθσ ακτίνασ του κφκλου r. Στθ ςυνζχεια το πρόγραμμα ςυνεχίηει τον υπολογιςμό του εμβαδοφ τθσ κυκλικι περιφζρειασ με ακτίνα r και τον όγκο ςφαίρασ με ακτίνα r. Κατά τον υπολογιςμό κα χρειαςτείτε τθ ςτακερά π. Το εμβαδό του κφκλου δίνεται από τθ ςχζςθ:. Ο όγκοσ τθσ ςφαίρασ δίνεται από τθ ςχζςθ :. r=float(input("δώζε ακηίνα: ")) E=3.14*r**2 V=(4/3)*3.14*r**3 print("e=",e) print("v=", V) Όταν εκτελεςτεί αυτό το πρόγραμμα τότε για r=3 παίρνουμε τθν απάντθςθ: E= 28.26 V= 113.03999999999999 Άςκθςθ 4. Να γραφεί πρόγραμμα που διαβάηει τρεισ ακεραίουσ από το χριςτθ και τουσ εμφανίηει ςε διατεταγμζνθ ςειρά (από το μικρότερο ςτο μεγαλφτερο). Να χρθςιμοποιιςετε τισ ζτοιμεσ ςυναρτιςεισ min και max για να βρείτε τθν ελάχιςτθ και τθ μζγιςτθ τιμι. Η μζςθ τιμι μπορεί να βρεκεί με τον υπολογιςμό του ακροίςματοσ όλων των τιμϊν αφαιρϊντασ τθν ελάχιςτθ και τθ μζγιςτθ τιμι. n1=float(input("δώζε ηον 1ο απιθμό:")) n2=float(input("δώζε ηον 2ο απιθμό:")) n3=float(input("δώζε ηον 3ο απιθμό:")) mn=min(n1,n2,n3) mx=max(n1,n2,n3) mid=(n1+n2+n3)-mn-mx print(mn,"<",mid,"<",mx) Άςκθςθ 5. Να κζςετε τθ ςειρά αποτίμθςθσ των τελεςτϊν ςε κάκε μία από τισ ακόλουκεσ δθλϊςεισκαι γράψτε ποιά κα είναι θ τιμι τθσ μεταβλθτισ x αφοφ εκτελεςτεί κάκε διλωςθ. a) x = 7 + 3 *6/2-1 b) x = 2 % 2 + 2 * 2-2/2 c) x = (3 * 9 *( 3 +(9 * 3/(3)))) 8 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

a) x=15.0 b) x=3 c) x=324 Άςκθςθ 6. Γράψτε ζνα πρόγραμμα που να ηθτάει από το χριςτθ ζναν οποιονδιποτε ακζραιο αρικμό δευτερολζπτων και να τον μετατρζπει ςε ϊρεσ, λεπτά και δευτερόλεπτα. Θα μετατρζπει π.χ., τα 11792 δευτερόλεπτα ςε 3 ϊρεσ, 16 λεπτά και 32 δευτερόλεπτα. x=int(input("δώζε δεςηεπόλεπηα")) wres=x//3600 ipoloipo=x%3600 lepta=ipoloipo//60 deuterolepta=ipoloipo%60 print("σα δεςηεπόλεπηα πος έδυζερ ήηαν:", x) print("αςηά ηα δεςηεπόλεπηα είναι ίζα με:") print("ώπερ:", wres) print("λεπηά:", lepta) print("δεςηεπόλεπηα:", deuterolepta) Εναλλακτικά, μποροφμε να δοφμε μία δεφτερθ λφςθ: SECONDS_PER_HOUR=3600 SECONDS_PER_MINUTE=60 seconds=int(input("δώζε έναν απιθμό δεςηεπολέπηυν:")) #Υπολογιζμός ωρών λεπηών και δεσηερολέπηων για ηα δεσηερόλεπηα #ποσ ειζάγει ο τρήζηης #σπολογιζμός ηων δεσηερολέπηων ποσ απομένοσν hours=seconds // SECONDS_PER_HOUR seconds=seconds % SECONDS_PER_HOUR minutes=seconds // SECONDS_PER_MINUTE seconds=seconds % SECONDS_PER_MINUTE #Εμθάνιζη ηων αποηελεζμάηων με καηάλληλη μορθοποίηζη print("για ηα δεςηεπόλεπηα πος έδυζερ, η ιζοδύναμη διάπκεια είναι:") print( hours,"ώπερ", minutes, "λεπηά", seconds, "δεςηεπόλεπηα") 9 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Εργαςτιριο 4 και 5 Προτεραιότθτα τελεςτϊν Οι τελεςτζσ ςτθν ίδια γραμμι ζχουν τθν ίδια προτεραιότθτα και εφαρμόηονται από αριςτερά προσ τα δεξιά, εκτόσ από το εκκετικό που αποτιμάται ανάποδα. Ζτςι, για παράδειγμα, επειδι οι δυαδικοί τελεςτζσ + και - βρίςκονται ςτθν ίδια γραμμι, 3+4-5 είναι ιςοδφναμο με το (3 + 4) 5 και το 3-4 + 5 είναι ιςοδφναμο ςτο (3-4) + 5. Ζνασ καλόσ κανόνασ είναι να τοποκετείτε παρενκζςεισ ςτισ πολφπλοκεσ εκφράςεισ ακόμα κι αν δε χρειάηεται, αφοφ κάτι τζτοιο βοθκά το μάτι να διαβάηει πράγματα όπωσ 1 + 1.7 + 3.2 * 4.4-16 / 3. Από τθν άλλθ, δεν είναι καλόσ κανόνασ θ χριςθ παρενκζςεων ςε απλζσ εκφράςεισ όπωσ θ 3.1 * 5. Προτεραιότθτα Σελεςτισ Λειτουργία Υψθλότερθ ** Εκκετικό - Αρνθτικό πρόςθμο *, /, //, % Πολλαπλαςιαςμόσ, διαίρεςθ, ακζραια διαίρεςθ, υπόλοιπο Χαμθλότερθ +, - Addition and subtraction Μεταβλθτζσ Στα προθγοφμενα ζχουμε χρθςιμοποιιςει διάφορεσ μεταβλθτζσ για να μπορζςουμε να εργαςτοφμε. Ζτςι χρθςιμοποιιςαμε μεταβλθτζσ για τθν εφρεςθ του μζςου όρου, για να δϊςουμε τιμζσ από το πλθκτρολόγιο κ.τ.λ. Οι μεταβλθτζσ ονομάηονται ζτςι επειδι οι τιμζσ τουσ μπορεί να αλλάηουν (μεταβάλλονται) κατά τθ διάρκεια εκτζλεςθσ ενόσ προγράμματοσ. Ζτςι μποροφμε να ανακζςουμε μία καινοφρια τιμι ςε μία μεταβλθτι. Π.χ. x=5 kαι μετά από κάποιεσ γραμμζσ μπορεί να δοφμε: x=7. Ανακζτοντασ μία τιμι ςε μία μεταβλθτι που ιδθ υφίςταται δε δθμιουργείται μία δεφτερθ μεταβλθτι. Αντικζτωσ, θ ιδθ υπάρχουςα μεταβλθτι επαναχρθςιμοποιείται, που ςθμαίνει ότι θ μεταβλθτι δεν αναφζρεται πια ςτθ παλιά τθσ τιμι (όπωσ ζγινε πριν με το 5 και το 7 για τθ μεταβλθτι x). Ονόματα Μεταβλθτϊν Μποροφμε να ονομάςουμε μία μεταβλθτι με μικοσ ονόματοσ όςο το δυνατό μεγαλφτερο, ακολουκϊντασ τρεισ κανόνεσ: 1. Μπορεί να είναι μία λζξθ 2. Μπορεί να χρθςιμοποιιςει μόνο γράμματα, αρικμοφσ, και το χαρακτιρα τθσ κάτω παφλασ. 3. Δε μπορεί να ξεκινά με αρικμό 10 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Ζγκυρα ονόματα μεταβλθτϊν balance currentbalance current_balance _spam SPAM account4 Μθ-ζγκυρα ονόματα μεταβλθτϊν current-balance (όχι παφλα) current balance (όχι κενό) 4account (δε ξεκινάμε με αρικμό) 42 (δε ξεκινάμε με αρικμό) total_$um (δεν επιτρζπονται ειδικοί χαρακτιρεσ όπωσ το $) 'hello' (δεν επιτρζπονται ειδικοί χαρακτιρεσ όπωσ ο ') ΑΚΘΕΙ ΟΜΑΔΑ 1 Άςκθςθ 1. Για κάκε μία από τισ ακόλουκεσ εκφράςεισ, ποια κα είναι θ τιμι τθσ ζκφραςθσ; Μπορείτε να δοκιμάςτε τισ απαντιςεισ με το να γράψετε τισ εκφράςεισ ςτθν Python. ζκφραςθ a. 9-3 b. 8 * 2.5 c. 9 / 2 d. 9 / -2 e. 9 // -2 f. 9 % 2 g. 9.0 % 2 h. 9 % 2.0 i. 9 % -2 j. -9 % 2 k. 9 / -2.0 l. 4 + 3 * 5 m. (4 + 3) * 5 απάντθςθ a. 6 b. 20.0 c. 4.5 d. -4.5 e. -5 f. 1 g. 1.0 h. 1.0 i. -1 j. 1 k. -4.5 l. 19 m. 35 Άςκθςθ 2. Να γραφοφν δφο δθλϊςεισ ανάκεςθσ που κα κάνουν τα εξισ: a. Να δθμιουργθκεί μεταβλθτι temp όπου να τθσ ανατίκεται θ τιμι 24. b. Αν ςτο προθγοφμενο ερϊτθμα θ μεταβλθτι temp αναπαριςτά κερμοκραςία ςε βακμοφσ Κελςίου, να μετατραπεί θ τιμι τθσ temp από Celcius ςε Fahrenheit. Για να γίνει αυτό πολλαπλαςιάςτε τθ κερμοκραςία ςε βακμοφσ Κελςίου με το 1.8 και προςκζςτε το 32. Το αποτζλεςμα που προκφπτει να ανατίκεται πάλι ςτθ μετβλθτι temp. Λφςθ: a. temp = 24 b. temp = 1.8 * temp + 32 11 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Άςκθςθ 3 Για κάκε μία από τισ ακόλουκεσ εκφράςεισ, με ποιά ςειρά κα εκτελεςτεί κάκε υποζκφραςθ; a. 6 * 3 + 7 * 4 b. 5 + 3 / 4 c. 5-2 * 3 ** 4 Λφςθ: a. (6 * 3), μετά (7 * 4), μετά (18 + 28). b. (3 /4), μετά (5 + 0.75). c. (3 ** 4), (2 * 81), μετά (5-162). Άςκθςθ 4 a. Να δθμιουργθκεί μία μεταβλθτι x και μετά να τθσ ανατεκεί θ τιμι 10.5 b. Να δθμιουργθκεί μία μεταβλθτι y και μετά να τθσ ανατεκεί θ τιμι 4 c. Να ακροιςτοφν οι μεταβλθτζσ x και y και το αποτζλεςμα να εκχωρθκεί ςτθ μεταβλθτι x. Ποιζσ κα είναι μετά οι τιμζσ των x και y; Λφςθ a. x = 10.5 b. y = 4 c. x = x + y θ x κα ζχει τθν τιμι 14.5 και θ y κα ζχει τθν τιμι 4 Άςκθςθ 5 Να γραφεί τι ςυμβαίνει με τθ ςειρά όταν θ Python, αποτιμά τθ διλωςθ x += x x και θ τιμι τθσ x ζχει τθν τιμι 3. Η (x - x) αποτιμάται αρχικά δίνοντάσ μασ τθν τιμι 0. Το 0 προςτίκετακ ςτθν τιμι τθσ x, που είναι 3, δίνοντάσ μασ 3. Τελικά το αποτζλεςμα, 3, ανατίκεται ςτθ μεταβλθτι x Άςκθςθ 6 Ποιζσ από τισ ακόλουκεσ εκφράςεισ μασ δίνουν ςυντακτικά λάκθ; a. 6 * -----------8 b. 8 = people c. ((((4 ** 3)))) d. (-(-(-(-5)))) e. 4 += 7 / 2 Λφςθ b, e. 12 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

ΧΕΔΙΑΘ ΚΑΙ ΧΡΘΘ ΤΝΑΡΣΘΕΩΝ (FUNCTIONS) υναρτιςεισ που παρζχει θ Python H Python ζχει ζτοιμεσ (built-in) ςυναρτιςεισ που υλοποιοφν κοινζσ λειτουργίεσ όπωσ: Απόλυτθ τιμι με τθ χριςθ τθσ abs (από τθ λζξθ absolute-απόλυτο) >>> abs(-9) 9 >>> abs(3.3) 3.3 Εάν κάποιοσ κζλει να υπολογίςει κατ απόλυτθ τιμι τθ διαφορά μεταξφ των κερμοκραςιϊν θμζρασ και νφχτασ, μπορεί να γράψει: >>> day_temperature = 3 >>> night_temperature = 10 >>> abs(day_temperature - night_temperature) Μποροφμε βζβαια να χρθςιμοποιιςουμε ςυναρτιςεισ ςαν ορίςματα ςε άλλεσ ςυναρτιςεισ: >>> pow(abs(-2), round(4.3)) 16 Χριςιμεσ είναι και οι ςυναρτιςεισ που αλλάηουν τον τφπο δεδομζνων (δθλαδι μετατροπι από ζναν τφπο ςε ζναν άλλο) >>> int(34.6) 34 >>> int(-4.3) -4 >>> float(21) 21.0 Εάν δε γνωρίηουμε τι κάνει μία ςυνάρτθςθ μποροφμε να καλζςουμε τθ ςυνάρτθςθ βοικειασ help, θ οποία εμφανίηει αντίςτοιχθ τεκμθρίωςθ: >>> help(abs) Μία άλλθ built-in function είναι θ round, θ οποία ςτρογγυλοποιεί ζναν αρικμό κινθτισ υποδιαςτολισ (floating point number) ςτο κοντινότερο ακζραιο (integer): >>> round(3.8) 4 >>> round(3.3) 3 >>> round(3.5) 4 >>> round(-3.3) -3 round(-3.5) >>> -4 13 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Η ςυνάρτθςθ round μπορεί να κλθκεί με ζνα ι δφο ορίςματα. Αν κλθκεί με ζνα όριςμα, τότε κάνει ςτρογγυλοποίθςθ ςτον κοντινότερο ακζραιο. Αν κλθκεί με δφο ορίςματα, ςτρογγυλοποιεί ςτο κοντινότερο αρικμό κινθτισ υποδιαςτολισ, όπου ο δεφτεροσ αρικμόσ υποδθλϊνει τθν ακρίβεια: >>> round(3.141592653, 2) 3.14 Πωσ ορίηουμε ςυναρτιςεισ; >>> def convert_to_celsius(fahrenheit):... return (fahrenheit - 32) * 5 / 9 Πωσ καλείται; >>> convert_to_celsius(80) 26.666666666666668 Θα επανζλκουμε κάποια άλλθ εβδομάδα... (θ δθμιουργία ςυναρτιςεων είναι εκτόσ φλθσ) Αποτίμθςθ Strings (Evaluating Strings): eval() H Python παρζχει μία ιςχυρι ςυνάρτθςθ με όνομα eval() που κάποιεσ φορζσ χρθςιμοποιείται για να διευκολφνει τθν είςοδο από τθ πλευρά του χριςτθ. Παρόλθ τθν ιςχφ τθσ, κα πρζπει να προςζχουμε όταν τθ χρθςιμοποιοφμε ιδιαίτερα ςτισ περιπτϊςεισ που οι χριςτεσ μπορεί να δθμιουργιςουν πρόβλθμα με «μθ-κατάλλθλεσ» ειςόδουσ. Η ςυνάρτθςθ eval() δζχεται ζνα string argument και το αποτιμά ωσ μία Python expression, δθλ. ςαν να είχε ο προγραμματιςτισ ειςάγει άμεςα τθν ζκφραςθ ωσ κϊδικα. >>> string = "5 + 12" # Create a string. >>> print(string) # Print the string. 5 + 12 >>> eval(string) # Evaluate the string. 17 >>> print(string, "=", eval(string)) 5 + 12 = 17 Ασ κυμθκοφμε όμωσ κάποιεσ από τισ ςυναρτιςεισ που ζχουμε αναφζρει. input(): Προτρζπει το χριςτθ για είςοδο με κάποιο string και επιςτρζφει το string ςτο χριςτθ int(): επιςτρζφει τθν ακζραια μορφι του ορίςματοσ float():επιςτρζφει τθν float μορφι του ορίςματοσ eval(): επιςτρζφει το αποτζλεςμα τθσ αποτίμθςθσ του string ορίςματοσ όπωσ οποιαδιποτε Python ζκφραςθ, ςυμπεριλαμβανομζνου των αρικμθτικϊν εκφράςεων 14 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Εργαςτιριο 6 Εάν γράψουμε: >>> age = 19 Τη ζα δώζνπλ ηα επόκελα; >>> age < 21 True >>> age <= 21 True >>> age > 21 False >>> age >= 21 False Εάν γράψουμε: >>> age_0 = 22 >>> age_1 = 18 Τη ζα δώζεη ε επόκελε πξάμε; >>> age_0 >= 21 and age_1 >= 21 False Η επόκελε πξάμε; age_0 >= 21 or age_1 >= 21 True Η Python ζχει κάποιεσ δεςμευμζνεσ λζξεισ όπωσ οι: and continue else for import not raise assert def except from in or return break del exec global is pass try class elif finally if lambda print while Ο λόγοσ που το αναφζρουμε ζχει να κάνει με το να προςζχουμε τθ χριςθ τουσ. Καλό είναι να αποφεφγεται θ χριςθ τουσ π.χ. ωσ όνομα μεταβλθτϊν. 15 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Θ δομι ελζγχου IF (εάν) Μία δομι ελζγχου μασ δίνει τθ δυνατότθτα να επιλζξουμε εναλλακτικά μονοπάτια κατά τθν εκτζλεςθ του κϊδικά μασ. Ασ κεωριςουμε το πρόβλθμα που λζει: Εάν κάποιοσ έχει βαθμό μεγαλφτερο ή ίςο από 5, τότε περνά επιτυχώσ το μάθημα. Εάν κζλουμε κάτι τζτοιο να το εκφράςουμε ςε Python, τότε πρζπει να γράψουμε: if grade >= 5: print "Passed" Το διάγραμμα ροισ για το ςυγκεκριμζνο πρόβλθμα ζχει ωσ εξισ: Εάν κζλουμε ο κϊδικασ να εμφανίηει το τι γίνεται ςτθν περίπτωςθ που ο βακμόσ δεν είναι >=5 τότε γράφουμε: if grade >= 60: print "Passed" print "Failed" Το διάγραμμα ροισ για το ςυγκεκριμζνο πρόβλθμα ζχει ωσ εξισ: 16 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

ΑΚΘΘ 1 Ακολουκεί αλγόρικμοσ με τθ μορφι διαγράμματοσ ροισ που υπολογίηει τθ μζςθ τιμι από τρεισ αρικμοφσ. Εάν θ μζςθ τιμι είναι κάτω από 10, εμφανίηεται ζνα μινυμα «Αποτυχία», διαφορετικά, εάν θ μζςθ τιμι είναι μεγαλφτερθ ι ίςθ με 10, εμφανίηεται το μινυμα «Επιτυχία». Α) Είναι το διάγραμμα ροισ ςωςτό; Β) Βαςιςμζνοι ςτο διάγραμμα ροισ να γραφεί κϊδικασ ςε Python. ΛΤΘ Σε γενικζσ γραμμζσ (εάν μπορεί να ειπωκεί ζτςι) το διάγραμμα ροισ είναι ςωςτό. Πρζπει όμωσ ο ζλεγχοσ να γίνει επί του μζςου όρου. 17 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Β) Όςον αφορά τθ λφςθ, αυτι ζχει ωσ εξισ: M1=float(input( Δώζε ηον 1o απιθμό: )) M2=float(input( Δώζε ηον 2o απιθμό: )) M3=float(input( Δώζε ηον 3o απιθμό: )) MO=(M1+M2+M3)/3.0 if MO<10: print( ΑΠΟΤΥΦΙΑ ) print( ΕΠΙΤΥΦΙΑ ) ΑΚΘΘ 2 Να γραφεί πρόγραμμα που να διαβάηει ζναν ακζραιο που του δίνει ο χριςτθσ. Στθ ςυνζχεια το πρόγραμμα να εμφανίηει ζνα μινυμα πότε ο ακζραιοσ είναι περιττόσ ι άρτιοσ. x=int(input("δώζε έναν απιθμό:")) if x%2==0: print("άπηιορ") print("πεπιηηόρ") 18 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

ΘΜΕΙΩΘ: Άρτιοσ (Ηυγόσ): είναι ο αρικμόσ που όταν διαιρεκεί με το 2 αφινει υπόλοιπο ίςο με μθδζν. x%2==0 Περιττόσ (Μονόσ): είναι ο αρικμόσ που όταν διαιρεκεί με το 2 αφινει υπόλοιπο ίςο με ζνα. x%2==1 ΑΚΘΘ 3 Ωσ παλίνδρομο ορίηεται ζνασ αρικμόσ ι μία φράςθ που μπορεί να διαβαςτεί και αντίςτροφα. Για παράδειγμα κάκε ζνασ από τουσ επόμενουσ 5-ψιφιουσ αρικμοφσ είναι ζνα παλίνδρομο: 12321, 55555, 45554 and 11611. Να γραφεί πρόγραμμα που διαβάηει ζναν πενταψιφιο ακζραιο και προςδιορίηει εάν είναι ι όχι παλίνδρομο. Βοικεια: Χρθςιμοποιιςτε τθ διαίρεςθ και τθ πράξθ του υπολοίπου για να διαχωρίςετε τον αρικμό ςτα ςυςτατικά του ψθφία. x=int(input("δώζε 5τήθιο απιθμό:")) digit5=x%10 piliko=x//10 digit4=piliko%10 piliko=piliko//10 digit3=piliko%10 piliko=piliko//10 digit2=piliko%10 piliko=piliko//10 digit1=piliko%10 piliko=piliko//10 if digit5==digit1 and digit4==digit2: print("ο απιθμόρ είναι ΠΑΛΙΝΔΡΟΜΟ") print("ο απιθμόρ ΔΕΝ ΕΙΝΑΙ παλίνδπομο") ΑΚΘΘ 4 Ζςτω ο μιςκόσ κάποιου εργαηόμενου εάν διακζτω πλικοσ από 50, 20, 10, 5, 2, 1. Να υπολογιςτεί πόςα χαρτονομίςματα και κζρματα κα πάρει από κάκε ζνα από τα προαναφερόμενα, δεδομζνου του μιςκοφ που λαμβάνει. money=int(input("δώζε ηο μιζθό ζος:")) peninta=money//50 ypoloipo=money%50 eikosi=ypoloipo//20 ypoloipo=ypoloipo%20 deka=ypoloipo//10 ypoloipo=ypoloipo%10 pente=ypoloipo//5 19 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

ypoloipo=ypoloipo%5 dyo=ypoloipo//2 ena=ypoloipo%2 print("peninta:",peninta) print("eikosi:",eikosi) print("deka:",deka) print("pente:",pente) print("dyo:",dyo) print("ena:",ena) «Τρζχοντασ» το ςυγκεκριμζνο πρόγραμμα προκφπτει το εξισ αποτζλεςμα (ζςτω ο μιςκόσ ότι είναι ίςοσ με 789 ) Δώζε ηο μιζθό ζος: 788 peninta: 15 eikosi: 1 deka: 1 pente: 1 dyo: 1 ena: 1 20 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Εργαςτιριο 7 ΑΚΘΘ 1 Ζςτω ο πίνακασ που ακολουκεί που να χαρακτθρίηει κάποιον/α ανάλογα με τθν θλικία και το Δείκτθ Μάηα Σϊματοσ (BMI). Να γραφεί πρόγραμμα που να ηθτά από το χριςτθ να ειςάγει τθν θλικία και το Δείκτθ Μάηασ Σϊματοσ (BMI). Στθ ςυνζχεια να εμφανίηεται ο αντίςτοιχοσ χαρακτθριςμόσ όπωσ αυτόσ φαίνεται ςτο πίνακα. ΛΤΘ age=float(input("δώζε ηην ηλικία ζος:")) BMI=int(input("Δώζε ηο Δείκηη Μάζαρ ώμαηορ - BMI")) if age<45 and BMI<22.0: print("υαμηλο") elif age<45 and BMI>=22.0: print("μεο") elif age>=45 and BMI<22.0: print("μεο") elif age>=45 and BMI>=22.0: print("τφηλο") ΑΚΘΘ 2 Τη ζα δώζνπλ ηα παξαθάησ; (Απιά δνθηκάζηε ηα) a. True and not False b. True and not false (Δώζηε ζεκαζία ζην πώο γξάθεηαη ην θάζε ηη) c. True or True and False d. not True or not False e. True and not 0 f. 52 < 52.3 g. 1 + 52 < 52.3 h. 4!= 4.0 21 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Εργαςτιριο 8 ΔΟΜΘ ΑΠΟΦΑΘ Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε: Όταν το if που χρθςιμοποιοφμε παρζχει μόνο μία εναλλακτικι διαδρομι εκτζλεςθ, ο τφποσ δομισ απόφαςθσ ονομάηεται δομι απόφαςθσ μίασ εναλλακτικι διαδρομισ. if ςυνκικθ: Εντολι Εντολι κτλ Μπλοκ (Block) εντολϊν. Πιο ςτοιχιςμζνο (απαραίτθτoγια να καταλάβει θ Python τθν αρχι και το τζλοσ του block) Όταν το if που χρθςιμοποιοφμε ζχει δφο πικανζσ διαδρομζσ εκτζλεςθσ μία που ακολουκείται όταν θ ςυκικθ είναι αλθκισ και μία που ακολουκείται όταν θ ςυνκικθ είναι ψευδισ, ονομάηεται δομι απόφαςθσ διπλισ εναλλακτικισ διαδρομισ. if ςυνκικθ: Εντολι Εντολι κτλ Εντολι Εντολι κτλ Αν θ ςυνκικθ είναι αλθκισ εκτελείται αυτό το μπλοκ εντολϊν Αν θ ςυνκικθ είναι ψευδισ εκτελείται αυτό το μπλοκ εντολϊν Οποιοδιποτε κομμάτι τθσ if και να εκτελεςτεί θ ροι ςυνεχίηεται εδϊ. ΠΡΟΟΧΘ! Όταν γράφετε μία εντολι if-else πρζπει να ακολουκείτε τισ εξισ οδθγίεσ όςον αφορά τισ εςοχζσ του κϊδικα: Οι εντολζσ του if και else πρζπει να είναι ςτοιχιςμζνεσ, δθλαδι να ζχουν τθν ίδια εςοχι. Οι εντολζσ if και else ακολουκοφνται από αντίςτοιχα μλοκ εντολϊν. Η εςοχι των εντολϊν του κάκε μλοκ πρζπει να είναι του ίδιου επιπζδου, δθλαδι το κάκε μπλοκ πρζπει να είναι ςτοιχιςμζνο ςε ςυγκεκριμζνθ εςοχι. Επιπλζον, είδαμε ότι θ Python παρζχει μία δομι απόφαςθ γνωςτι ωσ if-elif-else, θ οποία κάνει τθ ςφνταξθ τθσ λογικισ αυτισ ευκολότερθ. 22 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Άςκθςθ 1 Να γραφεί μία εντολι if που να εκχωρεί ςτο x το 0 εάν το y ιςοφται με 20. ΛΤΘ x=int(input( Δώζε ηο x: )) y=int(input( Δώζε ηο y: )) if y==20: x=0 Άςκθςθ 2 Να μετατραπεί ο κϊδικασ που ακολουκεί ςε μία εντολι if-elif-else. if number==1: print( Ενα ) if number==2: print( Δύο ) if number==3: print( Τπία ) print( Άγνυζηο ) number=int(input("δώζε έναν απιθμό:")) if number==1: print("εναb") elif number==2: print("δύοb") elif number==3: print("σπίαb") print("άγνυζηοb") Άςκθςθ 3 Υποκζςτε ότι οι μεταβλθτζσ a=2, b=4, c=6. Σθμειϊςτε εάν κάκε μια από τισ προτάςεισ είναι αλθκισ ι ψευδισ: a==4 or b>2 6<=c and a>3 1!=b and c!=3 a>=-1 or a<=b not(a>2) ΠΡΟΠΑΘΘΣΕ ΝΑ ΑΝΣΙΛΘΦΘΕΙΣΕ ΓΙΑΣΙ ΠΡΟΚΤΠΣΕΙ ΚΑΘΕ ΑΠΟΣΕΛΕΜΑ!!! a=2 b=4 c=6 print("επώηημα 1") if a==4 or b>2: 23 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

print("true") print("false") print("επώηημα 2") if c==6 and a>3: print("true") print("false") print("επώηημα 3") if 1!=b and c!=3: print("true") print("false") print("επώηημα 4") if a>=-1 or a<=b: print("true") print("false") print("επώηημα 5") if not(a>2): print("true") print("false") Άςκθςθ 4 Α) Να γραφεί μία εντολι που να εμφανίηει το μινυμα «Ο αρικμόσ είναι ζγκυροσ» αν θ τιμι ςτθν οποία αναφζρεται θ μεταβλθτι speed είναι εντόσ του διαςτιματοσ 0 εϊσ 200. Β) Να γραφεί μία εντολι που να εμφανίηει το μινυμα «Ο αρικμόσ δεν είναι ζγκυροσ» αν θ τιμι ςτθν οποία αναφζρεται θ μεταβλθτι speed είναι εκτόσ του διαςτιματοσ 0 εϊσ 200. speed=int(input("δώζε ηιμή για ηο speed:")) if speed>=0 and speed<=200: print("ο απιθμόρ είναι έγκςπορ") if speed<0 or speed>200: print("ο απιθμόρ δεν είναι έγκςπορ") Η ςυγκεκριμζνθ άςκθςθ κα μποροφςε να λυκεί με if-else όμωσ χρθςιμοποιιςαμε δφο if γιατί ζτςι ζχει ηθτθκεί από τθν άςκθςθ. Άςκθςθ 5 A) Σι κάνει θ εντολι που ακολουκεί; if x<20 or x>40 : print( mpla mpla mpla ) 24 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Εμφανίηει mpla mpla mpla ςτθ περίπτωςθ που δοκεί αρικμόσ για το x που να είναι ζξω από το διάςτθμα 20 εϊσ 40. B) Σι κάνει θ εντολι που ακολουκεί; if x<20 and x>40 : print( mpla mpla mpla ) Η εντολι που δόκθκε είναι λάκοσ, αφοφ δε μπορεί ταυτόχρονα μία τιμι να είναι και μικρότερθ από 20 και μεγαλφτερθ από 40. Θα τρζξει, αλλά δε κα εμφανίηει τίποτε. Άςκθςθ 6 Γράψτε μία εντολι if-else που να εκχωρεί το 0 ςε μία μεταβλθτι b αν θ μεταβλθτι a είναι μικρότερθ του 10. Διαφορετικά, να εκχωρεί τθν τιμι 99 ςτθ μεταβλθτι b. a=int(input("δώζε ηιμή για ηο a:")) if a<10: b=0 print("η ηιμή ηος b είναι:", b) b=99 print("η ηιμή ηος b είναι:", b) Σε κάκε μπλοκ εντολϊν ςτθν if και τθν else τοποκετικθκε και μία print για να επιβεβαιϊςουμε το αποτζλεςμα. Άςκθςθ 7 Να γραφεί εντολι if-else που να εμφανίηει το μινυμα «Η ταχφτθτα είναι κανονικι» αν θ μεταβλθτι speed ανικει ςτο διάςτθμα 40 εϊσ 90. Αν είναι εκτόσ του διαςτιματοσ να εμφανίηει το μινυμα «Η ταχφτθτα δεν είναι κανονικι». speed=int(input("δώζε ηιμή για ηο speed:")) if speed>=40 and speed <=90: print("η ηασύηηηα είναι κανονική") print("η ηασύηηηα δεν είναι κανονική") 25 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Άςκθςθ 8 Να γραφεί εντολι if-else που να προςδιορίηει εάν θ μεταβλθτι points είναι εκτόσ του διαςτιματοσ 9-51. Αν θ τιμι τθσ μεταβλθτισ είναι εκτόσ αυτοφ του διαςτιματοσ να εμφανίηει το μινυμα «Μθ- Ζγκυρα ςθμεία», διαφορετικά α εμφανίηει το μινυμα Ζγκυρα ςθμεία». Μία λφςθ (που μοιάηει με τθ προθγοφμενθ άςκθςθ) είναι θ ακόλουκθ: points=int(input("δώζε ηιμή για ηο points:")) if points>=9 and points <=51: print("έγκςπα ζημεία") print("μη - έγκςπα ζημεία") Η ςωςτι απάντθςθ όμωσ είναι: points=int(input("δώζε ηιμή για ηο points:")) if points<9 or points >51: print("μη -έγκςπα ζημεία") print("έγκςπα ζημεία") Άςκθςθ 9 Να γραφεί ζνκετθ δομι απόφαςθσ που να πραγματοποιεί το εξισ: Αν το amount1 είναι μεγαλφτερο του 10 και το amount2 είναι μικρότερο του 100, εμφάνιςε το μεγαλφτερο των amount1 και amount2. amount1=int(input( Δώζε ηιμή για ηο amount1: )) amount2=int(input( Δώζε ηιμή για ηο amount2: )) if amount1>10 and amount2 <100: print(max(amount1,amount2)) Ο πιο πάνω κϊδικασ λφνει το πρόβλθμα, δεν το λφνει όμωσ όπωσ το ηθτιςαμε. Εμείσ χρθςιμοποιιςαμε το λογικό τελεςτι and δε χρθςιμοποιιςαμε όμωσ ζνκετθ δομι. Γι αυτό το λόγο κα πρζπει να χρθςιμοποιιςουμε και ζνκετθ δομι, όπωσ: amount1=int(input("δώζε ηιμή για ηο amount1:")) amount2=int(input("δώζε ηιμή για ηο amount2:")) if amount1>10: if amount2 <100: print(max(amount1,amount2)) 26 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Άςκθςθ 10 Μία εταιρεία λογιςμικοφ πουλάει μία εφαρμογι (app) θ οποία ζχει λιανικι τιμι 99 ευρϊ. Γίνονται εκπτϊςεισ με βάςθ τθ ποςότθτα που κα αγοράςει κάποιοσ, ςφμφωνα με τον ακόλουκο πίνακα: Ποσότητα Έκπτωση 10-19 20% 20-49 30% 50-99 40% 100 και πάνω 50% Γράψτε ζνα πρόγραμμα που να ηθτάει από το χριςτθ τθν είςοδο του αρικμοφ των εφαρμογϊν που αγοράςτθκαν και να εμφανίηει το ποςό τθσ ζκπτωςθσ (αν υπάρχει) και το ςυνολικό κόςτοσ τθσ αγοράσ μετά τθν ζκπτωςθ. lianikitimi=99 posotita=int(input("δώζε ποζόηηηα:")) sinolo=posotita*lianikitimi if posotita < 10: ekptosi=0 telikitimi=sinolo-ekptosi*sinolo print("σο ποζό ηηρ έκπηυζηρ είναι μηδέν και ηο ζςνολικό κόζηορ ίζο με", telikitimi) elif posotita<20: ekptosi = 0.2 telikitimi = sinolo - ekptosi * sinolo print("σο ποζό ηηρ έκπηυζηρ είναι:",0.2*100,"% και ηο ζςνολικό κόζηορ ίζο με", telikitimi) elif posotita<50: ekptosi = 0.3 telikitimi = sinolo - ekptosi * sinolo print("σο ποζό ηηρ έκπηυζηρ είναι:",0.3*100,"% και ηο ζςνολικό κόζηορ ίζο με", telikitimi) elif posotita<100: ekptosi = 0.4 telikitimi = sinolo - ekptosi * sinolo print("σο ποζό ηηρ έκπηυζηρ είναι:",0.4*100,"% και ηο ζςνολικό κόζηορ ίζο με", telikitimi) ekptosi = 0.5 telikitimi = sinolo - ekptosi * sinolo print("σο ποζό ηηρ έκπηυζηρ είναι:",0.5*100,"% και ηο ζςνολικό κόζηορ ίζο με", telikitimi) 27 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

θμείωςθ: ΛΟΓΙΚΕ ΜΕΣΑΒΛΘΣΕ Μζχρι τϊρα ζχουμε αςχολθκεί με μεταβλθτζσ τφπου int, float, string. Υπάρχουν όμωσ και οι λογικζσ μεταβλθτζσ. Μία λογικι μεταβλθτι μπορεί να αναφζρεταιςε μία από δφο πικανζσ τιμζσ: True ι False. Οι λογικζσ μεταβλθτζσ χρθςιμοποιοφνται ςυχνά ωσ μεταβλθτζσ flag. 28 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Εργαςτιριο 9-10 Ο βρόχοσ for και ο βρόχοσ while Έλαο βξόρνο for ή αιιηώο for loop καο επηηξέπεη λα θάλνπκε επαλάιεςε επάλσ ζε όιεο ηηο ηηκέο κηαο αθνινπζίαο (string, list ή tuple), επηηειώληαο ηελ ίδηα ιεηηνπξγία γηα θάζε ζηνηρείν 1. Παξάδεηγκα 1: Εάλ ζέινπκε λα εκθαλίζνπκε ηνπο αξηζκνύο 1 εώο 5 κε ηε δνκή for.. in γξάθνπκε: for num in [1, 2, 3, 4, 5]: print(num) Παξάδεηγκα 2: Εάλ ζέινπκε λα εκθαλίζνπκε ηνπο αξηζκνύο 1 εώο 9 κε βήκα 2 ( ή αιιηώο ηνπο κνλνύο αξηζκνύο από ην 1 εώο ην 10) κε ηε δνκή for.. in γξάθνπκε: for num in [1, 3, 5, 7, 9]: print(num) Παξάδεηγκα 3: Εάλ ζέινπκε λα εκθαλίζνπκε ηνπο αξηζκνύο 0 εώο 4 κε ηε δνκή for.. in γξάθνπκε: for num in [0, 1, 2, 3, 4]: print(num) Παξάδεηγκα 4: Μπνξνύκε όκσο λα ρξεζηκνπνηήζνπκε θαη ηε ζπλάξηεζε range ε νπνία δεκηνπξγεί αθνινπζίεο αξηζκώλ. Η ζπγθεθξηκέλε ζπλάξηεζε έρεη δηάθνξεο κνξθέο πνπ καο δηεπθνιύλνπλ λα νξίζνπκε ηηο επαλαιήςεηο κε ηε βνήζεηα κηαο αθνινπζίαο αξηζκώλ σο εμήο: for x in range(5): print('tei') Έηζη ε ιέμε TEI ζα εκθαληζηεί 5 θνξέο. Πνηέο όκσο ηηκέο ζα πάξεη ην x; Μπνξνύκε θάησ από ην print λα γξάςνπκε θαη print(x). for x in range(5,9): print('tei') Έηζη ε ιέμε TEI ζα εκθαληζηεί 4 θνξέο. Πνηέο όκσο ηηκέο ζα πάξεη ην x; for x in range(1,10,2): 1 Επιπρόςκετα, μπορεί κάτι τζτοιο να χρθςιμοποιθκεί και ςε αντικείμενα. 29 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

print('tei') Έηζη ε ιέμε TEI ζα εκθαληζηεί 5 θνξέο. Πνηέο όκσο ηηκέο ζα πάξεη ην x; Παξάδεηγκα 5: Πσο πξέπεη λα γξάςεη θαλείο έλα πξόγξακκα κε ηε βνήζεηα ηνπ for εάλ ζέιεη λα εκθαλίζεη ηνπο αξηζκνύο από 1 εώο 10 θαη δίπια ηα ηεηξάγσλά ηνπο; print('αριθμο\tσεσραγχνο') for x in range(1,11): square=x**2 print(x,'\t',square) Παξάδεηγκα 6: Εάλ ζέινπκε λα δεηήζνπκε ν ρξήζηεο λα δώζεη ην πιήζνο ησλ αξηζκώλ γηα ηνπο νπνίνπο ζέινπκε λα εκθαληζηνύλ ηα ηεηξάγσλα; Τόηε αξθεί λα δεηήζνπκε λα καο δνζεί ν αξηζκόο πνπ ππνδεηθλύεη ην πιήζνο απηό (ζηε πεξίπησζε πνπ αθνινπζεί ε κεηαβιεηή end). end=int(input('δώζε μέσπι πόζοςρ απιθμούρ θέλειρ να ςπολογίζεηαι ηο ηεηπάγυνο:')) print('αριθμο\tσεσραγχνο') for x in range(1,end+1): square=x**2 print(x,'\t',square) Έλαο ηέηνηνο βξόρνο είλαη πνιύ ρξήζηκνο γηα ηελ επεμεξγαζία κηαο αθνινπζίαο ηηκώλ, αιιά ππάξρνπλ αξθεηά ζπλεζηζκέλα πξνβιήκαηα όπνπ απηή ε δνκή επαλάιεςεο δε κπνξεί λα ρξεζηκνπνηεζεί. Γηα παξάδεηγκα, ε αιιαγή ηεο ηηκήο ηεο κεηαβιεηήο ηνπ for δελ αιιάδεη ηελ ηηκή ηνπ αληίζηνηρνπ ζηνηρείνπ ζηελ αθνινπζία. Υπάρχουν όμωσ και άλλεσ δομζσ επανάλθψθσ όπωσ θ while. While Η ςυγκεκριμζνθ δομι επανάλθψθσ εκτελείται όςο ιςχφει ζνασ λογικόσ ζλεγχοσ. Δθλαδι για να εκτελεςτεί το ςϊμα τθσ while αυτό που ςυμβαίνει είναι: Ζλεγχοσ τθσ while και εάν είναι true τότε εκτελοφνται οι εντολζσ που «βρίςκονται» ςε αυτι. 30 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Αυτό εξακολουκεί να ςυμβαίνει όςο ιςχφει ο ζλεγχοσ (δθλ. είναι αλθκισ). Όταν πάψει ο ζλεγχοσ να είναι αλθκισ, τότε το πρόγραμμα ςταματά να εκτελεί τθ while και ςυνεχίηει. Παράδειγμα 7. Χριςθ τθσ while για λόγουσ μζτρθςθσ current_number = 1 while current_number <= 5: print(current_number) current_number += 1 Παράδειγμα 8. Πρόγραμμα που διαβάηει τθν είςοδο του χριςτθ και τερματίηει όταν δοκεί θ λζξθ «quit». prompt = "\ntell me something, and I will repeat it back to you:" prompt += "\nenter 'quit' to end the program. " message = "" while message!= 'quit': message = input(prompt) print(message) Πωσ μπορεί να αλλαχκεί το πιο πάνω πρόγραμμα ζτςι ϊςτε όταν κάποιοσ γράφει quit απλά να βγαίνει και όχι να το εμφανίηει ωσ μινυμα; Παράδειγμα 9. τα επόμενα ακολουκεί ζνα πρόγραμμα που μετρά από το 1 εϊσ το 5. x = 1 while x <= 5: print(x) x += 1 Παράδειγμα 10. Σι κα ςυμβεί όμωσ εάν για κάποιο λόγο πάψει να υφίςταται θ τελευταία γραμμι; x = 1 while x <= 5: print(x) Απιά ην πξόγξακκα ζα ηξέρεη ζπλέρεηα. Τόηε έλαο βξόρνο απηήο ηεο κνξθήο νλνκάδεηαη αηέξκσλ βξόρνο. 31 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Άςκθςθ 1. Α) Να υπολογιςτεί το τρζχον άκροιςμα και να εμφανιςτεί για 5 αρικμοφσ που δίνονται από το πλθκτρολόγιο Β) Να υπολογιςτεί ο Μ.Ο. των αρικμϊν και να εμφανιςτεί ΛΤΗ: sum=0 for k in range(1,6): x=int(input("δώζε έναν απιθμό")) sum=sum+x print("για ηην επανάλητη ", k, "ηο ηπέσον άθποιζμα είναι:", sum) mo=sum/5 print("ο μέζορ όπορ ηυν 5 απιθμών είναι", mo) ΠΡΟΟΧΘ!!! Σο άκροιςμα αρχικοποιείται ςτο μθδζν. Όςον αφορά όμωσ το γινόμενο θ αρχικοποίθςθ γίνεται ςτο 1 (ουδζτερο ςτοιχείο του γινομζνου) Για παράδειγμα ςτον υπολογιςμό του γινομζνου 5 αρικμϊν κα γράφαμε: prod=1 for k in range(1,6): x=int(input("δώζε έναν απιθμό")) prod=prod*x print("σο γινόμενο είναι", prod) Επιπλζον, κυμθκείτε ότι εάν γνωρίηετε πόςεσ φορζσ κα γίνει κάτι ςε ζνα πρόβλθμα, τότε καλφτερα ναχρθςιμοποιοφμε τθ for. Επιπλζον, κυμθκείτε ότι θ επαλικευςθ ειςόδου ςθμαίνει: Αν κζλω να εξαναγκάςω ζναν χριςτθ να ειςάγει μόνο κετικό αρικμό τότε γράφω τα εξισ: x=int(input("δώζε έναν απιθμό:")) while x<=0: x=int(input("δώζε ξανά απιθμό")) print ("O απιθμόρ πος έδυζερ είναι θεηικόρ και είναι ο: ", x) 32 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.

Εργαςτιριο 11-12 Σι είναι λίςτα (List); Μία λίςτα είναι μία ςυλλογι από ςυςτατικά ςε μία ςυγκεκριμζνθ ςειρά. Ζτςι μπορεί να κάνουμε μία λίςτα που περιλαμβάνει τα γράμματα του αλφάβθτου, τα ψθφία από 0-9 ι τα ονόματα όλων των μελϊν μίασ οικογζνειασ. Μποροφμε να βάλουμε ό,τι κζλουμε ςε μία λίςτα, ενϊ τα ςυςτατικά τθσ δεν είναι απαραίτθτο να ζχουν κάποια ςχζςθ μεταξφ τουσ. Επειδι μία λίςτα περιλαμβάνει περιςςότερα του ενόσ ςτοιχεία, καλό είναι να δίνουμε ονόματα που βρίςκονται ςτο πλθκυντικό αρικμό, όπωσ: letters, digits, or names. Θςμηθείηε ηιρ αζκήζειρ με λίζηερ πος κάναμε ζηον πίνακα με ηιρ ππάξειρ ζε λίζηα. Θςμηθείηε ηιρ αζκήζειρ εύπεζηρ μεγίζηος με λίζηα. Επιπλέον: Θςμηθείηε ηιρ αζκήζειρ επαλήθεςζηρ ειζόδος πος κάναμε ζηο πίνακα. Καθώρ και όλερ ηιρ αζκήζειρ πος δείσναμε ηι ηιμέρ παίπνοςν οι μεηαβληηέρ καηά ηη διάπκεια εκηέλεζηρ ηυν ππογπαμμάηυν. Θςμηθείηε ηιρ αζκήζειρ εύπεζηρ μεγίζηος. 33 Σ ε λ ί δ α - Π λ θ ρ ο φ ο ρ ι κ ι ΙΙ τ μ ι μ α Δ ι ο ί κ θ ς θ σ Ε π ι χ ε ι ρ ι ς ε ω ν Μ α ϊ ρ γ ι ϊ τ θ σ Α.