Python 基础(二) | Python 的基本数据类型
第二章 基本数据类型
⭐本专栏旨在对 Python 的基础语法进行详解,精炼地总结语法中的重点,详解难点,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握 python 编程,同时为后续的数据分析,机器学习及深度学习的代码能力打下坚实的基础。
🔥本文已收录于 Python 基础系列专栏: Python基础系列教程 欢迎订阅,持续更新。
![](https://static001.geekbang.org/infoq/e2/e28d900994f2396a2960efe523d4ffae.png)
第一部分 数字类型
![](https://static001.geekbang.org/infoq/a1/a16109ad44e13a85cf68758227833247.png)
1.1 数字类型的组成
1.1.1 整数——不同进制的转换
默认输入十进制
二进制 0b、八进制 0o、十六进制 0x
十进制与其他进制的转换
注意:上述转换后结果为字符串类型,因此如果进行相等比较的话,输出的是 False 结果
其他进制转十进制
1.1.2 浮点数——不确定性
不确定小数问题
计算机采用二进制小数来表示浮点数的小数部分
原因:部分小数不能用二进制小数完全表示
0.00011001100110011001 0.099999427795410160.0011001100110011 0.19999694824218750.01001100110011001 0.299995422363281250.01100110011001101 0.400001525878906250.1 === === 0.5
通常情况下不会影响计算精度
四舍五入获得精确解
可以采用四舍五入的方式解决:round(parameter, 保留小数位数)
1.1.3 复数——a+bj
大写 J 或小写 j 均可
虚部系数为 1 时,需要显式写出
1.2 数字运算操作符(a 操作符 b)
加减乘除运算 + - / *
取反 -
乘方运算 **
整数商// 和 模运算 %
几点说明
整数与浮点数运算结果是浮点数
除法运算的结果是浮点数
1.3 数字运算操作函数 function(x, ...)
求绝对值 abs()
幂次方 pow(x,n)
幂次方取模 pow(x,n,m)
四舍五入 round(x,n)
整数商和模运算 divmod(x,y)
等价于返回二元元组(x//y,x % y)
序列最大/最小值 max( ) min( )
求和 sum(x)
注意:sum 里面需要填入一个序列数据
借助科学计算库 math\scipy\numpy
第二部分 字符串类型
![](https://static001.geekbang.org/infoq/4b/4b1c639d6bb2e4ed7c8d1fe47b658d9b.png)
2.1 字符串的表达
用""或''括起来的任意字符
字符串中有双引号或单引号的情况
双中有单
单中有双
双中有双,单中有单——转义符 \
转义符可以用来换行继续输入
2.2 字符串的性质
2.2.1 字符串的索引
变量名[位置编号]
正向索引——从零开始递增
位置编号不能超过字符串的长度
空格也是一个位置
反向索引——从-1 开始递减
索引只能获得一个字符,如何获得多个字符?
2.2.2 字符串的切片
变量名[开始位置:结束位置:切片间隔]
切片间隔如不设置默认为 1,可省略
切片范围不包含结束位置(前闭后开)
起始位置是 0 可以省略
结束位置省略,代表可以取到最后一个字符
可以使用反向索引
反向切片
起始位置是-1 也可以省略
结束位置省略,代表可以取到第一个字符
关键点在于-1,代表前一个位置比后一个位置大-1
2.3 字符串操作符
2.3.1 字符串的拼接
字符串 1+字符串 2
2.3.2 字符串的成倍复制
字符串 * n n * 字符串
2.2.3 成员运算
子集 in 全集 任何一个连续的切片都是原字符串的子集
遍历字符串字符 for 字符 in 字符串
2.4 字符串处理函数
2.4.1 字符串的长度
所含字符的个数
2.4.2 字符编码
将中文字库,英文字母、数字、特殊字符等转化成计算机可识别的二进制数
每个单一字符对应一个唯一的互不重复的二进制编码
Python 中使用的是 Unicode 编码
将字符转化为 Unicode 码——ord(字符)
将 Unicode 码转化为字符——chr(Unicode 码)
2.5 字符串的处理方法
2.5.1 字符串的分割——字符串.split(分割字符)
返回一个列表
原字符串不变
上述特性适合以下所有字符串处理方法
2.5.2 字符串的聚合——“聚合字符”.join(可迭代数据类型)
可迭代类型 如:字符串、列表
序列类型的元素必须是字符类型
3.5.3 删除两端特定字符——字符串.strip(删除字符)
strip 从两侧开始搜索,遇到指定字符执行删除,遇到非指定字符,搜索停止
类似的还有左删除 lstrip 和右删除 rstrip
3.5.4 字符串的替换——字符串.replace("被替换","替换成")
3.5.5 字符串统计——字符串.count("待统计字符串")
3.3.6 字符串字母大小写
字符串.upper() 字母全部大写
字符串.lower() 字母全部小写
字符串.title()首字母大写
第三部分 布尔类型 TRUE or False
![](https://static001.geekbang.org/infoq/95/952ec47c157bbb973ce3d083306c4641.png)
3.1 逻辑运算的结果
any() 数据有一个是非零就为 True
all() 数据有一个是零就为 False (元素都是非零的)
3.2 指示条件
3.3 作为 numpy 数组的掩码
第四部分 类型判别及类型转换
![](https://static001.geekbang.org/infoq/c0/c0a0835a6f7f33f1d253b06411891e7a.png)
4.1 类型判别
type(变量)
isinstance(变量,预判类型) 承认继承
变量类型是预判类型的子类型,则为真,否则为假
字符串检查方法
字符串.isdigit()字符是否只有数字组成
字符串.isalpha()字符是否只有字母组成
字符串.isalnum()字符是否只有数字和字母组成
4.2 类型转换
数字类型转字符串 str(数字类型)
仅有数字组成的字符串转数字 int() float() eval()
版权声明: 本文为 InfoQ 作者【timerring】的原创文章。
原文链接:【http://xie.infoq.cn/article/a2b22db87a15fdb3e0921c040】。文章转载请联系作者。
评论