文章目录
2. 数据类型、运算符与内置函数
2.1 常用内置数据类型
2.1.1 概述、整数、实数、复数
- 关于变量
1.1Python 的变量存储值的内存地址或者引用
>Python 变量的类型是可以随时变化的
1.2 不需要事先声明变量名及其类型 - 赋值语句的执行过程
首先,赋值号右侧表达式的值计算出来,然后,在内存中寻找一个位置把值存放进去,最后,创建变量并指向这个内存地址 - 数字(整数、实数、复数)大小没有限制
==
关系运算符测的是严格相等,不能用于实数的比较,比较实数使用 math 库的 isclose 函数测试两个实数是否足够接近- 关于复数
5.1 Python 支持复数及其运算
5.2 创建复数
c = 3 + 4j
5.3 复数加法
c + c
5.4 复数的幂运算
c ** c
5.5 查看实部
c.real
5.6 查看虚部
c.imag
如果是 3 + 4j.imag 执行的结果为 3 + 4 = 7,此时 '.' 比 '+' 优先级高
5.7 查看共轭复数
c.conjugate()
5.8 计算模
abs(c)
abs 函数,如果参数为整数,计算绝对值;如果参数为虚数,计算模
2.1.2 列表、元组、字典、集合、字符串
字典的键
和集合的元素
不允许重复,只能是不可变的数据(整数、实数、字符串、元组等)- 列表、元组的下标是
序号
,从 0 开始;字典的下标是键
- len 函数用于获取容器类对象(列表、元组、字典、集合)的长度
- max 函数用于计算容器类对象(列表、元组、字典、集合)的最大值
- 字符串的定界符可以是单引号,双引号,三引号,这三种定界符可以嵌套
- 字符串的三引号可以表示多行字符串
2.2 运算符与表达式
2.2.1 算术运算符、关系运算符
- - - num 的作用与 -(-num) 作用相同,表示负负得正,Python 没有
- -
运算符 - 在进行实数之间的运算时,有可能会出现误差
- // 表示向下取整,数轴上为向左取整
- * 表示序列
元素的重复
,生成新的列表、元组或字符串 - % 在计算余数时,结果与 % 右侧的运算数符号一致;在字符串格式化时,如果需要格式化的对象不是一个,需要放到元组内,% 两边的格式和对象数量、位置要保持一致
- ** 运算符具有
右结合性
,如 3 ** 3 ** 2,则先计算 3 ** 2,再计算 3 ** 9;计算平方根可以直接使用 2 ** 0.5,而不需要使用 math 库 - 关系运算符的优先级低于算术运算符
- 关系运算符连续使用时
- 当关系运算符作用于字符串、列表、元组时,自左向右从第一个元素开始比较,如果得到结果,直接得出结论
- 关系运算符作用于集合时,表示集合之间的包含关系
2.2.2 成员测试运算符、集合运算符、逻辑运算符
2.2.2.1 成员测试运算符(in)
二元运算符,用于测试左侧操作数是否在右侧操作数中
2.2.2.2 集合运算符(|、&、-、^)
2.2.2.3 逻辑运算符(and、or、not)
- and 和 or 具有惰性求值(短路求值)的特性
- 被 and 和 or 连接起来的多个表达式的计算结果为最后一个式子的计算结果
2.3 常用内置函数
2.3.1 常用内置函数类型转换
2.3.1.1 int、float、complex
用于将其他类型的数字转换为整数、实数、复数
2.3.1.2 bin、oct、hex
将整数转换为二进制、八进制或十六进制
2.3.1.3 ord、chr、str
- ord 用于返回
单个字符
或单个汉字
的ASCII 码
或Unicode 编码
- chr 用于返回指定
ASCII 码
或Unicode 编码
对应的单个字符
或单个汉字
- str 将对象直接转化为字符串
2.3.1.4 list、tuple、dict、set
用于将给定对象转换为列表、元组、字典、集合(前提是给定的对象能够进行转换)
- 如果不给定参数,则直接创建对应的空对象
- 使用 tuple() 转换为集合时,自动进行去重
- 如果使用 list() 将字符串转换为列表,则字符串的每个字符都转换为列表中的元素
- 将给定对象转换为字典
2.3.1.5 eval
用于对字符串求值
2.3.2 最大值、最小值、元素数量与求和
2.3.2.1 最大值、最小值
key:指定比较的规则,按什么比较,可以是内置函数名、自定义函数名以及 lambda 表达式
2.3.2.2 元素数量、求和
len 和 sum 均适用于列表、元组、集合、字典,len 还适用于字符串
2.3.3 排序、逆序、基本输入与输出
2.3.3.1 排序、逆序
- sorted() 可以对列表、元组、字典、集合或其他
可迭代对象
进行排序并返回新列表。
key:可以是函数、类、lambda 表达式等可调用对象。与 max 和 min 的 key 参数相同,首先被 key 参数指定的函数处理之后再进行排序
reverse:True(降序)、False(升序),不指定默认升序排序
- reversed() 可以对列表、元组、字典、集合和不具有惰性求值特性的可迭代对象进行
翻转
并返回可迭代的 reversed 对象,reversed 对象具有惰性求值特性,其中的元素只能使用一次
,并且不支持内置函数 len() 计算元素个数
- reversed() 不支持
生成器对象
和具有惰性求值特性
的 zip、map、filter、enumerate、reversed 等类似对象
2.3.3.2 基本输入与输出
- input() 用来接收用户的输入,其参数会作为提示显示在控制台中,不论输入什么内容,都会返回字符串,根据需要对其进行转换,如 int()、float()、complex(),容器类对象可以用 eval()
- print() 用于以指定的格式输出信息
print(value1, value2, …, sep=’ ‘, end=’\n’)
sep:指定数据之间的分隔符,默认为空格
end:表示输出完所有数据之后的结束符,默认为换行符
2.3.4 range()、zip()
- range() 给定一个参数,为终止点;给定两个参数,分别为起始点和终止点;给定三个参数,分别为起始点、终止点和步长;最后的结果包含起始点,但不包含终止点,即
左闭右开
- range() 返回 range 对象,支持下标访问,下标为序号
range 对象具有惰性求值特性,但其中的元素却可以使用很多次
- zip() 将多个序列对应位置上的元素取出作为一个元组,返回包含这些元组构成的可迭代 zip 对象
- zip 对象具有惰性求值特性,其中的元素只能使用一次
- zip() 不同参数的长度如果不一样,以短的为准
2.3.5 map()、reduce()、filter()
Python 函数式编程重要的三个函数
2.3.5.1 map
map(func, seq1, seq2…)
- map() 将函数作用到多组参数上,返回 map 对象
- map 对象具有惰性求值特性,其中的元素只能使用一次
- map() 的参数个数由第一个参数可接收参数的数量决定,第一个参数可接收 1 个参数,则 map() 可接收 2 个参数;第一个参数可接收 2 个参数,则 map() 可接收 3 个参数,如果这两个参数长度不同,以短的为准
2.3.5.2 reduce
reduce(func, seq)
2.3.5.3 filter
其他文章
Python 数据分析与数据可视化(一)Python 开发环境搭建与编码规范
Python 数据分析与数据可视化(二)数据类型、运算符与内置函数
Python 数据分析与数据可视化(三)列表、元组、字典、集合与字符串
Python 数据分析与数据可视化(四)文件操作
Python 数据分析与数据可视化(五)线性代数基本知识
Python 数据分析与数据可视化(六)numpy 数组和矩阵运算
Python 数据分析与数据可视化(七)pandas数据分析实战
Python 数据分析与数据可视化(八)sklearn机器学习实战
Python 数据分析与数据可视化(工具篇)课程所需扩展库安装
Python 数据分析与数据可视化(实践篇)泰坦尼克号旅客生存预测