1. 数值
表现形式
整数(int)
二进制
- 0b
- +
二进制数
只能包含 01
八进制
- 0 / 0o
- +
八进制数
只能包含 0-7
十进制
十进制数
只能包含 0-9
十六进制
- 0x
- +
十六进制数
只能包含 0-9, a-f
浮点数(float)
由整数部分和小数部分组成
168.2
可以使用科学计数法表示
- 1.682e2
- 1.682 * 10²
复数(complex)
由实部和虚部组成
- a + bj
- complex(a, b)
a, b 都是浮点数
注意
Python3 的整型, 可以自动的调整大小, 当做 Long 类型使用
所以, Python3 中, 没有 Python2 中的 Long 类型
分正负
- 6
- -6
进制转换
进制的概念
进位的制度
逢 x 进 1
x 进制
常用进制
二进制
逢 2 进 1
八进制
逢 8 进 1
十进制
逢 10 进 1
十六进制
逢 16 进 1
进制转换
其他进制 -> 十进制
x 进制
- 111101
- 1 * x ^ 0 + 0 * x ^ 1
十进制 -> 其他进制
规律
整除倒取余
二进制 <-> 八进制
整合 3 位为 1 位
二进制 <-> 十六进制
整合 4 位为 1 位
常用操作
适用于几乎所有 Python 运算符
算术运算符
+
加法运算符
-
减法运算符
*
乘法运算符
**
幂运算符
/
除法运算符
//
整除运算符
%
求模运算符
=
赋值运算符
- a = 10
- b = a + c
- a, b, c = 10, 20, 30
链式赋值
a = b = c = 3
注意
除以 0
优先级问题
()使用
整除和求余的应用场景
行列
复合运算符
- +=
- -=
- *=
- %=
- **=
- //=
- a
a x= 值
a = a x 值
比较运算符
- >
- < !=
- <>
Python2.x 版本支持
等同于!=
以后统一使用!= 表示不等于
- >=
- <=
- ==
- is
比对唯一标识
链状比较运算符
10 <a <=66
注意
整型比对
- ==
- is
案例
- 256
- True
- True
- 257
- True
- False
解答
出于对性能的考虑, Python 内部做了很多的优化工作, 对于整数对象, Python 把一些频繁使用的整数对象缓存起来, 保存到一个叫 small_ints 的链表中, 在 Python 的整个生命周期内, 任何需要引用这些整数对象的地方, 都不再重新创建新的对象, 而是直接引用缓存中的对象. Python 把这些可能频繁使用的整数对象规定在范围 [-5, 256] 之间的小对象放在 small_ints 中, 但凡是需要用些小整数时, 就从这里面取, 不再去临时创建新的对象. 因为 257 不再小整数范围内, 因此尽管 a 和 b 的值是一样, 但是他们在 Python 内部却是以两个独立的对象存在的, 各自为政, 互不干涉.
.Python 内部为了将性能进一步的提高, 凡是在一个代码块中创建的整数对象, 如果存在一个值与其相同的对象于该代码块中了, 那么就直接引用, 否则创建一个新的对象出来. Python 出于对性能的考虑, 但凡是不可变对象, 在同一个代码块中的对象, 只有是值相同的对象, 就不会重复创建, 而是直接引用已经存在的对象. 因此, 不仅是整数对象, 还有字符串对象也遵循同样的原则. 所以 a is b 就理所当然的返回 True 了, 而 c 和 a 不在同一个代码块中, 因此在 Python 内部创建了两个值都是 257 的对象.
逻辑运算符
not
非
取反
真的变假
假的变真
and
与
一假全假
or
或
一真全真
注意
非布尔类型的值, 如果作为真假来判定, 一般都是非零即真, 非空即真
整个逻辑表达式的结果不一定只是 True 和 False
注意
当 int 和 float 类型进行算术运算时, 结果会被提升为 float 类型
数值类型如果参与逻辑运算, 参照的原则是
非零即真
数学函数
部分函数使用前注意
导入对应模块
例如: import math
使用函数时
模块名. 函数名(参数)
- math.fabs(-10)
- abs(num)
返回数字的绝对值
max(num1, num2...)
返回序列中的最大元素
min(num1, num2...)
返回序列中的最小元素
round(num[, n])
四舍五入
, n
表示四舍五入的位数
可以省略
pow(x, y)
返回 x 的 y 次幂
x ** y
--------------------- 分割线 -------------------
ceil(num)
上取整
floor(num)
下取整
sqrt(num)
开平方
log(x, base)
以 base 为基数, x 的对数
内建函数
math 模块函数
随机函数
- random()
- [0, 1)
范围之内的随机小数
choice(seq)
从一个序列中, 随机挑选一个数值
- random.choice((1, 3, 6, 8))
- uniform(x, y)
- [x, y]
范围之内的随机小数
- randint(x, y)
- [x, y]
范围之内的随机整数
randrange(start, stop=None, step=1)
给定区间内的一随机整数
[start, stop)
random 模块
三角函数
sin(x)
正弦
cos(x)
余弦
tan(x)
正切
asin(x)
反正弦
acos(x)
反余弦
atan(x)
反正切
degrees(x)
弧度 -> 角度
radians(x)
角度 -> 弧度
math 模块
数学常量
pi
数学中的π
3.14...
2. 布尔
- bool
- True
- False
是 int 类型的子类
issubclass(bool, int)
应用场景
当做 int 类型, 参与相关运算
比较表达式的运算结果
3> 2
可以用于 if 判定条件和 while 循环条件
3. 字符串
概念
由单个字符组成的一个集合
形式
非原始字符串
使用单引号包含的
'abc'
使用双引号包含的
"abc"
使用 3 个单引号
'''abc'''
使用 3 个双引号
"""abc"""
原始字符串
使用单引号包含的
r'abc'
使用双引号包含的
r"abc"
使用 3 个单引号
r'''abc'''
使用 3 个双引号
r"""abc"""
概念补充
转义符
概念
通过转换某个指定的字符, 使它具备特殊的含义
常见转义符
\(在行尾时) 续行符
\' 单引号
\" 双引号
\n 换行
\t 横向制表符
各个形式的特点
单 / 双引号
混合使用可以避免使用引号转义符
一般内容需要写成一行
跨行
需要连行符 \
- name = "s \
- z"
使用小括号
- name = ("s"
- "z")
三引号
可以直接跨行书写
可用于注释
字符串一般操作
字符串拼接
方式 1
str1 + str2
例如:
- "wangzha" + "shunzi"
- "wangzhashunzi"
方式 2
str1str2
直接把两个字符串放一块
例如:
"wangzha""shunzi""wangzhashunzi"
方式 3
"xxx%sxxx"%(a+b)
方式 4
字符串乘法
- "abc" * 3
- "abcabcabc"
字符串切片
概念
获取一个字符串的某个片段
获取某一个字符
name[下标]
下标
字符串中每个字符的编号
座位编号
注意
下标越界
负数下标
如果为负数, 则会从尾部开始定位
最后一个字符为 -1
获取一个字符串片段
name[起始: 结束: 步长]
注意
获取范围
[起始, 结束)
起始包含
结束不包含
默认值
起始默认值: 0
结束默认值: len(name)
整个字符串的长度
步长默认值: 1
获取顺序
步长> 0
从左边到右
步长 < 0
从右往左
注意: 不能从头部跳到尾部, 或者从尾部跳到头部
特殊案例
反转字符串
字符串[::-1]
字符串函数操作
使用方式
小旗子的代表是内建函数, 直接使用
不带小旗子的属于对象方法
对象. 方法(参数)
len
作用
计算字符串的字符个数
语法
len(name)
参数
字符串
返回值
整型
字符个数
find
作用
查找子串索引位置
语法
find(sub, start=0, end=len(str))
参数
参数 1-sub
需要检索的字符串
参数 2-start
检索的起始位置
可省略, 默认 0
参数 3-end
检索的结束位置
可省略, 默认 len(str)
返回值
找到了
指定索引
整型
找不到
-1
注意
从左到右进行查找
找到后立即停止
rfind
功能使用, 同 find
区别
从右往左进行查找
index
作用
获取子串索引位置
语法
index(sub, start=0, end=len(str))
参数
参数 1-sub
需要检索的字符串
参数 2-start
检索的起始位置
可省略, 默认 0
参数 3-end
检索的结束位置
可省略, 默认 len(str)
返回值
找到了
指定索引
整型
找不到
异常
注意
从左到右进行查找
找到后立即停止
rindex
功能使用, 同 index
区别
从右往左进行查找
count
作用
计算某个子字符串的出现个数
语法
count(sub, start=0, end=len(str))
参数
参数 1-sub
需要检索的字符串
参数 2-start
检索的起始位置
可省略, 默认 0
参数 3-end
检索的结束位置
可省略, 默认 len(str)
返回值
子字符串出现的个数
整型
replace
作用
使用给定的新字符串 替换原字符串中的 旧字符串
语法
replace(old, new[, count])
参数
参数 1-old
需要被替换的旧字符串
参数 2-new
替换后的新字符串
参数 3-count
替换的个数
可省略, 表示替换全部
返回值
替换后的结果字符串
注意
并不会修改原字符串本身
capitalize
作用
将字符串首字母变为大写
语法
capitalize()
参数
无
返回值
首字符大写后的新字符串
注意
并不会修改原字符串本身
title
作用
将字符串每个单词的首字母变为大写
语法
title()
参数
无
返回值
每个单词首字符大写后的新字符串
注意
并不会修改原字符串本身
lower
作用
将字符串每个字符都变为小写
语法
title()
参数
无
返回值
全部变为小写后的新字符串
注意
并不会修改原字符串本身
upper
作用
将字符串每个字符都变为大写
语法
upper()
参数
无
返回值
全部变为大写后的新字符串
注意
并不会修改原字符串本身
ljust
作用
根据指定字符(1 个), 将原字符串填充够指定长度
l
表示原字符串靠左
语法
ljust(width, fillchar)
参数
参数 1-width
指定结果字符串的长度
参数 2-fillchar
如果原字符串长度 < 指定长度时
填充过去的字符
返回值
填充完毕的结果字符串
注意
不会修改原字符串
填充字符的长度为 1
只有原字符串长度 < 指定结果长度时才会填充
rjust
作用
根据指定字符(1 个), 将原字符串填充够指定长度
r
表示原字符串靠右
语法
rjust(width, fillchar)
参数
参数 1-width
指定结果字符串的长度
参数 2-fillchar
如果原字符串长度 < 指定长度时
填充过去的字符
返回值
填充完毕的结果字符串
注意
不会修改原字符串
填充字符的长度为 1
只有原字符串长度 < 指定结果长度时才会填充
center
作用
根据指定字符(1 个), 将原字符串填充够指定长度
center
表示原字符串居中
语法
center(width, fillchar)
参数
参数 1-width
指定结果字符串的长度
参数 2-fillchar
如果原字符串长度 < 指定长度时
填充过去的字符
返回值
填充完毕的结果字符串
注意
不会修改原字符串
填充字符的长度为 1
只有原字符串长度 < 指定结果长度时才会填充
lstrip
作用
移除所有原字符串指定字符(默认为空白字符)
l
表示从左侧开始移除
语法
lstrip(chars)
参数
参数 - chars
需要移除的字符集
表现形式为字符串
"abc"
表示,"a"|"b"|"c"
返回值
移除完毕的结果字符串
注意
不会修改原字符串
rstrip
作用
移除所有原字符串指定字符(默认为空白字符)
r
表示从右侧开始移除
语法
rstrip(chars)
参数
参数 - chars
需要移除的字符集
表现形式为字符串
"abc"
表示,"a"|"b"|"c"
返回值
移除完毕的结果字符串
注意
不会修改原字符串
split
作用
将一个大的字符串分割成几个子字符串
语法
split(sep, maxsplit)
参数
参数 1-sep
分隔符
参数 2-maxsplit
最大的分割次数
可省略, 有多少分割多少
返回值
分割后的子字符串, 组成的列表
list 列表类型
注意
并不会修改原字符串本身
partition
作用
根据指定的分隔符, 返回(分隔符左侧内容, 分隔符, 分隔符右侧内容)
语法
partition(sep)
参数
参数 - sep
分隔符
返回值
如果查找到分隔符
(分隔符左侧内容, 分隔符, 分隔符右侧内容)
tuple 类型
如果没有查找到分隔符
(原字符串, "","")
tuple 类型
注意
不会修改原字符串
从左侧开始查找分隔符
rpartition
作用
根据指定的分隔符, 返回(分隔符左侧内容, 分隔符, 分隔符右侧内容)
r
表示从右侧开始查找分隔符
语法
partition(sep)
参数
参数 - sep
分隔符
返回值
如果查找到分隔符
(分隔符左侧内容, 分隔符, 分隔符右侧内容)
tuple 类型
如果没有查找到分隔符
(原字符串, "","")
tuple 类型
注意
不会修改原字符串
从右侧开始查找分隔符
splitlines
作用
按照换行符(\r, \n), 将字符串拆成多个元素, 保存到列表中
语法
splitlines(keepends)
参数
参数 - keepends
是否保留换行符
bool 类型
返回值
被换行符分割的多个字符串, 作为元素组成的列表
list 类型
注意
不会修改原字符串
join
作用
根据指定字符串, 将给定的可迭代对象, 进行拼接, 得到拼接后的字符串
语法
join(iterable)
参数
iterable
可迭代的对象
字符串
元组
列表
...
返回值
拼接好的新字符串
isalpha
作用
字符串中是否所有的字符都是字母
不包含该数字, 特殊符号, 标点符号等等
至少有一个字符
语法
isalpha()
参数
无
返回值
是否全是字母
bool 类型
isdigit
作用
字符串中是否所有的字符都是数字
不包含该字母, 特殊符号, 标点符号等等
至少有一个字符
语法
isdigit()
参数
无
返回值
是否全是数字
bool 类型
isalnum
作用
字符串中是否所有的字符都是数字或者字母
不包含该特殊符号, 标点符号等等
至少有一个字符
语法
isalnum()
参数
无
返回值
是否全是数字或者字母
bool 类型
isspace
作用
字符串中是否所有的字符都是空白符
包括空格, 缩进, 换行等不可见转义符
至少有一个字符
语法
isspace()
参数
无
返回值
是否全是空白符
bool 类型
startswith
作用
判定一个字符串是否以某个前缀开头
语法
startswith(prefix, start=0, end=len(str))
参数
参数 1-prefix
需要判定的前缀字符串
参数 2-start
判定起始位置
参数 3-end
判定结束位置
返回值
是否以指定前缀开头
bool 类型
endswith
作用
判定一个字符串是否以某个后缀结尾
语法
endswith(suffix, start=0, end=len(str))
参数
参数 1-suffix
需要判定的后缀字符串
参数 2-start
判定起始位置
参数 3-end
判定结束位置
返回值
是否以指定后缀结尾
bool 类型
补充
in
判定一个字符串, 是否被另外一个字符串包含
not in
判定一个字符串, 是否不被另外一个字符串包含
查找计算
转换
填充压缩
分割拼接
判定
学习地址:
撩课 - Python 大数据 + 人工智能 1
撩课 - Python 大数据 + 人工智能 2
撩课 - Python 大数据 + 人工智能 3
撩课 - Python 大数据 + 人工智能 4
撩课 - Python 大数据 + 人工智能 5
撩课 - Python 大数据 + 人工智能 6
撩课 - Python-GUI 编程 - PyQt5
来源: http://www.jianshu.com/p/70f9937552c6