python定义x_Python基础--函数的定义和调用

一、函数的作用:

提高代码的可读性,减少代码的冗余,方便调用和修改,组织结构清晰

二、函数的定义:函数遵循先定义后调用的原则

1、无参函数

def funcname(): #def 是关键字,后跟函数名():

子代码 #函数要执行的代码

return #return返回值,没有时默认为none

2、有参函数

def funcname(参数1,参数2): #参数个数可以为一个和多个

函数体

return

三、函数参数分类

def func(x,y):

res=x+y

return res

f=func(1,2)

print(f)

形式参数:定义函数时的参数,本质就是变量名,上例中的x,y就是形式参数

实际参数:执行函数时的参数,本质就是变量的值,实参必须有一个明确的值,上例中的1,2就是实际参数

一)、实际参数:

1、按照位置传递给相应的参数

def func(x,y):

res=x+y

return res

f=func(1,2)

print(f)

2、按照关键字传值,将不再受位置的限制

def func(x,y):

res = x+y

return res

func(y=2,x=1)

3、按位置传值和按照关键字传值混用

1)按位置传值必须在关键字传值的前面

2)对于一个形参只能赋值一次

二)、形式参数:

1、位置参数:必须传值的参数

2、默认参数:定义时赋值的参数就是默认参数,默认参数必须放在位置参数的后面,有默认参数时,可以不传递参数

3、*args:动态参数,一个*时可以随意传递位置参数,打印结果是把参数作为一个元组输出

def f1(*a):

print(a, type(a))

f1(123, 456, 789, [1, 2, 43])

打印结果

(123, 456, 789, [1, 2, 43])

4、动态参数**,传参时必须key,value的形式传递,最后会生成一个字典的形式

def f2(**a):

print(a, type(a))

f2(k1=123, k2=456)

打印结果为

{'k1': 123, 'k2': 456}

5、可以同时接受单个参数和key/value参数

def f3(*a, **aa): #会把所有的位置参数作为一个元组,key/value参数作为一个字典

print(a, type(a))

print(aa, type(aa))

f3(11, 22, 33, k1=123, k2=456)

打印结果为

(11, 22, 33)

{'k2': 456, 'k1': 123}

6、把列表,元组,字典传入函数

def f4(*args):

print(args, type(args))

li = [11, 22, 33, 44]

f4(li, 123) # 直接列表的名字,会把列表当做一整个元素当做函数生成后的元组的一个元素

f4(*li) # 使用*列表,会把列表内的每个元素当做函数生成后的元组的每个元素,类似于循环生成元组,元组列表类似

打印结果为

([11, 22, 33, 44], 123)

(11, 22, 33, 44)

7、把字典传入函数

def f5(**kwargs):

print(kwargs, type(kwargs))

dic = {"k1": 123}

f5(**dic) # 将字典传入到函数,需要使用双星号(**)

打印结果为

{'k1': 123}

8、混合使用

def f6(x, *args, **kwargs):

print(x)

print(args)

print(kwargs)

f6(1, 2, 3, 4, 5, k="a", v="z")

打印结果为

1

(2, 3, 4, 5)

{'v': 'z', 'k': 'a'}

总结:形式参数的传入顺序: 位置参数-----*args-----**kwargs----默认参数

四、函数的调用和返回值

函数的返回值是return,函数不加return时默认的返回值是None,return可以返回任意值,也可以多个值,return后不跟参数默认返回的是None

def func(x,y):

print(x,y)

res=x+y

return res

f=func(1,2) #函数遵循先定义后调用原则,函数的调用就是func(1,2) 函数名加(),函数的执行结果,需要在调用时赋值给变量,然后print

print(f)

执行结果为

1 2 #函数执行时内部代码的执行结果

3 #3即为函数的执行结果,函数的执行结果是返回给函数本身的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值