Python数据分析基础(一)
目录
python常见的数据类型
字符串类型string
整数与浮点数
布尔类型
空值类型编辑
数据类型的重要性编辑
知识小结
python的交互模式
命令行模式编辑
交互模式编辑
交互模式的优劣势
优势
劣势
知识小结
python条件判断语句
1. 条件语句的定义
2. 条件语句的结构
3. 作为条件的变量
4. 比较运算符
实践
1. 判断今晚能否打游戏的程序
python列表
可变与不可变性编辑
列表的特性
直接修改特性编辑
列表内容多样性
列表的使用方法
列表的删除
remove方法使用
列表内容的添加
通过索引获得元素编辑
列表的内置函数
常用函数编辑
python字典
传统的使用变量存储联系人信息编辑
字典存储键值对编辑
1)放入多个键值对
2)键的类型是不可变的编辑
3)元组作为键编辑
4)字典的可变性编辑
5)判断键是否存在编辑
6)删除键值对编辑
Python中的For循环
1. 问题背景编辑
For循环
1. 基本概念编辑
2. 具体应用编辑
3. 语法结构编辑
4. 体温筛选实现编辑
5. 字典迭代进阶
for循环与range的结合
1. 高斯求和问题编辑
2. range函数使用
3. 求和实现
知识小结
Python的While循环
一、问题导入编辑
二、while循环的基本结构编辑
三、for循环和while循环的转换
四、实验
1. 计算平均值的程序
五、知识小结
python常见的数据类型
基本类型:包括字符串(str)、整数(int)、浮点数(float)、布尔类型(bool)和空值类型(NoneType)
扩展类型:后续会讲解列表、字典等复杂数据类型
字符串类型string
-
定义:由一串字符组成的文本内容
-
表示方式:用单引号或双引号包裹,如"Hello"或'哟!'
-
长度计算:
-
使用len()函数获取长度
-
空格、数字、符号各占1个长度
-
转义符(如\n)整体占1个长度
-
字符提取:
-
语法:字符串[索引]
-
索引从0开始计数
-
例如:"Hello"[0]返回'H'
整数与浮点数
-
整数(int):
-
表示:如6、-32
-
特点:不含小数点
-
浮点数(float):
-
表示:如6.0、10.07
-
特点:包含小数点
-
注意:1.5是float而非int
-
运算:支持加减乘除等基本数学运算
布尔类型
-
取值:
-
True(真,首字母必须大写)
-
False(假,首字母必须大写)
-
特点:
-
只有两个取值
-
在逻辑判断中起关键作用
-
注意:
-
不能加引号(否则变成字符串)
-
必须严格使用True/False
空值类型
-
表示:None(首字母必须大写)
-
特点:
-
不是0
-
不是空字符串
-
不是False
-
表示完全没有值
-
用途:用于初始化未知值的变量
数据类型的重要性
-
类型检查:使用type()函数获取对象类型
-
决定操作:
-
不同数据类型支持不同操作
-
例如:len()适用于字符串但不适用于布尔值
-
错误示例:
-
对整数使用len()会报错
-
对字符串使用除法会报错
知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
字符串类型 | 由字符序列组成,用引号包裹;支持长度计算(len())、索引提取(从0开始) | 转义符(如\n)计为1长度;索引越界报错 | ⭐⭐ |
数字类型 | 整数(int)、浮点数(float);支持数学运算 | 浮点数与整数运算结果自动转型 | ⭐ |
布尔类型 | 仅True/False(首字母大写);用于逻辑判断 | 非引号包裹;小写或字符串化会报错 | ⭐⭐ |
空值类型 | None表示无值(非0/空字符串/False);占位用途 | 首字母大写;NoneType类型唯一 | ⭐⭐ |
类型检查 | type()函数返回对象类型 | 区分float(1.5)与int(1) | ⭐ |
函数适用性 | 操作需匹配类型(如len()仅限字符串) | 类型错误导致报错(如对布尔值求长度) | ⭐⭐⭐ |
实践示例 | 索引取值(s[11])、len("hello !")=12 | 末位索引=长度-1;空格/符号计入长度 | ⭐⭐ |
python的交互模式
命令行模式
-
执行方式: 写好命令后保存并运行整个文件,Python解释器会一行一行对文件进行解析和执行。
-
特点: 需要创建.py文件,运行时会完整执行文件中所有代码。
-
示例: 如计算
3×2
时必须使用print(3*2)才能看到结果6。
交互模式
-
定义: 输入一行代码后立即执行并显示结果的模式,通过>>>提示符标识。
-
进入方式:
-
在PyCharm中点击Python控制台
-
在终端输入python3命令
-
退出方式:
-
输入quit()回车
-
按Ctrl+D快捷键
交互模式的优劣势
优势
-
无需文件:
-
可直接在控制台输入代码执行,省去创建.py文件的步骤
-
即时反馈:
-
变量查看:输入变量名回车即可显示值(如a="你好"+"!"后直接输入a)
-
表达式计算:直接输入3*2会返回6,无需print语句
-
适合快速测试代码片段和数学计算
劣势
-
非持久性:
-
所有输入的指令退出后不会保存
-
重新进入后需要重新输入之前的所有代码
-
适用限制:
-
复杂项目开发仍需使用命令行模式
-
不适合编写多行复杂逻辑(如类定义、长函数)
知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
执行模式 | python有两种执行模式:命令行模式和交互模式 | 区分两种模式的特点和使用场景 | ⭐⭐ |
命令行模式 | 写好命令后保存并运行整个文件,解释器逐行解析执行 | 适用于完整脚本开发 | ⭐⭐ |
交互模式 | 输入一行立即执行并显示结果,无需创建文件 | 无需print即可查看输出结果 | ⭐ |
交互模式进入方法 | 通过python控制台或终端输入paddle 3,显示>>>等待指令 | 注意不同系统的启动命令 | ⭐ |
交互模式优势 | 1. 快速测试代码片段2. 直接显示表达式结果(如变量值、运算结果) | 与命令行模式的输出差异 | ⭐⭐ |
交互模式退出方法 | 输入quit()或按Ctrl+D | 退出后内容不保存 | ⭐ |
适用场景对比 | 交互模式适合临时计算/测试;命令行模式适合正式开发 | 交互模式内容易丢失 | ⭐⭐ |
python条件判断语句
1. 条件语句的定义
- 条件语句: 在编程中,根据条件的真假来决定执行不同代码块的语句。
2. 条件语句的结构
-
结构: 条件语句通常由if、else及条件判断部分组成。
-
if语句: 表示如果条件为真时执行的代码块。
-
else语句: 表示如果条件为假时执行的代码块。
3. 作为条件的变量
-
布尔值: 条件判断中的变量通常是布尔值(True或False)。
-
示例: 定义变量is_happy为True或False,根据这个变量的值来决定执行不同的代码块。
4. 比较运算符
-
等于号 (==): 比较两个对象的值是否相等。
-
不等于号 (!=): 比较两个对象的值是否不相等。
-
大于号 (>)、小于号 (<)、大于等于号 (>=)、小于等于号 (<=): 与数学中的比较符号含义相同。
实践
1. 判断今晚能否打游戏的程序
mood_index = int(input("对象今天的心情指数是:"))
if mood_index >= 60:print("恭喜,今晚应该可以打游戏,去吧皮卡丘!")
else:print("为了自个儿小命,还是别打了。")
-
讲解: 首先通过input函数获取用户输入的心情指数,并将其转换为整数类型。然后根据心情指数是否大于等于60来决定是否可以打游戏。
-
注意: input函数返回的值是字符串类型,需要使用int函数转换为整数类型进行比较。
-
缩进: 在if和else下方的代码块需要缩进,表示这些代码是在条件成立或不成立时执行的。
python列表
- 变量定义与列表引入
-
变量定义:可以通过定义变量如item1、item2来存储购物项,但当需要存储多个项目时,逐个定义变量效率低下。
-
列表优势:使用列表数据结构可以优雅地整合相关联的数据,避免定义多个独立变量。
2.列表的基本操作
-
空列表:用一对方括号[]
表示空列表。
-
添加元素:使用append()方法可以直接修改原列表添加元素,不需要重新赋值。
-
方法调用:方法与函数不同,方法通过对象加点调用(如list.append()),而函数直接调用(如len(list))
可变与不可变性
-
可变性:列表(list)是可变的,而字符串(str)、整数(int)、浮点数float)、布尔值(bool)是不可变的。
-
字符串示例:调用s.upper()会返回新字符串而不改变原字符串,必须重新赋值才能更新变量,所以称之为“不可变”
列表的特性
直接修改特性
-
原地修改:
列表名称.append(元素)方法会直接改变原列表,因此不需要也不应该对列表重新赋值,方法的含义表示在列表的最后添加一个元素
-
错误示范:
shoppinglist=shoppinglist.append("显示器")是错误的写法。
在 Python 中,列表的
append()
方法是在原列表上直接进行修改,它的返回值是None
,并非修改后的列表。而你所写的代码shopping_list=shopping_list.append("显示器")
,是把append()
方法的返回值(也就是None
)赋给了shopping_list
,这样就会导致shopping_list
变成None
,这显然不是你想要的结果。列表内容多样性
列表中的元素可以是多种多样的数据类型,可以是字符型、整形、空类型None、甚至嵌套列表、嵌套元组、嵌套字典等
列表的使用方法
列表的删除
remove方法使用
-
删除操作:使用remove()方法并传入元素值可直接从列表中删除该元素。
-
注意事项:要删除的元素必须存在于列表中,否则会报错;删除操作也是直接修改原列表。
列表内容的添加
append()方法的使用
-
删除操作:使用append()方法并传入元素值可直接从列表中添加该元素。
-
注意事项:不能使用列表名=列表名.append(元素)的方式这样会导致列表变成None
通过索引获得元素
-
索引规则:列表索引从0开始,最后一个元素的索引为
len(list)−1。
-
元素修改:可以通过索引直接赋值来修改列表中的元素,如
shopping_list[1]="音响"。
列表的内置函数
常用函数
-
极值函数:max()和min()分别返回列表中的最大值和最小值。
-
排序函数:sorted()返回排序后的新列表而不改变原列表。
知识点 核心内容 考试重点/易混淆点 难度系数 列表的定义与创建 使用方括号 [] 定义列表,逗号分隔元素;空列表用 [] 表示 区分列表与字符串/整数等不可变类型 ⭐⭐ 列表的增删改查 - append() 方法直接修改原列表; - remove() 方法删除指定值元素; - 索引赋值覆盖元素(如 list[1] = "硬盘") append() 不需重新赋值,而字符串操作需赋值(如 s = s.upper()) ⭐⭐⭐ 列表的特性 - 可存放不同类型数据; - 可变性(与字符串等不可变类型对比); - 支持索引(从0开始)和 len() 函数 理解“可变性”对操作的影响(如直接修改 vs 返回新对象) ⭐⭐⭐⭐ 列表常用函数 - max()/min() 获取极值; - sorted() 返回新排序列表(原列表不变) sorted() 与 list.sort() 的区别(后者直接修改原列表) ⭐⭐⭐
python字典
传统的使用变量存储联系人信息
-
基本实现:可以用变量存储联系人信息,如phonenumberof_xiaoming = "13700000001"
-
存在问题:当联系人增多时,变量会变得分散不规整,难以管理
当我门需要使用python创建一个通讯录的时候仅有列表是不行的,因为通讯录中需要有联系人姓名和联系人电话号码之间的映射,所以我们引入了一个新的数据结构为“字典”
字典存储键值对
-
数据结构特点:字典(dictionary)可以存储键值对(key-value),通过键查找值
-
现实类比:与现实生活中的字典类似,通过字(键)查找释义(值)
1)放入多个键值对
-
空字典表示:用花括号{}表示空字典
-
键值对格式:键和值之间用冒号分隔,如{"小明":"13700000000"}
-
多键值对:多个键值对用逗号分隔,如{"小明":"13700000000", "小花":"13700000001"}
2)键的类型是不可变的
-
允许类型:字符串(str)、整数(int)、浮点数(float)等不可变类型
-
禁止类型:列表(list)等可变类型不能作为键
-
特殊情况:当需要多个信息作为键时(如区分同名联系人),可用元组(tuple)
3)元组作为键
-
元组特点:不可变但类似列表的数据结构,用圆括号表示,如("张伟",23)
-
与列表区别:不能进行添加、删除等修改操作
-
应用示例:{("张伟",23):"15000000000", ("张伟",34):"15000000001"}
4)字典的可变性
-
添加键值对:通过字典名[键]=值的方式添加
-
更新值:对已存在的键赋值会覆盖原有值
-
查询值:使用字典名[键]获取对应值
5)判断键是否存在
-
判断方法:使用键 in 字典名返回布尔值
-
返回值:存在返回True,不存在返回False
6)删除键值对
-
删除方法:使用del 字典名[键]
-
注意事项:删除不存在的键会报错
-
获取长度:使用len(字典名)获取键值对数量
Python中的For循环
1. 问题背景
-
应用场景: 当需要从全公司上万人的体温自测报备信息中筛选出体温高于38摄氏度的人员时,手动逐条检查效率极低。
-
解决方案: 使用Python编程可以快速完成大规模数据筛选,避免人工检查的低效问题。
For循环
1. 基本概念
-
可迭代对象: 在Python中,for循环可以迭代的对象包括列表、字典、字符串等数据结构。
-
迭代本质: 按顺序对可迭代对象中的各个元素执行特定操作。
2. 具体应用
-
列表迭代: 对列表进行迭代就是按顺序处理其中每个元素,如list1 = [1,3,5,7,9,11]
-
字典迭代: 对字典迭代可以处理键或值,如dict1 = {"小明":1.78,"小花":1.65}
-
字符串迭代: 对字符串迭代就是逐个处理字符,如str1 = "Hello world"
3. 语法结构
-
基本格式:
-
For 变量名 in 可迭代对象(列表、元组、字典等数据类型)
-
变量命名: 变量名可自定义,代表迭代对象中的当前元素
-
缩进规则: 循环体内的语句必须缩进,所有缩进代码都会对每个元素执行
4. 体温筛选实现
-
实现方法:
-
结果判断: 通过统计"完球了"的输出次数即可知道发烧人数
5. 字典迭代进阶
-
字典方法:
-
.keys(): 获取所有键
-
.values(): 获取所有值
-
.items(): 获取所有键值对
键值对迭代:
-
元组解包: 可以直接将键和值分别赋给两个变量,等同于:
For 元素1,元素2 in 字典.items()
这里的元素1就对应了字典内的键,而元素2对应了字典内的值
for循环与range的结合
1. 高斯求和问题
-
历史背景: 高斯小学时快速计算1到100的和,使用公式
(首项+末项)×项数/2得出5050
-
编程挑战: 直接编码累加1到100非常繁琐
2. range函数使用
-
基本用法: range(start, end)生成从start到end-1的整数序列
-
特性说明: 结束值不在序列范围内,如range(5,10)生成5到9
-
步长参数: 可添加第三个参数指定步长,如range(1,10,2)生成1,3,5,7,9
3. 求和实现
- 实现代码:
-
执行过程:
-
初始化total为0
-
循环中i依次取1到100
-
每次循环将i加到total中
-
循环结束后输出总和
知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
for循环迭代 | 可迭代对象包括列表、字典、字符串等,按顺序处理元素 | 字典迭代需区分.keys()、.values()、.items()方法 | ⭐⭐ |
体温筛查案例 | 遍历体温列表,用if判断打印超38℃的异常值 | 需注意缩进控制循环体范围 | ⭐⭐ |
字典数据筛选 | 通过for key, value in dict.items()同时获取工号和体温 | 元组解包与直接赋值的等价性(代码示例对比) | ⭐⭐⭐ |
range()函数 | 生成整数序列,参数含起始值、结束值(不含)、步长 | 结束值边界问题(如range(5,10)不包含10) | ⭐⭐ |
累加计算案例 | 结合range()实现1-100求和,演示循环变量与累加器配合 | 与高斯公式(首项+末项)*项数/2的效率对比 | ⭐⭐ |
Python的While循环
一、问题导入
-
问题背景: 需要开发一个自动化程序持续拍照,直到天空亮度小于500。
-
初始方案: 使用if判断measure_brightness() >= 500时拍照,但只能执行一次判断。
-
改进尝试: 使用for循环重复100次判断,但计算机运行速度过快,可能无法覆盖日落全过程。
二、while循环的基本结构
- 基本语法:
while 条件A: 行动B
-
执行逻辑:
-
条件判断: 首先评估条件A是否为真(布尔值)
-
循环执行: 为真时执行缩进部分内容,然后重新判断条件
-
退出条件: 当条件A为假时退出循环
-
特点:
-
若初始条件为假,行动B可能一次都不执行
-
适合条件何时结束未知的情况(如拍照程序)
-
实际应用:
-
持续拍照直到亮度小于500
-
相比for循环更适合不确定循环次数的情况
三、for循环和while循环的转换
-
转换原则:
-
for循环优势: 循环对象/次数明确时更简洁直观
-
while循环风险: 容易忘记递增条件导致无限循环
-
三种等价实现:
-
直接遍历列表:
For循环实现
-
for char in list1: print(char)
range函数实
for i in range(len(list1)): print(list1[i])
-
while实现:初始化
i=0 while i<len(list1): print(list1[i]); i+=1
-
-
选择标准:
-
for循环: 有明确循环对象或次数时优先使用
-
while循环: 循环次数未知时必需使用(如开头拍照案例)
四、实验
1. 计算平均值的程序
-
功能需求: 用户可输入任意数量数字,输入q终止后计算平均值
-
核心逻辑: 使用while循环持续获取输入直到用户输入'q'
-
注意事项:
-
输入转换:需将字符串转为float类型
-
变量初始化:total=0, count=0
-
输入位置:获取新输入应在处理完当前输入后
-
边界处理:
-
首次输入q时:count=0需特殊处理避免除零错误
-
实现方式:添加一个if判断如果上来就输入0则进行直接输出的方式,剩余的情况进入到else循环中进行求平均运算
-
输出格式: 最终使用print显示计算结果
五、知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
while循环应用场景 | 在条件何时结束未知的情况下使用(如持续拍照直到亮度<500) | while vs for循环选择标准:明确循环次数用for,未知次数用while | ⭐⭐ |
循环结构对比 | for循环(明确对象/次数)与while循环(通用但更危险) | 无限循环风险:while循环需注意条件更新(如忘记i++) | ⭐⭐⭐ |
自动化拍照程序实现 | while measure_brightness() >= 500: 拍照 | 条件判断位置影响程序逻辑(首次判断即假则跳过循环体) | ⭐⭐ |
用户输入处理案例 | 用while实现持续获取输入直到输入'q' | 边界处理:首次输入'q'时的零除错误防护(if count==0) | ⭐⭐⭐⭐ |
循环转换示例 | 三种列表遍历方式(for直接遍历/for+range/while) | 索引管理:while循环需手动维护索引变量 | ⭐⭐ |
平均值计算器实现 | 动态累加total和count,最终计算total/count | 防御性编程:对无效输入的处理策略 | ⭐⭐⭐ |