2.6 Λήψη Αποφάσεων: Η Δήλωση if και Οι Τελεστές Σύγκρισης στην Python

Η δήλωση if στην Python χρησιμοποιείται για λήψη αποφάσεων. Όταν η συνθήκη που δίνεται στην if είναι αληθής (True), ο κώδικας που βρίσκεται μέσα στην if εκτελείται. Αν η συνθήκη είναι ψευδής (False), ο κώδικας αγνοείται.

True και False στην Python και Οι Τελεστές Σύγκρισης

Στην Python, τα True και False είναι λέξεις-κλειδιά (keywords) που αντιπροσωπεύουν τις λογικές τιμές αληθής και ψευδής αντίστοιχα. Είναι σημαντικό να σημειωθεί ότι και τα δύο αρχίζουν με κεφαλαίο γράμμα. Η χρήση μιας λέξης-κλειδιού ως αναγνωριστικό (identifier) στην Python οδηγεί σε σφάλμα σύνταξης (SyntaxError).

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

  • >: Μεγαλύτερο από (x > y: ο x είναι μεγαλύτερος από τον y)
  • <: Μικρότερο από (x < y: ο x είναι μικρότερος από τον y)
  • >=: Μεγαλύτερο ή ίσο με (x >= y: ο x είναι μεγαλύτερος ή ίσος με τον y)
  • <=: Μικρότερο ή ίσο με (x <= y: ο x είναι μικρότερος ή ίσος με τον y)
  • ==: Ισότητα (x == y: ο x είναι ίσος με τον y)
  • !=: Μη ισότητα (x != y: ο x δεν είναι ίσος με τον y)

Οι τελεστές σύγκρισης χρησιμοποιούνται για να συγκρίνουν τιμές και να παράγουν μια λογική τιμή (True ή False) ως αποτέλεσμα. Αυτές οι συγκρίσεις είναι θεμελιώδεις για τη λήψη αποφάσεων στην Python, ειδικά όταν χρησιμοποιούνται με δηλώσεις όπως η if.

Προτεραιότητα Τελεστών και Σφάλματα Σύνταξης στην Python

Στην Python, οι τελεστές >, <, >= και <= έχουν όλοι την ίδια προτεραιότητα, δηλαδή εκτελούνται πριν από τους τελεστές == και !=, οι οποίοι επίσης έχουν την ίδια προτεραιότητα μεταξύ τους, αλλά χαμηλότερη από αυτή των >, <, >= και <=.

Ένα συνηθισμένο σφάλμα σύνταξης συμβαίνει όταν τοποθετούνται κενά ανάμεσα στα σύμβολα των τελεστών ==, !=, >= και <=. Για παράδειγμα, η παρακάτω εντολή θα προκαλέσει σφάλμα σύνταξης:

7 > = 4

Το σωστό είναι να γραφούν χωρίς κενά, όπως:

7 >= 4

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

Λήψη Αποφάσεων με τη Δήλωση if: Εισαγωγή στα Scripts στην Python

Η δήλωση if στην Python χρησιμοποιεί μια συνθήκη για να αποφασίσει εάν θα εκτελέσει μια ή περισσότερες δηλώσεις. Μπορούμε να διαβάσουμε δύο ακέραιους αριθμούς από τον χρήστη και να τους συγκρίνουμε χρησιμοποιώντας συνεχόμενες δηλώσεις if, από μία για κάθε τελεστή σύγκρισης. Αν η συνθήκη σε μια δήλωση if είναι αληθής (True), η αντίστοιχη εντολή print εκτελείται· διαφορετικά, παραλείπεται.

Η διαδραστική λειτουργία του IPython είναι χρήσιμη για την εκτέλεση σύντομων αποσπασμάτων κώδικα και την άμεση παρατήρηση των αποτελεσμάτων. Όταν έχετε πολλές δηλώσεις για να εκτελέσετε ως ομάδα, συνήθως τις γράφετε ως ένα σενάριο (script) που αποθηκεύεται σε ένα αρχείο με κατάληξη .py (συντομογραφία για Python). Παρακάτω ακολουθεί ένα παράδειγμα:

# Comparing integers using if statements and comparison operators

# Λήψη δύο ακέραιων από τον χρήστη
number1 = int(input("Enter the first integer: "))
number2 = int(input("Enter the second integer: "))

# Σύγκριση των αριθμών και εκτύπωση των αποτελεσμάτων
if number1 == number2:
    print(f"{number1} is equal to {number2}")
if number1 != number2:
    print(f"{number1} is not equal to {number2}")
if number1 < number2:
    print(f"{number1} is less than {number2}")
if number1 > number2:
    print(f"{number1} is greater than {number2}")
if number1 <= number2:
    print(f"{number1} is less than or equal to {number2}")
if number1 >= number2:
    print(f"{number1} is greater than or equal to {number2}")

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

Ας υποθέσουμε ότι εκτελείτε το παραπάνω σενάριο (script) και εισάγετε δύο ακέραιους αριθμούς όταν ζητηθούν. Θα σας παρουσιάσω μερικά πιθανά αποτελέσματα βάσει διαφορετικών εισόδων:

  1. Περίπτωση όπου οι δύο αριθμοί είναι ίσοι: Είσοδος:
   Enter the first integer: 10
   Enter the second integer: 10

Αποτέλεσμα:

   10 is equal to 10
   10 is less than or equal to 10
   10 is greater than or equal to 10
  1. Περίπτωση όπου ο πρώτος αριθμός είναι μεγαλύτερος από τον δεύτερο: Είσοδος:
   Enter the first integer: 15
   Enter the second integer: 10

Αποτέλεσμα:

   15 is not equal to 10
   15 is greater than 10
   15 is greater than or equal to 10
  1. Περίπτωση όπου ο πρώτος αριθμός είναι μικρότερος από τον δεύτερο: Είσοδος:
   Enter the first integer: 5
   Enter the second integer: 10

Αποτέλεσμα:

   5 is not equal to 10
   5 is less than 10
   5 is less than or equal to 10

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

Σχόλια στην Python

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

  1. Μονογραμμικά Σχόλια (Single-line Comments): Τα μονογραμμικά σχόλια αρχίζουν με το σύμβολο #. Όλα όσα γράφονται μετά από το # σε μια γραμμή αγνοούνται από την Python κατά την εκτέλεση του κώδικα. Παράδειγμα:
   # Αυτό είναι ένα μονογραμμικό σχόλιο
   print("Hello Worls")  # Σχόλιο μετά τον κώδικα
  1. Πολυγραμμικά Σχόλια (Multi-line Comments): Αν και η Python δεν έχει ειδική σύνταξη για πολυγραμμικά σχόλια, μπορείτε να χρησιμοποιήσετε συνεχόμενες γραμμές μονογραμμικών σχολίων ή να χρησιμοποιήσετε triple-quoted strings (τριπλά εισαγωγικά) για να δημιουργήσετε ένα block που λειτουργεί ως πολυγραμμικό σχόλιο. Παράδειγμα με συνεχόμενα μονογραμμικά σχόλια:
   # Αυτό είναι ένα παράδειγμα
   # πολυγραμμικού σχολίου
   # που χρησιμοποιεί συνεχόμενα μονογραμμικά σχόλια

Παράδειγμα με triple-quoted strings:

   """
   Αυτό το block κώδικα είναι περικλεισμένο
   μέσα σε triple-quoted strings και
   λειτουργεί ως πολυγραμμικό σχόλιο.
   """

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

Docstrings στην Python

Τα Docstrings στην Python είναι μια τεκμηρίωση κειμένου που προστίθεται στον κώδικα για να περιγράψει τη λειτουργία μιας συνάρτησης, μιας κλάσης, ενός module ή ενός script. Είναι πολύ χρήσιμα για να παρέχουν σαφήνεια και κατανόηση στον κώδικα, καθώς και για να βοηθήσουν άλλους προγραμματιστές να κατανοήσουν τι κάνει ένα συγκεκριμένο τμήμα του κώδικα.

Ένα docstring γράφεται ως πολυγραμμικό string, δηλαδή μέσα σε τριπλά εισαγωγικά (είτε μονά είτε διπλά), και τοποθετείται αμέσως κάτω από την ορισμένη συνάρτηση, κλάση ή module που περιγράφει.

Παράδειγμα με συνάρτηση:

def add(a, b):
    """Πρόσθεση δύο αριθμών.

    Παράμετροι:
    a: ο πρώτος αριθμός
    b: ο δεύτερος αριθμός

    Επιστρέφει:
    Το άθροισμα των a και b.
    """
    return a + b

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

Τα docstrings είναι επίσης προσβάσιμα στο runtime μέσω της built-in συνάρτησης help() ή της ιδιότητας __doc__ της συνάρτησης ή της κλάσης. Για παράδειγμα:

print(add.__doc__)

ή

help(add)

Αυτό θα εμφανίσει το docstring της συνάρτησης add. Η συνήθης πρακτική είναι να γράφετε docstrings για όλες τις δημόσιες συναρτήσεις, κλάσεις και modules που δημιουργείτε, για να καταστήσετε τον κώδικά σας πιο κατανοητό και ευχάριστο στη χρήση.

Κενές Γραμμές στην Python

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

Ας δούμε μερικές καλές πρακτικές για τη χρήση κενών γραμμών:

  1. Μεταξύ Ορισμών Συναρτήσεων και Κλάσεων: Συνήθως, τοποθετείται μία ή δύο κενές γραμμές μεταξύ των ορισμών των συναρτήσεων και των κλάσεων.
   def function_one():
       pass

   def function_two():
       pass
  1. Μέσα σε Κλάσεις: Μία κενή γραμμή μεταξύ των μεθόδων μιας κλάσης βοηθάει στη διατήρηση της οργάνωσης και της καθαρότητας του κώδικα.
   class MyClass:
       def method_one(self):
           pass

       def method_two(self):
           pass
  1. Πριν από Σχόλια: Ενίοτε, μια κενή γραμμή πριν από ένα σχόλιο μπορεί να βοηθήσει στην ξεκάθαρη διαχωριστική γραμμή μεταξύ διαφορετικών τμημάτων κώδικα.
   # Αυτή είναι η function_one
   def function_one():
       pass

   # Αυτή είναι η function_two
   def function_two():
       pass
  1. Για να Ορίσετε Λογικά Μπλοκ: Κενές γραμμές μπορούν να χρησιμοποιηθούν για να ορίσουν διαφορετικά λογικά μπλοκ του κώδικα.
   def another_function():
       # Ενότητα 1
       do_something()

       # Ενότητα 2
       do_something_else()

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

Αλυσιδωτές Συγκρίσεις στην Python

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

Για παράδειγμα, αν θέλετε να ελέγξετε αν ένας αριθμός x είναι μεγαλύτερος από 10 και μικρότερος από 20, μπορείτε να γράψετε τη συνθήκη με τον εξής τρόπο:

x = 15
if 10 < x < 20:
    print("x is between 10 and 20.")

Αυτή η έκφραση είναι ισοδύναμη με την γραφή if x > 10 and x < 20:, αλλά είναι πιο συνοπτική και συχνά θεωρείται πιο καθαρή σε ό,τι αφορά τη σύνταξη.

Μπορείτε επίσης να χρησιμοποιήσετε αλυσιδωτές συγκρίσεις με διάφορους τελεστές, όπως:

a = 5
if 0 < a <= 10:
    print("a is positive and less than or equal to 10.")

Αυτός ο τρόπος σύγκρισης βοηθά στην καλύτερη αναπαράσταση της λογικής που αφορά εύρη τιμών και κάνει τον κώδικα πιο ευανάγνωστο και καθαρό.

Προτεραιότητα των Τελεστών που Έχουν Παρουσιαστεί Μέχρι Τώρα

Η προτεραιότητα των τελεστών που έχουν παρουσιαστεί σε αυτό το κεφάλαιο φαίνεται παρακάτω. Οι τελεστές αναφέρονται από πάνω προς τα κάτω σε φθίνουσα σειρά προτεραιότητας. Το είδος ομαδοποίησης (grouping type) αναφέρει την κατεύθυνση της εκτέλεσης των τελεστών.

  1. Παρενθέσεις (Parentheses) (): Από αριστερά προς τα δεξιά (left to right)
  2. Εκθετική Συνάρτηση (Exponentiation) **: Από δεξιά προς τα αριστερά (right to left)
  3. Πολλαπλασιασμός, Διαίρεση, Διαίρεση με Ακέραιο Αποτέλεσμα και Υπόλοιπο * / // %: Από αριστερά προς τα δεξιά (left to right)
  4. Πρόσθεση και Αφαίρεση + -: Από αριστερά προς τα δεξιά (left to right)
  5. Συγκρίσεις > < <= >=: Από αριστερά προς τα δεξιά (left to right)
  6. Ισότητα και Μη Ισότητα == !=: Από αριστερά προς τα δεξιά (left to right)

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

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