七、基础数据类型补充

进制转换

  • 十进制转二进制

方法:用十进制数除2,得到的商再除2,直到商为小于1时为止,然后把先得到的余数逆序依次排列起来,就是有效位的二进制数


  • 二进制转十进制

二进制数从右到左用去乘以对应的乘积,结果相加就是对应的十进制数

乘法 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
乘积 128 64 32 16 8 4 2 1

注意:二进制数1对应的乘积有数,0 对应的乘积得零


  • 整数转二进制的位数int.bit_length()
num = 10
print(num.bit_length())		# 4

数据类型总结

按存储空间的占用分(从低到高)

数据类型 容量大小 是否可变 是否有序 访问顺序 数据特性
布尔值 不可变 判断真假
整型 少量 不可变 直接 数字运算
字符串 少量 不可变 有序 顺序 字符语句
集合 大量 可变 无序 元素不可变
元组 大量 不可变 有序 顺序 安全只读
列表 大量 可变 有序 顺序 增删改查
字典 大量 可变 有序 键值 键值关联

编码的进阶

数据在内存中必须是Unicode编码,但数据用于网络传输或存储到硬盘中,必须是非Unicode编码(utf-8等等)

类名 str类型 bytes类型
名称 字符串,文本文字 字节文字
单位 字符 字节
语法 单双三引号 单双三引号前加b(B)
中文 '中' b'xe4xb8(非ascii元素16进制显示)
英文 'alex' b'alex'(ascii中的元素直接显示)
编码 Unicode 可指定非Unicode编码比如UTF-8, GBK等
功能 字符串操作方法 同字符串操作方法
转译 可在最前面加r进行转译 可在最前面加r进行转译
用途 存储少量的常用的数据 网络的数据传输与数据存储

编码转换

以什么编码,必须以什么来解码

  • 解码bytes.decode('指定编码')(将指定编码解为Unicode,默认UTF-8)
  • 编码str.encode('指定编码')(将Unicode编为指定编码,默认UTF-8)

原文地址:https://www.cnblogs.com/wzos/p/12591719.html