python函数定义调用以及函数的参数
函数
为什么要定义函数这个东西,目的是为了解决代码复用问题,使工作效率变得更高,不用反复的编写重复的代码,并且让代码变得更加简洁
函数的定义和调用
定义函数
def 函数名([参数]):
代码
代码:封装的重复内容
例子:
import random
def yanzhengma():
code = ''
s = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890'
for i in range(6) :
r =random.choice(s)
code+= r
print(code)
print(yanzhengma)
>>> <function yanzhengma at 0x000001C2AF79F1F0>
#这个函数已经被存到内存里了
函数的调用
#定义一个函数
def 函数名()
#调用函数
函数名()
每调用一次函数就会执行一次函数内部的代码块
函数的参数
参数就是在调用的时候方便改变函数内部的参数
- 无参数
def 函数名():
pass
- 有参数
def 函数名([参数1,参数2,参数3....]):
pass
一个参数函数例子
import random
def yanzhengma(n):
code = ''
s = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890'
for i in range(n) :
r =random.choice(s)
code+= r
print(code)
多个参数的例子
def islogin(name,password,isremeber=false)
peint('是否记住密码',isremeber)
if name = 'admin' and password = '1234':
print('登陆成功')
else:
print('登陆失败')
- 默认参数
有一个或者多个参数已经被赋值了
注意:
- 在这里我们注意默认参数只能在普通参数的后面才行,否则会报错
- 参数在设置时的位置就已经固定了,后面调用参数时我们得按照其参数位置进行调用
- 如果你不想按照顺序来进行调用,你也可以用关键字参数来进行调用
装包和拆包
#装包
*a,b,c = 1,2,3,4,5,6,7
#拆包
a,b,c = [1,2,3]
print(a)
print(b)
print(c)
# 分别将1,2,3赋值给a,b,c
#既有拆包也有装包
a,b,*c = [1,2,3,4,5,6,7,8]
- 可变参数args
形式:*args **kwargs
因为在正真的开发环境中,变量会有不确定的个数,所以我们采用*的方式来进行函数的参数定义
- *args
针对单个的量,返回的是元组
例子
def get_sum(*args):
print(args)
s = 0
for i in args:
s += i
print(s)
get_sum(1,2,3,4) #函数的装包
list = [1,2,3,4,5]
get_sum(*list) #函数的拆包
- **kwargs
针对的是关键字参数,返回的是字典
例子
def book(**kwargs):
print(kwargs)
book('name'='西游记','author'='吴承恩') #函数装包
dict = {'name'='西游记','author'='吴承恩'}
book(**dict) #函数的拆包
注意:这里的*是针对单个量来进行拆装包,而**是针对关键字参数来进行拆装包
转载自:https://juejin.cn/post/7084984027714682888