Μεταβλητές (variables)
Οι ματαβλητές χρησιμοποιούνται για την προσωρινή αποθήκευση δεδομένων. Μία μεταβλητή μπορεί να περιέχει αριθμητικές τιμές, κείμενο, τιμές Boolean (true ή false) ή ακόμα τιμές τύπου List, Tuple, Dictionary κλπ.
Γενικά, στις μεταβλητές μπορούμε να αποθηκεύσουμε δεδομένα από τύπους δεδομένων που η γλώσσα υποστηρίζει. Έτσι για την Python έχουμε:
Τύποι δεδομέων (Standard Data Types)
Οι τύποι δεδομένων στην Python είναι:
- Αριθμητικές τιμές (Numeric Types)
- Συμβολοσειρές (Text Type, Strings)
- Τιμές bool (Boolean Type)
- Δυαδικές τιμές (Binary Types)
- Τιμή None (None Type)
- Συλλογές (Collections: list, tuple, dictionary, range, set, frozenset)
Δήλωση μεταβλητών
Για να δηλώσετε μια μεταβλητή δεν χρησιμοποιείτε κάποιο πρόθεμα όπως σε άλλες γλώσεες. Απλά γράφετε το όνομα της μεταβλητής και καταχωρείτε την αντίστοιχη τιμή. Για παράδειγμα:
word = 'word' # Συμβολοσειρά (string) counter = 100 # Αριθμητική ακέραιη τιμή miles = 10.5657 # Αριθμητική δεκαδική τιμή name = "Yiannis" # Συμβολοσειρά (string) isOn = True # Τιμή τύπου bool word = None # Τιμή τύπου None
Για να δηλώσετε περισσότερες μεταβλητές μπορείτε να χρησιμοποιήσετε εκφράσεις όπως:
a = b = c = 10
ή
a, b, c = 30, 40, "Anna"
Ο τύπος της μεταβλητής ορίζεται από τον τύπο της τιμής την οποία εκχωρούμε.
Διαγραφή μεταβλητών
Μπορείτε να διαγράψετε μια μεταβλητή με την εντολή del.
a = 10 print(a) # 10 del a print(a) # NameError: name 'a' is not defined
Για περισσότερες μεταβλητές:
del a, b, c
Εκτύπωση μεταβλητών
Μπορείτε να εκτυπώσετε και να δείτε τις τιμές των μεταβλητών με την εντολή print(). Για παράδειγμα:
print(word) # word print(counter) # 100 print(miles) # 10.5657 print(name) # Yiannis print(isOn) # True print(word) # None
Ανάγνωση τύπου μεταβλητής
Για να διαβάσετε τον τύπο μιας μεταβλητής χρησιμοποιείτε τη συνάρτηση type()
.
x = 15 y = "Mike" print(type(x)) # 'int' print(type(y)) # 'str'
Casting μεταβλητών
Με το casting μπορείτε να αλλάξετε τον τύπο σε περιπτώσεις όπως παρακάτω:
x = int(1) # x will be 1 y = int(2.8) # y will be 2 z = int("3") # z will be 3 x = float(1) # x will be 1.0 y = float(2.8) # y will be 2.8 z = float("3") # z will be 3.0 w = float("4.2") # w will be 4.2 x = str("s1") # x will be 's1' y = str(2) # y will be '2' z = str(3.0) # z will be '3.0'
Python Strings
Η συμβολοσειρά στην python μπορεί να καταχωρηθεί με διπλά ή μονά εισαγωγικά και θεωρείται ως ένας πίνακας στοιχείων όπου κάθε στοιχείο είναι ένας χαρακτήρας ή σύμβολο.
Ισχύουν τα παρακάτω:
str = 'Hello World!' print str # Εκτυπώνει ολόκληρη συμβολοσειρά print str[0] # Εκτυπώνει πρώτο χαρακτήρα print str[2:5] # Εκτυπώνει χαρακτήρες από 3ο μέχρι 5ο print str[2:] # Εκτυπώνει χαρακτήρες από 3ο μέχρι τέλος print str * 2 # Εκτυπώνει συμβολοσειρά δύο φορές print str + "TEST" # Εκτυπώνει συνενωμένες συμβολοσειρές
Με αποτέλεσμα:
Hello World! H llo llo World! Hello World!Hello World! Hello World!TEST
Η αρίθμηση των στοιχείων αρχίζει από το μηδέν.
F-Strings
Ένα string μπορεί να μετατραπεί σε f-string αν προσθέσουμε το γράμμα f μπροστά από το string:
name = f"My name is Nobody"
Με τα f-strings μπορούμε να έχουμε δυναμικά strings περνώντας placeholders μέσα στο κείμενο. Τα placeholders καταχωρούνται σε άγκιστρα και κρατάνε μεταβλητές, εντολές ή κάνουν κλήση σε συνάρτηση.
fname = "Bob" lname = "Marley" fullName = f"My full name is {fname} {lname}" print(fullName)
My full name is Bob Marley
Αριθμητικές τιμές σε δεκαδική μορφή
price = 100 cost = f"The cost is {price:.2f} euros" print(cost)
The cost is 100.00 euros
Πράξεις στο placeholder
price = 100 cost = f"The cost with vat is {price*1.24} euros" print(cost)
The cost with vat is 124.0 euros
ή
price = 100 vat = 0.24 cost = f"The cost is {price + (price * vat)} euros" print(cost)
The cost is 124.0 euros
Παράδειγμα με if ... else
price = 100 cost = f"This product is {'Expensive' if price>50 else 'Cheap'}" print(cost)
This product is Expensive
Παράδειγμα με κλήση συνάρτησης
def OddEven(n): if(n%2 == 1): return "Odd" else: return "Even" number = 121 result = f"The number {number} is {OddEven(number)}" print(result)
The number 121 is Odd
Τροποποιητές (Modifiers)
Δηλώνονται με :
αμέσως μετά το placeholder και αλλάζουν την μορφή της τιμής.
Το κόμμα για παράδειγμα εμφανίζει έναν αριθμό χωρισμένο σε χιλιάδες με κόμμα.
price = 123000 cost = f"The cost is {price:,} euros" print(cost)
The cost is 123,000 euros
Για περισσότερες επιλογές: python_string_formatting
Πριν την έκδοση 3.6 ίσχυε η εντολή format()
Μετατροπές τύπων μεταβλητών (Casting)
Υπάρχουν περιπτώσεις που μπορούμε να αλλάξουμε τον τύπο δεδομένων μιας μεταβλητής. Οι εντολές είναι:
int(x [,base]) #Converts x to an integer. The base specifies the base if x is a string. float(x) #Converts x to a floating-point number. complex(real [,imag]) #Creates a complex number. str(x) #Converts object x to a string representation. repr(x) #Converts object x to an expression string. eval(str) #Evaluates a string and returns an object. tuple(s) #Converts s to a tuple. list(s) #Converts s to a list. set(s) #Converts s to a set. dict(d) #Creates a dictionary. d must be a sequence of (key,value) tuples. frozenset(s) #Converts s to a frozen set. chr(x) #Converts an integer to a character unichr(x) #Converts an integer to a Unicode character ord(x) #Converts a single character to its integer value hex(x) #Converts an integer to a hexadecimal string oct(x) #Converts an integer to an octal string
Η ζωή μιας μεταβλητής
Κάθε μεταβλητή δεσμεύει μνήμη και για το λόγο αυτό θα πρέπει να χρησιμοποιείται μόνο όταν χρειάζεται. Έτσι κάθε μεταβλητή έχει ημερομηνία λήξεως και γεννιέται όταν την δηλώνουμε. Αν η μεταβλητή είναι δηλωμένη μέσα σε μία συνάρτηση, τότε ζει μέχρι να ολοκληρωθεί η εκτέλεση της συνάρτησης. Όταν η συνάρτηση τελειώσει, διαγράφεται και η μεταβλητή από την μνήμη. Στην περίπτωση αυτή, οι μεταβλητές αυτές λέγονται local (τοπικές). Αν οι μεταβλητές είναι δηλωμένες εκτός των συναρτήσεων τότε οι μεταβλητές αυτές λέγονται global (καθολικές ή παγκόσμιες ή ολικές). Οι global μεταβλητές ζουν όσο τρέχει η εφαρμογή.
x = "easy" def pyfun(): x = "fun" print("Python is " + x) # Python is fun pyfun() print("Python is " + x) # Python is easy
Ονόματα μεταβλητών
Για την ονομασία μεταβλητών ισχύουν τα παρακάτω:
- Το όνομα πρέπει να αρχίζει με γράμμα ή την κάτω παύλα (_)
- Το όνομα δεν μπορεί να αρχίζει με αριθμό
- Το όνομα μπορεί να περιέχει αλφαριθμητικούς χαρακτήρες και την κάτω παύλα (A-z, 0-9, και _ )
- Τα ονόματα είναι case-sensitive. Δηλαδή το
Big
είναι διαφορετικό από τοbig
- Το όνομα δεν μπορεί να είναι ίδιο με δεσμευμένη λέξη όπως
print