一. 数字类型
1.1 数字类型组成
1.1.1 整数
不同进制的转换
默认是十进制
二进制0b,八进制0o,十六进制0x
十进制与其他进制的转换
:
a = bin(16) #转二进制
b = oct(16) #转八进制
c = hex(16) #转十六进制
print(a,b,c) #转换后结果为字符串类型
其他进制转十进制
:
d = int(a,2) #二进制转十进制
e = int(b,8) #八进制转十进制
f = int(c,16) #十六进制转十进制
print(d,e,f)
1.1.2 浮点数
小数具有不确定性
(0.1+0.2 == 0.3) #False
0.1+0.2 #0.30000000000000004
计算机采用二进制小数表示浮点数的小数部分
而部分小数不能用二进制小数完全表示
四舍五入
:
a = 0.3
b = round(a,1)
print(b == 0.3)
1.1.3 复数
a+bj
:
j可以大写可以小写
虚部系数为1时,需要显式写出
1.2 数字运算操作符
加减乘除
:+ - * /
取反
:-
乘方
:**
整数商
://
模运算
:%
整数与浮点数运算结果为浮点数
除法运算结果是浮点数
1.3 数字运算操作函数
1.3.1 绝对值函数abs()
对复数的绝对值是求模运算
1.3.2 幂次方pow(x,n)
pow(2, 5, 3) #2^5%3
1.3.3 四舍五入round(x,n)
- 默认四舍五入为整数
- n表示四舍五入后保留n位小数
- 位数不足,无需补齐
1.3.4 整数商和模运算:divmod(x,y)
等价于返回二元元组(x//y,x%y)
1.3.5 序列最大/小值max() min()
1.3.6 求和sum()
1.3.7 借助科学计算库math/scipy/numoy
import math
math.exp(x) #e^x
math.log2(x) #log2(x)
math.sqrt(x) #开平方运算
import numpy as np
a = [1,2,3,4,5]
np.mean(a) #均值
np.median(a) #中位数
np.std(a) #求标准差
二. 字符串类型
2.1 字符串表达
用双引号”“或单引号’‘皆可
可以双中有单,单中有双
单中有单或双中有双时要用转义符\
转义符\可以用来换行继续输入
2.2 字符串的性质
2.2.1 字符串的索引
正向索引
:从0开始递增
反向索引
:从-1开始递减
2.2.2 字符串的切片
切片间隔默认为1
切片范围左闭右开
起始位置是0,可以省略,结束位置省略代表可以取到最后一个字符
可以反向索引
反向切片
:s[-1:3:-1]
起始位置是-1也可以省略
结束位置省略代表可以取到最后一个字符
2.2.3 切片的内存分析
常量字符串在内存中存储于字符串常量区
对字符串的切片相当于在常量区新生成了一个字符串
str1 = 'hello'
a = str1[1:3]
print('str1的地址:%d'%id(str1)) # 1657487885552
print('a的地址:%d'%id(a)) # 1657521714480
2.3 字符串操作符
2.3.1 字符串的拼接
字符串1+字符串2
2.3.2 字符串的成倍复制
字符串*n n*字符串
2.3.3 成员运算
子集 in 全集
遍历字符串字符
for s in 字符串
2.4 字符串处理函数
2.4.1 字符串的长度
len(s)
2.4.2 字符编码
Python中使用的是Unicode编码
字符转化为Unicode码
:ord(字符)
Unicode码转化为字符
:chr(Unicode码)
2.5 字符串的处理方法
2.5.1 字符串的分割
str.split(分割字符)
:
返回一个列表
原字符串不变
2.5.2 字符串的聚合
聚合字符.join(可迭代数据类型)
:
s = '12345'
s_j = "*".join(s)
s_j
返回的是str
2.5.3 删除两端特定字符
字符串.strip(删除字符)
strip从两侧开始搜索,遇到指定字符执行删除,遇到非指定字符,搜索停止
s.strip(" ")
s.lstrip(" ")
s.rstrip(" ")
2.5.4 字符串的替换
字符串.replace("被替换","替换成")
replace操作不会对原字符串产生影响
replace返回的是一个替换后的新的字符串
s = "I am abc"
m = s.replace("am","aa")
m
2.5.5 字符串的统计
str.count("待统计字符串")
2.5.6 字符串字母的大小写
str.upper()
:字母全部大写
str.lower()
:字母全部小写
str.title()
:字符串首字母大写
三. 布尔类型 True or False
3.1 逻辑运算的结果
any()
:数据只要一个是非0就是True
all()
:数据全部是非0才是True
3.2 指示条件
if while 中的条件
3.3 作为掩码
numpy,pandas中可以对数组进行逻辑运算,返回的是同类型布尔值(掩码)
可以使用该掩码进行取值,对应位置是True的元素被选中
四. 类型判别和类型转换
4.1 类型判别
type(变量)
:判定类别
isinstance(变量,预判类型)
:承认继承
变量类型是预判类型的子类型,是的话为真,否则为假
str.digit()
:
判断字符串是否只有数字组成
str.isalpha()
:
判断字符串是否只由字母组成
str.isalnum()
“
判定字符串是否只由数字和字母组成
4.2 类型转换
4.2.1 数字转字符串
str(数字类型)
4.2.2 仅有数字组成的字符串转数字
int()
float()
eval()