Επιδιόρθωση: Σφάλμα εσοχής Python

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

Σφάλμα εσοχής Python κατά την κωδικοποίηση

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

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

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

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

  • Χρησιμοποιείτε τόσο κενά όσο και καρτέλες στον κώδικά σας. Εάν και τα δύο χρησιμοποιούνται εναλλακτικά, ο διερμηνέας δεν θα είναι σε θέση να προσδιορίσει ποιο είδος θα χρησιμοποιήσει.
  • Έχετε τοποθετήσει λάθος κάποια εσοχή . Εάν δεν ακολουθηθεί η πρακτική εσοχής, θα έχετε αυτό το σφάλμα αναπόφευκτα.
  • Ξεχάσατε να προσθέσετε εσοχές στις σύνθετες δηλώσεις όπως «εάν», «για», «ενώ» κ.λπ.
  • Ξεχάσατε να εσοχή λειτουργίες ή τάξεις που καθορίζονται από το χρήστη .

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

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

Μπλοκ δομή οπτικοποίηση εσοχή στο Python

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

Παράδειγμα εσοχής στο Python

Η σωστή εσοχή φαίνεται στο παραπάνω παράδειγμα. Δείτε το βρόχο «για» για ορεκτικά. Όλα μέσα στο βρόχο «για» πρέπει να εσοχή. Στο βρόχο «for», έχουμε μια δήλωση «if». Μέσα στη δήλωση «if», όλα πρέπει να έχουν περαιτέρω εσοχές.

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

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

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

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

  1. Πατήστε Προβολή> Εμφάνιση συμβόλου> Εμφάνιση κενού χώρου και TABΕνεργοποίηση κενού χώρου και καρτέλας στο Python
  1. Τώρα η επιλογή είναι ενεργοποιημένη. Μπορείτε επίσης να ενεργοποιήσετε τον Οδηγό εσοχών, ώστε τα πράγματα να γίνονται πιο εύκολα για εσάς.
Δείγμα κώδικα με σωστή εσοχή στο Python

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