拿来吧你,
想要知道一个列表的中位数
比如就可以使用python标准库里面的statistic
import statistics
print(statistics.median([1,89,67,34,1.123,78]))

引入模块的方式有三种,
import语句
from...import... 语句
from...import*语句
但是使用第一种的时候,可能会存在不同的标准库里面会有重名的现象,比如abc()函数
如果好奇标准函数是怎么写的windows里面是选中ctrl然后选择函数,就可以看到源代码
pypi.org库可以对于第三库进行搜索
比如搜索akshare就能获得,
(阿轲分享)是由国内开发者维护的 Python 财经数据接口库,核心价值在于一站式获取免费、实时 / 历史的金融数据,无需自己编写爬虫去各大财经网站抓数据,极大降低了金融数据分析的门槛。
然后到终端上安装库

面向对象编程,利用类创建对象,先会把一些共同特征圈起来,就是把属性和方法与对象进行绑定(纪传体)
面向过程编程,对于每个步骤而言的编程(编年体)
面向对象三大将军(特征):封装、继承、多态
封装 就是将里面的藏起来,对外只留一个小口,让别人进入(不需要 )
父类的性质都能被子类继承
python创建类
类可以说是对象的模板
Python的命名规则是Pascal命名规则:UserAccount,CustomerOrder,PaymentData
创建一个类,然后往里面放属性
class
定义属性固定使用两个下划线的_init_()括号里面可以放任意属性的参数
约定俗成是自身的self
对象的属性就是self.xxxx
class OldCat:
def init(self):
self.name='Lambton'
cat1=OldCat()
这样的话就可以引入一个叫cat1的OldCat它会具有Lambton的属性
比如一只小狗的名字是bonnie,04年出生,白色的
class CuteDog:
def __init__(self,dog_name,dog_age,dog_color):
self.name=dog_name
self.age=dog_age
self.color=dog_color
littledog=CuteDog("bonnie",2004,"white")
print(f"小狗{littledog.name}的年龄是{littledog.age},颜色是{littledog.color}")
注意字符串一定要加双引号,这样子的话,才可以被程序识别到。十进制所以说不能用0开头

会猫叫属性的小狗
class CuteDog:
def __init__(self,dog_name,dog_age,dog_color):
self.name=dog_name
self.age=dog_age
self.color=dog_color
def JiaoSheng (self):
print("喵"* self.age)
littledog=CuteDog("bonnie",24,"white")
littledog.JiaoSheng()

案例:
定义一个学生类,属性包括学生的学号还有语数英三科的成绩
设置学生某科目的成绩
打印出学生所有科目的成绩
class Student
继承:现实中的儿子继承父亲
class CuteDog:
def __init__(self,dog_name,dog_custom,dog_food):
self.name=dog_name
self.custom=dog_custom
self.food=dog_food
class SonDog(CuteDog):
def wasai(self):
print(self.name+"在拉屎")
littledog=SonDog("bonnie","日常玩球球","white")
littledog.wasai()
子类继承父类,SonDog继承了CuteDog的name,custom,food
所以调用的时候输入这些特征,就会直接使用父类中的方法

案例
人力系统该发工资了
有两种重要的情况,兼职按天发工资,正式员工按月发工资
class staff:
def __init__(self,name):
self.name=name
def printer(self):
print(f"{self.name}的工资是")
class fulltime_staff(staff):
def __init__(self,name,month):
super().__init__(name)
self.month=month
def fulltimesalary(self):
fulltimesalary=self.month*1200
return fulltimesalary
class parttime_staff(staff):
def __init__(self,name,day):
super().__init__(name)
self.day=day
def parttimesalary(self):
parttimesalary=self.day*120
return parttimesalary
zhangsan=fulltime_staff("zhangsan",14)
lisi=parttime_staff("lisi",56)
lisi.printer()
print(lisi.parttimesalary())

python的文件路径,绝对路径使用反斜杠\
相对路径是用点 . 点点..开头的

使用python读文件的第一个操作是打开目标文件,使用open函数,里面直接放上文件的路径,相对路径与绝对路径都可以,比如说打开一张图片
现在一般使用utf-8的模式读取文件
代码喜欢txt纯文本
文件特别大的时候不要用read,这样内存会爆炸
使用txt文件的话,要注意保存
read返回全部文件内容字符串
readline返回一行文件内容字符串
readlines返回全部文件内容组成的列表
读完文件之后还要做的事情就是关闭文件
除了
1.文件名.close()这种方式
还有
2.with open("./data.txt")as 文件名
print(文件名.())
这样之后文件会自动关闭

右击文件,新建一个文件,这样就和源代码文件处于一个文件夹之下,使用相对路径对于文件进行调用。
f=open("./古诗.txt","r",encoding="utf")
print(f.read())
f.close()

readlines返回的是一个列表

readline返回的是一行又一行
f=open("./古诗.txt","r",encoding="utf")
print(f.readline())
print(f.readline())
f.close()

一位老师想要读取熊孩子们的成绩计算平均数
那可以使用python中写文件的操作
如果读文件,文件不存在就会报错。但是写文件文件不存在的话,就会自动新建一个文件
write不会默认帮忙换行,想要换行的话就要加上\n
with open("./data.txt","w",encoding="utf-8")as f:
f.write("hey\n guys")
f.close

如果不想把原本的文件内容清空只是想要追加文件内容的话,就使用a模式,使用r+既可以读又可以写
with open("./data.txt","a",encoding="utf-8")as f:
f.write("\n black skin")
f.close
