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

Εάν η Python προσδιορίσει ότι ο κώδικάς σας έχει εσφαλμένη εσοχή, θα δείτε το μήνυμα "IndentationError" όταν εκτελείτε τον κώδικά σας. Πώς όμως το διορθώνετε και πώς το αποτρέπετε στο μέλλον;

Γιατί λαμβάνετε το IndentationError στην Python;

Το σφάλμα "IndentationError: αναμενόμενο μπλοκ με εσοχή" είναι κάτι που είναι πιθανό να δείτε όταν αρχίσετε να χρησιμοποιείτε την Python για πρώτη φορά, ειδικά εάν προέρχεστε από άλλη γλώσσα προγραμματισμού.

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

fname = "Gaurav"
lname = "Siyal"

αν fname == "Gaurav" και lname == "Siyal":
print ("Είσαι ο Gaurav")
αλλού:
print ("Είσαι κάποιος άλλος")

Όταν προσπαθείτε να εκτελέσετε τον παραπάνω κώδικα, θα λάβετε ένα μήνυμα όπως αυτό:

instagram viewer
 Αρχείο "tmp.py", γραμμή 5
print ("Είσαι ο Gaurav")
^
IndentationError: αναμένεται ένα μπλοκ με εσοχή

Αντίθετα, θα πρέπει να προσθέσετε είτε μια καρτέλα είτε μια σειρά από κενά στην αρχή των δύο γραμμών που αντιπροσωπεύουν μπλοκ:

fname = "Gaurav"
lname = "Siyal"

αν fname == "Gaurav" και lname == "Siyal":
print ("Είσαι ο Gaurav")
αλλού:
print ("Είσαι κάποιος άλλος")

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

Συνήθεις περιπτώσεις σωστής εσοχής

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

Αν δηλώσεις

Κάντε εσοχή στο μπλοκ που ακολουθεί ένα αν δήλωση:

if my_name == "Gaurav":
print ("Με λένε Gaurav")
επιστροφή Αλήθεια

Λειτουργίες

Το σώμα μιας συνάρτησης είναι ένα μπλοκ. Θα πρέπει να κάνετε εσοχή ολόκληρου του μπλοκ:

def magic_number():
αποτέλεσμα = 42
αποτέλεσμα επιστροφής

εκτύπωση magic_number()

Για βρόχους

Όπως και με μια εντολή if, το σώμα ενός βρόχου for θα πρέπει να έχει εσοχή ένα επίπεδο περισσότερο από τη γραμμή που ξεκινά με το Για λέξη-κλειδί:

για i στην περιοχή (10):
εκτύπωση (i)

Βεβαιωθείτε ότι ο επεξεργαστής σας έχει εσοχές σωστά

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

Σε Spyder, οι επιλογές εσοχής είναι διαθέσιμες κάτω από Εργαλεία > Προτιμήσεις > Πηγαίος κώδικας:

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

σετ αυτόματη εσοχή
ορίστε την καρτέλα επέκτασης
ορισμός tabstop=4
ορίστε softtabstop=4
ορίστε shiftwidth=4

Αυτό θα κάνει αυτόματα εσοχή χρησιμοποιώντας τέσσερα κενά.

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

Σε αυτό το παράδειγμα, ο τελικός ΕΠΙΣΤΡΟΦΗ Η δήλωση έχει εσοχή ένα επίπεδο από την υπογραφή της συνάρτησης στην πρώτη γραμμή. Ωστόσο, εάν τοποθετήσετε τον κέρσορα στο τέλος της προτελευταίας γραμμής και πατήστε Εισαγω, ένα από τα δύο πράγματα μπορεί να συμβεί. Ο επεξεργαστής σας θα μπορούσε να τοποθετήσει τον κέρσορα:

  1. Δύο επίπεδα εσοχής μέσα, ευθυγραμμισμένα με "res =..."
  2. Ένα επίπεδο εσοχής, ευθυγραμμισμένο με το "άλλο:"

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

Χειρισμός του σφάλματος «Αναμενόμενο εσοχή» της Python

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

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

Τι σημαίνει το σφάλμα Python "Λίστα ευρετηρίου εκτός εύρους";

Διαβάστε Επόμενο

ΜερίδιοΤιτίβισμαΜερίδιοΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ

Σχετικά θέματα

  • Προγραμματισμός
  • Πύθων

Σχετικά με τον Συγγραφέα

Gaurav Siyal (Δημοσιεύτηκαν 64 άρθρα)

Ο Gaurav Siyal έχει δύο χρόνια συγγραφικής εμπειρίας, γράφοντας για μια σειρά από εταιρείες ψηφιακού μάρκετινγκ και έγγραφα κύκλου ζωής λογισμικού.

Περισσότερα από τον Gaurav Siyal

Εγγραφείτε στο ενημερωτικό μας δελτίο

Εγγραφείτε στο ενημερωτικό μας δελτίο για συμβουλές τεχνολογίας, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για να εγγραφείτε