当前位置: 首页 > ops >正文

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列表

  1. 变量定义与列表引入

 

  • 变量定义:可以通过定义变量如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防御性编程:对无效输入的处理策略⭐⭐⭐
http://www.xdnf.cn/news/9035.html

相关文章:

  • vue3自定义指令来实现 v-lazyImg 功能
  • IP地址查询的重要性
  • 01 NLP的发展历程和挑战
  • 第2章 程序设计语言基础知识
  • C#编解码:Base64扩展类的实现与应用
  • 人工智能如何协助老师做课题
  • 电子电路:什么是感应电动势?
  • C++ 模板函数深度指南
  • 【CF】Day66——Edu 168.D + CF 853 (Div. 2).C (树 + 二分 + 贪心 | 组合数学)
  • 佰力博科技与您探讨铁电分析仪具有哪些测试功能
  • [PyMySQL]
  • reflect-metadata作用
  • Ubuntu | NVIDIA 驱动、CUDA 与 cuDNN 的安装与配置 / 常见问题及解决方法
  • Zabbix集成Grfana自定义仪表盘
  • World of Warcraft [CLASSIC] Jewelcrafting Gemstone 3 [80 WLK]
  • 初等数论--Garner‘s 算法
  • 邻近标记技术(PL):探索生物分子相互作用的前沿工具
  • Java设计模式之适配器模式
  • AI时代新词-多模态(Multimodal)
  • 测评机构如何通过漏扫保障软件安全?扫描范围与局限解析
  • leetcode:2235. 两整数相加(python3解法,数学相关算法题)
  • 十六进制字符转十进制算法
  • C++——STL——unordered_map与unordered_set的使用以及使用哈希表封装unordered_map/set
  • https的进化之路(八卦版)
  • JVM 深度解析
  • k-way Hypergraph Partitioning via n-Level Recursive Bisection【2016 ALENEX】文献总结
  • N2语法 时间
  • 协同过滤实现电影推荐
  • 931. 用三种不同颜色为网格涂色
  • 力扣刷题(第三十八天)