nickT Δημοσ. 20 Αυγούστου 2010 Δημοσ. 20 Αυγούστου 2010 Καλησπέρα παιδιά.Εδώ και καιρό αχολούμε μόνος μου για να μάθω λίγο προγραμματισμό. Έχω ασχοληθεί λίγο με java,c++,και τώρα είπα να δω και λίγο τη python.Μην φανταστείτε πως ξέρω και τρομερά πράγματα,τα βασικά ας πούμε. Άρχισα να διαβάζω ένα (πολύ καλο) ελληνικό tutorial,και μου μπήκε η ιδέα να φτιάξω ενα προγραμματάκι που θα του δείνεις μια λέξη και θα σου αλλάζει τους χαρακτήρες μέσα στο string. Για κοιτάξτε το και πείτε μου που κάνω λάθος(μάλλον ΛΑΘΗ ): >keimeno = input('dose mou mia leksi: ') def allagi(a): i = 0 if (a[i] != '\0'): if (a[i] == 'a'): a[i] = '5' i=i+1 return a print( allagi(keimeno) ) Μου ζητάει κανονικα τη λέξη,και μόλις βάζω μια μου πετάει: >Traceback (most recent call last): File "C:/Documents and Settings/NM/Επιφάνεια ΞµΟγασίας/n", line 16, in <module> File "C:/Documents and Settings/NM/Επιφάνεια ΞµΟγασίας/n", line 10, in allagi TypeError: 'str' object does not support item assignment Έψαξα στο internet,και βρίκα πως στη python δεν μπορείς να αντικαταστήσεις τους χαρακτήρες,ή κάτι τέτοιο. Δώστε μου κάποια ιδέα,πως αλλιώς μπορώ να το γράψω. Μετά δοκίμασα ένα άλλο τρόπο,για να δω κάτι: >keimeno = str(input('dose mou mia leksi: ')) def allagi(a): i = 0 while a[i] != '\0': if (a[i] == 'a'): print('5') else: print (a[i]) i=i+1 allagi( keimeno ) και μου έγραψε κανονικά τα γράμματα,αλλά μου πέταξε το παρακάτω error: >Traceback (most recent call last): File "C:/Python31/dokimi", line 15, in <module> kodik( keimeno ) File "C:/Python31/dokimi", line 6, in kodik while a[i] != '\0': IndexError: string index out of range Λογικά δεν σταματάει όταν βρίσκει το '\0'...('Η έτσι τουλάχιστον πιστεύω) Βασικά,θέλω να μου δείξετε πιος είναι ο πιο σωστός τρόπος να τα γράψω για να πέρνω ιδέες.Τώρα αρχίζω και θέλω να δω μερικά πράγματα. Το ξέρω πως σας κούρασα και μόνο που το διαβάσατε,και σας ευχαριστώ για την υπομονή σας... Αν θα μπορούσε κάποιος να βοηθήσει,θα ήμουν ευγνώμον!!!
nickT Δημοσ. 20 Αυγούστου 2010 Μέλος Δημοσ. 20 Αυγούστου 2010 Καλησπέρα παιδιά.Εδώ και καιρό αχολούμε μόνος μου για να μάθω λίγο προγραμματισμό. Έχω ασχοληθεί λίγο με java,c++,και τώρα είπα να δω και λίγο τη python.Μην φανταστείτε πως ξέρω και τρομερά πράγματα,τα βασικά ας πούμε. Άρχισα να διαβάζω ένα (πολύ καλο) ελληνικό tutorial,και μου μπήκε η ιδέα να φτιάξω ενα προγραμματάκι που θα του δείνεις μια λέξη και θα σου αλλάζει τους χαρακτήρες μέσα στο string. Για κοιτάξτε το και πείτε μου που κάνω λάθος(μάλλον ΛΑΘΗ ): >keimeno = input('dose mou mia leksi: ') def allagi(a): i = 0 if (a[i] != '\0'): if (a[i] == 'a'): a[i] = '5' i=i+1 return a print( allagi(keimeno) ) Μου ζητάει κανονικα τη λέξη,και μόλις βάζω μια μου πετάει: >Traceback (most recent call last): File "C:/Documents and Settings/NM/Επιφάνεια ΞµΟγασίας/n", line 16, in <module> File "C:/Documents and Settings/NM/Επιφάνεια ΞµΟγασίας/n", line 10, in allagi TypeError: 'str' object does not support item assignment Έψαξα στο internet,και βρίκα πως στη python δεν μπορείς να αντικαταστήσεις τους χαρακτήρες,ή κάτι τέτοιο. Δώστε μου κάποια ιδέα,πως αλλιώς μπορώ να το γράψω. Μετά δοκίμασα ένα άλλο τρόπο,για να δω κάτι: >keimeno = str(input('dose mou mia leksi: ')) def allagi(a): i = 0 while a[i] != '\0': if (a[i] == 'a'): print('5') else: print (a[i]) i=i+1 allagi( keimeno ) και μου έγραψε κανονικά τα γράμματα,αλλά μου πέταξε το παρακάτω error: >Traceback (most recent call last): File "C:/Python31/dokimi", line 15, in <module> kodik( keimeno ) File "C:/Python31/dokimi", line 6, in kodik while a[i] != '\0': IndexError: string index out of range Λογικά δεν σταματάει όταν βρίσκει το '\0'...('Η έτσι τουλάχιστον πιστεύω) Βασικά,θέλω να μου δείξετε πιος είναι ο πιο σωστός τρόπος να τα γράψω για να πέρνω ιδέες.Τώρα αρχίζω και θέλω να δω μερικά πράγματα. Το ξέρω πως σας κούρασα και μόνο που το διαβάσατε,και σας ευχαριστώ για την υπομονή σας... Αν θα μπορούσε κάποιος να βοηθήσει,θα ήμουν ευγνώμον!!!
computeras13 Δημοσ. 20 Αυγούστου 2010 Δημοσ. 20 Αυγούστου 2010 Δεν έχω δουλέψει ακόμα με python αλλά δοκίμασε αυτό να μου πεις αν δουλέυει. >keimeno = str(input('dose mou mia leksi: ')) def allagi(a): print(a.replace('a', '5')) allagi( keimeno )
computeras13 Δημοσ. 20 Αυγούστου 2010 Δημοσ. 20 Αυγούστου 2010 Δεν έχω δουλέψει ακόμα με python αλλά δοκίμασε αυτό να μου πεις αν δουλέυει. >keimeno = str(input('dose mou mia leksi: ')) def allagi(a): print(a.replace('a', '5')) allagi( keimeno )
Xdanger Δημοσ. 20 Αυγούστου 2010 Δημοσ. 20 Αυγούστου 2010 φτιαξε μια νεα μεταβλητη πχ b και περνα ενα ενα τα γραμματα εκει και στο τελος της συναρτησης βαλε a=b
Xdanger Δημοσ. 20 Αυγούστου 2010 Δημοσ. 20 Αυγούστου 2010 φτιαξε μια νεα μεταβλητη πχ b και περνα ενα ενα τα γραμματα εκει και στο τελος της συναρτησης βαλε a=b
computeras13 Δημοσ. 20 Αυγούστου 2010 Δημοσ. 20 Αυγούστου 2010 Γιατί να κάνεις κάτι τέτοιο από την στιγμή που υπάρχει ήδη έτοιμη η συνάρτηση για αντικατάσταση;! Την δοκίμασα και δουλεύει κανονικά ή παραπάνω συνάρτηση που έγραψα πάντως.
computeras13 Δημοσ. 20 Αυγούστου 2010 Δημοσ. 20 Αυγούστου 2010 Γιατί να κάνεις κάτι τέτοιο από την στιγμή που υπάρχει ήδη έτοιμη η συνάρτηση για αντικατάσταση;! Την δοκίμασα και δουλεύει κανονικά ή παραπάνω συνάρτηση που έγραψα πάντως.
Xdanger Δημοσ. 20 Αυγούστου 2010 Δημοσ. 20 Αυγούστου 2010 Γιατί να κάνεις κάτι τέτοιο από την στιγμή που υπάρχει ήδη έτοιμη η συνάρτηση για αντικατάσταση;! Την δοκίμασα και δουλεύει κανονικά ή παραπάνω συνάρτηση που έγραψα πάντως. γιατι ειπες οτι δεν εχεις ασχοληθει και δεν ξερεις αν δουλευει. ουτε εγω εχω ασχοληθει με python και του ειπα εναν τροπο να το κανει
Xdanger Δημοσ. 20 Αυγούστου 2010 Δημοσ. 20 Αυγούστου 2010 Γιατί να κάνεις κάτι τέτοιο από την στιγμή που υπάρχει ήδη έτοιμη η συνάρτηση για αντικατάσταση;! Την δοκίμασα και δουλεύει κανονικά ή παραπάνω συνάρτηση που έγραψα πάντως. γιατι ειπες οτι δεν εχεις ασχοληθει και δεν ξερεις αν δουλευει. ουτε εγω εχω ασχοληθει με python και του ειπα εναν τροπο να το κανει
nickT Δημοσ. 20 Αυγούστου 2010 Μέλος Δημοσ. 20 Αυγούστου 2010 Δεν έχω δουλέψει ακόμα με python αλλά δοκίμασε αυτό να μου πεις αν δουλέυει.>keimeno = str(input('dose mou mia leksi: ')) def allagi(a): print(a.replace('a', '5')) allagi( keimeno ) Ευχαριστό πολύ computeras13 δούλεψε κανονικότατα!!! φτιαξε μια νεα μεταβλητη πχ b και περνα ενα ενα τα γραμματα εκεικαι στο τελος της συναρτησης βαλε a=b Xdanger,είχα δοκιμάσει να το κάνω κι αυτό αλλά δεν τα κατάφερα. Αν θες δώσε καμία ιδέα να δω πως είναι το σωστό. Πάντως σας ευχαριστώ όλους για την βοήθεια. Θα ψάξω κανένα site για να δω τις συναρτήσεις στην python!!! edit: Αυτό το παράδειγμα που μου έδωσε ο Xdanger,διαβάζει το χαρακτήρα 'α' και τυπώνει το '5',δεν αλλάζει όμως το χαρακτήρα μέσα στη μεταβλητή. Πως θα γίνει,αντί να τυπώνει μόνο το '5',να αλλάζει το χαρακτήρα μέσα στη λέξη και να την αποθηκέυη μέσα στη μεταβλητή. π.χ.αν γράφω τη λέξη <<alati>>,να μου τη μετατρέπει σε <<5l5ti>>,αλλά να είναι <<keimeno =5l5ti>>,ωστέ να μπρορέσω να χρεισιμοποιήσω και τη λέξη αργότερα. Καταλάβατε τι θέλω να πω?
nickT Δημοσ. 20 Αυγούστου 2010 Μέλος Δημοσ. 20 Αυγούστου 2010 Δεν έχω δουλέψει ακόμα με python αλλά δοκίμασε αυτό να μου πεις αν δουλέυει.>keimeno = str(input('dose mou mia leksi: ')) def allagi(a): print(a.replace('a', '5')) allagi( keimeno ) Ευχαριστό πολύ computeras13 δούλεψε κανονικότατα!!! φτιαξε μια νεα μεταβλητη πχ b και περνα ενα ενα τα γραμματα εκεικαι στο τελος της συναρτησης βαλε a=b Xdanger,είχα δοκιμάσει να το κάνω κι αυτό αλλά δεν τα κατάφερα. Αν θες δώσε καμία ιδέα να δω πως είναι το σωστό. Πάντως σας ευχαριστώ όλους για την βοήθεια. Θα ψάξω κανένα site για να δω τις συναρτήσεις στην python!!! edit: Αυτό το παράδειγμα που μου έδωσε ο Xdanger,διαβάζει το χαρακτήρα 'α' και τυπώνει το '5',δεν αλλάζει όμως το χαρακτήρα μέσα στη μεταβλητή. Πως θα γίνει,αντί να τυπώνει μόνο το '5',να αλλάζει το χαρακτήρα μέσα στη λέξη και να την αποθηκέυη μέσα στη μεταβλητή. π.χ.αν γράφω τη λέξη <<alati>>,να μου τη μετατρέπει σε <<5l5ti>>,αλλά να είναι <<keimeno =5l5ti>>,ωστέ να μπρορέσω να χρεισιμοποιήσω και τη λέξη αργότερα. Καταλάβατε τι θέλω να πω?
computeras13 Δημοσ. 20 Αυγούστου 2010 Δημοσ. 20 Αυγούστου 2010 Αν εννοείς το δικό μου παράδειγμα (και απλά έκανες λάθος στο όνομα) τότε απλά θα κάνεις αντί για print εκχώρηση της συνάρτησης στην μεταβλητή και μετά αν θες το τυπώνεις ή όχι. Δηλαδή θα γράψεις >a = a.replace('a','5') για να αποθηκευθεί στην αρχική μεταβλητή το αποτέλεσμα.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.