小编这周末有空。 当然是先熬夜玩——瘫痪了12个小时,才开始更新。 还敬业吗?

今天开始总结python的内置函数,问我为什么这么写。 渐渐觉得很多东西可以不用引入包直接调用。 那给我的感觉,内置函数应该是掌握的基础,而且会很强大。 这些功能是基于你所掌握的。

题目:今天涉及到的主要是计算机代码转换中涉及的函数,跳到这里是为了把可比较的放在一起

优点:每个函数除了有解释和例子,还有一些题目的推导!

/目录/

abs() &all()& any() (遵循前三个函数)

位,字节,字符,编码方式,整理二进制概念

ascii()&repr(), ord() 和 chr()

bin() 和 int()

布尔()

字节数组()和字节()

leetcode使用bytearray解决问题

字符类型与基数转换梳理

Tips:进入今天的话题之前,先放个小总结,迷茫的时候也可以回放一下

bit:比特,计算机数据存储的最小单位; 0 或 1 二进制是位

字节:一个字节 = 8 位或 8 个二进制位

字符:字母、汉字、符号等都是字符,

计算机有不同的编码方法。 在不同的编码方式下,字符占用不同的字节。

编码:将字符串按照不同的编码编码成字节序列bytes

解码:将字节序列bytes按照不同的解码方式解码成字符串

为什么我们需要更改编码? 因为计算机是以处理数字的思想来运作的。 如果我们要处理文本,我们通常会将文本转换成数字,然后再进行处理。 自然,文本和数字都有相应的编码。 (计算机是二进制值,比如A对应数字65,计算机对应的二进制值为01000001)

以上 – 内置函数

让我们按顺序排列前三个函数

abs() :返回绝对值

abs(-1)

想想数学中的绝对值:fabs

import math  math.fabs(-1)

所有()和任何():

全部

任何

def all(iterable):      for element in iterable:          if not element:               return False          return True 
def any(iterable):     for element in iterable:  if element: return True return False

all([1,2,3])all([1,0,3]) all([1,False,3])all([1,'',3]) all([])

返回:真、假、假、假、真

那么这个传入的可迭代对象必须是可回收的吗?

对,什么类型可以回收?想到了常见的list,tuple,dict等,哈哈,感觉又是另外一个话题

应用它吗?

data = pd.read_csv('xxxxxxx.csv')  data.isnull().any()  data.isnull().all()

df = np.arange(24).reshape(4,2,3)  # 创建矩阵if np.any(df[:5,:]==0):        print('yes')

返回:是的

编码问答

ASCII 是编码形式。 为了方便理解,我们先回答问题。

ASCII对应什么?

ASCII编码 美国制定的字符编码,对应的是英文字符与二进制(0, 1)的关系。 ASCII 一共规定了 128 种字符编码。

见过乱码吗?

当然1个汉字占几个字节,比如你用ascii格式来识别其他编码文件。

它只是ASCII吗?

当然不是,128字符编码英文就够了,其他语言呢,我们想想汉字,这是我们常见的unicode,小编觉得uni有一种宇宙或独一无二的感觉哈哈,理解为统一世界哈哈,它为每种语言中的每个字符设置了统一且唯一的二进制编码。 它的优点和缺点可以自己发现。 以及utf-8、utf-16等。

通俗地说,这些代码都有自己的转换方式。

ascii() 和 repr() , ord() 和 chr()

ascii() 返回表示对象的字符串,如果不是ASCII编码,则使用x、u或U等字符表示

repr()返回表示对象的字符串,repr对于非ASCII编码不使用上述方法

ord() 返回字符的编码表示 – 传入长度为 1 的字符串

chr() 返回编码对应的字符,即chr() ord() 反之

尝试一下

我们试试货币符号$、€(感觉欧元不是ASCII英文编码的),所以非编码产生u字符

1个汉字占几个字节_java汉字占多少字节_gbk汉字占几个字节

gbk汉字占几个字节_1个汉字占几个字节_java汉字占多少字节

bin() 和 int()

小编刚才不是说计算机都是二进制的吗? 那我们如何获取和转化它呢?

bin() – 传入参数int,返回二进制字符串,binary

int() – 第一个数字作为参数字符串传入,第二个数字作为转换方法传入

1个汉字占几个字节_gbk汉字占几个字节_java汉字占多少字节

怎么会有0b? 当然二进制码在0b之后。 如果我不想用代码转换成原来的数字,那加0b呢? 可以直接输入二进制数进行转换吗,可以,看int()

java汉字占多少字节_1个汉字占几个字节_gbk汉字占几个字节

哈哈别忘了,我们原来是用十进制表示的

布尔()

将其视为布尔值 – T 或 F

常见会判断为F的情况:None, False, 0, empty,

应用:是否输入了某个值?

我没有为第二个输入数字,所以 bool(y.strip()) 返回了 False

gbk汉字占几个字节_java汉字占多少字节_1个汉字占几个字节

字节数组()和字节()

bytearray 是可变的字节序列,称为字节数组

bytes是不可变的字节序列(如有混淆,返回开头的总结提示)

这样做:创建字节和字节数组

gbk汉字占几个字节_java汉字占多少字节_1个汉字占几个字节

ps:find的作用是找到对应的索引,replace是替换,看下面问题解锁

字节解锁Leetcode问题

我们使用 bytearray 解开 leetcode 中的一道题

最大连续数:

给定一个二进制数组,找到该数组中连续 1 的最大数量。 输入:

[1,1,0,1,1,1] Output: 3 翻译过来就是找二进制数组中最大的连续1?

想一想:二进制? 01 表示字节不同? 也许字节表示可以用来截断?

gbk汉字占几个字节_1个汉字占几个字节_java汉字占多少字节

哦,太棒了

转化类型摘要

类型转换

int(x)转为整数,long(x)转为长整数,float(x)转为浮点数,str(x)转为字符串,repr(x)转为表达式字符串,tuple(x) ) 转换为元组1个汉字占几个字节,list(x) 转换为列表,chr(x) 整数转换为字符,ord(x) 字符转换为相应的整数。

转换

bin(x) 转换为二进制

oct(x) 转换为八进制

int(x,base=10) 转换为十进制

hex(x) 转换为十六进制

说白了就是让计算知道我们传入的是什么,出于不同的考虑,它有不同的编码方式。 这些函数帮你类型转换,基数转换,还有相应的函数让你转换回/

别走,后面我们继续玩内置函数

java汉字占多少字节_1个汉字占几个字节_gbk汉字占几个字节

晚安各位

gbk汉字占几个字节_1个汉字占几个字节_java汉字占多少字节

结尾

java汉字占多少字节_gbk汉字占几个字节_1个汉字占几个字节