基本数据类型

基本数据类型


在这里插入图片描述

一.整数和小数

基本数据类型

数据类型指的就是变量的值的类型,也就是可以为变量赋哪些值

整数和小数

整数 : 所有整数 例如 : a = 1 b = 100 c =999 都是int类型
小数常量 : 所有小数 例如 a = 1.2 b=6.66 用float类型表示

二.布尔值和空值

布尔值和空值

布尔: 只有2个值一个是True 一个是False
None常量:只有一个数值就是None 也就是空值

三.字符串

字符串

什么是字符串

• 字符串是由数字、字母、下划线组成的一串字符
• 注意
• 单引号或双引号不能混合使用
• Python中用一对双引号或者一对单引号包裹的内容就是字符串

转义字符

转义字符是一种特殊的字符常量。转义字符以反斜线""开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符
总结
\t 表示制表符
\n 表示换行符
\ 表示反斜杠
’ 表示 ’
\ ‘’ 表示 ‘’

长字符串

长字符串 又叫做文档字符串 我们使用三重引号来表示一个长字符串’’’ ‘’’
三重引号可以换行,并且会保留字符串中的格式

格式化字符串

• 第一种格式化字符串 拼串
• 第二种格式化字符串 参数传递
• 第三种格式化字符串 占位符
• %s 字符串占位
• %f 浮点数占位
• %d 整数占位
• 第四种格式化字符串 f’{变量}’
• str.format ()

字符串的其他操作

• len() 字符串的长度
• max() 最大值
• min() 最小值
• split()分割字符串
• join()拼接字符串
• find()查找字符串
• replace() 替换字符串
• partition() 把字符串分割为三部分
• 去空格
• s.strip() 左右两边去空格
• s.lstrip() 去左边空格
• s.rstrip() 去右边空格
• 字符串大小写
• s.upper() 全部大写
• s.lower() 全部小写
• s.isupper() 判断是不是大写
• s.islower() 判断是不是小写

四.列表

序列(sequence)

基本概念

• 序列是Python中最基本的一种数据结构。序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置(索引)并且序列中的数据会按照添加的顺序来分配索引
• 数据结构指计算机中数据存储的方式

序列的分类

• 可变序列(序列中的元素可以改变):例如 列表(list)
• 不可变序列(序列中的元素不能改变):例如 字符串(str)元组(tuple)

列表(list)

• 列表是Python中的一个对象
• 列表的作用
• 列表中可以保存多个有序的数据
• 列表是用来存储对象的对象

列表的使用

• 列表的创建:通过[]来创建一个空列表

切片

• 切片是指从现有列表中获得一个子列表
• 通过切片来获取指定的元素
• 语法: 列表[起始 : 结束 : 步长]
• 通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素
• 起始位置和结束位置的索引可以不写
• 如果省略结束位置, 则会从当前的开始位置一直截取到最后
• 如果省略开始位置, 则会从第一个元素截取到结束的元素,但是不包括结束的元素
• 如果开始位置和结束位置都省略, 则则会从第一个元素开始截取到最后一个元素
• 步长表示每次获取元素的间隔,默认是1(可以省略不写)
• 步长不能是0,但可以是是负数

通用操作

• + 和 *
• + 可以将两个列表拼接成一个列表
• * 可以将列表重复指定的次数 (注意2个列表不能够做乘法,要和整数做乘法运算)
• in 和 not in
• in用来检查指定元素是否在列表当中
• not in 用来检查指定元素是否不在列表当中
• len() 获取列表中元素的个数
• max() 获取列表中最大值
• min() 获取列表中最小值
• list.index(x[, start[, end]])
• 第一个参数 获取指定元素在列表中的位置
• 第二个参数 表示查找的起始位置
• 第三个参数 表示查找的结束位置
• list.count(x) 统计指定元素在列表中出现的个数

修改列表

• 通过切片来修改(起始就是给切片的内容重新赋值,但是赋值的内容必须是一个序列)
• 当设置了步长时,序列中元素的个数必须和切片中元素的个数保持一致
• 通过切片来删除元素
• del list[起始 : 结束]
• list = []

列表的方法

• append() 像列表的最后添加一个元素
• insert(arg1,arg2) 像列表指定位置插入一个元素 参数1:要插入的位置 参数2:要插入的元素
• extend(iterable) 使用一个新的序列来扩展当前序列(它会将该序列的中元素添加到列表中) 参数需要传递一个序列
• pop() 根据索引删除并返回指定元素
• remove() 删除指定元素 (如果相同值的元素有多个,只会删除第一个)
• reverse() 翻转列表
• sort(key=None,reverse=False) 用来对列表中的元素进行排序 reverse:True反序;False 正序

五.元组

元组简介

• 元组表现形式tuple
• 元组是一个不可变序列(一般当我们希望数据不改变时,我们使用元组,其他情况下基本都用列表)
• 使用()创建元素
• 元组不是空元组至少有一个 逗号(,) 当元组不是空元组时括号可以省略
• 元组解包指将元组当中的每一个元素都赋值给一个变量

六.字典

字典简介

字典的基本介绍

• 字典属于一种新的数据结构称为映射(mapping)
• 字典的作用和列表类似,都是用来存储对象的容器
• 列表存储数据的性能好,但是查询数据的性能差,字典正好与之相反
• 在字典中每一个元素都有唯一的名字,通过这个唯一的名字可以找到指定的元素
• 这个唯一的名字我们称之为key 通过key可以快速查询value 也可以称之为值
• 字典我们也称之为键值对(key-value)结构
• 每个字典中都可以有多个键值对,而每一个键值对我们称其为一项(item)
• 创建一个有数据的字典 语法 {key:value}
• 字典的值可以是任意对象 字典的键可以是任意的不可变对象(int str bool tuple…)
• 字典的键是不能重复的,如果出现重复的后面的会替换前面的

字典的使用

• dict()函数来创建字典
• get(key[,default]) 根据键来获取字典的值。第二个参数可以指定一个默认值,当获取不到值的时候会返回默认值
• update() 将其他字典的key-value添加到当前的字典当中
• del 删除字典中的key-value
• popitem() 删除字典最后的一个key-value 这个方法是有返回值的。删除之后它会将删除的key-value作为返回值返回
• pop(key[,default]) 根据key删除自定中的value。第二个参数可以指定一个默认值,当获取不到值的时候会返回默认值

copye()

copy() 方法用来对字典进行潜复制
注意:潜复制只会复制字典本身,如果字典中还有个字典是不会进行复制的

遍历字典

我们主要可以通过3种方式对字典进行遍历
• keys() 该方法返回字典所有的key
• values() 该方法返回一个序列 序列中保存有字典的值
• items() 该方法会返回字典中所有的项 它返回一个序列,序列中包含有双值子序列 双值分别是 字典中的key和value

七.集合

集合简介

• 集合表现形式set 集合和列表非常相似
• 不同点
• 集合只能存储不可变对象
• 集合中存储的对象是无序的
• 集合不能出现重复元素
• 使用{}来创建集合
• 可以通过set()来将序列和字典转换成集合
• len() 使用len()来获取集合中元素的数量
• add()像集合中添加元素
• update()将一个集合中的元素添加到另一个集合当中
• pop()随机删除集合中的一个元素一般是删除最后一个元素
• remove() 删除集合中指定的元素
• clear() 清空集合

集合的运算

• & 交集运算
• | 并集运算
• - 差集运算
• ^ 亦或集
• <= 检查一个集合是否是另一个集合的子集
• < 检查一个集合是否是另一个集合的真子集
• >=检查一个集合是否是另一个集合的超集
• >检查一个集合是否是另一个集合的真超集

七.bytes类型

Bytes

bytes介绍

在Python3以后,字符串和bytes类型彻底分开了。字符串是以字符为单位进行处理的,bytes类型是以字节为单位处理的。
bytes数据类型在所有的操作和使用甚至内置方法上和字符串数据类型基本一样,也是不可变的序列对象。
Python3中,bytes通常用于网络数据传输、二进制图片和文件的保存等等。

bytes创建

可以通过调用bytes()生成bytes实例,其值形式为 b’xxxxx’,对于同一个字符串如果采用不同的编码方式生成bytes对象,就会形成不同的值。

在这里插入图片描述

bytes类型常用转换

那在实际应用中,我们通常会将bytes类型与str类型做转换。
• 字节转为字符串
在这里插入图片描述
• 字符串转为字节
在这里插入图片描述

八.常见问题总结

1. 引号引起的错误

问题描述

在这里插入图片描述

解决方案

在这里插入图片描述
把中文的引号换成英文的引号。在编程中一律使用英文的符号

2. f’'方法格式化字符串的书写

在这里插入图片描述

3. 代码的运行

代码的运行就是在程序中点击鼠标右键,然后点击run就可以了,不需要点击上方的绿色运行符号

4. 字符串可以随机输出打印吗?

在这里插入图片描述

5. 为什么打印结果会出错

在这里插入图片描述
这个是字符串的构成问题,只要是由单引号或者双引号引起的数据,都是字符串,而%f只能传递浮点型,%d只能传递整数

6. 格式化浮点型数据的时候怎么让它精确小数位

在这里插入图片描述
空值浮点型的精确度即在%.数字即可,记住小数点一定要加

7. 整形和浮点型数据不能够获取长度,也就不支持len函数
8. s[0:0] = ‘元素’ 为什么是直接插入到首位,而不是替换首位的?

列表中进行切片的时候,s[a:b]取的元素是左闭右开型,也就是说,前面开始位置的索引所在元素可以取到,但是结束位置的索引所在的元素不能够取到,所以,我们查找s[0:0]的时候只能找到首位,不能拿到首位的元素,所以变为了直接插入这个新的元素

9. 为什么要在for循环外面建立一个空列表,在for循环中修改的数据添加到空列表中才能修改成功

在for循环中,我们只是进行一个遍历,通俗的讲就是我们只有查看的权利,不能去修改它,所以我们需要在for循环外面建立一个空列表,把我们做出的修改保存到这个列表中,到外面使用才是有效的

10. 深拷贝和浅拷贝的原理和区别

深拷贝和浅拷贝都是将所拷贝的对象在内存中重新开辟一片空间来存储拷贝出来的新对象
但是浅拷贝只能拷贝出来对象的第一层数据,不能拷贝对象的更深层数据,举例如下
在这里插入图片描述
深拷贝则是可以将拷贝对象的所有数据全部拷贝出来,成为一个完全独立的对象
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值