目录

  • 一.bytes 函数简介
  • 二.bytes 函数使用
    • 1.定义空的字节序列 bytes
    • 2.定义指定个数的字节序列 bytes ,默认以 0 填充,不能是浮点数
    • 3.定义指定内容的字节序列 bytes ,只能是整数类型的序列,否则异常
    • 4.定义个字节序列 bytes
  • 三.重点提醒
  • 四.猜你喜欢

零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门

Python bytes 对于刚接触 Python 的小伙伴来讲,可能还是有点陌生!bytes 是字节序列,值得注意的是它有取值范围:0 <= bytes <= 255;凡是输出前面带有字符 b 标识的都是字节序列 bytes ;

一.bytes 函数简介

Python bytes 字节序列有以下几种使用方式:

"""
bytes(iterable_of_ints) -> bytesbytes(string, encoding[, errors]) -> bytesbytes(bytes_or_buffer) -> immutable copy of bytes_or_bufferbytes(int) -> bytes object of size given by the parameter initialized with null bytesbytes() -> empty bytes objectConstruct an immutable of bytes from:- an iterable yielding integers in range(256)- a text string encoded using the specified encoding- any object implementing the buffer API.- an integer# (copied from class doc)
"""# 1.定义空的字节序列bytes
bytes() -> empty bytes # 2.定义指定个数的字节序列bytes,默认以0填充,不能是浮点数
bytes(int) -> bytes of size given by the parameter initialized with null bytes# 3.定义指定内容的字节序列bytes
bytes(iterable_of_ints)# 4.定义字节序列bytes,如果包含中文的时候必须设置编码格式
bytes(string, encoding[, errors]) -> immutable copy of bytes_or_buffer

**返回值 :  返回一个新的字节序列,字节序列 bytes 有一个明显的特征,输出的时候最前面会有一个字符 b 标识,**举个例子:

b'\x64\x65\x66'
b'i love you'
b'shuopython.com'

凡是输出前面带有字符 b 标识的都是字节序列 bytes ;

二.bytes 函数使用

1.定义空的字节序列 bytes

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:何以解忧
@Blog(个人博客地址): www.codersrc.com
@Github:www.github.com@File:python_bytes.py
@Time:2020/2/25 21:25@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
"""if __name__ == "__main__":a = bytes()print(a)print(type(a))'''
输出结果:b''
<class 'bytes'>
'''

2.定义指定个数的字节序列 bytes ,默认以 0 填充,不能是浮点数

if __name__ == "__main__":b1 = bytes(10)print(b1)print(type(b1))# bytes 通过 decode函数转为 str类型s1 = b1.decode()print("s1:",s1)print(type(s1))'''
输出结果:b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
<class 'bytes'>
s1:
<class 'str'>
'''

3.定义指定内容的字节序列 bytes ,只能是整数类型的序列,否则异常

if __name__ == "__main__":# 正常输出b1 = bytes([1, 2, 3, 4])>>>  b'\x01\x02\x03\x04'# bytes字节序列必须是 0 ~ 255 之间的整数,不能含有float类型b1 = bytes([1.1, 2.2, 3, 4])>>>  TypeError: 'float' object cannot be interpreted as an integer# bytes字节序列必须是 0 ~ 255 之间的整数,不能含有str类型b1 = bytes([1, 'a', 2, 3])>>>  TypeError: 'str' object cannot be interpreted as an integer# bytes字节序列必须是 0 ~ 255 之间的整数,不能大于或者等于256b1 = bytes([1, 257])>>>  ValueError: bytes must be in range(0, 256)

4.定义个字节序列 bytes

if __name__ == "__main__":b1 = bytes('abc', 'utf-8') # 如果包含中文必须设置编码格式print(b1)print("***"*20)b2 = bytes(b'def')print(b2)print(type(b2))print(id(b2))print("***" * 20)b3 = b'\x64\x65\x66'print(b3)print(type(b3))print(id(b3))print("***" * 20)# result = True if b2 == b3 else Falseprint("b == bb 的结果是 ",(b2 == b3))print("b is bb 的结果是 ", (b2 is b3))'''
输出结果:b'abc'
************************************************************
b'def'
<class 'bytes'>
2563018794448
************************************************************
b'def'
<class 'bytes'>
2563018794448
************************************************************
b == bb 的结果是  True
b is bb 的结果是  True'''

注意:

1.**Python is 和==的区别  **文章中有详细介绍:== 是 Python 标准操作符中的比较操作符,用来比较判断两个对象的 value (值)是否相等,例如下面两个字符串间的比较;

2.is 也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是 id 是否相同;

3.如果 bytes 初始化含有中文的字符串必须设置编码格式,否则报错:TypeError: string argument without an encoding,如下:

b = bytes("猿说python")>>> b = bytes("猿说python")
>>> TypeError: string argument without an encoding

三.重点提醒

1.bytes 字节序列的取值范围:必须是 0 ~ 255 之间的整数;

2.bytes 字节序列是不可变序列:bytes 是不可变序列,即和 str 类型一样不可修改,如果通过 find 、replace 、islower 等函数修改,其实是创建了新的 bytes 、str 对象,可以通过内置函数 id 查看值 是否发生变化,示例如下:

if __name__ == "__main__":# 1.通过 replace 生成新的bytes字节序列b1 = bytes(b"abcdefg")print(b1)print(type(b1))print(id(b1))print("***" * 20)b2 = bytes.replace(b1,b"cd",b"XY")print(b2)print(type(b2))print(id(b2))print("***" * 20)# 2.bytes 是不可变序列,不能直接修改bytes的内容b1[0] = b"ss">>>  TypeError: 'bytes' object does not support item assignment'''
输出结果:b'abcdefg'
<class 'bytes'>
2264724270976
************************************************************
b'abXYefg'
<class 'bytes'>
2264707281104
************************************************************
'''

Python 除了 bytes 字节序列之外,还有 bytearray 可变的字节序列,具体区别在哪呢?我们后续继续讲解;

四.猜你喜欢

  1. Python for 循环
  2. Python 字符串
  3. Python 列表 list
  4. Python 元组 tuple
  5. Python 字典 dict
  6. Python 条件推导式
  7. Python 列表推导式
  8. Python 字典推导式
  9. Python 函数声明和调用
  10. Python 不定长参数 *argc/**kargcs
  11. Python 匿名函数 lambda
  12. Python return 逻辑判断表达式
  13. Python 字符串/列表/元组/字典之间的相互转换
  14. Python 局部变量和全局变量
  15. Python type 函数和 isinstance 函数区别
  16. Python is 和 == 区别
  17. Python 可变数据类型和不可变数据类型
  18. Python 浅拷贝和深拷贝

未经允许不得转载:猿说编程 » Python bytes 函数

Python bytes 函数 - Python零基础入门教程相关推荐

  1. Python return逻辑判断表达式 - 零基础入门教程

    目录 一.return 逻辑判断表达式 and 二.return 逻辑判断表达式 or 三.return 逻辑判断表达式 and 和 or 配合使用 四.return 逻辑判断表达式重点总结 五.猜你 ...

  2. python怎么输出浮点数_python 零基础入门教程第 2 章:基本数据类型 (一)

    一.什么是数据类型 编程语言通过一些复杂的计算机物理底层机制,创造不同类型的数据,用来表示现实世界中的不同信息,以便于计算机更好的存储和计算. 每种编程语言都会有一些基本的数据类型用来表示现实世界中的 ...

  3. 视频教程-Python零基础入门教程-Python

    Python零基础入门教程 从2012年从事互联网至今有7年软件编程经验,曾任职国内北京互联网公司,中南林业大学授课Python 现任逻辑教育Python课程负责人,精通Python语言,精通人工智能 ...

  4. Python零基础入门教程( 快速入门)

    前言 学无止境,无止境学. 今天要给大家分享的是<Python零基础入门教程01 快速入门>,这是一个系列的教程,从零基础到项目实战.在本教程中,我会给大家介绍Python入门的一些基础知 ...

  5. Python 3.X 完全零基础入门精讲 全套视频教程

    简介 零基础小白快速学程序员大爱语言――Python,易学易用易就业!!! 目标人群:熟悉电脑基本操作,编程零基础或已具备Python或其它编程语言的人群. 课程目标:绝对零基础Python3.x 入 ...

  6. python是什么软件-零基础入门Python怎么学习?老男孩python用什么软件

    在培训学习Python时,怎么才能学好Python?随着Python技术的发展,越来越多的人开始学习Python编程语言,那么零基础入门Python该怎么学习? 1.要养成良好的代码编写习惯,注重细节 ...

  7. C语言 const 修饰函数参数 - C语言零基础入门教程

    C语言 const 修饰函数参数 - C语言零基础入门教程 目录 一.const 简介 1.const 修饰变量 2.const 修饰指针 3.const 修饰在函数名前面 4.const 修饰在函数 ...

  8. 视频教程-ARDUINO零基础入门教程【代码编程篇】-Arduino

    ARDUINO零基础入门教程[代码编程篇] 精通各种单片机编程,有十年以上ARDUINO,51单片机/STM32/PIC/AVR编程,硬件设计,绘图,编程经验.熟悉各种常用传感器使用和物联网通讯 赵勇 ...

  9. C++零基础入门教程:基础篇(一)

    前言 嘿嘿,我叕来啦─=≡Σ(((つ•̀ω•́)つ!别问我为什么突然变成了零基础入门教程(一),因为前面那三篇都是基础的不能在基础的教程了.(其实是因为顺序乱了,而且那时候没有单独弄一个专栏,后面我会 ...

  10. SEO零基础入门教程(外链的发布和软文编写)

    seo的作用是众所周知的,对网站进行seo优化,可以给网站带来大量的搜索引擎流量.但是想要做好网站优化也有难度,尤其是对于seo新手来说,因为缺乏理论和实战,所以seo新手需要多加练习.那么具体seo ...

最新文章

  1. VTK:PolyData之ClosedSurface
  2. spring不自动下载_Spring:自动接线或不自动接线
  3. Replace Method with Method Object(以函数对象取代函数)
  4. 解决安装MarkupSafe安装 from setuptools import Feature 报错ImportError: cannot import name ‘Feature‘
  5. Activity启动模式和FLAG、TASKAFFINITY
  6. Intel最新路线图:10nm得等2017年底
  7. Java Web之Cookie和Session的理解
  8. osg 示例程序解析之osgdelaunay
  9. c++ 调用windows tts_有关调用约定的历史 – 第三部分
  10. java视频通话_Java使用WebSocket和WebRTC视频通话
  11. pandas实现上采样和下采样
  12. 小区水电费管理系统-水电费收费管理系统-社区物业水电缴费管理系统代码
  13. 【学习体会】泊松表面重建
  14. 4-Collection、List、Iterator和泛型
  15. linux dsdt屏蔽显卡,关于DSDT屏蔽独显的一点认识和方法
  16. 小米高通系列清串号打开写号端口工具_手机sn码序列号修改工具,高通串号永久写入!...
  17. 【无标题】scp的使用
  18. 【论文笔记】MultiPath: Multiple Probabilistic Anchor TrajectoryHypotheses for Behavior Prediction
  19. 第一章 python筑基
  20. python在线搭建_Jupyter在线python环境搭建

热门文章

  1. 别人家的工程师:阿里巴巴工程师有了新帮手,AI可帮助修Bug
  2. 一幅GAN网络创造的肖像图卖了40万美金,但那又怎样?
  3. 考察数据科学家支持向量机(SVM)知识的25道题,快来测测吧
  4. 浅述 Docker 的容器编排
  5. 对话Satya Nadella:大规模AI模型、人机界面或将迎来大突破
  6. 从程序员到上市公司合伙人,怎么少踩坑?
  7. 分布式架构的王者?Kubernetes凭什么
  8. 达摩院2020十大科技趋势发布:云成IT技术创新中心
  9. 大话云存储,这个“对象”可能无处不在
  10. 5G精华问答 | 5G是否会“逼退”4G?