python2和python3字符串区别_代码总结Python2 和 Python3 字符串的区别

>>>

>>> isinstance(b'abc', bytes)

True

>>>

>>> isinstance(b'abc', str)

True

>>>

>>> isinstance('abc', str)

True

>>>

>>> isinstance('abc', bytes)

True

>>>

>>>

>>>

>>> 'abc'.startswith('ab')

True

>>>

>>> b'abc'.startswith('ab'.encode())

True

>>>

>>> b'abc'.startswith('ab')

True

>>>

>>> 'abc'.startswith('ab'.encode())

True

>>>

Python3 >>>

>>> isinstance(b'abc', bytes)

True

>>>

>>> isinstance(b'abc', str)

False

>>>

>>> isinstance('abc', str)

True

>>>

>>> isinstance('abc', bytes)

False

>>>

>>>

>>>

>>> 'abc'.startswith('ab')

True

>>>

>>> b'abc'.startswith('ab'.encode())

True

>>>

>>> b'abc'.startswith('ab')

Traceback (most recent call last):

File "", line 1, in

b'abc'.startswith('ab')

TypeError: startswith first arg must be bytes or a tuple of bytes, not str

>>>

>>> 'abc'.startswith('ab'.encode())

Traceback (most recent call last):

File "", line 1, in

'abc'.startswith('ab'.encode())

TypeError: startswith first arg must be str or a tuple of str, not bytes

>>>

扩展学习

python2中有一种类型叫做unicode型,例 type(u"a") => str型

type("a".decode('utf8')) => unicode型

两者返回的类型都是unicode型

而在python3中,所有的字符串都是unicode,所以就不存在单独的unicode型,全部都是字符串型 type(u"a") => str型

type("a".decode('utf8')) => 报错,python3不能这样写

但是python3中多处一种字符串 type(b'132') => byte型

以上就是相关的知识点内容,如果大家有任何补充可以联系聚米学院小编。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值