Πλειάδες (tuples)
Ομαδοποίηση στοιχείων
Μία σειρά στοιχείων (αριθμών, συμβολοσειρών κλπ) μπορούν να ομαδοποιηθούν κάτω από ένα όνομα σε μία δομή η οποία ονομάζεται πλειάδα. Παραδείγματα:
>>> info = ('Nick',22)
>>> cities = ('Agios','Heraklion','Rethymno','Chania')
Μπορούμε να δώσουμε πολλές τιμές σε μία μεταβλητή, οπότε αυτή είναι μία πλειάδα:
>>> t1 = 1,2,'three'
>>> print(t1)
(1, 2, 'three')
Δείκτες: Μπορούμε να ανακτήσουμε ένα από τα στοιχεία της πλειάδας χρησιμοποιώντας το δείκτη του. Η δεικτοδότηση είναι ακριβώς όπως στις συμβολοσειρές.
>>> t1[1]
2
>>> t1[-1]
'three'
slicing: Μπορούμε να ανακτήσουμε ένα τμήμα της πλειάδας χρησιμοποιώντας ένα εύρος δεικτών. Το αποτέλεσμα είναι μία νέα πλειάδα.
>>> t1[0:2]
(1, 2)
Βασικές λειτουργίες
Μπορούμε να χρησιμοποιήσουμε τα σύμβολα της πρόσθεσης (+) για πλειάδες:
>>> t1 = (1,2,'three')
>>> t2 = ('a','b')
>>> t1 + t2
(1, 2, 'three', 'a', 'b')
καθώς επίσης και του πολλαπλασιασμού (*):
>>> 2*t1
(1, 2, 'three', 1, 2, 'three')
Μία πλειάδα μπορεί να περιέχει πλειάδες.
>>> t = (t1,t2)
>>> print(t
((1, 2, 'three'), ()'a', 'b'))
Ειδικές περιπτώσεις πλειάδων
Έχουμε την κενή πλειάδα.
>>> t = ()
Έχουμε την πλειάδα με ένα στοιχείο (προσέξτε το κόμμα!).
>>> t = (1,)
Παράδειγμα. Βρείτε τους διαιρέτες ενός ακεραίου.
def findDivisors(n):
divisors = ()
for i in range(1,n+1):
if n%i == 0: divisors = divisors + (i,)
return divisors
x = 20
result = findDivisors(x)
print(result)
Μη-μεταλλαξιμότητα
Δεν μπορούμε να αλλάξουμε ένα (ή ορισμένα) από τα στοιχεία μίας πλειάδας (οι πλειάδες δεν είναι μεταλλάξιμες).
Πολλαπλές αναθέσεις τιμών
Μπορούμε να μεταφέρουμε τις τιμές μίας πλειάδας μήκους n σε ισάριθμες μεταβλητές.
>>> t = (1, 4, 8)
>>> x,y,z = t
>>> print(x)
>>> 1
>>> print(x,y,z)
1 4 8
Μπορούμε να δώσουμε τιμές σε σειρά μεταβλητών.
>>> x,y,z = (1, 4, 8)
>>> print(x)
>>> 1
>>> print(x,y,z)
1 4 8
Τα παραπάνω είναι πολύ χρήσιμα όταν μία συνάρτηση επιστρέφει σειρά μεταβλητών (αποτελεσμάτων).
Παράδειγμα. Σώμα μάζας $m$ εκτοξεύεται προς τα επάνω με ταχύτητα $v_0$. Βρείτε την ταχύτητα και θέση του για διαδοχικούς χρόνους.
import math
def fallingParticle(t):
global v0,g
velocity = v0 - g*t
position = v0*t - 0.5*g*t**2
return velocity,position
global v0,g
v0 = 20.0
g = 10.0
time = 0.0
while time < 2.0:
v,y = fallingParticle(time)
print(time,v,y)
time += 0.2
Συναρτήσεις με εφαρμογή σε πλειάδες
t1 = (1,3,6,8)
Μπορούμε να πάρουμε:
- Τον αριθμό στοιχείων πλειάδας:
len(t1)
. - Το μέγιστο και ελάχιστο στοιχείο πλειάδας (όταν αυτά είναι συγκρίσιμα μεταξύ τους):
max(t1), min(t1)
.
Παράδειγμα. Κατασκευάστε μία πλειάδα η οποία θα περιέχει την ακολουθία αριθμών Fibonacci $F_i, i=1,\ldots, n$ για έναν θετικό ακέραιο $n$ (την οποία θα εισάγετε όταν εκτελείται το πρόγραμμα).
Μελέτη
Βιβλιογραφία
- J.V. Guttag, Υπολογισμοί και προγραμματισμός με την python (Παράγραφος 5.1).
- Δημήτριος Καρολίδης, Μαθαίνετε εύκολα python (Παράγραφος 4.3) (Εκδόσεις Καρολίδη, 2016).
- Κ. Μαγκούτης, Χ. Νικολάου, Εισαγωγή στον αντικειμενοστραφή προγραμματισμό με Python, (Αποθετήριο "Κάλλιπος", 2016) - Κεφάλαιο 6. Συμβολοσειρές, λίστες, πλειάδες, λεξικά.