Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι
  • Σελίδα:
  • 1
  • 2

ΘΕΜΑ: ασκηση αρχειων σε python

ασκηση αρχειων σε python 9 Χρόνια 1 Μήνας πριν #2816

  • myle
  • Το Άβαταρ του/της myle
  • Αποσυνδεμένος
  • Admin
  • Δημοσιεύσεις: 467
  • Ληφθείσες Ευχαριστίες 15
KostasKok έγραψε:
Θα ηθελα να κανω και εγω μια ερωτηση. Πως γινεται να φτιαξω ενα προγραμμα σε Python που θα κανει στοιχειωδη συντακτικο ελεγχο σε ενα κωδικα Python? Αν δηλαδη οι παρενθεσεις,αγκυλες,εισαγωγικα και αγκυστρα που ανοιγουν κλεινουν κιολας.
Καταλαβαινω οτι πρεπει να ανοιγει και να διαβαζει τον κωδικα αλλα μετα τι πρεπει να κανω?
Ευχαριστώ εκ των προτερων.

Κρατάς έναν μετρητή για κάθε ένα από τα σύμβολα:
'(', '{', '['
κάθε φορά που τα συναντάς, αυξάνεις τον αντίστοιχο μετρητή κατά 1. Η αρχική τιμή των μετρητών είναι 0. Κάθε φορά που συναντάς τα:
')', '}', ']'
μειώνεις τον μετρητή κατά ένα. Αν ο μετρητής πάει σε αρνητική τιμή, τότε η είσοδος σου είναι άκυρη. Αλλιώς, μπορεί να είναι έγκυρη (το αν είναι έγκυρη ή όχι εξαρτάται από τον ορισμό του στοιχειώδες).

Όσον αφορά για τα quotes, τότε εξαρτάται επίσης από τον ορισμό του στοιχειώδες.

Αν έχεις κάτι με """ τότε πρέπει να ψάξεις για το επόμενο """. Αυτά πρέπει να είναι πάντα σε ζευγάρια. Όλοι οι χαρακτήρες ανάμεσα αγνοούνται.

Αν έχεις κάτι με ' (αντίστοιχα με ") τότε πρέπει να βρεις τον επόμενο ' (αντίστοιχα με ") χαρακτήρα, λαμβάνοντας υπόψη escaping χαρακτήρων. Όλοι οι χαρακτήρες ανάμεσα στα quotes πρέπει πάλι να αγνοηθούν.

Βάζοντας τα όλα μαζί, τα " (ή ΄) έχουν μεγαλύτερη προτεραιότητα από (,{,[ και αντίστοιχα θα πρέπει να διαβάσεις το αρχείο.

Αν θες μια πραγματικά ορθή λύση, τότε όπως λέει και ο pmav, μάλλον πρέπει να κοιτάξεις το ast. Αν καταλαβαίνω όμως καλά το πνεύμα της ερώτησης, τότε αυτή η απλή προσέγγιση θα είναι αρκετή.
«Αν υποθέσουμε ότι αυτό είναι δυνατό, (να μεταδώσουμε τη σοφία παντού) τότε ειλικρινά ο τρόπος ζωής των θεών θα περάσει στους ανθρώπους. Τα πάντα θα είναι γεμάτα...
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
  • Σελίδα:
  • 1
  • 2
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.688 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου