当前位置: 首页 > 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、包


今天暂时到这里啦~

http://www.lryc.cn/news/506090.html

相关文章:

  • /:087启动游戏时提示丢失”d3dx···.dll””VCOMP···.dll”
  • 利用PHP和phpSpider进行图片爬取及下载
  • 企业架构划分探讨:业务架构与IT架构的利与弊
  • Java设计模式 —— 【结构型模式】桥接模式详解
  • MySQL学习之DDL操作
  • 游戏AI实现-寻路算法(A*)
  • spring学习(spring的IoC思想、spring容器、spring配置文件、依赖注入(DI)、BeanProxy机制(AOP))
  • 谁说C比C++快?
  • GEE+本地XGboot分类
  • OpenCV相机标定与3D重建(24)计算两个二维点集之间的最佳仿射变换矩阵(2x3)函数estimateAffine2D()的使用
  • UIP协议栈 TCP通信客户端 服务端,UDP单播 广播通信 example
  • 【NoSQL系列】为什么要使用Redis?
  • MySQL Explain 分析SQL语句性能
  • IIS部署程序https是访问出现403或ERR_HTTP2_PROTOCOL_ERROR
  • 学技术学英文:代码中的锁:悲观锁和乐观锁
  • 青少年编程与数学 02-004 Go语言Web编程 02课题、依赖管理
  • MyBatis写法汇总
  • 【Linux学习】十五、Linux/CentOS 7 用户和组管理
  • 三维无人机航迹算法的目标函数如何确定
  • uniapp v-tabs修改了几项功能,根据自己需求自己改
  • 用vscode,进行vue开发
  • Kafka 磁道寻址过程详解
  • 基于Spring Boot的社区药房系统
  • 005 QT常用控件Qwidget_上
  • 机器学习之交叉熵
  • 数据结构 ——前缀树查词典的实现
  • MySQL 主从复制与高可用架构
  • 【Golang】如何读取并解析SQL文件
  • git branch -r(--remotes )显示你本地仓库知道的所有 远程分支 的列表
  • Typescript安装