Hi All

Please some one Help me find out why this code doesn't work:

codes=['zlib', 'zip', 'base64', 'hex', 'utf-8']

def encoder(str, i):
    return str.encode(codes[i])

def decoder(str, i):
    return str.decode(codes[i])

en = encoder('Some string here', 2)
print en

It works for me and python 2.6

codes=['zlib', 'zip', 'base64', 'hex', 'utf-8']

def encoder(str, i):
    return str.encode(codes[i])

def decoder(str, i):
    return str.decode(codes[i])

thing = 'Some string here'
for i, k in enumerate(codes):
    en = encoder(thing, i)
    assert thing == decoder(en, i)
    
print "success"

Thanks Gribouillis,
Now it works, but it en/decodes the string in all encodings.
I want to select the encoding freely, for example, something like this:

en1 = encoder('String One', 2)# for base64
en2 = encoder('String Two', 3)# for hex
#en3 = ....
#and so on

Edited 5 Years Ago by M.S.: n/a

Thanks Gribouillis,
Now it works, but it en/decodes the string in all encodings.
I want to select the encoding freely, for example, something like this:

en1 = encoder('String One', 2)# for base64
en2 = encoder('String Two', 3)# for hex
#en3 = ....
#and so on

I don't understand, doesn't it work as expected ? Please describe the expected output of your program and, if it "doesn't work", why it doesn't produce the expected output, or if it raises an exception, which exception ?

Edited 5 Years Ago by Gribouillis: n/a

Thanks again for your reply

as I said the code works, without exceptions.

it gets the value of "thing" and encodes it to all encodings at once.
its ok, but, I want the User select which encoding he needs the string to be encoded. sorry if i cant be more clear(because of language barrier, Im not an English speaker).

in other word:
i want to input encoding selectively:
Input 1: the string I want to Encode or decode
Input 2: one or two of the encodings in list "codes"

Output: Printing out the Encoded/Decoded String

@pyTony: I want to doing this in my mobile python(compatible with Python 2.2), and it has not all of the libraries

Sorry for my bad English

Edited 5 Years Ago by M.S.: n/a

Thank you both.
problem solved by tweaking the code u gave to me.

This question has already been answered. Start a new discussion instead.