【Python】2. 基本数据类型
基本数据类型
2.1 数字类型
2.1.1 数字类型的组成
1 整数——不同进制的转换
- 默认输入十进制
- 二进制0b、八进制0o、十六进制0x
16 == 0b10000 == 0o20 == 0x10
- 十进制与其他进制的转换
1 | |
0b10000 0o20 0x10
注意:上述转换结果为字符串类型
1 | |
<class ‘str’>
- 其他进制转十进制
1 | |
16 16 16
2 浮点数——不确定性
- 不确定小数问题
1 | |
False
1 | |
0.30000000000000004
计算机采用二进制小数来表示浮点数的小数部分
- 部分小数不能用二进制完全表示
二进制 0.1
十进制 0.5
- 通常情况霞不会影响计算精度
- 四舍五入获得精确解
1
2
3
4a = 3*0.1
print(a)
b = round(a, 1) # 第二个参数为保留小数位数
print(b)0.30000000000000004
0.3
3 复数——a+bj
- 大写J或小写j均可
3+4j
2+5J - 虚部系数为1时,需要显性写出
2+1j
2.1.2 数字运算操作符(a 操作符 b)
- 加减乘除运算 + - * /
1 | |
-0.8
- 取反 -
1 | |
-1
- 乘方运算 **
1 | |
8
- 整数商 // 和 模运算%
1 | |
2
3
几点说明
- 整数与浮点数运算结果是浮点数
- 除法运算结果是浮点数
2.1.3 数学运算操作函数 function(x,…)
- 求绝对值 abs()
1 | |
5.0
- 幂次方 pow(x,n)
1 | |
32
2
- 四舍五入 round(x,n)
1 | |
2
1.62
1.618
- 整数商和模运算 divmod(x,y)
等价于返回二元元组(x//y,x%y)
1 | |
(2, 3)
- 序列最大/最小值 max() min()
1 | |
9
- 求和 sum(x)
1 | |
15
- 借助科学计算库 math\scipy\numpy
1 | |
2.718281828459045
1.0
2.0
1 | |
3.0
3.0
1.4142135623730951
2.2 字符串类型
2.2.1 字符串的表达
- 用””或’’括起来的任意字符
1 | |
Python
Python
- 字符串中有双引号或单引号的情况
双中有单
1 | |
I’m 18 years old
单中有双
1 | |
“Python” is good
双中有双,单中有单——转义符 \
1 | |
“Python” is good
转义符可以用来换行继续输入
1 | |
Python
2.2.2 字符串的性质
1 字符串的索引
1 | |
变量名[位置编号]
- 正向索引——从零开始递增
- 位置编号不能超过字符串的长度
1 | |
M
m
- 反向索引——从-1开始递减
1 | |
g
P
a
索引只能获得一个字符,如何获得多个字符?
2 字符串的切片
变量名[开始位置:结束位置:切片间隔]
- 切片间隔若不设置默认为1,可省略
- 切片范围不包含结束位置
1 | |
Pyt
Pt
Pyt
- 起始位置是0,可以省略
- 结束位置省略代表可以取到最后一个字符
- 可以使用反向索引
1 | |
Python
Python
Python
Python
反向切片
- 起始位置是-1也可以省略
- 结束位置省略,代表可以取到第一个字符
1 | |
987654321
987654321
987654321
2.2.3 字符串操作符
1 字符串拼接
- 字符串1+字符串2
1 | |
I love my wife
2 字符串的成倍复制
- 字符串*n 或 n*字符串
1 | |
I love my wife I love my wife I love my wife
I love my wife I love my wife I love my wife I love my wife I love my wife
3 成员运算
- 子集in全集 任何一个连续的切片都是原字符串的子集
1 | |
True
- 遍历字符串字符 for 字符 in 字符串
1 | |
P
y
t
h
o
n
2.2.4 字符串处理函数
1 字符串的长度
- 所含字符个数
1 | |
6
2 字符编码
将中文字库、英文字母、数字、特殊符号等转化成计算机可识别的二进制数
- 每个单一字符对应一个唯一的互不重复的二进制编码
- Python中使用的是Unicode编码
将字符转化为Unicode码——ord(字符)
1 | |
49
97
42
20013
22269
将Unicode码转化为字符——chr(Unicode码)
1 | |
ϲ
✐
〹
宠
2.2.5 字符串的处理方法
1 字符串的分割——字符串.split(分割字符)
- 返回一个列表
- 原字符串不变
上述特性适合一下所有字符串处理方法
1 | |
[‘Python’, ‘C’, ‘C++’, ‘Java’, ‘PHP’, ‘R’]
Python C C++ Java PHP R
2 字符串的聚合——“聚合字符”.join(可迭代数据类型)
- 可迭代类型 如:字符串、列表
1 | |
1,2,3,4,5
- 序列类型元素必须为字符类型
3 删除两端特定字符——字符串.strip(删除字符)
- strip从两侧开始搜索,遇到指定字符执行删除,遇到非指定字符,搜索停止
- 类似的还有左删除lstrip和右删除rstrip
1 | |
I have many blanks
I have many blanks
I have many blanks
4 字符串的替换——字符串.replace(“被替换”,”替换成”)
1 | |
Py is coming
5 字符串统计——字符串.count(“待统计字符串”)
1 | |
an: 2
e: 4
6 字符串字母大小写
- 字符串.upper()字母全部大写
1 | |
PYTHON
- 字符串.lower()字母全部小写
1 | |
python
- 字符串.title()首字母大写
1 | |
Python
2.3 布尔类型 True or False
2.3.1 逻辑运算的结果
1 | |
True
False
False
- any() all()
1 | |
True
False
2.3.2 指示条件
1 | |
请输入一个正整数:28
太小了
请输入一个正整数:2800
你猜对啦
2.3.3 作为掩码
1 | |
[[False False False True True]]
[5 7]
2.4 类型判别及类型转换
2.4.1 类型判别
- type(变量)
1 | |
<class ‘int’>
<class ‘str’>
- isinstance(变量,预判类型) 承认继承
变量类型是预判类型的子类型,则为真,否则为假
1 | |
True
True
True
- 字符串检查方法
字符串.isdigit()字符是否只有数字组成
1 | |
True
False
字符串.isalpha()字符是否只有字母组成
1 | |
True
字符串.isalnum()字符是否只有数字和字母组成
1 | |
True
2.4.2 类型转换
- 数字类型转字符串 str(数字类型)
1 | |
My age is 20
- 仅有数字组成的字符串转数字 int() float() eval()
1 | |
20
20.0
10.1
20
10.1
以上,便是第二节基本数据类型内容。
下一节为组合数据类型,深入了解列表、元组、字典和集合。