Τρίτη 7 Μαρτίου 2023

Δομές δεδομένων - Συμβολοσειρές (str)

 

Δομή δεδομένων είναι ένα σχήμα οργάνωσης δεδομένων.


Οι στατικές δομές δεδομένων έχουν σταθερό μέγεθος που ορίζεται κατά την συγγραφή του προγράμματος και δεν αλλάζει όταν εκτελείται το πρόγραμμα. Καταλαμβάνουν σταθερό χώρο στην μνήμη RAM. Δεν προστιθενται νέα στοιχεία στην δομή, ούτε αφαιρούνται.


Οι δυναμικές δομές μπορούν να έχουν μεταβαλλόμενο μέγεθος. Δηλαδή, μπορούμε να προσθέτουμε νέα στοιχεία ή να αφαιρούμε στοιχεία. Γίνεται δυναμική εκχώρηση μνήμης RAM, δηλαδή παραχωρείται από το λειτουργικό σύστημα επαρκής μνήμη, ανάλογα τις απαιτήσεις τις δομής.

Η συμβολοσειρά (str)είναι μια ακολουθία από χαρακτήρες και μπορεί να αποτελείται από μία ή περισσότερες λέξεις. Παράδειγμα a='good morning' το a είναι μία συμβολοσειρά. Εκχωρήσαμε μια σειρά από χαρακτήρες στο a. Ανήκει στις στατικές δομές.

Με τη συνάρτηση len(a) βρίσκουμε το πλήθος των χαρακτήρων της a, δηλαδή 12.

Η αναφορά κάθε στοιχείου της συμβολοσειράς γίνεται με αρίθμηση που ξεκινάει από το 0.

>>> print a[0]

g

α[1] είναι το ‘ο’, a[3] το ‘d’ κ.ο.κ.

Με τον τελεστή διαμέρησης ‘:’ μπορούμε να αναφερθούμε σε μία περιοχή χαρακτήρων:

>>> print a[0:4] #δίνει τους χαρακτήρες από 0 ως 3 (θυμηθείτε το range):

good

Το ίδιο αποτέλεσμα με: print a[:4] (0 παραλείπεται)

>>> print a[5:len(a)] #από τον χαρακτήρα 5 ως το πλήθος των χαρακτήρων -τέλος

morning

Προσοχή! Ο κάθε χαρακτήρας της συμβολοσειράς δεν μπορεί να τροποποιηθεί!


Ο τελεστής in λέγεται υπαρξιακός και ελέγχει αν υπάρχει ένα αντικείμενο μέσα σε ένα σύνολο αντικειμένων. Παράδειγμα:

>>> 'o' in a #Υπάρχει ‘ο’ στην συβολοσειρά a;

True

>>> 'f' in a #Υπάρχει ‘f’ στην συβολοσειρά a;

False

>>>

Πώς διαβάζουμε χαρακτήρα-χαρακτήρα την συμβολοσειρά:

a='good morning'

for i in a:

print i

Κάθε φορά το i ισούται με ένα χαρακτήρα της

1. συμβολσειράς (i=g,i=o,i=o,i=d κλπ)

Οπότε μπορούμε, για παράδειγμα, να μετρήσουμε το πλήθος των ‘o’ κλπ


Εναλλακτικά, μπορούμε και με while:

a='good morning'

i=0

while i < len(a):

print a[i]

i=i+1




Ασκησεις

1. Διαβάστε από το πληκτρολόγιο δύο λέξεις και εκχωρήστε τις ως συμβολοσειρές στις μεταβλητές a και b. Εκχρωρήστε στη z το αποτέλσμα της πράξης a+b και στην y το αποτέλεσμα της α*3. Εμφανίστε στην οθόνη τα αποτελέσματα

2. Να διαβαστεί μια συμβολοσειρά από το πληκτρολόγιο και να εκχωρηθεί στην μεταβλητή a. Να εμφανιστεί το πλήθος των χαρακτήρων της. Να εμφανιστεί ο τελευταίος χαρακτήρας, χρησιμοποιώντας την συνάρτηση len.

3. Από τη συμβολοσειρά a= ‘Information Technology’ να εμφανίσετε μόνο το ‘Technology’ χρησιμοποιώντας το ‘:’

4. Να βρείτε το πλήθος των ‘ο’ στην παραπάνω συμβολοσειρά.

5. Να εμφανίσετε κάθε χαρακτήρα μιας συμβολοσειράς, χρησιμοποιώντας while

6. Καταγράψτε τα αποτελέσματα των εντολών, όπου a η παράνω συμβολοσειρά:

α. a.upper()

b. b in a

c. o in a

d. ‘1000’<’20’

7. Να γραφεί συνάρτηση που θα δέχεται μία συμβολοσειρά από το κυρίως πρόγραμμα και θα εμφανίζει αν η συμβολοσειρά ξεκινάει από ‘a’ ή ‘Α’



Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

Σημείωση: Μόνο ένα μέλος αυτού του ιστολογίου μπορεί να αναρτήσει σχόλιο.