Μορφοποίηση εξόδου. Σημειώσεις

Σχετικά έγγραφα
Γραφικά υπολογιστών Εργαστήριο 4 Εισαγωγή στις λίστες

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Σημειώσεις. Ο αριθμός των στοιχείων μίας λίστας μπορεί να βρεθεί με χρήση της συνάρτησης len:

ΚΕΦΑΛΑΙΟ 2. Τιμές, τύποι, μεταβλητές, λέξεις-κλειδιά, εντολές. 2.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 3. Εκφράσεις, τελεστές, σχόλια. 3.1 Εισαγωγή

Fortran και Αντικειμενοστραφής προγραμματισμός.

Εναλλακτικές εντολές για ανάγνωση/εγγραφή

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

Σημειώσεις. Ο αριθμός των στοιχείων μίας λίστας μπορεί να βρεθεί με χρήση της συνάρτησης len:

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

ΕΠΛ031 - Εισαγωγή στον Προγραμματισμό

Λογικές εκφράσεις και μεταβλητές

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7) Είσοδος/ Έξοδος

Γλώσσα προγραμματισμού python

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7)

Σημειωματάριο Δευτέρας 9 Οκτ. 2017

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Τυχαίοι αριθμοί struct Αρχεία Διαμορφώσεις Συναρτήσεις Χειρισμός σφαλμάτων ΠΕΜΠΤΗ ΔΙΑΛΕΞΗ

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE

Ανάπτυξη και Σχεδίαση Λογισμικού

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 4-2

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Σημειωματάριο Δευτέρας 23 Οκτ. 2017

Σημειωματάαριο Δευτέρας 16 Οκτ. 2017

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ ΥΠΟΛΕΙΠΟΜΕΝΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ

7. Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

Εισαγωγή στην Γλώσσα Προγραμματισμού Python. 12/10/16 1

Δομημένος Προγραμματισμός

ΚΕΦΑΛΑΙΟ 7. Αρχεία, εξαιρέσεις & εκσφαλμάτωση. 7.1 Εισαγωγή

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

Προγραμματισμός Υπολογιστών Τάξη Γ Αθανασιάδης Χρήστος ΠΕ19 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

3 ο Εργαστήριο Μεταβλητές, Τελεστές

ΕΠΛ 032.3: Προγραµµατισµός ΜεθόδωνΕπίλυσηςΠροβληµάτων

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Αλφαριθμητικά Χειμερινό Εξάμηνο 2016

Σημειωματάριο Τετάρτης 4 Οκτ. 2017

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

ΚΕΦΑΛΑΙΟ 5. Eπανάληψη με την εντολή while. 5.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 6. Συμβολοσειρές, λίστες, πλειάδες, λεξικά. 6.1 Εισαγωγή

- program p_name(output); - uses crt;

Εισαγωγή στη γλώσσα προγραμματισμού C++14

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

CE 120. Φροντιστήριο 14/10/2011

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: Πέµπτη 17/12/2015, 22:00

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ Η/Υ (ΟΜΑΔΑ ΘΕΜΑΤΩΝ A)

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Τα Εργαστηριακά Προγράμματα. Η δομή Επιλογής στη PASCAL. H δομή Επανάληψης στη PASCAL. Η εντολή επανάληψης for

Θέματα Προγραμματισμού Η/Υ

Εισαγωγή στην επιστήμη των υπολογιστών

Ηλεκτρονικοί Υπολογιστές

Διαδικασιακός Προγραμματισμός

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Ηλεκτρονικοί Υπολογιστές

Γ7.8 Εγγραφές (Structures) Γ Λυκείου Κατεύθυνσης

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python. 1η Ομάδα Ασκήσεων

Δυναμική Διατήρηση Γραμμικής Διάταξης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

ΑΣΚΗΣΗ 2: ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΣΤΗ C

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

Chapter 3. Αριθμητική Υπολογιστών. Όγδοη (8 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Γράψτε ένα πρόγραμμα που θα προσομοιώνει τη ρίψη ενός νομίσματος και θα εμφανίζει στην οθόνη Κορώνα» ή «Γράμματα».

Προγραμματισμό για ΗΜΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Συμβολοσειρές ΣΥΜΒΟΛΟΣΕΙΡΕΣ. Γεώργιος Παπαϊωάννου ( )

Στατιστικοί πίνακες. Δημιουργία κλάσεων

Τύποι Δεδομένων Είσοδος/Έξοδος

ΠΛΗ21 Κεφάλαιο 2. ΠΛΗ21 Ψηφιακά Συστήματα: Τόμος Α Κεφάλαιο: Παράσταση Προσημασμένων Αριθμών Συμπληρώματα

Η σύνταξη της συνάρτησης SUMIF έχει τα ακόλουθα ορίσματα:

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΡΙΤΗ 13 ΙΟΥΝΙΟΥ 2017

2. ΑΡΙΘΜΗΤΙΚΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. 2.1 Αριθμητικά συστήματα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Σχεδίαση Μισθοδοτικής Κατάστασης.

Εισαγωγή στη γλώσσα προγραμματισμού Fortran 95

Σύστημα Πλεονάσματος και Αναπαράσταση Αριθμών Κινητής Υποδιαστολής

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Σχεδίαση Μισθοδοτικής Κατάστασης

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

Mεταβλητές (variables) και Σταθερές (constants)

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΕΤΑΡΤΗ 20 ΙΟΥΝΙΟΥ 2018

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00

Transcript:

Προηγούμενο Σημειώσεις Επόμενο Μορφοποίηση εξόδου Έχουμε δει ότι όταν τυπώνουμε μεταβλητές, π.χ., print(s,a,i) δεν έχουμε ιδιαίτερο έλεγχο στη μορφή με την οποία θα τυπωθούν οι τιμές των μεταβλητών. Με την εντολή print οι τιμές των μεταβλητών τυπώνονται σε πεδία τόσης έκτασης όση ακριβώς χρειάζεται για να χωρέσουν. Πολύ συχνά όμως η μορφή αυτή της εκτύπωσης δεν είναι αυτή που επιθυμούμε. Για παράδειγμα, αν a=3.000000000000001 τότε είναι πιθανό ότι θα επιθυμούσαμε να τυπωθεί το 3.0 και όχι τα παραπάνω 16 ψηφία. Υπάρχουν και πολλές άλλες περιπτώσεις που θα θέλαμε να έχουμε έλεγχο στην μορφή της εκτύπωσης, π.χ., θα θέλαμε να υπάρχουν ορισμένος αριθμός κενών μεταξύ δύο αριθμών, θα θέλαμε να τυπώνονται νούμερα ή λέξεις σε διαδοχικές σειρές κατά ευθυγραμμισμένο τρόπο κλπ. Άσκηση κατανόησης. Δοκιμάστε να τυπώσετε διαδοχικούς αριθμούς: for i in range(10): print(i, i*0.1). Θα παρατηρήσετε ότι είναι απαραίτητο να βελτιώσουμε την μορφή της εκτύπωσης. Η python δίνει την δυνατότητα μορφοποίησης της εκτύπωσης αριθμών (ή οτιδήποτε άλλης μεταβλητής). Χειρίζεται τη μορφοποίηση μετατρέποντάς τις τιμές των μεταβλητών πρώτα σε συμβολοσειρές και φέρνοντας τις συμβολοσειρές στην μορφή ακριβώς που θα θέλαμε θα δούμε το εκτυπωμένο αποτέλεσμα. Η συμβολοσειρά την οποία θέλουμε τελικά να τυπώσουμε διαμορφώνεται με την μέθοδο format. Για παράδειγμα, θα μπορούσαμε να βάλουμε έναν ακέραιο i=5 ανάμεσα σε δύο κενά ως εξής: >>> i = 5 >>> " {} ".format(i) ' 5 ' Η συμβολοσειρά ' {} ' περιέχει δύο κενά στα άκρα, ενώ ενδιάμεσα υπάρχει θέση για την τιμή μίας μεταβλητής. Με την μέθοδο format εισήχθει η τιμή της μεταβλητής και έγινε η τελική διαμόρφωση. http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/13_lecture.html 1/5

Εκτύπωση ακεραίων. Μπορούμε να τυπώσουμε έναν ακέραιο σε πεδίο καθορισμένο μήκους. Δηλώνουμε ότι αναμένουμε εκτύπωση ακεραίου με τον διακριτικό χαρακτήρα d. Θα τυπώσουμε διαδοχικά ακεραίους σε πεδίο πέντε θέσεων (με ευθυγράμμιση στα δεξιά του πεδίου): s = '{:5d}'.format(i) print(s) ή, σε πιο συμπαγή μορφή: print('{:5d}'.format(i)) Παράδειγμα. Το παρακάτω πρόγραμμα τυπώνει δύο ακεραίους σε κάθε γραμμή σε πεδία πλάτους 5 και 7 χαρακτήρων αντίστοιχα. Μεταξύ τους αφήνονται δύο κενές θέσεις. print('{:5d} {:7d}'.format(i,i**2)) Παράδειγμα. Δείτε επίσης το αποτέλεσμα του προγράμματος: for i in range(10): print('{:5d} - {:7d}'.format(i,i**2)) Εκτύπωση floats. Δηλώνουμε ότι αναμένουμε εκτύπωση float με τον διακριτικό χαρακτήρα f. Επίσης, χρησιμοποιούμε τον διακριτικό χαρακτήρα e για floats με επιστημονικό συμβολισμό (scientific notation). Παράδειγμα. Θα τυπώσουμε έναν float διατηρώντας έξι δεκαδικά ψηφία: >>> '{:f}'.format(3.141592653589793) http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/13_lecture.html 2/5

'3.141593' Παράδειγμα. Θα τυπώσουμε έναν float σε πεδίο έξι θέσεων διατηρώντας δύο δεκαδικά ψηφία: >>> '{:6.2f}'.format(3.141592653589793) ' 3.14' Για την εκτύπωση ενός float χρειαζόμαστε αρκετές περισσότερες θέσεις από το πλήθος των δεκαδικών του ψηφίων. Χρειαζόμαστε τουλάχιστον μία θέση για το ακέραιο μέρος, μία θέση για την υποδιαστολή και πιθανόν μία θέση για το πρόσημο (εφόσον πρόκειται για αρνητικό αριθμό). Παράδειγμα. Μπορούμε να προκαλέσουμε την εκτύπωση του προσήμου ενός αριθμού. >>> a = 42.5 >>> '{:+6.2f}'.format(a) '+42.50' >>> a = -42.5 >>> '{:+6.2f}'.format(a) '-42.50' Παράδειγμα. Δηλώνουμε την εκτύπωση float σε scientific notiation με τον διακριτικό χαρακτήρα e. Θα τυπώσουμε την ταχύτητα του φωτός. >>> c = 299792458 >>> '{:11.4e}'.format(c) ' 2.9979e+08' >>> '{:11.4e} m/sec'.format(c) ' 2.9979e+08 m/sec' Εκτύπωση strings. Δηλώνουμε την εκτύπωση string με τον διακριτικό χαρακτήρα s. Μπορούμε όμως και να παραλήψουμε τον διακριτικό χαρακτήρα. http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/13_lecture.html 3/5

Μπορούμε να τυπώσουμε μία συμβολοσειρά σε πεδίο μεγαλύτερο από το μήκος της, ή να την περικόψουμε κατά την εκτύπωση. Παράδειγμα. Θα τυπώσουμε συμβολοσειρά με αριστερή (default) ή δεξιά ευθυγράμμιση ή στην μέση του πεδίου. >>> '{:15s}'.format('abrakatabra') 'abrakatabra ' >>> '{:15}'.format('abrakatabra') 'abrakatabra ' >>> '{:>15}'.format('abrakatabra') ' abrakatabra' >>> '{:^15}'.format('abrakatabra') ' abrakatabra ' Παράδειγμα. Μπορούμε να επιλέξουμε έναν χαρακτήρα ο οποίος θα γεμίσει το επιπλέον πεδίο. >>> '{0:-<6}{1:-<6}{2:-<6}'.format('abra','kat','abra') 'abra--kat---abra--' Παράδειγμα. Μπορούμε να περικόψουμε μία υπερβολικά μεγάλη συμβολοσειρά. >>> '{:.7}'.format('abrakatabra') 'abrakat' Παράδειγμα. Μπροστά από το : μπορούμε να βάλουμε έναν αριθμό ο οποίος αντιστοιχεί στην θέση της μεταβλητής την οποία θέλουμε να τυπώσουμε. >>> a = 1 >>> b = 2 >>> '{0:5d} {1:5d}'.format(a,b) ' 1 2' >>> '{1:5d} {0:5d}'.format(a,b) ' 2 1' http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/13_lecture.html 4/5

>>> '{0:}{1:}{0:}'.format('abra','kat') 'abrakatabra' Περίληψη. Η γενική μορφή δήλωσης για την εκτύπωση μίας μεταβλητής είναι {[position]:[flags][width][.precision][type]} Άσκηση. Γράψτε μία συνάρτηση η οποία θα τυπώσει τα στοιχεία λίστας σε διαδοχικές γραμμές. Υποθέτουμε ότι όλα τα στοιχεία της λίστας είναι του ίδιου τύπου. Άσκηση. Τυπώστε μεταβλητή float δίνονται το εύρος πεδίου και τον αριθμό δεκαδικών ψηφίων μέσα στην format. '{:{width}.{prec}f}'.format(2.7182, width=5, prec=2) Βελτιώστε την συνάρτηση που φτιάξατε στην προηγούμενη άσκηση χρησιμοποιώντας την μέθοδο που είδατε σε αυτή την άσκηση. Μελέτη Βιβλιογραφία 1. PyFormat. 2. Python course, Formatted Output (για python 2). 3. J.V. Guttag, Υπολογισμοί και προγραμματισμός με την python. 4. Δημήτριος Καρολίδης, Μαθαίνετε εύκολα python (Εκδόσεις Καρολίδη, 2016). 5. Κ. Μαγκούτης, Χ. Νικολάου, Εισαγωγή στον αντικειμενοστραφή προγραμματισμό με Python, (Αποθετήριο "Κάλλιπος", 2016). Προηγούμενο Επόμενο http://users.tem.uoc.gr/~komineas/teaching/mem104_2017/lectures/13_lecture.html 5/5