Προς το περιεχόμενο

Αλλαγή γράμματος σε string στη python!!!


nickT

Προτεινόμενες αναρτήσεις

Δημοσ.

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

Έχω ασχοληθεί λίγο με java,c++,και τώρα είπα να δω και λίγο τη python.Μην φανταστείτε πως ξέρω και τρομερά πράγματα,τα βασικά ας πούμε.

Άρχισα να διαβάζω ένα (πολύ καλο) ελληνικό tutorial,και μου μπήκε η ιδέα να φτιάξω ενα προγραμματάκι που θα του δείνεις μια λέξη και θα σου αλλάζει τους χαρακτήρες μέσα στο string.

 

Για κοιτάξτε το και πείτε μου που κάνω λάθος(μάλλον ΛΑΘΗ :-D):

 

 

>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'...('Η έτσι τουλάχιστον πιστεύω:rolleyes:)

 

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

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

Αν θα μπορούσε κάποιος να βοηθήσει,θα ήμουν ευγνώμον!!!:-)

  • Απαντ. 42
  • Δημ.
  • Τελ. απάντηση
Δημοσ.

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

Έχω ασχοληθεί λίγο με java,c++,και τώρα είπα να δω και λίγο τη python.Μην φανταστείτε πως ξέρω και τρομερά πράγματα,τα βασικά ας πούμε.

Άρχισα να διαβάζω ένα (πολύ καλο) ελληνικό tutorial,και μου μπήκε η ιδέα να φτιάξω ενα προγραμματάκι που θα του δείνεις μια λέξη και θα σου αλλάζει τους χαρακτήρες μέσα στο string.

 

Για κοιτάξτε το και πείτε μου που κάνω λάθος(μάλλον ΛΑΘΗ :-D):

 

 

>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'...('Η έτσι τουλάχιστον πιστεύω:rolleyes:)

 

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

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

Αν θα μπορούσε κάποιος να βοηθήσει,θα ήμουν ευγνώμον!!!:-)

Δημοσ.

Δεν έχω δουλέψει ακόμα με python αλλά δοκίμασε αυτό να μου πεις αν δουλέυει.

>keimeno = str(input('dose mou mia leksi: '))

def allagi(a):
   print(a.replace('a', '5'))

allagi( keimeno )

Δημοσ.

Δεν έχω δουλέψει ακόμα με python αλλά δοκίμασε αυτό να μου πεις αν δουλέυει.

>keimeno = str(input('dose mou mia leksi: '))

def allagi(a):
   print(a.replace('a', '5'))

allagi( keimeno )

Δημοσ.

Γιατί να κάνεις κάτι τέτοιο από την στιγμή που υπάρχει ήδη έτοιμη η συνάρτηση για αντικατάσταση;!

 

Την δοκίμασα και δουλεύει κανονικά ή παραπάνω συνάρτηση που έγραψα πάντως.

Δημοσ.

Γιατί να κάνεις κάτι τέτοιο από την στιγμή που υπάρχει ήδη έτοιμη η συνάρτηση για αντικατάσταση;!

 

Την δοκίμασα και δουλεύει κανονικά ή παραπάνω συνάρτηση που έγραψα πάντως.

Δημοσ.
Γιατί να κάνεις κάτι τέτοιο από την στιγμή που υπάρχει ήδη έτοιμη η συνάρτηση για αντικατάσταση;!

 

Την δοκίμασα και δουλεύει κανονικά ή παραπάνω συνάρτηση που έγραψα πάντως.

 

γιατι ειπες οτι δεν εχεις ασχοληθει και δεν ξερεις αν δουλευει.

ουτε εγω εχω ασχοληθει με python και του ειπα εναν τροπο να το κανει

Δημοσ.
Γιατί να κάνεις κάτι τέτοιο από την στιγμή που υπάρχει ήδη έτοιμη η συνάρτηση για αντικατάσταση;!

 

Την δοκίμασα και δουλεύει κανονικά ή παραπάνω συνάρτηση που έγραψα πάντως.

 

γιατι ειπες οτι δεν εχεις ασχοληθει και δεν ξερεις αν δουλευει.

ουτε εγω εχω ασχοληθει με python και του ειπα εναν τροπο να το κανει

Δημοσ.
Δεν έχω δουλέψει ακόμα με 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>>,ωστέ να μπρορέσω να χρεισιμοποιήσω και τη λέξη αργότερα.

Καταλάβατε τι θέλω να πω?

Δημοσ.
Δεν έχω δουλέψει ακόμα με 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>>,ωστέ να μπρορέσω να χρεισιμοποιήσω και τη λέξη αργότερα.

Καταλάβατε τι θέλω να πω?

Δημοσ.

Αν εννοείς το δικό μου παράδειγμα (και απλά έκανες λάθος στο όνομα) τότε απλά θα κάνεις αντί για print εκχώρηση της συνάρτησης στην μεταβλητή και μετά αν θες το τυπώνεις ή όχι.

 

Δηλαδή θα γράψεις

>a = a.replace('a','5')

για να αποθηκευθεί στην αρχική μεταβλητή το αποτέλεσμα.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...