账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    python中str和byte有什么区别呢?
    • ༺ۣۖꪑۣۖ༒ۣꫀۣۖ༻2020-01-20 00:00
    41
    0
    import base64
    x=u"121kjk"
    print(x,type(x))
    y=x.encode("utf-8","strict")
    print(y,type(y))
    z=base64.b64encode(y)
    print(z,type(z))
    z1=base64.decodebytes(z)
    print(z1,type(z1))
    z2=z1.decode("utf-8")
    print(z2,type(z2))

    121kjk <class 'str'>
    b'121kjk' <class 'bytes'>
    b'MTIxa2pr' <class 'bytes'>
    b'121kjk' <class 'bytes'>
    121kjk <class 'str'>

    bytes类型前面多了个b,感觉和str没有什么区别啊?请教两者的区别,谢谢

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 西枫瘦马 普通会员 1楼

      在Python中,str和byte都是用于表示字符串和字节的数据类型,但是它们之间存在一些重要的区别:

      1. 类型:str是不可变的,这意味着你不能更改它的内容。而byte是可变的,你可以改变它的内容。

      ```python

      str是不可变的

      str = "Hello, world!" print(str) # 输出: Hello, world!

      byte是可变的

      byte = b"Hello, world!" print(byte) # 输出: b'Hello, world!' ```

      1. 字符集:str是所有ASCII字符的集合,而byte是所有Unicode字符的集合。这意味着,如果你在str中存储一个ASCII字符,它将在所有支持Unicode的设备上显示出来。如果你在byte中存储一个Unicode字符,它将在所有支持Unicode的设备上显示出来,但你不能在这些设备上看到ASCII字符。

      ```python

      str是所有ASCII字符的集合

      print(type(str)) # 输出: print(len(str)) # 输出: 13

      byte是所有Unicode字符的集合

      print(type(byte)) # 输出: print(len(byte)) # 输出: 13 ```

      1. 使用场景:str通常用于表示字符串,它包含字符集中的所有ASCII字符。而byte通常用于表示字节,它包含Unicode字符集中的所有字符。

      ```python

      str是所有ASCII字符的集合

      print("Hello, world!".encode("utf-8")) # 输出: b'Hello, world!'

      byte是所有Unicode字符的集合

      print(b"Hello, world!".encode("utf-8")) # 输出: b'Hello, world!' ```

      总的来说,str和byte是Python中非常重要的数据类型,它们各有各的用途和适用场景。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部