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

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


nickT

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

Δημοσ.

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

 

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

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

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

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

 

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

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

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

 

sorry για το λάθος,εσένα εννοούσα.:o

Είσαι και ο πρώτος.Δουλεύει άψογα.;)

thanks!!!

 

---------- Προσθήκη στις 21:45 ---------- Προηγούμενο μήνυμα στις 21:06 ----------

 

Το ξέρω πως σας κουράζω...αλλά θέλω να κάνω ακόμη μια ερώτηση.

Γράφω το παρακάτω πρόγραμμα:

 

 

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

def kodikopoiisi(a):

# Mikra Grammata
 
   a = a.replace('0','t')
   
   a = a.replace('1','x')
   
   a = a.replace('2','l')
   
   a = a.replace('3','i')
   
   a = a.replace('4','q')
   
   a = a.replace('5','c')
   
   a = a.replace('6','u')
   
   a = a.replace('7','y')
   
   a = a.replace('8','b')
   
   a = a.replace('9','v')
   
   a = a.replace('a','9')
   
   a = a.replace('b','k')
   
   a = a.replace('c','7')
   
   a = a.replace('d','o')
   
   a = a.replace('e','h')
   
   a = a.replace('f','d')
   
   a = a.replace('g','5')
   
   a = a.replace('h','n')
   
   a = a.replace('i','8')
   
   a = a.replace('j','s')
   
   a = a.replace('k','3')
   
   a = a.replace('l','a')
   
   a = a.replace('m','e')
   
   a = a.replace('n','r')
   
   a = a.replace('o','6')
   
   a = a.replace('p','w')
   
   a = a.replace('q','1')
   
   a = a.replace('r','z')
   
   a = a.replace('s','0')
   
   a = a.replace('t','4')
   
   a = a.replace('u','f')
   
   a = a.replace('v','2')
   
   a = a.replace('w','g')
   
   a = a.replace('x','j')
   
   a = a.replace('y','m')
   
   a = a.replace('z','p')   
       
   return a

print( kodikopoiisi(keimeno) )

 

 

Το τρέχει κανονικά,δεν μου πετάει error.

Μου ζητάει να γράψω τη λέξη,και βάζω aek(δεν θέλω σχόλια:P),αλλά αντί να μου βγει σαν αποτέλεσμα το 9h3,μου βγάζει 9p3,σαν να του έγραψα azk.

 

Γιαυτό κι εγώ έκανα την δοκιμή με το παρακάτω πρόγραμμα που αλλάζει μόνο τα γράμματα a,e,k με τα αντίστοιχα 9,h,3

 

 

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

def kodikopoiisi(a):

# Mikra Grammata
   a = a.replace('a','9')
   a = a.replace('e','h')
   a = a.replace('k','3')
       
   return a

print( kodikopoiisi(keimeno) )

 

 

Εδώ μου πετάει το σωστό αποτέλεσμα. 9,h,3

 

Τι γίνεται λάθος στο πρώτο αποτέλεσμα,και μου πετάει λάθος αποτέλεσμα?

 

Θυμάμαι πως και όταν προσπάθησα παλιότερα να γράψω ένα ολόϊδιο πρόγραμμα στην c++,ενώ κατάφερα και δεν μου πέταγε error,έκανε πάλι λάθη με τα γράμματα.:mad:

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

 

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

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

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

 

sorry για το λάθος,εσένα εννοούσα.:o

Είσαι και ο πρώτος.Δουλεύει άψογα.;)

thanks!!!

 

---------- Προσθήκη στις 21:45 ---------- Προηγούμενο μήνυμα στις 21:06 ----------

 

Το ξέρω πως σας κουράζω...αλλά θέλω να κάνω ακόμη μια ερώτηση.

Γράφω το παρακάτω πρόγραμμα:

 

 

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

def kodikopoiisi(a):

# Mikra Grammata
 
   a = a.replace('0','t')
   
   a = a.replace('1','x')
   
   a = a.replace('2','l')
   
   a = a.replace('3','i')
   
   a = a.replace('4','q')
   
   a = a.replace('5','c')
   
   a = a.replace('6','u')
   
   a = a.replace('7','y')
   
   a = a.replace('8','b')
   
   a = a.replace('9','v')
   
   a = a.replace('a','9')
   
   a = a.replace('b','k')
   
   a = a.replace('c','7')
   
   a = a.replace('d','o')
   
   a = a.replace('e','h')
   
   a = a.replace('f','d')
   
   a = a.replace('g','5')
   
   a = a.replace('h','n')
   
   a = a.replace('i','8')
   
   a = a.replace('j','s')
   
   a = a.replace('k','3')
   
   a = a.replace('l','a')
   
   a = a.replace('m','e')
   
   a = a.replace('n','r')
   
   a = a.replace('o','6')
   
   a = a.replace('p','w')
   
   a = a.replace('q','1')
   
   a = a.replace('r','z')
   
   a = a.replace('s','0')
   
   a = a.replace('t','4')
   
   a = a.replace('u','f')
   
   a = a.replace('v','2')
   
   a = a.replace('w','g')
   
   a = a.replace('x','j')
   
   a = a.replace('y','m')
   
   a = a.replace('z','p')   
       
   return a

print( kodikopoiisi(keimeno) )

 

 

Το τρέχει κανονικά,δεν μου πετάει error.

Μου ζητάει να γράψω τη λέξη,και βάζω aek(δεν θέλω σχόλια:P),αλλά αντί να μου βγει σαν αποτέλεσμα το 9h3,μου βγάζει 9p3,σαν να του έγραψα azk.

 

Γιαυτό κι εγώ έκανα την δοκιμή με το παρακάτω πρόγραμμα που αλλάζει μόνο τα γράμματα a,e,k με τα αντίστοιχα 9,h,3

 

 

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

def kodikopoiisi(a):

# Mikra Grammata
   a = a.replace('a','9')
   a = a.replace('e','h')
   a = a.replace('k','3')
       
   return a

print( kodikopoiisi(keimeno) )

 

 

Εδώ μου πετάει το σωστό αποτέλεσμα. 9,h,3

 

Τι γίνεται λάθος στο πρώτο αποτέλεσμα,και μου πετάει λάθος αποτέλεσμα?

 

Θυμάμαι πως και όταν προσπάθησα παλιότερα να γράψω ένα ολόϊδιο πρόγραμμα στην c++,ενώ κατάφερα και δεν μου πέταγε error,έκανε πάλι λάθη με τα γράμματα.:mad:

Δημοσ.

Το λάθος σου είναι λογικό στην προκειμένη περίπτωση. Μερικές φορές για να δούμε που έχουμε λάθος (αν είναι μικρός ο κώδικας) ακολουθούμε τα βήματα με χαρτί και μολύβι (αλλιώς υπάρχει και το debugging:P)

 

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

 

a->9

e->h->n->r->z->p

k->3

 

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

Δημοσ.

Το λάθος σου είναι λογικό στην προκειμένη περίπτωση. Μερικές φορές για να δούμε που έχουμε λάθος (αν είναι μικρός ο κώδικας) ακολουθούμε τα βήματα με χαρτί και μολύβι (αλλιώς υπάρχει και το debugging:P)

 

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

 

a->9

e->h->n->r->z->p

k->3

 

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

Δημοσ.

Δεν κατάλαβα αυτό που λες για το:

 

a->9

e->h->n->r->z->p

k->3

 

Θα ρίξω μια ματιά πως μπορώ να το κάνω με case,μπας και το καταφέρω!!!

Δημοσ.

Δεν κατάλαβα αυτό που λες για το:

 

a->9

e->h->n->r->z->p

k->3

 

Θα ρίξω μια ματιά πως μπορώ να το κάνω με case,μπας και το καταφέρω!!!

Δημοσ.

Θα στο δώσω αλλιώς για να καταλάβεις. Ο κώδικας σου είναι αυτός:

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

def kodikopoiisi(a):
# Mikra Grammata
   a = a.replace('0','t')
   a = a.replace('1','x')
   a = a.replace('2','l')
   a = a.replace('3','i')
   a = a.replace('4','q')
   a = a.replace('5','c')
   a = a.replace('6','u')
   a = a.replace('7','y')
   a = a.replace('8','b')
   a = a.replace('9','v')
   a = a.replace('a','9')
   a = a.replace('b','k')
   a = a.replace('c','7')
   a = a.replace('d','o')
   a = a.replace('e','h')
   a = a.replace('f','d')
   a = a.replace('g','5')
   a = a.replace('h','n')
   a = a.replace('i','8')
   a = a.replace('j','s')
   a = a.replace('k','3')    
   a = a.replace('l','a')    
   a = a.replace('m','e')    
   a = a.replace('n','r')    
   a = a.replace('o','6')    
   a = a.replace('p','w')    
   a = a.replace('q','1')    
   a = a.replace('r','z')    
   a = a.replace('s','0')    
   a = a.replace('t','4')    
   a = a.replace('u','f')    
   a = a.replace('v','2')    
   a = a.replace('w','g')   
   a = a.replace('x','j')    
   a = a.replace('y','m')   
   a = a.replace('z','p')           
   return a   # <--- αυτό εδώ δεν χρειάζεται

print( kodikopoiisi(keimeno) )

 

Όπως είπα οτι εντολές εκτελούνται σειριακά. Για να καταλάβεις την μορφή που θα έχει το κείμενό σου θα σου το γράφω το περιεχόμενο του a δίπλα από κάθε εντολή (το αποτέλεσμα αφού εκτελεστεί η εντολή).

 

>keimeno = input('dose mou mia leksi: ')  # έστω δίνουμε aek

def kodikopoiisi(a):
# Mikra Grammata
   a = a.replace('0','t') # aek
   a = a.replace('1','x') # aek
   a = a.replace('2','l') # aek
   a = a.replace('3','i') # aek
   a = a.replace('4','q') # aek
   a = a.replace('5','c') # aek
   a = a.replace('6','u') # aek
   a = a.replace('7','y') # aek
   a = a.replace('8','b') # aek
   a = a.replace('9','v') # aek
   a = a.replace('a','9') # 9ek
   a = a.replace('b','k') # 9ek
   a = a.replace('c','7') # 9ek
   a = a.replace('d','o') # 9ek
   a = a.replace('e','h') # 9hk
   a = a.replace('f','d') # 9hk
   a = a.replace('g','5') # 9hk
   a = a.replace('h','n') # 9nk
   a = a.replace('i','8') # 9nk
   a = a.replace('j','s') # 9nk
   a = a.replace('k','3') # 9n3
   a = a.replace('l','a') # 9n3
   a = a.replace('m','e') # 9n3
   a = a.replace('n','r') # 9r3
   a = a.replace('o','6') # 9r3  
   a = a.replace('p','w') # 9r3
   a = a.replace('q','1') # 9r3
   a = a.replace('r','z') # 9z3
   a = a.replace('s','0') # 9z3  
   a = a.replace('t','4') # 9z3
   a = a.replace('u','f') # 9z3
   a = a.replace('v','2') # 9z3
   a = a.replace('w','g') # 9z3
   a = a.replace('x','j') # 9z3
   a = a.replace('y','m') # 9z3
   a = a.replace('z','p') # 9p3
   return a   # <--- αυτό εδώ δεν χρειάζεται

print( kodikopoiisi(keimeno) ) # στο τέλος θα σου βγάλει 9p3 όπως φαίνεται παραπάνω

Δημοσ.

Θα στο δώσω αλλιώς για να καταλάβεις. Ο κώδικας σου είναι αυτός:

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

def kodikopoiisi(a):
# Mikra Grammata
   a = a.replace('0','t')
   a = a.replace('1','x')
   a = a.replace('2','l')
   a = a.replace('3','i')
   a = a.replace('4','q')
   a = a.replace('5','c')
   a = a.replace('6','u')
   a = a.replace('7','y')
   a = a.replace('8','b')
   a = a.replace('9','v')
   a = a.replace('a','9')
   a = a.replace('b','k')
   a = a.replace('c','7')
   a = a.replace('d','o')
   a = a.replace('e','h')
   a = a.replace('f','d')
   a = a.replace('g','5')
   a = a.replace('h','n')
   a = a.replace('i','8')
   a = a.replace('j','s')
   a = a.replace('k','3')    
   a = a.replace('l','a')    
   a = a.replace('m','e')    
   a = a.replace('n','r')    
   a = a.replace('o','6')    
   a = a.replace('p','w')    
   a = a.replace('q','1')    
   a = a.replace('r','z')    
   a = a.replace('s','0')    
   a = a.replace('t','4')    
   a = a.replace('u','f')    
   a = a.replace('v','2')    
   a = a.replace('w','g')   
   a = a.replace('x','j')    
   a = a.replace('y','m')   
   a = a.replace('z','p')           
   return a   # <--- αυτό εδώ δεν χρειάζεται

print( kodikopoiisi(keimeno) )

 

Όπως είπα οτι εντολές εκτελούνται σειριακά. Για να καταλάβεις την μορφή που θα έχει το κείμενό σου θα σου το γράφω το περιεχόμενο του a δίπλα από κάθε εντολή (το αποτέλεσμα αφού εκτελεστεί η εντολή).

 

>keimeno = input('dose mou mia leksi: ')  # έστω δίνουμε aek

def kodikopoiisi(a):
# Mikra Grammata
   a = a.replace('0','t') # aek
   a = a.replace('1','x') # aek
   a = a.replace('2','l') # aek
   a = a.replace('3','i') # aek
   a = a.replace('4','q') # aek
   a = a.replace('5','c') # aek
   a = a.replace('6','u') # aek
   a = a.replace('7','y') # aek
   a = a.replace('8','b') # aek
   a = a.replace('9','v') # aek
   a = a.replace('a','9') # 9ek
   a = a.replace('b','k') # 9ek
   a = a.replace('c','7') # 9ek
   a = a.replace('d','o') # 9ek
   a = a.replace('e','h') # 9hk
   a = a.replace('f','d') # 9hk
   a = a.replace('g','5') # 9hk
   a = a.replace('h','n') # 9nk
   a = a.replace('i','8') # 9nk
   a = a.replace('j','s') # 9nk
   a = a.replace('k','3') # 9n3
   a = a.replace('l','a') # 9n3
   a = a.replace('m','e') # 9n3
   a = a.replace('n','r') # 9r3
   a = a.replace('o','6') # 9r3  
   a = a.replace('p','w') # 9r3
   a = a.replace('q','1') # 9r3
   a = a.replace('r','z') # 9z3
   a = a.replace('s','0') # 9z3  
   a = a.replace('t','4') # 9z3
   a = a.replace('u','f') # 9z3
   a = a.replace('v','2') # 9z3
   a = a.replace('w','g') # 9z3
   a = a.replace('x','j') # 9z3
   a = a.replace('y','m') # 9z3
   a = a.replace('z','p') # 9p3
   return a   # <--- αυτό εδώ δεν χρειάζεται

print( kodikopoiisi(keimeno) ) # στο τέλος θα σου βγάλει 9p3 όπως φαίνεται παραπάνω

Δημοσ.

Τώρα το κατάλαβα!!!Θα προσπαθήσω να βρω πως γίνεται με άλλον τρόπο.

Βρίκα τώρα μια εντολή που μπορεί να βοηθήσει,αλλά δεν καταφέρνω τίποτα.

Η εντολή είναι maketrans(from,to).

Ένα παράδειγμα:

 

 

 

>
s = raw_input("Please enter your full name: ")
import string
print string.capwords(s)

s = "matt         a             telles"
print string.capwords(s)

sIn = "abcdefghijklmnopqrstuvwxyz"
sOut = "defghijklmnopqrstuvwzyzabc"
sTrans = string.maketrans(sIn, sOut)
print string.translate("This is a test of the emergency broadcast system",
sTrans)

sRevTrans = string.maketrans(sOut, sIn)
s = string.translate("This is a test of the emergency broadcast system",
sTrans)
print string.translate(s, sRevTrans)
print s

sIn = sIn + " "
sOut = sOut + "~"
print string.translate(s, string.maketrans(sIn, sOut) )

 

Το είδα από ένα site,και προσπαθώ να το υλοποιήσω,χωρίς κανένα αποτέλεσμα!!!

Δημοσ.

Τώρα το κατάλαβα!!!Θα προσπαθήσω να βρω πως γίνεται με άλλον τρόπο.

Βρίκα τώρα μια εντολή που μπορεί να βοηθήσει,αλλά δεν καταφέρνω τίποτα.

Η εντολή είναι maketrans(from,to).

Ένα παράδειγμα:

 

 

 

>
s = raw_input("Please enter your full name: ")
import string
print string.capwords(s)

s = "matt         a             telles"
print string.capwords(s)

sIn = "abcdefghijklmnopqrstuvwxyz"
sOut = "defghijklmnopqrstuvwzyzabc"
sTrans = string.maketrans(sIn, sOut)
print string.translate("This is a test of the emergency broadcast system",
sTrans)

sRevTrans = string.maketrans(sOut, sIn)
s = string.translate("This is a test of the emergency broadcast system",
sTrans)
print string.translate(s, sRevTrans)
print s

sIn = sIn + " "
sOut = sOut + "~"
print string.translate(s, string.maketrans(sIn, sOut) )

 

Το είδα από ένα site,και προσπαθώ να το υλοποιήσω,χωρίς κανένα αποτέλεσμα!!!

Δημοσ.

Ορίστε ο κώδικάς σου για να δουλέψει με αυτή τη μέθοδο:

 

>keimeno = input('dose mou mia leksi: ')
arxiko = "0123456789abcdefghijklmnopqrstuvwxyz"
teliko = "txliqcuybv9k7ohd5n8s3aer6w1z04f2gjmp"
translation = str.maketrans(arxiko,teliko)
print (keimeno.translate(translation))

Δημοσ.

Ορίστε ο κώδικάς σου για να δουλέψει με αυτή τη μέθοδο:

 

>keimeno = input('dose mou mia leksi: ')
arxiko = "0123456789abcdefghijklmnopqrstuvwxyz"
teliko = "txliqcuybv9k7ohd5n8s3aer6w1z04f2gjmp"
translation = str.maketrans(arxiko,teliko)
print (keimeno.translate(translation))

Δημοσ.

ΤΟ ΒΡΗΚΑ!!!!!!!!!!!!!!!!

 

Εδώ είναι ο κώδικας:

 

 

>s = input("Please enter your full name: ")

sIn = "0123456789abcdefghijklmnopqrstuvwxyz"
sOut = "txliqcuybv9k7ohd5n8s3aer6w1z04f2gjmp"
tran = str.maketrans(sIn,sOut)
print (str.translate(s,tran))

 

 

με παίδεψε λίγο,γιατί στην python 3.1 είναι διαφορετικό από αυτό που έβλεπα στα παραδείγματα.

 

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

 

---------- Προσθήκη στις 01:19 ---------- Προηγούμενο μήνυμα στις 01:18 ----------

 

Αντί για υποβοή πάτησα προεπισκόπηση,και άργησα να το καταλάβω κανένα δεκάλεπτο.:rolleyes:

Ευχαριστώ πάντως!!!:-D

Δημοσ.

ΤΟ ΒΡΗΚΑ!!!!!!!!!!!!!!!!

 

Εδώ είναι ο κώδικας:

 

 

>s = input("Please enter your full name: ")

sIn = "0123456789abcdefghijklmnopqrstuvwxyz"
sOut = "txliqcuybv9k7ohd5n8s3aer6w1z04f2gjmp"
tran = str.maketrans(sIn,sOut)
print (str.translate(s,tran))

 

 

με παίδεψε λίγο,γιατί στην python 3.1 είναι διαφορετικό από αυτό που έβλεπα στα παραδείγματα.

 

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

 

---------- Προσθήκη στις 01:19 ---------- Προηγούμενο μήνυμα στις 01:18 ----------

 

Αντί για υποβοή πάτησα προεπισκόπηση,και άργησα να το καταλάβω κανένα δεκάλεπτο.:rolleyes:

Ευχαριστώ πάντως!!!:-D

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

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

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