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

day15 python(3)——python基础(完结!!)

【没有所谓的运气🍬,只有绝对的努力✊】

目录

1、函数

1.1 函数传参中的拆包

1.2 匿名函数的定义

1.3 匿名函数练习

1.4 匿名函数应用——列表中的字典排序

2、面向对象 OOP

2.1 面向对象介绍

2.2 类和对象

2.3 类的构成和设计

2.4 面向对象代码的步骤

2.5 面向对象——小案例

2.6 self

2.7 对象的属性操作

2.7.1  类外部添加

2.8 魔法方法

2.8.1  __init__  的使用

2.8.2 __str__ 的使用

2.8.3  __del__ 的使用

3、案例1——小明爱跑步

4、小结

5、作业

5.1  定义一个学生类

5.2 定义一个电脑

6、封装案例——存放家具

7、案例——登录页面(用于后续的自动化测试学习)

8、私有 和 公有

9、继承

9.1 继承定义

9.2 案例——继承

10、重写

11、多态

12、属性和方法

12.1 属性的划分

12.2 练习

12.3 方法的划分

12.3.1 案例——游戏类

12.4 补充概念——哈希、is

13、小结

14、文件

14.1 文件介绍

14.2 打开文件、读-写文件、关闭文件

14.3 文件——案例

14.3.1 写入文件

14.3.2 读文件

14.4 使用with open打开文件

14.5 按行读取文件内容

14.6 json文件的处理

14.6.1 json文件的语法

14.6.2 json 练习1

14.6.3 json 练习2

14.7 json写入

15、异常

15.1 异常的定义

15.2【捕获所有的异常】

15.3【捕获指定异常】

15.4 【捕获多个指定类型的异常】

15.5 【异常捕获的完整版本】

15.6  异常传递

16、小结

17、模块和包

17.1  模块的导入

17.2 模块的查找顺序

18、__name__的作用

18.1 练习

19、包


1、函数

1.1 函数传参中的拆包

想要将列表作为参数,传入函数中。   =====》 my_sum( *my_list ) 即可。

想要将字典作为参数,传入函数中。   =====》 my_sum( **my_list ) 即可。

1.2 匿名函数的定义

1.3 匿名函数练习

# 定义一个匿名函数,可以求两个数的乘积。
func1 = lambda a,b:a*b
print(func1(20,8))# 定义一个匿名函数,参数为字典,返回字典中键为age的值。
func2 = lambda a:a['age']
dic = {'name': '小明', 'age': 18}
print(func2(dic))

1.4 匿名函数应用——列表中的字典排序

my_list = [{'name': '小明', 'age': 18},{'name': '小李', 'age': 12},{'name': '小王', 'age': 28}]
my_list.sort(key=lambda x:x['age'])
print(my_list)
# [{'name': '小李', 'age': 12}, {'name': '小明', 'age': 18}, {'name': '小王', 'age': 28}]

字符串比大小:是根据ASCII比较的。 A<Z<a<z

ord( 字符 )   获取字符 的ASCII值。

chr( ASCII值 ) 获取对应的 字符。

2、面向对象 OOP

2.1 面向对象介绍

2.2 类和对象

2.3 类的构成和设计

          

2.4 面向对象代码的步骤

2.5 面向对象——小案例

   

'''需求:小猫爱吃鱼,小猫要喝水
'''
class Cat:def eat(self):print('爱吃鱼')def drink(self):print('爱喝水')cat = Cat()
cat.eat()

2.6 self

  

2.7 对象的属性操作

    

2.7.1  类外部添加

2.8 魔法方法

2.8.1  __init__  的使用

类名+() ==========>创建对象

'''需求:小猫爱吃鱼,小猫要喝水
'''
class Cat:def __init__(self,name,age):self.name = nameself.age = agedef getInfo(self):print(f'小猫的名字:{self.name},年龄:{self.age}')blue_cat = Cat("蓝猫",2)
blue_cat.getInfo()print('-'*30)black_cat = Cat('黑猫',3)
black_cat.getInfo()

 

2.8.2 __str__ 的使用

'''需求:小猫爱吃鱼,小猫要喝水
'''
class Cat:def __init__(self,name,age):self.name = nameself.age = agedef getInfo(self):print(f'小猫的名字:{self.name},年龄:{self.age}')def __str__(self):return f'{self.name}----{self.age}'blue_cat = Cat("蓝猫",2)
print(blue_cat)print('-'*30)black_cat = Cat('黑猫',3)
print(black_cat)

2.8.3  __del__ 的使用

3、案例1——小明爱跑步

     

class Person:def __init__(self,name,weight):self.name = nameself.weight = weightdef __str__(self):return f'姓名:{self.name}-----体重:{self.weight}'def run(self):print(f"{self.name}----跑步")self.weight -= 0.5def eat(self):print(f"{self.name}----吃完后")self.weight += 1person = Person('小明',75)
print(person)    # 姓名:小明-----体重:75person.run()
print(person)    # 姓名:小明-----体重:74.5person.eat()
print(person)    # 姓名:小明-----体重:75.5

4、小结

5、作业

5.1  定义一个学生类

class Student:def __init__(self, name, age):self.name = nameself.age =agedef __str__(self):return f'姓名:{self.name}, 年龄:{self.age}'def eat(self):print(f'{self.name} 要吃饭')def sleep(self):print(f'{self.name} 要睡觉')def addAge(self):print('过了一个年')self.age += 1xm = Student('小明',18)
xm.eat()
xm.sleep()
xm.addAge()
print(xm)print('-'*30)
xh = Student('小红',17)
xh.eat()
xh.sleep()
xh.addAge()
print(xh)

5.2 定义一个电脑

class Computer:def __init__(self,brand,price):self.brand = brandself.price = pricedef playMovie(self,movie_name):print(f"{self.brand} 电脑播放 {movie_name}")xm = Computer('小米',10000)
xm.playMovie("葫芦娃")apple = Computer('苹果',16999)
apple.playMovie("变形金刚")

6、封装案例——存放家具

# 房子类
class House:def __init__(self, name, total_area):self.name = name  # 户型self.total_area = total_area   # 总面积self.free_area = total_area  # 剩余面积self.item_list = []  # 家具名称列表def __str__(self):return f"户型:{self.name}---总面积:{self.total_area}----剩余面积:{self.free_area}---家具名称:{self.item_list}"def add_item(self,item):  # item 家具对象if self.free_area > item.area:self.item_list.append(item.name)self.free_area = self.total_area - item.areaprint(f'{item.name}  添加成功!')else:print('房间不足以放家具')# 家具类
class HouseItem:def __init__(self,name,area):self.name = nameself.area = areadef __str__(self):return f'{self.name} ---占地面积(平方米):{self.area}'bed = HouseItem('席梦思',4)
chest = HouseItem('衣柜',2)
table = HouseItem('餐桌',1.5)
print(bed)
print(chest)
print(table)print('-'*30)house = House('三室',109)
house.add_item(bed)
house.add_item(chest)
print(house)

7、案例——登录页面(用于后续的自动化测试学习)

class LoginPage:def __init__(self,username,password,code):self.username = usernameself.password = passwordself.code = codeself.btn = '登录'def login(self):print(f'1、输入用户名: {self.username}')print(f'2、输入密码: {self.password}')print(f'3、输入验证码: {self.code}')print(f'4、点击按钮: {self.btn}')loginPage = LoginPage('admin','112345','12hf')
loginPage.login()

8、私有 和 公有

9、继承

9.1 继承定义

9.2 案例——继承

class Animals:def eat(self):print(f'在吃')class Dog(Animals):def jiao(self):print('叫')class Quan(Dog):pass# animals = Animals()
# animals.eat()
dog = Dog()
dog.eat()
dog.jiao()
print('-'*30)
quan = Quan()
quan.eat()
quan.jiao()

 

10、重写

class Dog:def bark(self):print('汪汪汪叫')class Quan(Dog):def bark(self):    # 重写父类的bark()方法print('嗷嗷叫')quan = Quan()
quan.bark()

class Dog:def bark(self):print('汪汪汪叫')class Quan(Dog):def bark(self):    # 重写父类的bark()方法print('嗷嗷叫')super().bark()print('嗷嗷叫')quan = Quan()
quan.bark()

11、多态

12、属性和方法

12.1 属性的划分

       

12.2 练习

class Dog:my_count = 0    # 定义类属性def __init__(self,name):  # 定义实例属性,init方法中self.name = name# 每创建一个对象,就会调用init方法Dog.my_count += 1dog = Dog('小花')
dog = Dog('斑点狗')
print(Dog.my_count)   # 2         一般用 类名.属性名 调用。

12.3 方法的划分

12.3.1 案例——游戏类

import randomclass Game:# 类属性top_score = 0   # 记录游戏的最高分def __init__(self, name):self.name = namedef show_help(self):print('这是游戏的帮助信息')def show_top_score(self):print(f'游戏的最高分: {Game.top_score}')def start_game(self):random_num = random.randint(10, 100)  # 生成随机数10-100   (本次游戏得分)print(f'本次游戏得分----- {random_num}')if random_num > Game.top_score:Game.top_score = random_numgame = Game('小王')
game.start_game()
game.show_top_score()print('-'*30)
game.start_game()
game.show_top_score()
game.show_help()

【优化代码】

12.4 补充概念——哈希、is

13、小结

         

14、文件

14.1 文件介绍

14.2 打开文件、读-写文件、关闭文件

      


14.3 文件——案例

14.3.1 写入文件

#  1、打开文件
f = open('a.txt',mode='w',encoding='utf-8')# 2、写入文件
f.write('偷得浮生半日')# 3、关闭文件
f.close()

14.3.2 读文件

# 1、打开文件
f = open('a.txt', 'r',encoding='utf-8')
# 2、读文件
buff = f.read()
print(buff)
# 3、关闭文件
f.close()

14.4 使用with open打开文件

with open('a.txt', 'a', encoding='utf-8') as f:f.write('\n窗前明月光\n')f.write('\n疑是地上霜\n')

14.5 按行读取文件内容

# with open('b.txt',encoding='utf-8') as f:
#     while True:
#         buff = f.readline()
#         if buff == 0:
#             break
#         else:
#             print(buff, end='')with open('b.txt','r', encoding='utf-8') as f:for i in f:print(i,end='')

14.6 json文件的处理

14.6.1 json文件的语法

【json文件】

{"name": "小明","age": 18,"isMen": true,"like": ["听歌","游戏","购物","吃饭","睡觉","打豆豆"],"address": {"country": "中国","city": "上海"}
}
import jsonwith open('info.json','r',encoding='utf-8') as f:result = json.load(f)print(result)print(result['name'])print(result['address']['city'])

14.6.2 json 练习1

[{"name": "小明","age": 18,"isMen": true,"like": ["听歌","游戏","购物","吃饭","睡觉","打豆豆"],"address": {"country": "中国","city": "上海"}},{"name": "小红","age": 17,"isMen": false,"like": ["听歌","学习","购物"],"address": {"country": "中国","city": "北京"}}
]
import jsonwith open('info1.json','r',encoding='utf-8') as f:f_list = json.load(f)for i in f_list:print(i['name'], i['age'], i['address']['city'])

14.6.3 json 练习2

import json
newList = []
with open('login.json','r',encoding='utf-8') as f:info_list = json.load(f)for item in info_list:newList.append((item['username'],item['password'],item['expect']))print(newList)
# [('admin', '123456', '登录成功'), ('root', '123456', '登录失败'), ('admin', '1234567', '登录失败')]

14.7 json写入

import jsonlist_json = [('admin', '123456', '登录成功'), ('root', '123456', '登录失败'), ('admin', '1234567', '登录失败')]
with open('info4.json','w',encoding='utf-8') as f:# json.dump(list_json,f)# json.dump(list_json, f,ensure_ascii=False)   # 显示中文json.dump(list_json,f,ensure_ascii=False, indent=2)  # 显示缩进

 

15、异常

15.1 异常的定义


15.2【捕获所有的异常】

try:num = input("请输入数字:")num = int(num)print('num===', num)
except:print("异常,请输入数字!!")

15.3【捕获指定异常】

try:num = input("请输入数字:")num = int(num)print('num===', 10/num)
except ValueError:print("异常,请输入数字!!")

15.4 【捕获多个指定类型的异常】

try:num = input("请输入数字:")num = int(num)print('num===', 10/num)
except ValueError:print("异常,请输入数字!!")
except ZeroDivisionError:print('除数不能为0')

15.5 【异常捕获的完整版本】

【常用下方的代码】

15.6  异常传递

16、小结

17、模块和包

17.1  模块的导入

           


快捷导入包:


17.2 模块的查找顺序

18、__name__的作用

18.1 练习

19、包


今天暂时到这里啦~

相关文章:

day15 python(3)——python基础(完结!!)

【没有所谓的运气&#x1f36c;&#xff0c;只有绝对的努力✊】 目录 1、函数 1.1 函数传参中的拆包 1.2 匿名函数的定义 1.3 匿名函数练习 1.4 匿名函数应用——列表中的字典排序 2、面向对象 OOP 2.1 面向对象介绍 2.2 类和对象 2.3 类的构成和设计 2.4 面向对象代码…...

/:087启动游戏时提示丢失”d3dx···.dll””VCOMP···.dll”

/:087启动游戏时提示丢失”d3dx.dll””VCOMP.dll”或遇到应用程序无法正常启动&#xff08;0xc000007b&#xff09;和游戏有图像没有声音等情况。 主要是因为系统缺少大型游戏/软件运行的必备组件&#xff0c;这些组件有DirectX&#xff0c;Visual C2010&#xff0c;2012&…...

利用PHP和phpSpider进行图片爬取及下载

利用PHP和phpSpider进行图片爬取及下载&#xff0c;可以遵循以下步骤。phpSpider是一个开源的PHP爬虫框架&#xff0c;它可以帮助你轻松地抓取网页内容。以下是一个基本的步骤指南&#xff1a; 1. 安装phpSpider 首先&#xff0c;你需要确保你已经安装了Composer&#xff08;…...

企业架构划分探讨:业务架构与IT架构的利与弊

在企业架构&#xff08;EA&#xff09;的江湖里&#xff0c;大家一直致力于如何把企业的复杂性简化成有条有理的架构蓝图。有人选择把企业架构分成业务架构和IT架构&#xff0c;而IT架构又进一步细分为应用架构、数据架构和技术架构。但一提到这种划分方式&#xff0c;总有人跳…...

Java设计模式 —— 【结构型模式】桥接模式详解

前言 现在有一个需求&#xff0c;需要创建不同的图形&#xff0c;并且每个图形都有可能会有不同的颜色。 首先我们看看用继承来实现&#xff1a; 我们可以发现有很多的类&#xff0c;假如我们再增加一个形状或再增加一种颜色&#xff0c;就需要创建更多的类。 试想&#xf…...

MySQL学习之DDL操作

目录 数据库的操作 创建 查看 选择 删除 修改 数据类型 表的创建 表的修改 表的约束 主键 PRIMARY KEY 唯一性约束 UNIQUE 非空约束 NOT NULL 外键约束 约束小结 索引 索引分类 常规索引 主键索引 唯一索引 外键索引 优点 缺点 视图 创建 删除 修改…...

游戏AI实现-寻路算法(A*)

A*&#xff08;A-star&#xff09;是一种图遍历和寻路算法&#xff0c;由于其完整性、最优性和最佳效率&#xff0c;它被用于计算机科学的许多领域。给定一个加权图、一个源节点和一个目标节点&#xff0c;该算法将找到从源到目标的最短路径&#xff08;相对于给定的权重&#…...

spring学习(spring的IoC思想、spring容器、spring配置文件、依赖注入(DI)、BeanProxy机制(AOP))

目录 一、spring-IoC。 &#xff08;1&#xff09;spring框架。(诞生原因及核心思想) 1、为什么叫框架&#xff1f; 2、spring框架诞生的技术背景。 &#xff08;2&#xff09;控制反转&#xff08;IoC&#xff09;。 &#xff08;3&#xff09;spring的Bean工厂和IoC容器。 &a…...

谁说C比C++快?

看到这个问题&#xff0c;我我得说&#xff1a;这事儿没有那么简单。 1. 先把最大的误区打破 "C永远比C快" —— 某位1990年代的程序员 这种说法就像"自行车永远比汽车省油"一样荒谬。我们来看个例子&#xff1a; // C风格 char* str (char*)malloc(100…...

GEE+本地XGboot分类

GEE本地XGboot分类 我想做提取耕地提取&#xff0c;想到了一篇董金玮老师的一篇论文&#xff0c;这个论文是先提取的耕地&#xff0c;再做作物分类&#xff0c;耕地的提取代码是开源的。 但这个代码直接在云端上进行分类&#xff0c;GEE会爆内存&#xff0c;因此我准备把数据下…...

OpenCV相机标定与3D重建(24)计算两个二维点集之间的最佳仿射变换矩阵(2x3)函数estimateAffine2D()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 计算两个二维点集之间的最优仿射变换&#xff0c;它计算 [ x y ] [ a 11 a 12 a 21 a 22 ] [ X Y ] [ b 1 b 2 ] \begin{bmatrix} x\\ y\\ \en…...

UIP协议栈 TCP通信客户端 服务端,UDP单播 广播通信 example

文章目录 1. TCP通信 客户端&#xff08;关键配置&#xff09;2. TCP 服务端配置3. UDP 点播通信4. UDP 广播通信5. UIP_UDP_APPCALL 里边的处理example6. TCP数据处理 &#xff0c;UIP_APPCALL调用的函数 UIP_APPCALL TCP的数据都在这个宏定义的函数里进行数据处理的 UDP 数据…...

【NoSQL系列】为什么要使用Redis?

第一次知道Redis是以前准备面试的时候&#xff0c;只知道是用来缓存数据的。随着这几年的工作&#xff0c;对软件的认识从盲人摸象到睁眼看世界。 在常用的软件架构评价模型中&#xff0c;性能、可用性、安全性和可维护性是常见的评价属性&#xff0c;客户总希望系统响应又快有…...

MySQL Explain 分析SQL语句性能

一、EXPLAIN简介 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句&#xff0c;从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。 &#xff08;1&#xff09; 通过EXPLAIN&#xff0c;我们可以分析出以下结果&#xff1a; 表的读取顺序数据读取…...

IIS部署程序https是访问出现403或ERR_HTTP2_PROTOCOL_ERROR

一、说明 在windows server 2016中的IIS程序池里部署一套系统&#xff0c;通过https访问站点&#xff0c;同时考虑到安全问题以及防攻击等行为&#xff0c;就用上了WAF云盾功能&#xff0c;能有效的抵挡部分攻击&#xff0c;加强网站的安全性和健壮性。 应用系统一直能够正常…...

学技术学英文:代码中的锁:悲观锁和乐观锁

本文导读&#xff1a; 1. 举例说明加锁的场景&#xff1a; 多线程并发情况下有资源竞争的时候&#xff0c;如果不加锁&#xff0c;会出现数据错误&#xff0c;举例说明&#xff1a; 业务需求&#xff1a;账户余额>取款金额&#xff0c;才能取钱。 时间线 两人共有账户 …...

青少年编程与数学 02-004 Go语言Web编程 02课题、依赖管理

青少年编程与数学 02-004 Go语言Web编程 02课题、依赖管理 课题摘要:一、项目结构各目录说明&#xff1a; 二、依赖项三、依赖管理任务四、依赖管理步骤1. 初始化Go Modules项目2. 添加依赖3. 指定依赖版本4. 更新依赖5. 清理未使用的依赖6. 离线工作7. 模块隔离8. 可重现构建 …...

MyBatis写法汇总

Mybatis写法汇总 1. 批量操作 1.1 批量插入 <insert id"batchInsert" parameterType"java.util.List">INSERT INTO user (username, password, create_time) VALUES<foreach collection"list" item"item" separator"…...

【Linux学习】十五、Linux/CentOS 7 用户和组管理

文章目录 一、组的管理1.组的创建格式&#xff1a;参数&#xff1a; 2.组的删除格式&#xff1a;参数&#xff1a; 3.组的属性修改格式&#xff1a;参数&#xff1a; 4.查看组的信息①cat /etc/group 命令②getent group 命令③仅显示系统中所有组名 二、用户的管理①超级用户&…...

三维无人机航迹算法的目标函数如何确定

一、定义目标函数 在三维无人机航迹算法中,目标函数的确定通常基于具体的任务需求和飞行约束。以下是一个简单的例子,展示了如何为三维无人机航迹规划定义一个目标函数。 例子:最小化飞行时间和避障的三维无人机航迹规划 1.任务描述:无人机需要从起点飞到终点,同时避开一些…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...