函数的本质是功能的封装。函数为了实现功能而实现。
变量的生效范围,这个范围叫做作用域。
def 函数名(参数):
函数体
。。。
def abc():
print(“abcdefg”)
参数:与外界沟通的接口
参数:形参和实参
定义的时候一般都是形参,调用的时候一般都是实参
按需求的类别将一些功能(函数)组合在一起,形成模块。要实现某一功能的时候,直接导入模块
模块的函数叫做方法
lib中的sata-pack目录中有各种模块
两种导入方式
import cgi 导入cgi模块
cgi.closelog() 引用模块里的方法
——————————
from cgi impot closelog
模块的安装方式
1 pip网络安装 在系统控制台,前提配置好环境变量,网络好,需要自动在网上下载安装
cmd pip pip install numpy 安装数据分析
pip install scrapy 安装数据爬虫
2 whl下载安装 百度 lfd python找到网站 cp35 是python 的版本号。 在控制台输入python,查看版本,有的时候虽然是64位的系统但是程序是32位的
会办错平台不支持,通过网站下载到本地,控制台进入本地目录内,pip install 全名 tab键自动补全
3 直接复制的方式 别人安装好的,版本和系统位数一致就可以直接粘贴
4 anaconda
——————————————————————
文件操作
open(文件地址,操作形式)
w:写入
r:读取
b:二进制
a+:追加
fh=open("D:/我的基西奥学/Python/文本1.txt","r")
data=fh.read()
line=fh.readline()
fh.close()
data="学习python"
fh2=open("D:/我的基西奥学/Python/文本3.txt","w") 创建文本3
fh2.write(data) 写入内容
fh2.close() 记得关闭 在关闭时保存操作
data2="学习pyrhon"
fh3=open("D:/我的基西奥学/Python/文本3.txt","a+") 以续写的方式打开
fh3.write(data)
fh3.close()
——————————
异常处理
try:
程序
except Except as 异常名称:
——————————————
try:
for i in range(0,10):
print(i)
if(i==4):
print(jkj) 会报错jki 没注册
print(""hello"")
except Exception as err
print(err) 输出报错信息
运行到4后就会停止,hello是不输出的
for i in range(0,10):
try:
print(i)
if(i==4)
print(jkj)
except Except as err:
print(err) 抛出异常 继续运行
print("hello")
会输出5678,hello
在函数体中写异常处理,会继续运行程序员
________________
oop 面向对象编程
类:某些特征的集合
对象:类里的合体,是实力的
类是抽象的,对象是具体的
构造函数:类在实例化的时候自动首先触发的函数。为了自动的初始化
__init__(self,参数) 两个下划线
类的方法必须加上self参数
class cl2:
def __init__(self):
print("study sytion")
运行 a=cl2() 输出是study sytion
——————————————————
给类加参数。
class cl3:
def__init__(self,name,job):
print("My name is "+name+"My job is"+job)
运行 c=cl3() 会报错 缺少连个需求
c2=cl3("xiaoli","chengxuyuan" )
c3=cl3("li","pythion")
这就是2个不同的人了。区别开了不同的对象
属性:静态的特征。描述人的如头发,手臂
方法:动态的特征 。描述人的唱歌,跳舞
属性是类里面的变量 self.属性名
class cl4
def __init__(self,name,job):
self.myname=name
self.myjob=job
运行 c=cl4("wang","laoshi")
c.myname
结果是 wang
c.myjob
————————————
类里的方法
class cl5:
def myfune1(self,name):
print("hello"+name)
运行在调用方法的时候输入信息
c=cl5()
c.myfune1(wang)
___________________________
clsaa cl6
def __inti__(self,name):
self.myname=name
def myfunc1(self):
print("hello"+self.myname)
运行c=cl6("ma")
c
c.myfunc1()
属性和方法,这两种传入信息的方式,一种是属性接受,一种是方法利用属性接受
调用方法来取得类里的信息。
——————————————————————————
继承:把摸一个或多个类(基类)的特征拿过来
重载:在子类(派生类)里面对继承过来的特征重新定义,覆盖掉
父类:基类
子类:派生类
继承(单继承,多继承)
摸一个家庭有父亲,母亲,儿子,女儿,父亲可以说话,母亲可以写字,儿子继承了父亲的能力
女儿同时继承了父母,小儿子继承了父亲,但是优化(减弱)了父亲的说话的能力
class father():
def speak(self):
print("I can speak")
单继承: class 子类(父类)
class son(father):
pass
运行 s=son()
s.speak()
多继承
class daughter(father,mother):
def listen(self):
print("I can listen")
重写(重载) 覆盖掉父类的同名方法
class son2(father):
def speak(self):
print("speak2")
运行 s=son2()
s.speak()
结果是 speak2