1、python中的数据类型有哪些

数字类型、布尔值空值、字符串、列表、元组、字典、集合

1.1数字

int、float、boolean等(不可变的数据类型不能直接修改本身)

import math

print(math.ceil(4.1))   # 向上取整
print(math.floor(4.9))  # 向下取整
print(math.pow(4,4))      # x**y
print(round(5.1))
print(round(5.5))
print(round(4.5))   # 四舍六入五成偶
a = -10
print(abs(a))#取绝对值

1.2字符串

不可变的序列数据类型,不能直接修改字符串本身和数字类型一样)在python中被一对单引号或者双引号或者三个引号包裹的字符叫做字符串

1.2.1字符串中的切片

a = 'python' print(a[0,2]) (有序数列所以可以切片)str[起始位置:终止位置:步长 ]
1.索引默认从0开始
2.切片时左闭右开
3.当是取单个字符的时候,索引超出范围会报错。而切片时不会报错。
4.步长不能为0,也不允许为浮点数

1.2.2字符串常见操作

1、len(str) 字符串的⻓度
2、max(str) 最⼤值ascll值的比较
3、min(str) 最⼩值ascll值的比较
4、split(‘方式’)分割字符串 str.split(‘用什么进行分割’),返回后的是一个列表
5、join()拼接字符串a = ‘l23’,b=‘abc’ a.join(b)#结果:a123b123c 以a的形式链接b
6、str.strip() 左右两边去空格
7、str.lstrip() 去左边空格
8、str.rstrip() 去右边空格
9、 str.upper() 全部⼤写
10、 str.lower() 全部小写
11、str.isupper() 判断是不是⼤写
12、str.islower() 判断是不是⼩写
13、str.find(‘元素’)找到元素所在字符串中索引,未找到返回-1
14、str.rfind(‘元素’)找到元素所在字符串中最右边的索引,未找到返回-1
15、str.index()找到元素所在字符串中索引,未找到报错
16、str.replace(‘想要替换的字符’,‘替换后的内容’,[替换的次数可写可不写])替换
17、str.startswith(‘元素’)找到字符串是否已该元素开头,返回布尔值
18、str.endswith(‘元素’)找到字符串是否已该元素结尾,返回布尔值
19、int()将字符串转换成整型
20、str()将整型转换成字符串

1.3列表

Python的列表是一个有序可重复的元素序列,可嵌套、迭代、修改、切片、追加、删除,成员判断。从数据结构角度看,Python的列表是一个可变长度的顺序存储结构,每一个位置存放的都是对象的 指针。

1.3.1RDU操作列表元素

查:print(列表[索引])注意要确保索引不越界,一旦访问的 索引超过范围,会抛出异 常。最后一个元素的索引是len(list)-1。
改:找到元素 列表[索引]=’想修改的值‘
删:
① 使用del语句(删除的是整个列表)
② remove(‘想删除的元素’)从左往右删第一个元素,没有就报错
③li.pop([索引])方法删除指定索引的元素,如果不写默认删最后一个元素,列表为空的时候或者索引超出范围报错

1.3.2列表的特殊操作

列表组合 +
列表的乘法 * int数据重复列表内容
判断元素是否在列表内部 成员运算符in或者not in
迭代(for循环遍历都是可迭代的对象)列表中的每个元素

1.3.3列表的常用函数

1、len(list) 返回列表元素个数,也就是获取列表长度
2、max(list) 返回列表元素最大值
3、min(list) 返回列表元素最小值
4、list(seq) 将序列转换为列表

1.3.4列表的排序和反转

list.reverse() 将列表反转
list.sort() 排序,默认升序
list.sort(reverse=True) 降序排列

1.3.5切片

切片指的是对序列进行截取,选取序列中的某一段。
切片的语法是: list[start🔚step]
以冒号分割索引,start代表起点索引,end代表结束点索引,step代表步长。省略start表 示以0开始,省略end表示到列表的结尾。注意,区间是左闭右开的!

1.3.6列表的内置方法

1、append(obj) 在列表末尾添加新的对象
2、count(obj) 统计某个元素在列表中出现的次数
3、extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4、index(obj) 从列表中找出某个值第一个匹配项的索引位置
5、insert(index, obj) 将对象插入列表
6、pop(obj=list[-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7、remove(obj) 移除列表中某个值的第一个匹配项
8、reverse() 反向列表中元素
9、sort([func]) 对原列表进行排序
10、copy() 复制列表
11、clear() 清空列表,等于del lis[:]

1.4 元组

相当于不可修改的列表,元组也是序列结构,但是是一种不可变序列,你可以简单的理解为内容不可变的列表。除了在内部 元素不可修改的区别外,元组和列表的用法差不多。

1.4.1元组中不允许的操作

(1)修改、新增元素
(2)删除某个元素(但可以删除整个元组)
(3)所有会对元组内部元素发生修改动作的方法。例如,元组没有remove,append,pop等方法

1.4.2列表和元组的转换

使用list函数可以把元组转换成列表
使用tuple函数可以把列表转换成元组

1.5字典

不定长、可变、散列的集合类型,map以及zip函数的使用

# dic1 = {('i',1),('h',2)}
# dic = dict([('i','h'),(5,2),(4,8)])
# print(dic,type(dic))
a = [1,2,3]
b = [4,5,6]
def fmap(a,b):
    return (a,b)
print(type(map(fmap,a,b)),dict(map(fmap,a,b)),map(fmap,a,b))#<class 'map'> {1: 4, 2: 5, 3: 6} <map object at 0x000002425462EF08>
print(type(zip(a,b)),list(zip(a,b)),zip(a,b))#<class 'zip'> [(1, 4), (2, 5), (3, 6)] <zip object at 0x000001FFF07AD6C8>

1.5.1访问字典元素

字典是集合类型,不是序列类型,因此没有索引下标的概念,更没有切片的说法。但是,与list 类似,字典采用把相应的键放入方括号内获取对应值的方式取值。

1.5.2增加和修改

增加就是往字典插入新的键值对,修改就是给原有的键赋予新的值。由于一个key只能对应一个 值,所以,多次对一个key赋值,后面的值会把前面的值冲掉。

1.5.3删除字典元素、清空字典和删除字典

使用del关键字删除字典元素或者字典本身,使用字典的clear()方法清空字典

1.5.4字典的方法

get(key) 返回指定键的值,如果值不在字典中,则返回default值
items() 以列表返回可遍历的(键, 值) 元组对
keys() 以列表返回字典所有的键
values() 以列表返回字典所有的值

1.6 集合

set集合是一个无序不重复元素的集,基本功能包括关系测试和消除重复元素。集合使用大括号({})框 定元素,并以逗号进行分隔。但是注意:如果要创建一个空集合,必须用 set() 而不是 {} ,因为后者 创建的是一个空字典
集合数据类型的核心在于自动去重。

2、python中的运算符

2.1算数运算符

加(+)减(-)乘(*)除(/)取余(%)取整(//)取绝对值(abs(x))等导入math模块可以查看详细

2.2比较运算符

小于(<) 小于等于(<=) 等于(==) 大于(>) 大于等于(>=) 不等于(!=)
他们的优先级相同,可以链式比较类似于a<b<c相当于a<b and a<c and b<c

2.3逻辑运算符

逻辑与(and)都成立才返回ture,找false
逻辑或(or)一个成立就返回ture, 找ture
逻辑非(not)常用作判断

2.4赋值运算符

①= 简单的赋值②==赋值运算符 ③+= 加法赋值运算 ④-= 减法赋值运算⑥/= 除法赋值运算⑦%= 取余法赋值运算⑧*= 幂赋值运算⑨//= 取整除赋值运算

2.5位运算符

①& 按位与运算符:参数运算的两个值(二进制),如果两个相应为都为1,则改结果为 1,否则为0
②| 按位或运算符:参与运算的两个值,只有对应位的两个数,有一个为1,结果为1
③^ 按位异或运算符:对应位数数值不同为1,相同为0
④~ 按位取反运算符:针对单个数,二进制格式,相应的位的数值取反,1变0,0变1

2.6成员运算符

python提供了成员运算符,测试一个元素是否在序列(squence)中
①in 如果指定元素在序列中,返回True,否则返回False
②not in 如果指定元素不在序列中,返回True,否则返回False
③身份运算符 :(is查看的是对象的id不是value)
④三目运算符:(语句1 if ture else 语法2)

3、可变对象与不可变对象

每个对象都含有 id(标识)type(类型)value(值)这三个内容

3.1可变对象

列表、字典、集合都是可变对象
定义:当改变对象的value时,对象的id不发生变化的对象
以列表举例子

a = [1,2,3]
print(a,id(a))#[1, 2, 3] 1615855637000
a[0] = 10 #(改的是对象里面的value)这个操作是在通过变量去修改对象里面的值、不会改变变量所指向的对象
print('修改前',a,id(a))#修改前 [10, 2, 3] 1615855637000
a = [4,5,6] #(改的是变量)这个操作是在给变量重新复制、这种操作会让变量指向新的对象
print('修改后',a,id(a))#修改后 [4, 5, 6] 1615855637512

3.2不可变对象

数字、字符串 str、元组tuple()都是不可变对象
定义:当改变对象的value时,对象的id发生变化的对象
举例子:任何不可变对象改变value时就相当于在内存中重新开辟了一块区域、所以就会有新的id与之对应。

4、函数

闭包以及装饰器详情看python函数介绍

5、面向对象

继承、封装和多态详情请看python面向对象介绍