is python 3 better than python 2?

MRAB python at mrabarnett.plus.com
Wed Apr 6 12:31:08 EDT 2011


On 06/04/2011 07:06, Dan Stromberg wrote:
>
> On Tue, Apr 5, 2011 at 10:04 PM, Terry Reedy <tjreedy at udel.edu
> <mailto:tjreedy at udel.edu>> wrote:
>
>     On 4/5/2011 4:42 PM, John Nagle wrote:
>
>         Well, actually Unicode support went in back around Python 2.4.
>
>
>     Even earlier, I think, but there were and still are problems with
>     unicode in 2.x. Some were and will only be fixed in 3.x.
>
>
>         In 3.x, ASCII strings went away, but that was more of a removal.
>
>
>     Yes and no. They were kept slightly modified as bytes, with all of
>     the string methods kept.
>
>
> I suspect not all string methods were kept for the bytes type:
> $ /usr/local/cpython-3.2/bin/python
> cmd started 2011 Tue Apr 05 11:05:08 PM
> Python 3.2 (r32:88445, Feb 20 2011, 16:47:11)
> [GCC 4.4.5] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
>  >>> 'a/b/c'.split('/')
> ['a', 'b', 'c']
>  >>> b'a/b/c'.split('/')
> Traceback (most recent call last):
>    File "<stdin>", line 1, in <module>
> TypeError: Type str doesn't support the buffer API
>  >>>
>
You're trying to split bytes with a str (Unicode) argument. Try this:

 >>> b'a/b/c'.split(b'/')
[b'a', b'b', b'c']



More information about the Python-list mailing list