python-函数引入模块面向对象编程创建类继承
远离复读机行为
def calculate_BMI(weight,height):BMI = weight / height**2if BMI <= 18.5:category = "偏瘦"elif BMI <= 25:category = "正常"elif BMI <= 30:category = "偏胖"else:category = "肥胖"print(f"您的BMI分类为:{category}")return BMI
result = calculate_BMI(68,1.70)
print(result)
不要重复造轮子,可以使用别人制作好的函数(python官方里有内置函数)
或者引入别人的模块(里面存有很多函数)
import 模块名
from 模块名 import 函数/变量
from 模块名 import * 全部引入 (不建议)
引入函数怎么写?control + 点击函数名
既可以引入官方模块,或者 其他程序员 写的模块
首先要 安装该模块,后使用的时候在import
https://pypi.org/ 可以对第三库进行搜索
安装模块:去到终端 pip install 模块名
面向对象编程 OOP
面向对象编程 VS 面向过程编程(完成某个具体任务的代码,基本可以理解为函数)
面向过程编程核心:把要实现的事情拆分成一个个步骤,依次完成
面向对象编程:不会聚焦与第一步,模拟真实世界,先考虑各个对象有什么性质能做什么事情,类-对象(属性+方法)
面向过程编程:说明书 面向对象编程:把事务分解成到对象身上,描述各个对象的作用,再去解决他们之间的交互
在逻辑信息复杂的时候,面向对象编程,可以让逻辑更清晰,信息更集中
面向对象:封装 继承 多态
封装:只需要知道怎么使用
继承:可以继承类
多态:同样的接口,因为具体的类不同,有不同的表现
类是创建对象的模板 对象是类的实例
#定义一个学生类
# 要求:
# 1.属性包括学生姓名、学号,以及语数英三科的成绩
# 2.能够设置学生某科目的成绩
# 3.能够打印出该学生的所有科目成绩
class Student:def __init__(self,name,student_id):#self. 绑定到对象身上self.name = nameself.student_id = student_idself.grades = {"语文":0,"数学":0,"英语":0}def set_grade(self,cource,grade):if cource in self.grades:self.grades[cource] = gradedef print_grades(self):print(f"学生{self.name} (学号:{self.student_id})的成绩为:")for course in self.grades:print(f"{course}:{self.grades[course]}分")chen = Student("小陈","100618")
chen.set_grade("语文",92)
chen.set_grade("数学",94)
chen.print_grades()
# zeng = Student("小曾","100622")
# print(chen.name)
# zeng.set_grade("数学",95)
# print(zeng.grades)
继承 dry原则 don't repeat yourself 不要重复你自己
创建有层次的类 子类 父类(子类会继承父类)
P29 --略