Διαδρομές
/
Python
Python
/
Ύλη
/
Συνθήκες
Συ

Συνθήκες σε Python

94 ασκήσεις

Σχετικά με την έννοια Συνθήκες

Στην Python, οι εντολές if, elif (σύντμηση του 'else and if') και else χρησιμοποιούνται για να ελέγχεις τη ροή της εκτέλεσης και να παίρνεις αποφάσεις μέσα σε ένα πρόγραμμα. Σε αντίθεση με πολλές άλλες γλώσσες προγραμματισμού, οι εκδόσεις της Python 3.9 και παλαιότερες δεν προσφέρουν μια επίσημη εντολή case-switch, αλλά χρησιμοποιούν πολλαπλές εντολές elif για παρόμοιο σκοπό.

Η Python 3.10 εισάγει μια παραλλαγή της εντολής case-switch, το pattern matching, που θα καλυφθεί ξεχωριστά σε άλλη ενότητα.

Οι εντολές υπό συνθήκη χρησιμοποιούν εκφράσεις που πρέπει να καταλήγουν σε True ή False, είτε επιστρέφοντας απευθείας μια τιμή bool, είτε αξιολογώντας "truthy" ή "falsy".

x = 10
y = 5

# The comparison '>' returns the bool 'True',
# so the statement is printed.
if x > y:
    print("x is greater than y")
...
>>> x is greater than y

Όταν συνδυάζεται με ένα if, ένα προαιρετικό μπλοκ κώδικα else εκτελείται όταν η αρχική συνθήκη του if αξιολογείται σε False:

x = 5
y = 10

# The comparison '>' here returns the bool False,
# so the 'else' block is executed instead of the 'if' block.
if x > y:
    print("x is greater than y")
else:
    print("y is greater than x")
...
>>> y is greater than x

Το elif επιτρέπει πολλαπλούς ελέγχους/διακλαδώσεις.

x = 5
y = 10
z = 20

# The elif statement allows for the checking of more conditions.
if x > y > z:
    print("x is greater than y and z")
elif y > x > z:
    print("y is greater than x and z")
else:
    print("z is greater than x and y")
...
>>> z is greater than x and y

Οι Boolean (λογική τιμή) πράξεις και οι συγκρίσεις μπορούν να συνδυαστούν με εντολές υπό συνθήκη για πιο σύνθετους ελέγχους:

>>> def classic_fizzbuzz(number):
...     if number % 3 == 0 and number % 5 == 0:
...         say = 'FizzBuzz!'
...     elif number % 5 == 0:
...         say = 'Buzz!'
...     elif number % 3 == 0:
...         say = 'Fizz!'
...     else:
...         say = str(number)
...
...     return say
        
>>> classic_fizzbuzz(15)
'FizzBuzz!'

>>> classic_fizzbuzz(13)
'13'

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

>>> def classic_fizzbuzz(number):
...     if number % 3 == 0 and number % 5 == 0:
...         return 'FizzBuzz!'
...     if number % 5 == 0:
...         return 'Buzz!'
...     if number % 3 == 0:
...         return 'Fizz!'
...
...     return str(number)

>>> classic_fizzbuzz(15)
'FizzBuzz!'

>>> classic_fizzbuzz(13)
'13'

Οι εντολές υπό συνθήκη μπορούν επίσης να είναι εμφωλευμένες.

>>> def driving_status(driver_age, test_score):
...     if test_score >= 80:
...         if 18 > driver_age >= 16:
...             status = "Student driver, needs supervision."
...         elif driver_age == 18:
...             status = "Permitted driver, on probation."
...         elif driver_age > 18:
...             status = "Fully licensed driver."
...     else:
...         status = "Unlicensed!"
...
...     return status


>>> driving_status(63, 78)
'Unlicensed!'

>>> driving_status(16, 81)
'Student driver, needs supervision.'

>>> driving_status(23, 80)
'Fully licensed driver.'

Εκφράσεις υπό συνθήκη ή "τριαδικοί τελεστές"

Αν και η Python δεν έχει κάποιον ειδικό τριαδικό τελεστή ?, μπορείς να γράψεις μονογραμμικές conditional expressions. Αυτές έχουν τη μορφή <value if True> if <conditional test> else <value if False>. Επειδή αυτές οι εκφράσεις μπορεί να γίνουν δυσανάγνωστες, καλό είναι να χρησιμοποιείς αυτή τη μονογραμμική μορφή μόνο όταν συντομεύει τον κώδικα και βοηθά στην αναγνωσιμότητα.

>>> def just_the_buzz(number):
...     return 'Buzz!' if number % 5 == 0 else str(number)
    
>>> just_the_buzz(15)
'Buzz!'

>>> just_the_buzz(7)
'7'

Truthy και Falsy

Στην Python, κάθε αντικείμενο μπορεί να ελεγχθεί ως προς την τιμή αληθείας του και επομένως μπορεί να χρησιμοποιηθεί σε μια συνθήκη, μια σύγκριση ή μια Boolean πράξη. Τα αντικείμενα που αξιολογούνται με αυτόν τον τρόπο θεωρούνται "truthy" ή "falsy" και χρησιμοποιούνται σε ένα boolean context.

>>> def truthy_test(thing):
...     if thing:
...         print('This is Truthy.')
...     else:
...         print("Nope. It's Falsy.")


# Empty container objects are considered Falsy.
>>> truthy_test([])
"Nope. It's Falsy."

>>> truthy_test(['bear', 'pig', 'giraffe'])
'This is Truthy.'

# Empty strings are considered Falsy.
>>> truthy_test('')
"Nope. It's Falsy."

>>> truthy_test('yes')
'This is Truthy.'

# 0 is also considered Falsy.
>>> truthy_test(0)
"Nope. It's Falsy."
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα

Μάθε την έννοια Συνθήκες

Η εξάσκηση είναι κλειδωμένη

Ξεκλείδωσε 4 ακόμη ασκήσεις για να εξασκηθείς στην έννοια Συνθήκες