Python Δηλώσεις υπό όρους: IF…Else, ELIF & Switch Case

⚡ Έξυπνη Σύνοψη

Python Οι Δηλώσεις Υπό Συνθήκη κατευθύνουν τη ροή του προγράμματος εκτελώντας συγκεκριμένα μπλοκ κώδικα μόνο όταν οι Λογικές εκφράσεις αξιολογούνται ως true. Περιλαμβάνουν if, else, elif, nested if, τον τριαδικό τελεστή και αντιστοίχιση δομικών μοτίβων για καθαρή, βασισμένη σε αποφάσεις λογική.

  • Βασική ιδέα: Μια πρόταση if εκτελεί το μπλοκ με την εσοχή της μόνο όταν η συνθήκη αξιολογηθεί ως αληθής, αποτελώντας τη βάση της λήψης αποφάσεων. Python.
  • Εναλλακτικές λαβές: Προσθέστε else για μια εφεδρική διαδρομή και elif για να δοκιμάσετε πρόσθετες συνθήκες σε ακολουθία χωρίς βαθιά ένθεση.
  • Αποφύγετε τα λογικά λάθη: Χρησιμοποιήστε μία μόνο αλυσίδα if-elif-else αντί για ανεξάρτητες εντολές if όταν θα έπρεπε να ισχύει ακριβώς ένα αποτέλεσμα.
  • Γράψτε Συνοπτικά Code: Εφαρμόστε την τριαδική έκφραση value_if_true if condition else value_if_false για να αντιστοιχίσετε μια τιμή σε μία αναγνώσιμη γραμμή.
  • Σύγχρονη Διακλάδωση: Αντικαταστήστε τις μακριές αλυσίδες elif με χάρτη λεξικούping ή η πρόταση match-case που εισάγεται στο Python 3.10 για καθαρότερη επιλογή πολλαπλών κατευθύνσεων.

Python Δηλώσεις υπό όρους

Σε τι περιλαμβάνονται οι δηλώσεις υπό όρους Python?

Δηλώσεις υπό όρους σε Python εκτελούν διαφορετικούς υπολογισμούς ή ενέργειες ανάλογα με το αν ένας συγκεκριμένος περιορισμός Boolean αξιολογείται ως true ή false. Επιτρέπουν σε ένα πρόγραμμα να λαμβάνει αποφάσεις και να ακολουθεί διαφορετικές διαδρομές αντί να εκτελεί κάθε γραμμή σε ακολουθία. Python, οι υπό όρους δηλώσεις χειρίζονται από το if η εντολή και οι συνοδευτικές της: else, elif και nested if.

Τι είναι Python Αν Δήλωση;

The Python εάν δήλωση Χρησιμοποιείται για λειτουργίες λήψης αποφάσεων. Περιέχει ένα σώμα κώδικα που εκτελείται μόνο όταν η συνθήκη που δίνεται στην πρόταση if είναι αληθής. Εάν η συνθήκη είναι ψευδής, εκτελείται η προαιρετική πρόταση else, η οποία περιέχει τον κώδικα για τη συνθήκη else. Όταν θέλετε να ενεργήσετε με βάση μια συνθήκη ενώ μια άλλη δεν είναι αληθής, χρησιμοποιείτε την Python αν-άλλο δήλωση.

Python if Σύνταξη δήλωσης:

if expression:
    statement
else:
    statement

Python αν…αλλιώς Διάγραμμα ροής

Python διάγραμμα ροής if…else που δείχνει τους κλάδους true και false

Το παραπάνω διάγραμμα ροής δείχνει πώς ρέει ο έλεγχος μέσω μιας εντολής if-else. Ας δούμε ένα παράδειγμα της Python Δήλωση if-else σε δράση:

Python παράδειγμα εξόδου δήλωσης if στον επεξεργαστή

# Example file for working with conditional statements
def main():
    x, y = 2, 8
    if(x < y):
        st = "x is less than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code Γραμμή 3: Ορίζουμε δύο μεταβλητές x, y = 2, 8.
  • Code Γραμμή 4: Η εντολή if ελέγχει τη συνθήκη x < y, η οποία είναι Οι αληθινοί σε αυτήν την περίπτωση.
  • Code Γραμμή 5: Η μεταβλητή st έχει οριστεί σε «το x είναι μικρότερο από το y».
  • Code Γραμμή 6: Η γραμμή print(st) εξάγει την τιμή του st, η οποία είναι «το x είναι μικρότερο από το y».

Τι συμβαίνει όταν δεν πληρούται η συνθήκη «αν»

Βασιζόμενοι στο προηγούμενο παράδειγμα, ας δούμε τι συμβαίνει όταν η συνθήκη if είναι Python δεν πληρούται. Όταν η συνθήκη είναι ψευδής και δεν υπάρχει άλλος κλάδος, ο κώδικας με εσοχή παραλείπεται εντελώς.

Python σφάλμα όταν δεν πληρούται η συνθήκη if

# Example file for working with conditional statements
def main():
    x, y = 8, 4
    if(x < y):
        st = "x is less than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code Γραμμή 3: Ορίζουμε δύο μεταβλητές x, y = 8, 4.
  • Code Γραμμή 4: Η εντολή if ελέγχει τη συνθήκη x < y, η οποία είναι Ψευδής σε αυτήν την περίπτωση.
  • Code Γραμμή 5: Η μεταβλητή st είναι ΔΕΝ ορίστε το "x είναι μικρότερο από το y".
  • Code Γραμμή 6: Η γραμμή print(st) προσπαθεί να εκτυπώσει μια μεταβλητή που δεν δηλώθηκε ποτέ, επομένως Python σηκώνει α ΌνομαΣφάλμα.
⚠ Προειδοποίηση: Η αναφορά σε μια μεταβλητή που έχει αντιστοιχιστεί μόνο μέσα σε ένα μπλοκ if είναι ένα συνηθισμένο λάθος για αρχάριους. Είτε παρέχετε έναν κλάδο else είτε δώστε στη μεταβλητή μια προεπιλεγμένη τιμή πριν από την πρόταση if.

Πώς να χρησιμοποιήσετε τη συνθήκη «άλλο»

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

Παράδειγμα:

Python παράδειγμα συνθήκης if-else

# Example file for working with conditional statements
def main():
    x, y = 8, 4
    if(x < y):
        st = "x is less than y"
    else:
        st = "x is greater than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code Γραμμή 3: Ορίζουμε δύο μεταβλητές x, y = 8, 4.
  • Code Γραμμή 4: Η εντολή if ελέγχει τη συνθήκη x < y, η οποία είναι Ψευδής σε αυτήν την περίπτωση.
  • Code Γραμμή 6: Η ροή του ελέγχου του προγράμματος πηγαίνει στη συνθήκη else.
  • Code Γραμμή 7: Η μεταβλητή st έχει οριστεί σε «το x είναι μεγαλύτερη από εσένα."
  • Code Γραμμή 8: Η γραμμή print(st) εμφανίζει την τιμή του st, η οποία είναι «το x είναι μεγαλύτερο από το y».

Όταν η συνθήκη «άλλως» δεν λειτουργεί

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

Εδώ και οι δύο μεταβλητές είναι οι ίδιες (8, 8), ωστόσο η έξοδος του προγράμματος είναι «Το x είναι μεγαλύτερο από το y», το οποίο είναι ΛΑΘΟΣΑυτό συμβαίνει επειδή το πρόγραμμα ελέγχει την πρώτη συνθήκη (τη συνθήκη if) και όταν αποτύχει, εκτυπώνει τη δεύτερη συνθήκη (τη συνθήκη else) ως προεπιλογή. Στο επόμενο βήμα, θα δούμε πώς να διορθώσουμε αυτό το σφάλμα.

Python αλλιώς συνθήκη που παράγει λανθασμένο αποτέλεσμα

# Example file for working with conditional statements
def main():
    x, y = 8, 8
    if(x < y):
        st = "x is less than y"
    else:
        st = "x is greater than y"
    print(st)

if __name__ == "__main__":
    main()

Πώς να χρησιμοποιήσετε τη συνθήκη «elif»

Για να διορθώσουμε το προηγούμενο σφάλμα που έγινε από τη συνθήκη else, μπορούμε να χρησιμοποιήσουμε την Elif Δήλωση. Χρησιμοποιώντας τη συνθήκη elif, λέτε στο πρόγραμμα να ελέγξει μια τρίτη πιθανότητα όταν η πρώτη συνθήκη είναι ψευδής. Μπορείτε να συνδέσετε πολλαπλές συνθήκες elif για να ελέγξετε για τέταρτη, πέμπτη και περαιτέρω πιθανότητες στον κώδικά σας.

Παράδειγμα:

Python παράδειγμα συνθήκης elif

# Example file for working with conditional statements
def main():
    x, y = 8, 8
    if(x < y):
        st = "x is less than y"
    elif(x == y):
        st = "x is same as y"
    else:
        st = "x is greater than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code Γραμμή 3: Ορίζουμε δύο μεταβλητές x, y = 8, 8.
  • Code Γραμμή 4: Η εντολή if ελέγχει τη συνθήκη x < y, η οποία είναι Ψευδής σε αυτήν την περίπτωση.
  • Code Γραμμή 6: Η ροή ελέγχου του προγράμματος πηγαίνει στη συνθήκη elif. Ελέγχει αν x == y, κάτι που ισχύει.
  • Code Γραμμή 7: Η μεταβλητή st έχει οριστεί σε «το x είναι ίδιο όπως y. "
  • Code Γραμμή 10: Ο έλεγχος του προγράμματος τερματίζει την εντολή if (δεν θα φτάσει στην εντολή else) και τυπώνει st. Η έξοδος είναι «το x είναι ίδιο με το y», το οποίο είναι σωστό.

Πώς να εκτελέσετε μια υπό όρους δήλωση με ελάχιστο Code

Τώρα που μπορείτε να γράψετε πλήρη μπλοκ if-elif-else, Python σας επιτρέπει να συμπυκνώσετε μια απλή συνθήκη σε μία μόνο γραμμή. Αντί να γράφετε ξεχωριστό κώδικα για κάθε κλάδο, μπορείτε να χρησιμοποιήσετε ένα τριαδική (υπό όρους) έκφραση.

Σύνταξη:

value_if_true if condition else value_if_false

Παράδειγμα:

Python παράδειγμα τριαδικής πρότασης υπό όρους μίας γραμμής

def main():
    x, y = 10, 8
    st = "x is less than y" if (x < y) else "x is greater than or equal to y"
    print(st)

if __name__ == "__main__":
    main()
  • Code Γραμμή 2: Ορίζουμε δύο μεταβλητές x, y = 10, 8.
  • Code Γραμμή 3: Η μεταβλητή st ορίζεται σε «το x είναι μικρότερο από το y» αν x < y. Διαφορετικά γίνεται «το x είναι μεγαλύτερο ή ίσο με το y». Επειδή x > y εδώ, το st γίνεται η δεύτερη τιμή.
  • Code Γραμμή 4: Εκτυπώνει την τιμή του st και δίνει τη σωστή έξοδο.

Python Ένθετη δήλωση if

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

total = 100
# country = "US"
country = "AU"

if country == "US":
    if total <= 50:
        print("Shipping Cost is $50")
    elif total <= 100:
        print("Shipping Cost is $25")
    elif total <= 150:
        print("Shipping Cost is $5")
    else:
        print("FREE")

if country == "AU":
    if total <= 50:
        print("Shipping Cost is $100")
    else:
        print("FREE")

Αποσχολιάστε τη Γραμμή 2 στον παραπάνω κώδικα, σχολιάστε τη Γραμμή 3 και εκτελέστε ξανά τον κώδικα για να δείτε πώς αλλάζει η έξοδος για μια διαφορετική χώρα.

Εναλλαγή δήλωσης υπόθεσης Python

Τι είναι μια Δήλωση Switch;

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

Παράδειγμα χρήσης χάρτη λεξικούping:

def switch_example(argument):
    switcher = {
        0: "This is Case Zero",
        1: "This is Case One",
        2: "This is Case Two",
    }
    return switcher.get(argument, "nothing")

if __name__ == "__main__":
    argument = 1
    print(switch_example(argument))

Θήκη διακόπτη με αντιστοίχιση (Python 3.10 και Later)

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

def switch_example(argument):
    match argument:
        case 0:
            return "This is Case Zero"
        case 1:
            return "This is Case One"
        case 2:
            return "This is Case Two"
        case _:
            return "nothing"

if __name__ == "__main__":
    print(switch_example(1))

Η υπογράμμιση (_) λειτουργεί ως η προεπιλεγμένη περίπτωση, αντιστοιχώντας σε οποιαδήποτε τιμή δεν έχει αντιμετωπιστεί από τις προηγούμενες περιπτώσεις, ακριβώς όπως η προεπιλεγμένη σε μια παραδοσιακή πρόταση switch.

✅ Συμβουλή: Χρησιμοποιήστε match-case εάν είστε ενεργοποιημένοι Python 3.10 ή νεότερη έκδοση. Για παλαιότερες εκδόσεις, χάρτης λεξικούping παραμένει ο τυπικός τρόπος για να μιμηθεί κανείς μια εντολή switch.

αν εναντίον elif εναντίον else: Γρήγορη Σύγκριση

Χρησιμοποιήστε αυτήν τη σύγκριση για να αποφασίσετε ποια δομή υπό όρους ταιριάζει στη λογική λήψης αποφάσεων.

ΔήλωσηΣκοπόςΠότε να χρησιμοποιήσετε
ifΕκτελεί ένα μπλοκ όταν μια συνθήκη είναι αληθήςΜία μόνο απόφαση ναι/όχι
αν...αλλιώςΠαρέχει μια εναλλακτική λύση όταν η συνθήκη είναι ψευδήςΔύο αμοιβαία αποκλειόμενα αποτελέσματα
ElifΔοκιμάζει πρόσθετες συνθήκες σε ακολουθίαΤρεις ή περισσότερες πιθανότητες
Φωλιασμένο ανΤοποθετεί ένα if μέσα σε ένα άλλο ifΜια απόφαση που εξαρτάται από μια δεύτερη προϋπόθεση
ΤριαδικόςΣυμπυκνώνει το if-else σε μία γραμμήΑπλή ανάθεση τιμών
περίπτωση αντιστοίχισηςΑντιστοιχίζει μια τιμή με πολλά μοτίβαΠολλαπλή διακλάδωση (Python 3.10 +)
⚠ Σημείωση: Python 2 έφτασαν στο τέλος του κύκλου ζωής τους την 1η Ιανουαρίου 2020 και όλα τα παραδείγματα σε αυτό το άρθρο χρησιμοποιούν Python 3 σύνταξη. Στο Python 2, η print ήταν μια εντολή (για παράδειγμα, print st) και όχι μια συνάρτηση, επομένως ο παραπάνω κώδικας δεν θα εκτελεστεί αμετάβλητος σε Python 2.

Συχνές Ερωτήσεις

Μια πρόταση if ξεκινά μια απόφαση και αξιολογείται πάντα. Ένα elif (else-if) ελέγχεται μόνο όταν οι προηγούμενες συνθήκες if ή elif είναι ψευδείς, επιτρέποντάς σας να δοκιμάσετε πολλές πιθανότητες σε μία αλυσίδα ενώ εκτελείται ακριβώς ένα μπλοκ.

Ναί. Από Python Στο 3.10, η εντολή match-case παρέχει εγγενή διακλάδωση σε στυλ διακόπτη μέσω αντιστοίχισης δομικών μοτίβων. Σε παλαιότερες εκδόσεις, οι προγραμματιστές μιμούνται έναν διακόπτη χρησιμοποιώντας τον χάρτη λεξικού.ping με τη μέθοδο get() για να δώσουμε μια προεπιλεγμένη τιμή.

Χρησιμοποιήστε μια τριαδική έκφραση: value_if_true if condition else value_if_false. Για παράδειγμα, st = “low” if x < 10 else “high” αντιστοιχίζει μια τιμή σε μία μόνο αναγνώσιμη γραμμή χωρίς ένα πλήρες μπλοκ if-else.

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

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

Συνοψίστε αυτήν την ανάρτηση με: