Μαθηματικές πράξεις στην Python

Τύποι δεδομένων της Python

Όπως είπαμε, οι μεταβλητές είναι ονόματα των θέσεων μνήμης στις οποίες αποθηκεύονται δεδομένα. Τα δεδομένα αυτά μπορεί να είναι του τύπου: Αριθμοί – συμβολοσειρές – Λίστες – Λεξικά – Πλειάδες – Σύνολα και Αρχεία.

Οι μεταβλητές δημιουργούνται την στιγμή που τους ανατίθονται δεδομένα. Ο τύπος της μεταβλητής που θα δημιουργηθεί είναι αυτός των δεδομένων που εκχωρούνται στη μεταβλητή. Για να δούμε τον τύπο δεδομένων μιας μεταβλητής χρησιμοποιούμε την εντολή type(<μεταβλητή>), όπως στο ακόλουθο παράδειγμα:

>>>a=7
>>>type(a)
<class ‘int’>
>>>b=3.9
>>>type(b)
<class ‘float’>
>>>c=[3, 7.9, ‘op’]
>>>type(c)
<class ‘list’>

Η Python υποστηρίζει τους ακόλουθους τύπους αριθμητικών δεδομένων:
int                  προσημασμένος ακέραιος
long               μεγάλος ακέραιος
float              αριθμός κινητής υποδιαστολής
complex number    μιγαδικός αριθμός

Οι αριθμητικές τιμές μπορούν να παρασταθούν ως δεκαδικοί, οκταδικοί, δυαδικοί ή δεκαεξαδικοί. Οι μεγάλοι ακέραιοι σημειώνονται με το κεφαλαίο γράμμα L.

Μερικά παραδείγματα αριθμών δείχνονται ακολούθως:

Ακέραιοι:
120 δεκαδικός,
-83 δεκαδικός,
0x32 δεκαεξαδικός,
0x1A δεκαεξαδικός
0b01001100  δυαδικός,
0ο5231  οκταδικός,
2578295088L long

Αριθμοί κινητής υποδιαστολής:
4.233 θετικός αριθμός
-39.7 αρνητικός αριθμός
27.34Ε4 εκθετικός αριθμός

Μιγαδικοί αριθμοί:
Οι μιγαδικοί αριθμοί μπορούν να παρασταθούν με την συνάρτηση complex( , ) ή με την χρήση της φανταστικής μονάδας j:
complex(28.7, 3.1) = 28.7 + 3.1j
complex(0.91, 5.1) = 0.91 + 5.1j
complex(0, 25.6) = 25.6j

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

sum = 56
a = 0

Μπορούμε να διαγράψουμε μια μεταβλητή – αντικείμενο με την εντολή del

del sum, a

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

a = b = c = d = 0

Παρόμοια μπορούμε να έχουμε μαζική εκχώρηση τιμών σε μεταβλητές όπως π.χ.:

a, b, c = 9, 15, 7

Το οποίο είναι ισοδύναμο με

a = 9
b = 15
c = 7

Αριθμητικές πράξεις

Στην Python μπορούμε να κάνουμε τις συνήθης αριθμητικές πράξεις μεταξύ μεταβλητών και αριθμητικών τιμών, δηλαδή τις:

+ πρόσθεση
– αφαίρεση
* πολλαπλασιασμός
/ διαίρεση
** υψωση σε δύναμη
% υπόλοιπο διαίρεσης

#  Παραδείγματα
>>> a = 2
>>> b = 4
>>> c = 8
>>> a + b + c
14
>>> a + b - c
-2
>>> a * c
16
>>> c / a * b
16.0
>>> b ** a
16
>>> d = 3
>>> c % d
2

Επίσης μπορούμε να κάνουμε πράξεις σε επίπεδο bit, δηλαδή τις:

| bitwise OR
& bitwise AND
^ bitwise exclusive-or
>> shift right
<< shift left

# παραδείγματα
>>> x = 0b11100011
>>> y = 0b10101101
>>> bin(x << 2)
'0b1110001100'
>>> bin(y >> 3)
'0b10101'
>>> bin(x | y)
'0b11101111'
>>> bin(x & y)
'0b10100001'
>>> bin(x ^ y)
'0b1001110'

Μερικές built-in συναρτήσεις της Python είναι οι ακόλουθες:

pow(x, y) ύψωση του πραγματικού αριθμού x στην δύναμη y
abs(x) απόλυτη τιμή του πραγματικού αριθμού x
round(x, n) στρογγυλοποίηση του πραγματικού αριθμού x σε ν δεκαδικά ψηφία
int(x) μετατροπή του πραγματικού αριθμού x σε ακέραιο. (αποκόπτει τα δεκαδικά ψηφία)
int(‘n’) μετατροπή της συμβολοσειράς που περιέχει ακέραιο στον αντίστοιχο ακέραιο αριθμό.
float(‘x’) μετατροπή της συμβολοσειράς που περιέχει αριθμό κινητής υποδιαστολής στον αντίστοιχο αριθμό.
hex(n) ο ισοδύναμος δεκαεξαδικός αριθμός του ακεραίου αριθμού n
bin(n) ο ισοδύναμος δυαδικός αριθμός του ακεραίου αριθμού n

# παραδείγματα
>>> x = -2.0
>>> y = 3
>>> pow(x, y)
-8
>>> abs(x)
2.0
>>> round(1.1234, 2)
1.12
>>> round(1.1278, 2)
1.13
>>> z = 5.789
>>> int(z)
5
>>> int('589')
589
>>> float('23.897')
23.897
>>> h = 7953
>>> hex(h)
'0x1f11'
>>> bin(h)
'0b1111100010001'

Η βιβλιοθήκη math

Στην Python η βιβλιοθήκη math περιέχει συναρτήσεις με τις οποίες μπορούμε να κάνουμε μαθηματικές πράξεις όπως λογαριθμητικές πράξεις, τριγωνομετρικές πράξεις, ευρεση τετραγωνικής ρίζας κ.τ.λ. Για να μπορέσουμε να χρησιμοποιήσουμε αυτές τις συναρτήσεις θα πρέπει να εισάγουμε την βιβλιοθήκη στην αρχή του κώδικα μας με την εντολή:

import math

παρακάτω δίνουμε τις κυριότερες συναρτήσεις της βιβλιοθήκης math

math.pi    δίνει τον αριθμό π
math.e      δίνει τον αριθμό e
math.floor(x)  δίνει τον μεγαλύτερο ακέραιο όχι μεγαλύτερο από τον αριθμό x
math.cell(x)  δίνει τον μικρότερο ακέραιο όχι μικρότερο από τον x
math.exp(x)  ύψωση του αριθμού e στην δύναμη x
math.factorial(n) δίνει το παραγοντικό του ακεραίου n
math.log(x) δίνει το φυσικό λογάριθμο (βάση e) του πραγματικού αριθμού x
math.log10(x)  δίνει το λογάριθμο με βάση το 10 του πραγματικού αριθμού x
math.sqrt(x)  δίνει την τετραγωνική ρίζα του αριθμού x.

>>> import math
>>> math.pi
3.141592653589793
>>> math.e
2.718281828459045
>>> math.floor(-3.5)
-4
>>> math.floor(3.5)
3
>>> math.ceil(-3.5)
-3
>>> math.ceil(3.5)
4
>>> math.factorial(4)
24
>>> math.log10(1000)
3
>>> math.sqrt(16)
4.0

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

math.acos(x)  δίνει το τόξο συνημιτόνου σε ακτίνια του αριθμού x  (-1≤x≤1)
math.asin(x)  δίνει το τόξο ημιτόνου σε ακτίνια του αριθμού x  (-1≤x≤1)
math.atan(x)  δίνει το τόξο εφαπτομένης σε ακτίνια για τον αριθμό x (για οποιαδήποτε αριθμό x θετικό ή αρνητικό).
math.cos(x)  δίνει το συνημίτονο του αριθμού x εκφρασμένος σε ακτίνια.
math.sin(x)  δίνει το ημίτονο του αριθμού x εκφρασμένος σε ακτίνια.
math.tan(x)  δίνει την εφαπτομένη του αριθμού x εκφρασμένος σε ακτίνια.
math.degrees(x)  μετατρέπει τη γωνία x εκφρασμένης σε ακτίνια σε γωνίας εκφρασμένης σε μοίρες.
math.radians(x) μετατρέπει τη γωνία x εκφρασμένης σε μοίρες σε γωνία εκφρασμένης σε ακτίνια.

>>> import math
>>> math.acos(1)# Επειδή το συνημίτονο των 0 ακτινίων είναι 1 τότε το τόξο συνημιτόνου
                #του αριθμού 1 ειναι 0.0
0.0
>>> math.asin(1)
1.5707963267948966
>>> math.degrees(1.5707963267948966)
90.0
>>> math.cos(math.pi/3) # Το συνημίτονο του αριθμού π/3 είναι 0.5
0.50000000000000000001
>>> math.sin(math.radians(30))# Το ημίτονο της γωνίας 30 μοιρών είναι ίσο με 0.5
0.49999999999999999994
>>> math.tan(math.radians(45)) # Η εφαπτομένη της γωνίας 45 εκφρασμένης σε μοίρες είναι ίσο με 1
0.9999999999999999999