目录
一:函数
1.1函数创建和调用
1)创建函数
创建函数也称定义函数,可以理解为创建一个具有某种用途的工具
def functionname([parameterlist]):
["comment"]
[functionbody]
2)调用函数
functionname([parametersvalue])
1.2 参数传递
1)参数传递
根据实际参数的类型不同,可以分为将实际参数的值传递给形式参数和将实际参数的引用传递给形式参数两种情况。
其中,当实际参数为不可变对象时,进行值传递;当实际参数为可变对象时候,进行的是引用传递。实际上,值传递和
引用传递的基本区别就是,进行值传递后,改变形式参数的值,实际参数的值不变;而进行引用传递后,改变形式参数的值,实际参数的值
也一同改变。
2)位置参数(通常情况)
数量必须与定义时一致
位置必须与定义时一致
3)关键字参数
关键字参数是指使用形式参数的名字来确定输入的参数值,通过该方式指定实际参数时,不需要再与形式参数
的位置完全一致,只需要将参数名写正确即可。
fun_bmi(height = 1.83,weight = 60, person = "路人甲")
4)为参数设定默认值
调用函数时候,如果没有指定某个参数将抛出异常,为了解决这个问题,我们可以为参数设置默认值,即定义函数时,
直接指定形式参数的默认值。这样,当没有传入参数时候,则直接使用定义函数时设置的默认值
5)可变参数
可变参数也称为不定长参数,即传入函数中实际参数可以是任意多个
定义可变参数时候,有两种形式:一种是*parameter ,另一种是 ** parameter
- *parameter : 这种形式表示接收任意多个实际参数并将其放到一个元组中
def printcoffee(*coffee):
for item in coffeename:
print(item)
- **parameter:这种形式表示接收任意多个类似关键字参数一样显式赋值的实际参数,
并将其放到一个字典中 (例如pymysql连接)
def printsign(**sign):
print()
for key, value in sign.items():
print(key,value)
1.3 返回值
在函数体内使用return语句为函数指定返回值,该返回值可以是任意类型,并且无论return语句出现在函数的什么位置,
只要得到执行,就会结束函数的执行。
1.4变量的作用域
局部变量是指在函数内部定义并使用的变量,它只在函数内部有效,即函数内部的名字只在函数运行时候才会创建。
全局变量是指能够作用于函数内外的变量,全局变量有以下两种情况:
1)在函数体以外定义的变量是全局变量
2)在函数体内有定义,并且使用global关键字修饰。
1.5匿名函数
匿名函数是指没有名字的函数应用在需要一个函数,但是又不想去费神去命名这个函数的场合
result = lambda[arg1,[,arg2]] :expression
import math
r = 10
result = lambda r:math.pi*r*r
print(result(r))
二:面向对象程序设计
封装 继承 多态(与Java中面向对象差不多)
1)类的创建
2)__init__()方法
3)装饰器
4)方法重写
三:模块
python中,一个扩展名为.py的文件就称为一个模块
import bmi as m
或者
import bmi
或者
from bmi import fun_bmi
以主程序的形式执行程序 (顶级模块中__name__变量的值为 __main__)
if __name__ == '__main__':
常用的内置标准模块
四. 异常处理及程序调试
python中常见的异常
try......except语句
在使用时,把可能产生异常的代码放在try语句块中,把处理结果放在except语句块中。
这样,当try语句块中的代码出现错误时,就会执行except语句块中的代码,如果try语句块中的代码没有错误,
那么except语句块将不会执行
try:
division()
except ZeroDivisionError:
print("出错")
try......except.....else语句
当try语句块中没有发现异常时候要执行的语句块。
try......except......finally
无论程序中是否有异常,finally代码块中的代码都会被执行
使用raise语句抛出异常
raise语句在函数或者方法中抛出异常