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

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

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

  • sotirisPy
  • Το Άβαταρ του/της sotirisPy
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 3
δημιουργηστε ενα προγραμμα που
1 Μετραει ποσους χαρακτηρες υπαρχει σε ενα αρχειο
2 Ποσες λεξεις υπαρχουν
3 Ποσες προτασεις υπαρχουν

Καλησπερα και χρονια πολλα ξεκινησα να κανω το πρωτο αλλα εχω ενα προβλημα μου χτηπαει λαθος
ο compiler στον counter καταρχας ο κωδικας μου ειναι σωστος?

fw = open('a.txt','r')
running = True
counter = 0

while running:
text = fw.read()
if text is chr:
counter +=1
print("to arxeio exei xarakthres : ",counter)
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

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

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
sotirisPy έγραψε:
δημιουργηστε ενα προγραμμα που
1 Μετραει ποσους χαρακτηρες υπαρχει σε ενα αρχειο
2 Ποσες λεξεις υπαρχουν
3 Ποσες προτασεις υπαρχουν

Καλησπερα και χρονια πολλα ξεκινησα να κανω το πρωτο αλλα εχω ενα προβλημα μου χτηπαει λαθος
ο compiler στον counter καταρχας ο κωδικας μου ειναι σωστος?

fw = open('a.txt','r')
running = True
counter = 0

while running:
text = fw.read()
if text is chr:
counter +=1
print("to arxeio exei xarakthres : ",counter)

Με μια γενική απάντηση, ο κώδικας σου είναι εντελώς λάθος.


Καταρχάς η read() διαβάζει όλο το αρχείο με την μία επομένως
δεν χρειάζεται να το έχεις μέσα σε ένα loop.Δεύτερων το if text is chr δεν θα βγει αληθές ακόμα και αν το text είναι
χαρακτήρας. Δεν χρειάζεται καν να κάνεις έναν έλεγχο.
Αν επίσης έχω καταλάβει καλά, νομίζεις ότι χαρακτήρες είναι
μόνο a,b,c κτλ και όχι το κενό και άλλα παρόμοια που ονομάζονται white spaces, και αυτός μάλλον είναι ο λόγος που
έβαλες τον έλεγχο.

Το μόνο που πρέπει να κάνεις είναι το εξής:
file = open("file.txt", "r") #Άνοιγμα του αρχείου.
 
text = file.read() #Διάβασμα του αρχείου.
 
file.close() #Κλείσιμο του αρχείου.
 
list_text = list(text) #Μετατροπή του text σε μια λίστα.
 
#Εδώ παίρνω το μέγεθος της λίστας 
#το οποίο όμως είναι και το πόσοι
#χαρακτήρες υπάρχουν στο αρχείο. 
characters_number = len(list_text) 
 
print("Το αρχείο περιέχει",characters_number,"χαρακτήρες.")

Όταν κάνω αυτό text = file.read() στο text αποθηκεύετε μια
συμβολοσειρά(string) με όλους τους χαρακτήρες του κειμένου
(συμπεριλαμβανομένων και τον κενών και τον χαρακτήρα αλλαγής
γραμμής \n).Κάνε ένα print το text και θα δεις ότι στην οθόνη
θα εμφανιστεί ακριβώς το ίδιο κείμενο με το αρχείο.

Με αυτό list_text = list(text) δημιουργώ μία λίστα η οποία
περιέχει όλους τους χαρακτήρες του text.Αυτό που καταφέρνω
είναι ότι τώρα μπορώ να χρησιμοποιήσω την συνάρτηση len()
για να πάρα το μέγεθος της λίστας.Το μέγεθός της λίστα είναι
ακριβός το ίδιο με τον αριθμό τον χαρακτήρων που υπάρχει στο
αρχείο.Κάνε ένα print και την λίστα για να το δεις και μόνος
σου.

Άμα όμως η άσκηση λέει ότι θέλει των αριθμώ όλων των χαρακτήρων από το αρχείο εκτός από τα κενά και τον χαρακτήρα
αλλαγής γραμμής τότε ο αλγόριθμος γίνετε λίγο ποιο περίπλοκος
διότι χρειάζεται έλεγχος.
Τελευταία διόρθωση: 9 Χρόνια 10 Μήνες πριν από babaliaris1.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

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

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Όπως έγραψε και ο babaliaris1, πρέπει να κάνεις διαχωρισμό των κενών χαρακτήρων καθώς και των σημείων αλλαγής γραμμής.

Μια βοήθεια είναι και το module re της python, που σου δίνει αρκετές δυνατότητες φιλτραρίσματος των λέξεων, χαρακτήρων και κενών.
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

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

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Και ένα παράδειγμα:
import re
 
# "Η Σιωπή του Έρωτα" Oscar Wilde
keimeno = """Έτσι όπως συχνά ο ήλιος με την εντυπωσιακή του λάμψη
διώχνει το θαμπό φεγγάρι, όσο και αν αντιστέκεται
στη σκοτεινή σπηλιά του, χωρίς να ακούσει
ούτε ένα τραγουδι από το αηδόνι
έτσι η ομορφιά σου μου σφραγίζει τα χείλη
και κάνει παράφωνα για μένα τα πιο όμορφα τραγούδια
 
Κι όπως την αυγή πάνω από τα λιβάδια
περνά ο άνεμος με τα ορμητικά του φτερά
και σπάει τα καλάμια με τα δυνατά φιλιά του
που αυτά μόνο, μπορούν να γίνουν όργανα τραγουδιού
έτσι τα ορμητικά μου πάθη, παραδέρνουν συνέχεια μέσα μου
και η τόσο μεγάλη αγάπη κάνει την αγάπη μου βουβή
....
Oscar Wilde
"""
 
pat = "\w"
pr = re.compile(pat)
characters = re.findall(pr, keimeno)
print(characters)
print('Το σύνολο των χαρακτήρων είναι {0}.'.format(len(characters)), end='\n\n')
 
pat = "\W" #Κενά και σημεία στίξης.
pr = re.compile(pat)
kena = re.findall(pr, keimeno)
print(kena)
print('Το σύνολο των κενών είναι {0}.'.format(len(kena)), end='\n\n')
 
 
pat = "\w+"
pr = re.compile(pat)
lexis = re.findall(pr, keimeno)
print(lexis)
print('Το σύνολο των λέξων είναι {0}.'.format(len(lexis)))
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

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

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
Για να σου δώσω και μια ιδέα για την δεύτερη και τρίτη ερώτηση
, σκέψου τα εξής:

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

Για το τρίτο ερώτημα έχε υπόψη σου ότι οι προτάσεις χωρίζονται
με τελεία άρα κάθε φορά που θα συναντάς τελεία θα αυξάνεις
και έναν μετρητή για τις προτάσεις.
Τελευταία διόρθωση: 9 Χρόνια 10 Μήνες πριν από babaliaris1. Αιτία: Οι προτάσεις χωρίζονται με τελεία όχι με κόμμα.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

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

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Αν χρησιμοποιήσεις regular expressions, ίσως χρειαστεί λίγο παραπάνω διάβασμα, αλλά απλοποιείς τον κώδικά σου.

@babaliaris1
Για το τρίτο ερώτημα έχε υπόψη σου ότι οι προτάσεις χωρίζονται
με κόμμα άρα κάθε φορά που θα συναντάς και ένα κόμμα θα αυξάνεις
και έναν μετρητή για τις προτάσεις.

Οι προτάσεις χωρίζονται με τελεία (.) και με μερικά ακόμη σημεία στίξης (; !). :)
Γράφω σε Python 3
Τελευταία διόρθωση: 9 Χρόνια 10 Μήνες πριν από kamar. Αιτία: Προσθήκη κειμένου.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

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

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
kamar έγραψε:
Αν χρησιμοποιήσεις regular expressions, ίσως χρειαστεί λίγο παραπάνω διάβασμα, αλλά απλοποιείς τον κώδικά σου.

@babaliaris1
Για το τρίτο ερώτημα έχε υπόψη σου ότι οι προτάσεις χωρίζονται
με κόμμα άρα κάθε φορά που θα συναντάς και ένα κόμμα θα αυξάνεις
και έναν μετρητή για τις προτάσεις.

Οι προτάσεις χωρίζονται με τελεία (.). :)

Χάχα ναι δίκαιο έχεις θα το διορθώσω :p
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

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

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
babaliaris1 έγραψε:
kamar έγραψε:
Αν χρησιμοποιήσεις regular expressions, ίσως χρειαστεί λίγο παραπάνω διάβασμα, αλλά απλοποιείς τον κώδικά σου.

@babaliaris1
Για το τρίτο ερώτημα έχε υπόψη σου ότι οι προτάσεις χωρίζονται
με κόμμα άρα κάθε φορά που θα συναντάς και ένα κόμμα θα αυξάνεις
και έναν μετρητή για τις προτάσεις.

Οι προτάσεις χωρίζονται με τελεία (.). :)

Χάχα ναι δίκαιο έχεις θα το διορθώσω :p

Έχω διορθώσει, επίσης, την ανάρτησή μου. Ενδεικτικά πρόσθεσα το ερωτηματικό και το θαυμαστικό.
Υπάρχουν και άλλα σημεία στίξης, που δηλώνουν το τέλος προτάσεως.
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

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

  • sotirisPy
  • Το Άβαταρ του/της sotirisPy
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 3
num =int(input("Dwse ena arithmo : "))
i = 1
factorial = 1
for i in range(1,num):
factorial = factorial * i
print("the factorial",num,"einai",factorial)

giati otan bazw ena aritmo pou epistrefh panta ena mikrotero?
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

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

  • sotirisPy
  • Το Άβαταρ του/της sotirisPy
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 3
γιατι οταν βαζω ενα αριθμο που επιστρεφει παντα ενα μικροτερο?
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

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

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
sotirisPy έγραψε:
num =int(input("Dwse ena arithmo : "))
i = 1
factorial = 1
for i in range(1,num):
factorial = factorial * i
print("the factorial",num,"einai",factorial)

giati otan bazw ena aritmo pou epistrefh panta ena mikrotero?

Φίλε πρώτον δεν καταλαβαίνω την ερώτηση σου, και δεύτερων έτσι όπως γράφεις τον κώδικα
δεν γνωρίζω ποιες γραμμές ανήκουν μέσα στο loop και ποιες όχι.
Όταν γράφεις κώδικα καλό είναι να χρησιμοποιείς την γραφή κώδικα.Όταν γράφεις ένα μήνυμα
πάνω πάνω που έχει να επιλέξεις "Φάτσες" :P υπάρχει και ένα εικονίδιο με αυτά τα σύμβολα
<> .Το πατάς και μετά λίγο ποιο κάτω θα λέει εισαγωγή.Πατάς εισαγωγή και στο πλαίσιο που
γράφεις θα σε εμφανίσει αυτό: code \code (Τα οποία θα περικλείονταν από []).Ανάμεσα σε
αυτά τα δύο γράφεις των κώδικα.Άμα πάλι δυσκολεύεσαι να το κάνεις αυτό τότε γράψε τον
κωδικά σου όπως τον έγραψες αλλά τουλάχιστον άφηνε και κενά για να γνωρίζουμε ποιες
γραμμές βρίσκονται στο loop και ποιες όχι.Επιπλέον δώσε και ποιο κατανοητές ερωτήσεις.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

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

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
sotirisPy έγραψε:
γιατι οταν βαζω ενα αριθμο που επιστρεφει παντα ενα μικροτερο?

Ίσως πρέπει να επαναδιατυπώσεις την ερώτησή σου. Προφανώς, όταν δίνεις 4, περιμένεις 4 αποτελέσματα, αλλά επιστρέφουν 3 αποτελέσματα. Έτσι λειτουργεί η range(), γιατί έδωσες πρώτο όρισμα το 1. Διάβασε το εγχειρίδιο της python για την range και τροποποίησε ανάλογα τον κώδικά σου.
Γράφω σε Python 3
Τελευταία διόρθωση: 9 Χρόνια 10 Μήνες πριν από kamar. Αιτία: Αφαίρεση διπλής λέξης
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

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

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

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

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

Αυτό είναι αρκετά δύσκολο για να το κάνεις.Πάντως μια ιδέα είναι να διαβάζεις το αρχείο σε μορφή
read mode και να το διαβάζεις ολόκληρο αποθηκεύοντας το ως συμβολοσειρά σε μια μεταβλητή.
Μετά θα πρέπει να κάνεις ελέγχους για να εντοπίσεις λέξεις κλειδιά της python.Στην συνέχεια με
κάποιον τρόπο θα πρέπει να ελέγχεις το συντακτικό τους.

Αλλά κάτι τέτοιο είναι αρκετά δύσκολο. Δεν μπορώ να σε πω περισσότερες πληροφορίες γιατί δεν έχω
σκεφτεί πως μπορεί να δουλέψει και δεν ξέρω πως να το κάνω.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

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

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
Γεια σου Κώστα και καλώς όρισες. Αν ακόμα το ψάχνεις, θα σου πρότεινα να κοιτάξεις τα
eval, exec, compile ή αν θες κάτι πιο πολύπλοκο το ast (δες και αυτό greentreesnakes.readthedocs.org/en/latest/ )

Θα πρέπει να δώσεις περισσότερες πληροφορίες σχετικά με το τι θες να πετύχεις για να σε βοηθήσουμε περισσότερο.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
  • Σελίδα:
  • 1
  • 2
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.349 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

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