Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

4.3 Η Βιβλιοθήκη Python Standard Library

Στην Python, τα προγράμματα γράφονται συχνά συνδυάζοντας συναρτήσεις και κλάσεις που δημιουργείτε εσείς με προϋπάρχουσες συναρτήσεις και κλάσεις που ορίζονται σε μονάδες (modules) και πακέτα (packages), όπως αυτά στην Python Standard Library και άλλες βιβλιοθήκες. Ένας βασικός στόχος στον προγραμματισμό είναι να αποφεύγετε την “επανεφεύρεση του τροχού”

Τι Είναι ένα Module και ένα Package

  1. Module: Ένα module είναι ένα αρχείο που ομαδοποιεί σχετικές συναρτήσεις, δεδομένα και κλάσεις. Για παράδειγμα, η κλάση Decimal από το module decimal της Python Standard Library είναι πράγματι μια κλάση. Κάθε αρχείο πηγαίου κώδικα (.py) που δημιουργείτε είναι ένα module.
  2. Package: Ένα package ομαδοποιεί σχετικά modules. Ένα package μπορεί να περιέχει modules και υπο-packages, βοηθώντας στην οργάνωση των λειτουργικοτήτων μιας μεγάλης βιβλιοθήκης σε μικρότερα και πιο διαχειρίσιμα τμήματα.

Χρήση της Python Standard Library

Η Python Standard Library παρέχεται μαζί με την πυρήνα γλώσσα της Python και περιέχει λειτουργίες για μια ευρεία ποικιλία καθημερινών προγραμματιστικών εργασιών. Έχετε ήδη χρησιμοποιήσει λειτουργίες από τα modules decimal, statistics και random. Στη συνέχεια, θα δείτε περισσότερα παραδείγματα από άλλα modules της Python Standard Library, όπως:

  • collections: Δομές δεδομένων πέραν των λιστών, tuples, λεξικών και συνόλων.
  • csv: Επεξεργασία αρχείων τιμών διαχωρισμένων με κόμμα (CSV).
  • datetime: Διαχείριση ημερομηνιών και χρόνου.
  • math: Κοινές μαθηματικές σταθερές και λειτουργίες.
  • os: Διασύνδεση με το λειτουργικό σύστημα.
  • random: Παραγωγή ψευδο-τυχαίων αριθμών.
  • re: Κανονικές εκφράσεις για αναζήτηση μοτίβων.
  • sqlite3: Πρόσβαση σε βάσεις δεδομένων SQLite.
  • tkinter: Δημιουργία γραφικών διεπαφών χρήστη (GUIs).

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

Λειτουργίες της Βιβλιοθήκης math της Python

Η βιβλιοθήκη math της Python περιέχει μια σειρά από συναρτήσεις για την εκτέλεση διάφορων κοινών μαθηματικών υπολογισμών. Παρακάτω αναφέρονται μερικές από τις βασικές συναρτήσεις αυτής της βιβλιοθήκης και πώς μπορούν να χρησιμοποιηθούν.

Βασικές Συναρτήσεις της Βιβλιοθήκης math

  1. ceil(x): Στρογγυλοποιεί τον αριθμό x προς το μεγαλύτερο ακέραιο που δεν είναι μικρότερος του x. Παράδειγμα: math.ceil(9.2) επιστρέφει 10.
  2. floor(x): Στρογγυλοποιεί τον αριθμό x προς τον μικρότερο ακέραιο που δεν είναι μεγαλύτερος του x. Παράδειγμα: math.floor(9.2) επιστρέφει 9.
  3. sin(x), cos(x), tan(x): Υπολογίζουν το ημίτονο, το συνημίτονο και την εφαπτομένη του αριθμού x (σε ακτίνια). Παράδειγμα: math.sin(0.0) επιστρέφει 0.0.
  4. exp(x): Επιστρέφει τον αριθμό e (βάση των φυσικών λογαρίθμων) υψωμένο στην τιμή του x. Παράδειγμα: math.exp(1.0) επιστρέφει περίπου 2.718.
  5. log(x), log10(x): Υπολογίζουν τον φυσικό λογάριθμο (βάση e) και τον λογάριθμο βάσης 10 του x, αντίστοιχα. Παράδειγμα: math.log(2.718282) επιστρέφει περίπου 1.0.
  6. pow(x, y): Υπολογίζει τον x υψωμένο στην τιμή του y. Παράδειγμα: math.pow(2.0, 7.0) επιστρέφει 128.0.
  7. sqrt(x): Επιστρέφει την τετραγωνική ρίζα του x. Παράδειγμα: math.sqrt(900.0) επιστρέφει 30.0.
  8. fabs(x): Επιστρέφει την απόλυτη τιμή του x ως δεκαδικό αριθμό (float). Παράδειγμα: math.fabs(-5.1) επιστρέφει 5.1.
  9. fmod(x, y): Υπολογίζει το υπόλοιπο της διαίρεσης x/y ως δεκαδικό αριθμό. Παράδειγμα: math.fmod(9.8, 4.0) επιστρέφει 1.8.

Πώς να Χρησιμοποιήσετε τη Βιβλιοθήκη math

Για να χρησιμοποιήσετε αυτές τις συναρτήσεις, πρέπει πρώτα να εισάγετε τη βιβλιοθήκη math:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import math
import math
import math

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

Χρήση Συναρτήσεων της Βιβλιοθήκης math

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

Υπολογισμός της Τετραγωνικής Ρίζας

Η συνάρτηση sqrt υπολογίζει την τετραγωνική ρίζα ενός αριθμού. Για παράδειγμα, για να υπολογίσουμε την τετραγωνική ρίζα του 900:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import math
result = math.sqrt(900)
print(result) # Εμφανίζει 30.0
import math result = math.sqrt(900) print(result) # Εμφανίζει 30.0
import math

result = math.sqrt(900)
print(result)  # Εμφανίζει 30.0

Υπολογισμός της Απόλυτης Τιμής

Η συνάρτηση fabs επιστρέφει την απόλυτη τιμή ενός αριθμού ως δεκαδικό αριθμό (float). Για παράδειγμα, για την απόλυτη τιμή του -10:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import math
result = math.fabs(-10)
print(result) # Εμφανίζει 10.0
import math result = math.fabs(-10) print(result) # Εμφανίζει 10.0
import math

result = math.fabs(-10)
print(result)  # Εμφανίζει 10.0

Άλλες Χρήσιμες Συναρτήσεις της Βιβλιοθήκης math

  • ceil(x): Στρογγυλοποιεί προς τα πάνω τον αριθμό x.
  • floor(x): Στρογγυλοποιεί προς τα κάτω τον αριθμό x.
  • sin(x), cos(x), tan(x): Υπολογίζουν το ημίτονο, το συνημίτονο και την εφαπτομένη του x αντίστοιχα.
  • exp(x): Υπολογίζει τον αριθμό e υψωμένο στην τιμή του x.
  • log(x), log10(x): Υπολογίζουν τους λογαρίθμους του x (φυσικούς και δεκαδικούς).
  • pow(x, y): Υπολογίζει τον x υψωμένο στην τιμή του y.
  • fmod(x, y): Υπολογίζει το υπόλοιπο της διαίρεσης x/y ως δεκαδικό αριθμό.

Αυτές οι συναρτήσεις μπορούν να είναι πολύ χρήσιμες σε ποικίλες εφαρμογές, από απλούς μαθηματικούς υπολογισμούς μέχρι πιο πολύπλοκες επιστημονικές εφαρμογές.

Χρήση Επιλεγμένων Ορισμάτων (Keyword Arguments) σε Κλήσεις Συναρτήσεων

Οι επιλεγμένοι ορισμοί (keyword arguments) επιτρέπουν τη μεταβίβαση ορισμάτων σε συναρτήσεις με οποιαδήποτε σειρά, προσδίδοντας μεγαλύτερη ευελιξία και διαφάνεια στις κλήσεις συναρτήσεων.

Πώς Λειτουργούν οι Επιλεγμένοι Ορισμοί

Κάθε επιλεγμένο όρισμα σε μια κλήση συνάρτησης έχει τη μορφή parametername=value. Αυτό σημαίνει ότι καθορίζετε συγκεκριμένα ποια τιμή αντιστοιχεί σε ποια παράμετρο, ανεξάρτητα από τη θέση του ορίσματος στη λίστα ορισμάτων της συνάρτησης.

Παράδειγμα Χρήσης Επιλεγμένων Ορισμάτων

Για παράδειγμα, αν ορίσουμε μια συνάρτηση για τον υπολογισμό του εμβαδού ενός ορθογωνίου:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
def rectangle_area(length, width):
"""Υπολογίζει το εμβαδόν ενός ορθογωνίου."""
return length * width
def rectangle_area(length, width): """Υπολογίζει το εμβαδόν ενός ορθογωνίου.""" return length * width
def rectangle_area(length, width):
    """Υπολογίζει το εμβαδόν ενός ορθογωνίου."""
    return length * width

Μπορούμε να καλέσουμε τη συνάρτηση χρησιμοποιώντας επιλεγμένους ορισμούς:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
area = rectangle_area(length=5, width=10)
print("Εμβαδόν:", area)
# Η σειρά των ορισμάτων δεν έχει σημασία
area = rectangle_area(width=10, length=5)
print("Εμβαδόν:", area)
area = rectangle_area(length=5, width=10) print("Εμβαδόν:", area) # Η σειρά των ορισμάτων δεν έχει σημασία area = rectangle_area(width=10, length=5) print("Εμβαδόν:", area)
area = rectangle_area(length=5, width=10)
print("Εμβαδόν:", area)

# Η σειρά των ορισμάτων δεν έχει σημασία
area = rectangle_area(width=10, length=5)
print("Εμβαδόν:", area)

Σημαντικές Παρατηρήσεις

  1. Σειρά Ορισμάτων: Στις κλήσεις συναρτήσεων με επιλεγμένους ορισμούς, η σειρά των ορισμάτων δεν είναι σημαντική.
  2. Διαχωρισμός με Θέση και Επιλεγμένους Ορισμούς: Οι επιλεγμένοι ορισμοί πρέπει να τοποθετούνται μετά από ορίσματα που έχουν περάσει βάση θέσης.
  3. Βελτίωση Διαβασιμότητας: Οι επιλεγμένοι ορισμοί βοηθούν στη βελτίωση της κατανόησης και της διαβασιμότητας των κλήσεων συναρτήσεων, ειδικά όταν υπάρχουν πολλοί ορισμοί.

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

Συναρτήσεις με Αυθαίρετες Λίστες Ορισμάτων

Οι συναρτήσεις με αυθαίρετες λίστες ορισμάτων μπορούν να δεχτούν οποιονδήποτε αριθμό ορισμάτων. Αυτό είναι χρήσιμο για συναρτήσεις όπως οι ενσωματωμένες min και max, οι οποίες μπορούν να δεχτούν πολλαπλά ορίσματα.

Παράδειγμα Χρήσης της min

Για παράδειγμα, η κλήση της συνάρτησης min με πολλαπλά ορίσματα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
min_result = min(88, 75, 96, 55, 83)
print(min_result) # Εκτυπώνει την ελάχιστη τιμή
min_result = min(88, 75, 96, 55, 83) print(min_result) # Εκτυπώνει την ελάχιστη τιμή
min_result = min(88, 75, 96, 55, 83)
print(min_result)  # Εκτυπώνει την ελάχιστη τιμή

Ορισμός Συνάρτησης με Αυθαίρετη Λίστα Ορισμάτων

Για να ορίσετε μια συνάρτηση που δέχεται αυθαίρετο αριθμό ορισμάτων, χρησιμοποιείτε τον τελεστή * πριν από το όνομα της παραμέτρου. Αυτό σημαίνει ότι η Python θα συσκευάσει όλα τα πρόσθετα ορίσματα σε ένα tuple. Ας δούμε ένα παράδειγμα με την ορισμό μιας συνάρτησης average:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
def average(*args):
"""Υπολογίζει τον μέσο όρο των παρεχόμενων αριθμών."""
return sum(args) / len(args) if args else float('nan')
# Κλήσεις της συνάρτησης average με διαφορετικό αριθμό ορισμάτων
print(average(10, 20, 30)) # Μέσος όρος των 10, 20, 30
print(average(25, 35)) # Μέσος όρος των 25, 35
def average(*args): """Υπολογίζει τον μέσο όρο των παρεχόμενων αριθμών.""" return sum(args) / len(args) if args else float('nan') # Κλήσεις της συνάρτησης average με διαφορετικό αριθμό ορισμάτων print(average(10, 20, 30)) # Μέσος όρος των 10, 20, 30 print(average(25, 35)) # Μέσος όρος των 25, 35
def average(*args):
    """Υπολογίζει τον μέσο όρο των παρεχόμενων αριθμών."""
    return sum(args) / len(args) if args else float('nan')

# Κλήσεις της συνάρτησης average με διαφορετικό αριθμό ορισμάτων
print(average(10, 20, 30))  # Μέσος όρος των 10, 20, 30
print(average(25, 35))      # Μέσος όρος των 25, 35

Σημειώσεις

  1. Αποφυγή Διαίρεσης με Μηδέν: Εάν το args είναι άδειο, η συνάρτηση θα επιστρέψει float('nan') για να αποφευχθεί ένα σφάλμα διαίρεσης με μηδέν.
  2. Χειρισμός Πολλαπλών Ορισμάτων: Οι παράμετροι με τον τελεστή * πρέπει να τοποθετούνται μετά από οποιουσδήποτε άλλους παραμέτρους.
  3. Προσβασιμότητα Στοιχείων Τuple: Τα στοιχεία του tuple args μπορούν να προσπελαστούν απευθείας, χωρίς ανάγκη “αποσυσκευάσεως” των ορισμάτων.

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

Πέρασμα Στοιχείων μιας Συλλογής που Μπορεί να Διασχιστεί ως Ξεχωριστά Ορίσματα σε Συνάρτηση

Μπορείτε να αποσυσκευάσετε τα στοιχεία μιας συλλογής, όπως ενός tuple ή μιας λίστας, για να τα περάσετε ως ξεχωριστά ορίσματα σε μια συνάρτηση. Ο τελεστής *, όταν εφαρμόζεται σε ένα στοιχείο της συλλογής σε μια κλήση συνάρτησης, αποσυσκευάζει τα στοιχεία της.

Παράδειγμα Αποσυσκευάσεως και Περάσματος Στοιχείων

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
def average(*args):
"""Υπολογίζει τον μέσο όρο των παρεχόμενων αριθμών."""
return sum(args) / len(args) if args else float('nan')
grades = [88, 75, 96, 55, 83]
# Χρησιμοποιούμε την έκφραση *grades για να αποσυσκευάσουμε τα στοιχεία της λίστας
# και να τα περάσουμε ως ξεχωριστά ορίσματα στη συνάρτηση average
avg_grade = average(*grades)
print("Μέσος όρος βαθμολογιών:", avg_grade)
def average(*args): """Υπολογίζει τον μέσο όρο των παρεχόμενων αριθμών.""" return sum(args) / len(args) if args else float('nan') grades = [88, 75, 96, 55, 83] # Χρησιμοποιούμε την έκφραση *grades για να αποσυσκευάσουμε τα στοιχεία της λίστας # και να τα περάσουμε ως ξεχωριστά ορίσματα στη συνάρτηση average avg_grade = average(*grades) print("Μέσος όρος βαθμολογιών:", avg_grade)
def average(*args):
    """Υπολογίζει τον μέσο όρο των παρεχόμενων αριθμών."""
    return sum(args) / len(args) if args else float('nan')

grades = [88, 75, 96, 55, 83]

# Χρησιμοποιούμε την έκφραση *grades για να αποσυσκευάσουμε τα στοιχεία της λίστας
# και να τα περάσουμε ως ξεχωριστά ορίσματα στη συνάρτηση average
avg_grade = average(*grades)
print("Μέσος όρος βαθμολογιών:", avg_grade)

Στο παράδειγμα αυτό, η έκφραση *grades στην κλήση της συνάρτησης average αποσυσκευάζει τα στοιχεία της λίστας grades και τα περνάει ως ξεχωριστά ορίσματα. Αυτή η τεχνική είναι ιδιαίτερα χρήσιμη όταν θέλουμε να διαχειριστούμε με ευελιξία μεγάλο αριθμό δεδομένων ή όταν τα δεδομένα μας είναι ήδη οργανωμένα σε μια συλλογή.

Μέθοδοι: Συναρτήσεις που Ανήκουν σε Αντικείμενα

Μια μέθοδος είναι ουσιαστικά μια συνάρτηση που καλείται σε ένα αντικείμενο, χρησιμοποιώντας τη μορφή object_name.method_name(arguments). Οι μέθοδοι παρέχουν λειτουργίες ή ενέργειες που είναι σχετικές με το αντικείμενο στο οποίο ανήκουν.

Παράδειγμα Χρήσης Μεθόδων σε Αντικείμενα

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
s = 'Hello'
# Καλούμε τη μέθοδο lower στο αντικείμενο s
lowercase_s = s.lower()
print(lowercase_s) # Εκτυπώνει 'hello'
# Καλούμε τη μέθοδο upper στο αντικείμενο s
uppercase_s = s.upper()
print(uppercase_s) # Εκτυπώνει 'HELLO'
s = 'Hello' # Καλούμε τη μέθοδο lower στο αντικείμενο s lowercase_s = s.lower() print(lowercase_s) # Εκτυπώνει 'hello' # Καλούμε τη μέθοδο upper στο αντικείμενο s uppercase_s = s.upper() print(uppercase_s) # Εκτυπώνει 'HELLO'
s = 'Hello'

# Καλούμε τη μέθοδο lower στο αντικείμενο s
lowercase_s = s.lower()
print(lowercase_s)  # Εκτυπώνει 'hello'

# Καλούμε τη μέθοδο upper στο αντικείμενο s
uppercase_s = s.upper()
print(uppercase_s)  # Εκτυπώνει 'HELLO'

Στο παράδειγμα αυτό, το αντικείμενο s είναι μια συμβολοσειρά με τιμή ‘Hello’. Χρησιμοποιούμε τις μεθόδους lower() και upper() που ανήκουν στο αντικείμενο s για να παράγουμε νέες συμβολοσειρές σε πλήρως πεζά και κεφαλαία γράμματα αντίστοιχα. Σημαντικό είναι να σημειώσουμε ότι η αρχική μεταβλητή s παραμένει αμετάβλητη.

Σημασία των Μεθόδων

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

10 Ιανουαρίου, 2024
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων