I’m a Python newbie.
How come this doesn’t work in Python 3.1?
from string import maketrans # Required to call maketrans function.
intab = "aeiou"
outtab = "12345"
trantab = maketrans(intab, outtab)
str = "this is string example....wow!!!";
print str.translate(trantab);
When I executed the above code, I get the following instead:
Traceback (most recent call last):
File "<pyshell#119>", line 1, in <module>
transtab = maketrans(intab, outtab)
File "/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/string.py", line 60, in maketrans
raise TypeError("maketrans arguments must be bytes objects")
TypeError: maketrans arguments must be bytes objects
What does “must be bytes objects” mean? Could anyone please help post a working code for Python 3.1 if it’s possible?
Strings are not bytes.
This is a simple definition in Python 3.
Strings are Unicode (which are not bytes) Unicode strings use
"..."or'...'Bytes are bytes (which are not strings) Byte strings use
b"..."orb'...'.Use
b"aeiou"to create a byte sequence composed of the ASCII codes for certain letters.