字符类型、数值型等转换为字符串类型
十进制整数对应的 ASCII 字符
ASCII字符对应的十进制数
创建数据字典的几种方法
整数或数值型字符串转换为浮点数
如果不能转化为浮点数,则会报ValueError:
int(x, base =10)
x 可能为字符串或数值,将 x 转换为整数。
如果参数是字符串,那么它可能包含符号和小数点。如果超出普通整数的表示范围,一个长整数被返回。
返回一个 set 对象,集合内不允许有重复元素:
class slice(start, stop[, step])
返回一个由 range(start, stop, step) 指定索引集的 slice 对象,代码可读性变好。
tuple() 将对象转为一个不可变的序列类型
创建不可修改的集合:
分别取商和余数
pow 三个参数都给出表示先幂运算再取余:
四舍五入,ndigits代表小数点后保留几位:
返回对象的内存地址
排序:
求和:
计算字符串型表达式的值
如果可迭代对象的所有元素都为真,那么返回 True,否则返回False
接受一个可迭代对象,如果可迭代对象里至少有一个元素为真,那么返回True,否则返回False
获取用户输入内容
格式化字符串常见用法
返回对象的哈希值。值得注意,自定义的实例都可哈希:
list, dict, set等可变对象都不可哈希(unhashable):
返回文件对象
mode 取值表:
字符
意义
'r'
读取(默认)
'w'
写入,并先截断文件
'x'
排它性创建,如果文件已存在则失败
'a'
写入,如果文件存在则在末尾追加
'b'
二进制模式
't'
文本模式(默认)
'+'
打开用于更新(读取与写入)
class type(name, bases, dict)
传入参数,返回 object 类型:
返回 property 属性,典型的用法:
使用 C 类:
使用@property装饰器,实现与上完全一样的效果:
判断对象是否可被调用,能被调用的对象是一个callable 对象。
Student 对象实例目前不可调用:
如果 xiaoming能被调用 , 需要重写Student类的__call__方法:
此时调用 xiaoming():
删除对象的属性
获取对象的属性
判断object是否为classinfo的实例,是返回true
第二个参数可为元组:
object 是所有类的基类
不带参数时返回当前范围内的变量、方法和定义的类型列表;带参数时返回参数的属性,方法列表。
Python 的枚举对象
迭代 TestIter 类:
生成一个不可变序列的迭代器:
聚合各个可迭代对象的迭代器:
函数通过 lambda 表达式设定过滤条件,保留 lambda 表达式为True的元素:
结果:
结果:
读文件:
写文件:
有好几位同学问我,生成器到底该怎么理解。
在这里我总结几句话,看看是否对不理解生成器的朋友有帮助。
生成器首先是一个 “特殊的” return ,遇到 yield 立即中断返回。
但是,又与 return 不同,yield 后下一次执行会进入到yield 的下一句代码,而不像 return 下一次执行还是从函数体的第一句开始执行。
可能还是没说清,那就用图解释一下:
第一次 yield 返回 1
第二次迭代,直接到位置 2 这句代码:
然后再走 for ,再 yield ,重复下去,直到for结束。
以上就是理解 yield 的重点一个方面。
time 模块大家比较清楚,第一个导入 wraps 函数(装饰器)为确保被装饰的函数名称等属性不发生改变用的,这点现在不清楚也问题不大,实践一下就知道了。
定义一个装饰器:print_info,装饰器函数入参要求为函数,返回值要求也为函数。
如下,入参为函数 f, 返回参数 info 也为函数,满足要求。
使用 print_info 装饰器,分别修饰 f1, f2 函数。
软件工程要求尽量一次定义,多次被复用。
使用 f1, f2 函数:
一个类如何成为迭代器类型,请看官方PEP说明:
即必须实现两个方法(或者叫两种协议):__iter__ , __next__
下面编写一个迭代器类:
使用这个迭代器:
迭代器实现__iter__ 协议,它就能在 for 上迭代,参考官网PEP解释:
会输出 5, 还是报错?
如果 yr 是 list,for 遍历后,再 next(iter(yr)) 又会输出什么?
如果能分清这些问题,恭喜你,已经真正理解迭代器迭代和容器遍历的区别。如果你还拿不准,欢迎交流。
下面使用 4 种常见的绘图库绘制柱状图和折线图,使用尽可能最少的代码绘制,快速入门这些库是本文的写作目的。
导入包:
绘图代码:
导入包:
绘制图:
导入包:
绘制图(自动打开html):
导入包:
绘制图(自动打开html):
matplotlib 绘制三维 3D 图形的方法,主要锁定在绘制 3D 曲面图和等高线图。
要想掌握 3D 曲面图,需要首先理解 meshgrid 函数。
导入包:
创建一维数组 x
创建一维数组 y
使用 meshgrid 生成网格点:
xv 结果:
yv 结果:
绘制网格点:
以上就是 meshgrid 功能:创建网格点,它是绘制 3D 曲面图的必用方法之一。
导入 3D 绘图模块:
生成X,Y,Z
绘制 3D 曲面图:
以上 3D 曲面图的在 xy平面、 xz平面、yz平面投影,即是等高线图。
xy 平面投影得到的等高线图:
即便两个整数,/ 操作也会返回浮点数
使用 //快速得到两数相除的整数部分,并且返回整型,此操作符容易忽略,但确实很实用。
%得到两数相除的余数:
** 计算几次方
在交互模式下,上一次打印出来的表达式被赋值给变量 _
使用单引号和双引号的微妙不同
使用一对双引号时,打印下面串无需转义字符:
使用单引号时,需要添加转义字符 \:
符串字面值可以跨行连续输入;一种方式是用一对三重引号:""" 或 '''
堆积起来就行,什么都不用写:
一般语言 else 只能和 if 搭,Python 中却支持 for 和 else, try 和 else.
for 和 else 搭后,遍历结束便会执行 else
直接使用 x 和 not x 判断 x 是否为 None 或空
下面写法不够 Pythoner
直接使用 enumerate 枚举容器,第二个参数表示索引的起始值
下面写法不够 Pythoner:
判断字符串是否包含某个子串,使用in明显更加可读:
find 返回值 要与 -1 判断,不太符合习惯:
使用 zip 打包后结合 for 使用输出一对,更加符合习惯:
下面不符合 Python 习惯:
打印被分为多行的字符串,使用一对 ''' 更加符合 Python 习惯:
下面写法就太不 Python 风格:
直接解包赋值,更加符合 Python 风格:
不要再用临时变量 tmp ,这不符合 Python 习惯:
串联字符串,更习惯使用 join:
下面不符合 Python 习惯:
列表生成式构建高效,符合 Python 习惯:
下面写法不够 Pythoner:
除了列表生成式,还有字典生成式:
下面写法不太 Pythoner:
曾几何时,看这别人代码这么写,我们也就跟着这么用吧,其实还没有完全弄清楚这行到底干啥。
加入上面脚本命名为 MyModule,不管在 vscode 还是 pycharm 直接启动,则直接打印出:
这并不奇怪,和我们预想一样,因为有无这句 __main__ ,都会打印出这些。
但是当我们 import MyModule 时,如果没有这句,直接就打印出:
只是导入就直接执行 mymain 函数,这不符合我们预期。
如果有主句,导入后符合预期:
lambda 函数使用方便,主要由入参和返回值组成,被广泛使用在 max, map, reduce, filter 等函数的 key 参数中。
如下,求 x 中绝对值最大的元素,key 函数确定abs(x)作为比较大小的方法:
求 x 中绝对值最大的元素,key 函数确定abs(x)作为比较大小的方法:
map 函数映射 fun 到容器中每个元素,并返回迭代器 x
下面写法不够 Pythoner
reduce 是在 functools 中,第一个参数是函数,其必须含有 2 个参数,最后归约为一个标量。
下面写法不够 Pythoner:
使用 filter 找到满足 key 函数指定条件的元素,并返回迭代器
如下,使用 filter 找到所有奇数:
还有另外一种方法,使用列表生成式,直接得到一个odd 容器,
下面写法最不符合 Python 习惯:
python查询汉字函数
二进制安装docker
一、二进制的起源二进制(Binary)是由德国数学家和哲学家莱布尼茨首先提出来的。二进制是一种记数系统,只使用0和1两个数字来表示数,逢二进一。二进制在计算机科学、电子工程、数学等领域中得到了广泛的应用,因为可以很方便地表示和处理数字、图像、音频和视频等信息。当然,最重要的一个原因是计算机也只能识别两种物理状态,即开和关,通和断等。在我们生活当中,最常用的属十进制,逢十进一。当然,还存在着别的进制
# Python将获得的二进制转化为汉字## 介绍作为一名经验丰富的开发者,我将帮助你学习如何将获得的二进制数据转化为汉字。这项技能对于处理文本数据、数据加密和解密以及图像处理等方面都非常有用。在本文中,我将使用Python来实现这一功能。首先,我将为你展示整个过程的流程图,然后逐步解释每个步骤需要做什么,并提供相应的代码示例。## 流程图以下是将获得的二进制数据转化为汉字的流程图
# Python汉字转五笔教程作为一名经验丰富的开发者,你可以帮助刚入行的小白实现"Python汉字转五笔"功能。下面是整个实现过程的步骤:1. 安装依赖库:首先,你需要安装pypinyin库。pypinyin是一个用于将汉字转换为拼音的库。你可以使用以下命令来安装它:```pip install pypinyin```2. 导入pypinyin库:在Python脚本中,你需要
# Redis 二进制数据转化为汉字的方案## 引言在使用 Redis 作为缓存数据库时,常常会涉及到二进制数据的存储与读取。尤其是在处理包含汉字的字符串时,如何将二进制数据有效地转换回汉字是一个需要关注的问题。本方案将探讨如何利用 Python 对 Redis 中存储的二进制数据进行解码,并提供具体的代码示例。## 方案概要1. **数据存储**:将汉字转为二进制数据存储到 Re
# Python汉字转换成二进制在计算机中,汉字是以二进制的形式来存储和处理的。在本文中,我们将介绍如何使用Python将汉字转换为二进制,并提供代码示例。## 汉字编码汉字编码是指将汉字字符映射到二进制数值的过程。在计算机中,最常用的汉字编码是Unicode。Unicode是一个标准,它为世界上几乎所有的字符都分配了一个唯一的数值。在Python中,可以使用`ord()`函数将一
# Python二进制转汉字的实现作为一名经验丰富的开发者,我很乐意指导你如何实现Python中的二进制转汉字功能。下面是实现的步骤:| 步骤 | 描述 || ------ | ------ || 1 | 读取二进制数据 || 2 | 将二进制数据转换为整数 || 3 | 将整数转换为Unicode编码 || 4 | 将Unicode编码转换为汉字 |现在,让我们一步步来实现
# 如何在Python中将数字转化为二进制转化数字为二进制在计算机科学中是非常重要的一环。今天,我将教你如何使用Python来完成这个任务。我们会按照以下步骤进行:## 流程步骤下面的表格总结了将数字转换为二进制的整个流程:| 步骤 | 描述 ||------|------------------|| 1 | 输入一个整数 ||
# Java 汉字转五笔实现指南作为一名刚入行的开发者,实现“Java 汉字转五笔”的功能可能会让你感到困惑。但不用担心,本文将为你提供一份详细的实现指南,帮助你一步步掌握这项技能。## 1. 整体流程首先,让我们通过一个表格来了解实现“Java 汉字转五笔”的整体流程:| 步骤 | 描述 || --- | --- || 1 | 准备汉字到五笔的映射数据 || 2 | 读取汉
# Python将汉字转为二进制教程## 1. 整体流程首先,让我们来看一下整个过程的流程图:```mermaidflowchart TD; A(输入汉字) --> B(转为Unicode编码); B --> C(转为二进制编码); C --> D(输出);```## 2. 具体步骤### 步骤1:将汉字转为Unicode编码在Python中,可
# 使用 Redis 实现汉字到二进制的转换在如今的软件开发中,Redis 是一个非常流行的高性能键值数据库。它可以用于存储和检索各种类型的数据,包括字符串、哈希、列表等。在本篇文章中,我们将学习如何使用 Redis 将汉字转换为二进制数据,并完成基本的操作。我们将通过简单的步骤,逐步实现这个目标。## 整体流程我们将整个过程分为以下几个主要步骤:| 步骤 | 操作
# Python中IP地址转化为二进制在计算机网络中,IP地址是用来唯一标识一个设备的网络地址。IP地址由32位二进制数组成,通常以点分十进制的方式表示。在某些情况下,我们可能需要将IP地址转化为二进制形式进行处理。Python语言提供了简便的方法来实现这一转化。## IP地址的表示IP地址是一个32位的二进制数,通常将其分为4个8位的字段。每个字段的取值范围是0~255,可以用十进制
# Python文件转化为二进制的实现方法## 1. 总览在本文中,我将教会你如何使用Python将一个文件转化为二进制格式。我们将使用Python内置的文件操作函数和二进制操作函数来完成这个任务。下面是整个过程的步骤概述:| 步骤 | 描述 || --- | --- || 1 | 打开源文件 || 2 | 读取源文件的内容 || 3 | 将文件内容转化为二进制 || 4 |
整型与字符串转化十进制转二进制.python2,存在int 整型和long(长整型),在python3里就是int/获取的是浮点数 小数print(bin(15)) 这样可以通过代码来计算十进制数15的二进制数print(bin(15)) 这样可以通过代码来计算十进制数15的二进制数十进制数如何转为二进制数:整除法,例如十进制数是15,想要知道15的二进制是多少,除以二,找到余数然后从下向上将余
二进制与十进制转换二进制:是用0和1两个数字来表示的数。128 64 32 16 8 4 2 1 20 1 0 1 0 0200 1 1 0 0 1
五笔输入法中的“五笔”即汉字中的5种基本笔画:横(1)竖(2)撇(3)捺(4)折(5),键盘中的25个字母(除字母Z外)被相应地分为5个“区”,每个区包括5个“区位”。为了能够更清楚、更方面的定位字根与字母的对应关系,五笔输入法将5种基本笔画分别编码称对应的数字,对应关系如上述括号中所示,如,横区即1区......而在每一个“区”中,5个字母分别对应的“位”值也是从1到5,对应关系相
各数制之间的转换我们用R表示任何数制的基数,讨论各数制之间的转换。1.R进制数转换为十进制数二进制、八进制和十六进制数转换为等值的十进制数,只要把它们用多项式表示并在十进制下进行计算,所得的结果就是十进制数。2.十进制数转换为R进制数十进制数转换为等值的二进制、八进制和十六进制数,需要对整数部分和小数部分分别进行转换。其整数部分用连续除以基数R取余数的方法来完成,小数部分用连续乘以基数R取整数的方
根据官网说明,从5.9开始变更了许可证,之前开源版本为(Apache 2.0),新版本没有独立开源版,并入商业版,采用 BSL 1.1 许可证: EMQX Licensing FAQ | EMQ 上面链接为官网对这个问题的答疑 其一,从第四个: 4. “附加使用授权”允许什么?“附加使用”的前提限制 ...
在开源能源管理系统的应用浪潮中,MyEMS凭借其高适配性和低成本优势,成为众多企业实现能源数字化转型的首选。然而,从系统选型到实际产生节能效益,落地过程中的流程设计、技术适配和人员协同等环节,直接决定了MyEMS的应用效果。本文结合多行业实践经验,梳理MyEMS从部署实施到价值转化的全流程关键节点, ...
决策树黑箱:一般是处于利益考量或者有上亿个参数人类不可学习等因素的模型,比如XGBoostRegressor。