Επιδιόρθωση: Σφάλμα κατάτμησης Python

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

Σφάλμα εσοχής στην Python

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

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

Τι προκαλεί Σφάλμα Εσοχής σε Python;

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

  • Χρησιμοποιείτε τόσο τους χώρους όσο και τις καρτέλες στον κώδικα σας. Αν και οι δύο χρησιμοποιούνται εναλλακτικά, ο διερμηνέας δεν θα είναι σε θέση να προσδιορίσει ποιο στοιχείο θα χρησιμοποιήσει.
  • Έχετε τοποθετήσει κάποιο λάθος . Εάν δεν ακολουθηθεί η πρακτική εσοχής, θα έχετε αυτό το σφάλμα αναπόφευκτα.
  • Ξεχάσατε να παύσετε τις σύνθετες δηλώσεις όπως 'if', 'for', 'while' κ.λπ.
  • Ξεχάσατε να περιγράψετε λειτουργίες ή κλάσεις καθορισμένες από το χρήστη .

Λύση 1: Έλεγχος για λάθος λευκά κενά / καρτέλες

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

Δομή μπλοκ απεικόνιση οδόντωση

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

Παράδειγμα αποκοπής

Η σωστή εσοχή παρουσιάζεται στο παραπάνω παράδειγμα. Δείτε το βρόχο 'για' για εκκινητές. Τα πάντα μέσα στον βρόχο 'για' πρέπει να είναι χαραγμένα. Μέσα στο βρόχο «για» έχουμε μια δήλωση 'if'. Μέσα από τη δήλωση 'if', όλα πρέπει να συμπληρωθούν περαιτέρω .

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

Λύση 2: Ενεργοποίηση συμβόλων καρτελών / διαστήματος στον επεξεργαστή

Εάν έχετε έναν σκληρό χρόνο εσοχή του κώδικα σας με «μαντέψουν» όπως κάνουν όλοι οι προγραμματιστές, μπορείτε να ενεργοποιήσετε τα σύμβολα της καρτέλας / χώρου στο IDE ή τον επεξεργαστή κωδικων σας. Αυτή η επιλογή θα ενεργοποιήσει μικρές "κουκίδες" στον κώδικά σας όπου κάθε κουκίδα αντιπροσωπεύει ένα κενό ή μια καρτέλα. Μπορείτε να το χρησιμοποιήσετε για να καταργήσετε τον κώδικα πιο σωστά και να βεβαιωθείτε ότι δεν υπάρχει επιπλέον εσοχή ή ότι κάποιο από αυτά λείπει.

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

  1. Πατήστε Προβολή> Εμφάνιση συμβόλου> Εμφάνιση κενών χώρου και πίνακα ελέγχου

    Ενεργοποίηση του λευκού και της καρτέλας - Σημειωματάριο ++
  1. Τώρα η επιλογή είναι ενεργοποιημένη. Μπορείτε επίσης να ενεργοποιήσετε τον Οδηγό εσοχών, ώστε τα πράγματα να σας διευκολύνουν.

Δείγμα κώδικα με σωστή εσοχή

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

Ενδιαφέροντα Άρθρα