• python str/bytes/unicode区别(49)


     

     

    一.前言

        在讲解 str / bytes /unicode区别之前首先要明白字节和字符的区别,请参考:bytearray/bytes/string区别 中对字节和字符有清晰的讲解,最重要是明白:

        字符str是给人看的,例如:文本保存的内容,用来操作的;

        字节bytes是给计算机看的,例如:二进制数据,给计算机传输或者保存的;

     

    二.str/bytes/unicode区别

    1.在python2.x版本中str/bytes/unicode区别

        在python2.x版本中str跟bytes是等价的;值得注意的是:bytes跟unicode是等价的,详情见下图

    s1 = u"Hello, World!"
    s2 = "Hello, World!"
    print(type(s1))
    print(type(s2))

    输出:

    <type 'unicode'>
    <type 'str'>

     

    2.在python3.x版本中str/bytes/unicode区别

        在python3.x版本中str跟unicode是等价的;值得注意的是:bytes跟unicode是不等价的,详情见下图

    s1 = u"Hello, World!"
    s2 = "Hello, World!"
    print(type(s1))
    print(type(s2))

    输出:

    <class 'str'>
    <class 'str'>

     

    三.string与bytes相互转换

    1.string经过编码encode转化成bytes

    # !usr/bin/env python
    # -*- coding:utf-8 _*-
    """
    @Author:何以解忧
    @Blog(个人博客地址): shuopython.com
    @WeChat Official Account(微信公众号):猿说python
    @Github:www.github.com
     
    @File:python_bytes_string_4.py
    @Time:2020/3/4 10:25
     
    @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
    """
     
     
    s = "shuopython.com"
    #将字符串转换为字节对象
    b2 = bytes(s,encoding='utf8') #必须制定编码格式
    # print(b2)
     
    #方法一:字符串encode将获得一个bytes对象
    b3 = str.encode(s)
    #方法二:字符串encode将获得一个bytes对象
    b4 = s.encode()
    print(b3)
    print(type(b3))
    print(b4)
    print(type(b4))

    输出结果:

    b'shuopython.com'
    <class 'bytes'>
    b'shuopython.com'
    <class 'bytes'>

     

    2.bytes经过解码decode转化成string

    # 字节对象b2
        # 如果含有中文,必须制定编码格式,否则报错TypeError: string argument without an encoding
        b2 = bytes("猿说python", encoding='utf8')
     
        # 方法二:bytes对象decode将获得一个字符串
        s2 = bytes.decode(b2)
        # 方法二:bytes对象decode将获得一个字符串
        s3 = b2.decode()
        print(s2)
        print(s3)

    输出结果:

    猿说python
    猿说python

     

     

     

    猜你喜欢:

        1.python bytearray/bytes/string区别

        2.python bytes

        3.python bytearray

        4.python 深拷贝和浅拷贝

        5.python 局部变量和全局变量

     

        转载请注明:猿说Python » python python str/bytes/unicode区别详解

     

    技术交流、商务合作请直接联系博主
    扫码或搜索:猿说python
    python教程公众号
    猿说python
    微信公众号 扫一扫关注
  • 相关阅读:
    【LOJ #2290】「THUWC 2017」随机二分图(状压DP)
    【LOJ #2136】「ZJOI2015」地震后的幻想乡(状压DP)
    【CSP-S 2019模拟】题解
    异步编程补漏
    Git(七) 查漏补缺
    ES6(二) let const
    ES6(一) 数组
    JS判断对象是否存在
    Git(六)
    Git(五)
  • 原文地址:https://www.cnblogs.com/shuopython/p/12437047.html
Copyright © 2020-2023  润新知