likes
comments
collection
share

python函数定义调用以及函数的参数

作者站长头像
站长
· 阅读数 20

函数

为什么要定义函数这个东西,目的是为了解决代码复用问题,使工作效率变得更高,不用反复的编写重复的代码,并且让代码变得更加简洁

函数的定义和调用

定义函数

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('登陆成功')
elseprint('登陆失败')
  • 默认参数

有一个或者多个参数已经被赋值了

注意

  1. 在这里我们注意默认参数只能在普通参数的后面才行,否则会报错
  2. 参数在设置时的位置就已经固定了,后面调用参数时我们得按照其参数位置进行调用
  3. 如果你不想按照顺序来进行调用,你也可以用关键字参数来进行调用

装包和拆包

#装包
*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)   #函数的拆包

注意:这里的*是针对单个量来进行拆装包,而**是针对关键字参数来进行拆装包