Ο τύπος δεδομένων String και η εντολή print

Ο τύπος δεδομένων string

Το string ή στην ελληνική γλώσσα «συμβολοσειρά» είναι ένας νέος τύπος δεδομένων που αποτελείται από μια σειρά χαρακτήρων κλεισμένους μέσα σε μονούς ή διπλούς αποστρόφους.

Για να δημιουργήσουμε μια μεταβλητή τύπου string και να της αποδώσουμε μια τιμή, χρησιμοποιούμε την εντολή εκχώρησης, όπως φαίνεται παρακάτω:

>>> str1 = ‘This is a test string’
>>> str1
‘This is a test string’
>>> print(str1)
 This is a test string
>>>

Μπορούμε να ενώνουμε συμβολοσειρές με το σύμβολο ‘+’. Ακολουθεί ένα παράδειγμα:

>>> str1b = ‘This is ' + 'another ' + 'test string’
>>> str1b
‘This is another test string’
>>> print(str1b)
 This is another test string
>>>

Εάν μέσα στη συμβολοσειρά υπάρχουν μονοί απόστροφοι, για να ορίσεις την συμβολοσειρά όπως την αναγνωρίζει η Python, θα πρέπει να την εσωκλείσεις σε διπλούς αποστρόφους. Ακολουθεί ένα παράδειγμα:

>>> str2 = “This’ ll work when defining a string”
>>str2
 “This’ ll work when defining a string”
>>> print(str2)
  This’ ll work when defining a string
>>>

Μπορείς να κάνεις το ίδιο, αλλά με διαφορετικό τρόπο, με την χρήση χαρακτήρων διαφυγής, και συγκεκρινένα την ανάποδη πλάγια κάθετο «\». Οι χαρακτήρες διαφυγής δεν είναι μέρος της συμβολοσειράς. Ακολουθεί ένα παράδειγμα:

>>> str3 = ‘This\’ll also work when defining a string’
>>> str3
   “This’ll also work when defining a string”
>>> print(str3)
   This’ll also work when defining a string
>>>

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

>>> str4 = ‘This is a long string value \
that spans multiple lines.’
>>> str4
‘This is a long string value that spans multiple lines.’
>>> print(str4)
 This is a long string value that spans multiple lines.
>>> 

Μπορούμε να γράψουμε το ίδιο πράγμα εναλλακτικά ως εξής:

>>> str4b = ‘This is a long string value' +\
'that spans multiple lines.’
>>> str4b
‘This is a long string value that spans multiple lines.’
>>> print(str4b)
 This is a long string value that spans multiple lines. 

Υπάρχει και μια άλλη μέθοδος για την δημιουργία μεγάλων συμβολοσειρών, που ονομάζεται triple quotes. Με αυτή την μέθοδο τοποθετούμε τρεις μονούς ή διπλούς αποστρόφους σε μια γραμμή για να ορίσουμε την αρχή της συμβολοσειράς και έπειτα τοποθετούμε τρείς μονούς ή διπλούς αποστρόφους σε μια γραμμή για να ορίσουμε το τέλος της συμβολοσειράς, όπως στο ακόλουθο παράδειγμα:

>>> str5 = ‘’’ This is another long string
value that will span multiple
lines in the output’’’
>>> str5
 'This is another long string\nvalue that will span multiple\nlines in the output’
>>> print(str5)
    This is another long string
    value that will span multiple
    lines in the output
>>>

Η εντολή print

Η εντολή print είναι μια από τις πιο χρησιμοποιούμενες εντολές της Python. Εμφανίζει κείμενο και αριθμούς στην οθόνη του τερματικού. Το κείμενο που πρόκειται να εμφανιστεί εισάγεται μέσα σε αποστρόφους. Τα αριθμητικά δεδομένα εμφανίζονται, απλά εισάγοντας το όνομα της μεταβλητής μέσα στο όρισμα της εντολής print.

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

%c   character (χαρακτήρας)
%s   string  (υμβολοσειρά)
%d   signed integer (προσμασμένος ακέραιος)
%u   unsigned  interger  (θετικός ακέραιος)
%x   lower case hexadecimal number (δεκαεξαδικός)
%X   upper case hexadecimal number (δεκαεξαδικός)
%f     floating-point number (αριθμός κινητής υποδιαστολής)

Μπορούμε με την εντολή print να εμφανίζουμε κείμενο με μεταβλητές όπως στο ακόλουθο παραδειγμα:

>>> first , last = 1 , 100
>>> print(“First = %d  Last = %d” %(first, last))
First = 1  Last = 100
>>>

Ένα άλλο παράδειγμα κώδικα είναι το εξής:

>>> coffee_cup = ‘coffee’
>>> cups_consumed = 3+1
>>> print(‘I had %d cups of %s today’ %(cups_consumed, coffee_cup))
I had 4 cups of coffee today

Ακολουθεί ένα άλλο παράδειγμα:

>>> name, age = “John” , 21
>>> print(“Name = %s  Age = %d” %(name, age))
Name = John  Age = 21
>>>
>>> a , h = 2.345 , 1.867
>>> print(“a is %E” %(a))
a is 2.345000E+00
>>> print(“Height is  %.2f” %h)
Height is 1.87
>>>
>>> a , b = 5 , 10
>>> print(‘a is %d\n b is %d’ %(a, b))
a is 5
   b is 10
>>>
>>> a = 90
>>> print(“%X” %(a))
5A

Συναρτήσεις για τον χειρισμό string

Η Python διαθέτει μια σειρά συναρτήσεων για το χειρισμό συμβολοσειρών string. Μερικές από αυτές είναι οι ακόλουθες:

find(str, beg, end) εξετάζει εάν η συμβολοσειρά str υπάρχει σε ένα string. Η αρχή και το τέλος του οριζόμενου string πρέπει να δοθούν. Επιστρέφει τον δείκτη εάν το str βρεθεί, αλλιώς επιστρέφει την τιμή -1.
replace(old, new) αυτή η συνάρτηση αντικαθιστά το substring old με το new.
capitalize() κάνει τον πρώτο χαρακτήρα της συμβολοσειράς κεφαλαίο και τους υπόλοιπους χαρακτήρες πεζούς.
lower()  μετατρέπει όλους τους χαρακτήρες σε πεζούς
upper() μετατρέπει όλους τους χαρακτήρες σε κεφαλαίους
swapcase() κάνει τους κεφαλαίους χαρακτήρες σε πεζούς και τους πεζούς σε κεφαλαίους
lstrip() αφαιρεί τα μπροστινά κενά διαστήματα της συμβολοσειράς
rstrip()  αφαιρεί τα πίσω κενά διαστήματα της συμβολοσειράς
strip() αφαιρεί τα μπροστά και τα πίσω κενά διαστήματα της συμβολοσειράς

Μερικά παραδείγματα είναι τα ακόλουθα:

>>> a = “computer”
>>>ind = a.find(‘p’, 0, len(a))
>>> print(ind)
3
>>> str = ‘xyz abc fa’
>>> a = str.replace(‘abc’, ‘zxc’)
>>> a
‘xyz zxc fa’
>>>

Άλλα παραδείγματα είναι τα εξής:

>>> str = ‘joHN’
>>> name = str.capitalize()
>>> name
‘John’
>>> name_lower = str.lower()
>>> name_lower
‘john’
>>> name_upper = str.upper()
>>> name_upper
‘JOHN’
>>> name_snapcase = str.swapcase()
>>> name_snapcase
‘JOhn’
>>>

Στην συνέχεια ακολουθούν και άλλα:

>>> name = “John”
>>> surname = “Adams”
>>> full_name = name + surname
>>> print(full_name)
JohnAdams
>>> initial = name[0]
>>> print(initial)
J
>>> initials = name[0] + surname[0]
>>> print(initials)
JA
>>> print(name.find(‘h’))
2
>>> name.replace(‘o’, ‘e’)
Jehn
>>> print(name[0:3])
Joh
>>> print(name[:2])
Jo
>>> print(name[2:])
hn
>>>print(name[-1])
n
>>> print(name[-2]))
h
>>> print(name*2)
JohnJohn
>>> print(name[0:2] + surname[2:4] + “end”
Joamend
>>> print(name + “  “ + surname)
John Adams
>>> print(len(name))
4

Υπάρχουν συναρτήσεις στην Python που ελέγχουν εάν μια συνθήκη συμβεί σε μια συμβολοσειρά. Αυτές είναι οι ακόλουθες:
isalnum() Επιστρέφει True εάν το string περιέχει μόνο αριθμούς και γράμματα.
isalpha()  Επιστρέφει True εάν το string περιέχει μόνο γράμματα.
isdecimal() Επιστρέφει True εάν το string περιέχει μόνο δεκαδικούς χαρακτήρες
isdigit() Επιστρέφει True εάν το string περιέχει μόνο αριθμούς
islower() Επιστρέφει True εάν το string περιέχει μόνο πεζούς χαρακτήρες
isnumeric() Επιστρέφει True εάν το string περιέχει μόνο αριθμητικούς χαρακτήρες
isprintable() Επιστρέφει True εάν το string περιέχει μόνο εκτυπώσιμους χαρακτήρες
isspace() Επιστρέφει True εάν το string περιέχει μόνο χαρακτήρες διαστήματος
isupper() Επιστρέφει True εάν το string περιέχει μόνο κεφαλαίους χαρακτήρες

Ακολουθεί ένα παράδειγμα

>>> a = “computer”
>>> a.isalpha()
True
>>> a.isdigit()
False
>>> ‘xyz10’.isalnum()
True
>>> ‘xyz10@’.isalnum()
False
>>> ‘abc’.isalpha()
True
>>>’abc%’.isalpha()
False
>>> ‘34’.isdecimal()
True