python入门之函数
Posted 城南花已开
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python入门之函数相关的知识,希望对你有一定的参考价值。
目录
函数的定义
1、什么是函数
函数就是一种工具,可以重复调用。
2、为什么要用函数
- 防止代码冗余
- 代码可读性差
3、怎么用函数
通过def
(define)关键字定义函数---> 制造工具
调用函数 ---> 使用工具
def 函数名():
'''
函数的注释,描述函数体代码的功能
'''
代码块1
代码块2
函数名() # 使用函数
# 定义函数(制造工具)
def index(): # index变量名
print('你好,函数!') # 代码块
index() # index访问函数的内存地址,括号是调用的意思
4、函数名的命名规范
函数名的命名规范与变量名一样
5、函数的分类
- 有参函数
- def index(user, pwd):
- 无参函数
- def index():
- 空函数
- def index():
pass
6、函数的调用
函数先定义后执行,不调用函数,就不会执行函数体代码,只会检测函数体代码的语法规范性
index()
index(name, pwd) # 传入参数执行
index(1, index(3, 2)) # 先执行里面的index
二、return
return:是一个函数结束的标志,函数体代码只要执行到return,函数执行结束
不写return,默认返回none
只写return,只有结束函数体代码的效果,返回none
写return none,与只写return的效果相同
return返回一个值:可以将返回的结果,当做一个变量值来使用
return返回多个值
- 将返回的多个值,默认存入元组返回
- 函数的返回值不想被修改
- 可以自己指定返回的数据类型
三、函数的参数
3.1 参数的类型
3.1.1 形参
是在函数定义阶段就规定的参数,相当于定义变量时的变量名
3.1.2 实参
是在函数调用阶段传入的参数,相当于定义变量时的变量值
def index(a): # 形参:a相当于变量名,用来接收变量值
print(a)
index(a) # 实参:相当于变量值,将值传入形参
3.2 传参方式
3.2.1 位置参数:
通过位置进行传参
def index(a, b):
print(a, b)
index(1, 3) # 位置参数
3.2.2 关键字参数
指定关键字传参
def index(a, b):
print(a, b)
index(a=1, b=3) # 关键字参数
3.2.3 位置参数和关键字参数混用
位置参数一定要写在关键字参数之前
连用的时候,不要对同一个形参重复赋值
def index(a, b, c, d):
print(a, b, c, d)
index(1, 2, c=3, d=4) # 位置参数和关键字参数混用
# 定义在* 和**之间
# 在给命名关键字传值的时候一定要以关键字形式传递
# 关键字参数一定不能放在位置参数前面
def index(x, y, z, a=1, *args, b, **kwargs):
print(x, y, z)
print(args)
print(a, b)
print(kwargs)
index(1, 2, 3,354353, 4342, 3213123, b=222, c=333, d=444)
3.2.4 默认参数
默认参数:
- 在定义函数阶段就已经传入参数
- 如果在实参的时候传入了一个新的参数,就会使用新参数
- 默认参数在传值的时候,不要将可变类型当做参数传递
应用场景:
- 当参数对应值重复出现的情况下使用默认参数
def reg(username, password, gender):
print(f'用户名:{username} 密码:{password} 性别:{gender})
reg('tank', 'dsb', 'male')
reg('jason', 'dsb', 'male')
reg('engon', 'dsb', 'male')
# 将gender的实参定义为male
def reg(username, password, gender='male'):
print(f'用户名:{username} 密码:{password} 性别:{gender})
reg('tank', 'dsb') # 默认为male
reg('jason', 'dsb')
reg('engon', 'dsb')
reg('胡晨阳', 'dsb', 'female') # femal会去修改male,为femal
4 可变长参数
官方规定使用*args,但是只要有*就有可以有变长参数的效果
可变长参数:
*args
接收所有溢出的位置参数- 接收的值都可以被存入一个元组
- 形参的值前面有*可以打散传入的容器类型
- 打散字典只能返回key
**kwargs
:接收所有溢出的关键字参数- 接收的值都被存入一个字典
# 位置参数
def index(a, b, c, d, *args):
print(a, b, c, d, *args)
index(1, 3, 4, 5, 6, 7, 8, *[8, 9])
# 关键字参数
def index(a, b, c, d, **kwargs):
print(a, b, c, d, *kwargs)
index(1, 3, c=4, d=5, e=6)
以上是关于python入门之函数的主要内容,如果未能解决你的问题,请参考以下文章