Python学习笔记
执行python脚本文件
命令行
python 要执行的文件名
python test.py
函数定义
1,什么是函数
函数是盛放代码的容器:把实现某一功能的代码放到一个函数内就制造了一个工具。
2,为什么要使用函数
没有函数之前的问题
1)代码冗余,程序可读性差
2)可扩展性差
3,如何使用函数
1)函数 => 实现某一功能的过程
2)函数定义 => 事先准备工具的过程
3)函数调用 => 遇到应用场景,拿来就用
函数使用原则:先定义,后调用。
4,函数定义的三种形式
1)有参函数
2)无参函数
3)空函数
5,函数返回值
1)函数体内可以有多个return,但是只要执行一次整个函数就会立即终止并且将其当作本次的结果返回。
2)return有三种形式
1、return 值:返回一个值
2、return 值1, 值2, 值3 :返回一个元组
3,没有return :默认返回 None
6,函数调用的三种形式
1)语句形式
foo(1,2)
2)表达式
res = foo(1, 2)
res = foo(1, 2) * 10
print(res)
3)函数的调用可以当做一个参数传给另一个函数
res = foo(foo(1, 2), 3)
print(res)
7,函数的参数分为两个大类
1)形参
在函数定义阶段括号内指定的参数(变量名)称之为形式参数,简称形参
2)实参
在函数调用阶段括号内指定的参数(变量值)称之为实际参数,简称实参
关键字实参:在函数调用阶段,按照 key=value 的形式赋值
特点:可以打乱顺序,但是仍然能够为指定的形参赋值
8,*args与**kwargs - 汇总行为
1)*用在形参中:*会将溢出的位置实参存成元组然后赋值给紧跟其后的形参名
def foo(x, *y)
print(x)
print(y)
foo(1, 2, 3, 4)
// x = 1
// y = (2, 3, 4)
2)**用在形参中:**会将溢出的关键字实参存成字典然后赋值给紧跟其后的形参名
def foo(x, **y)
print(x)
print(y)
foo(1, y=2, z=3)
// x = 1
// y = {'y':2, 'z':3}
3)*用在实参中:*会将紧跟其后的值打散成位置实参
def foo(x, y, z)
print(x, y, z)
foo(*[11, 22, 33]) // foo(11, 22, 33)
4)**用在实参中:**后只能跟字典,会将紧跟其后的字典打散成关键字实参
代码
1,定义函数
1)语法
def 函数名( 参数1, 参数2, 参数3,...):
"""函数注释"""
代码1
代码2
代码3
return 返回值
2)定义函数发生的事情
1、申请内存空间,把函数代码存起来
2、将函数的内存地址绑定函数名
3)demo
def register():
inp_user = input("请输入账号").strip()
inp_pwd = input("请输入密码").strip()
inp_money = input("请充值").strip()
with open('db.txt', mode='at', encoding='utf-8') as f:
f.write('%s:%s:%s\n' % (inp_user, inp_pwd, inp_money))
2,调用函数
1)根据函数名找到函数的内存地址
2)函数的内存地址()触发函数体代码的运行
register()
3,函数的定义阶段:只检测语法,不执行代码。调用阶段才会执行函数体代码。