博学谷学习记录之人工智能(python基础语法)第八篇

目录

函数


函数

在开发过程中,如果需要反复实现某一个功能的代码段就是函数,比如每次打印的时候都会调用print()函数。等等...

定义函数的格式如下

def 函数名([参数列表]):
    '函数文档字符介绍'
    函数体
    return 语句(返回值)


#调用函数
函数名([传入参数])

还是之前的比喻,老师罚我抄英文单词100遍,然后第二天又被老师罚了50遍,那么之前的代码是不是需要两次for in循环,现在有了函数就直接可以开发这一项的罚写的功能。代码如下:

#方法一
def write1(number,string):
    #开发一个罚写的功能,这样老师罚我我就直接调用这个功能哦
    print(string*number)
    #返回值可有可无,看自己的需求

#方法二
def write2(number,string):
    #开发一个罚写的功能,这样老师罚我我就直接调用这个功能哦
    return print(string*number)   #返回这段代码

#方法三
def write3(number,string):
    #开发一个罚写的功能,这样老师罚我我就直接调用这个功能哦
    a = string*number
    return a   #返回这段代码

#调用方法一的函数
write1(10,'linux')
#调用方法二的函数
write2(10,'linux')
#调用方法三的函数
a = write3(10,'linux')
print(a)

以上的三种的结果是一致的

这里面需要强调函数的传递,这里面有两个名称一个叫形式参数,另一个叫实际参数,而把形式参数传递给实际参数的过程就是函数的传递。

形式参数:就是定义函数的过程中命名的参数名称,这个函数名称不具备任何数据的就好比数学里面的f(x)的 ‘x’,这个x是没有具体值的。可以为1也可以为100;

实际参数:就是形式函数要传参的来源是实际参数,就好比数学里面的f(x) = sinx,求f(0.5)中的0.5就是实际参数,如果要赋值,求出结果就是函数的传递。

函数的传递

位置参数的传递:如我写的write1-3这三个函数代码里面的参数"string"和"number"这两个参数,如果调用函数的时候这样写如:write('python',10)的时候,代码会运行错误,因为在定义形式参数的过程当中,number是int类型,而string是str类型,看实现的代码是string*number,string可以是int和string,而number只能是int的格式。传入实际参数的过程的时候不能传反哦。

关键字传参:这个可以不随位置改变而改变参数的位置,见下面代码:

#这个可以不随位置改变而改变参数的位置,需要把形式参数实际化
write1(string = "linux",number = 20)

默认参数的传递:在函数传递的过程当中可以指定默认值,当用户没有输入数据时候,函数会调用定义的函数的默认数据,见下面代码:

#number赋予一个默认值10,只要数据部传入其他数据就用这个数据
def write1(string,number=10):
    #开发一个罚写的功能,这样老师罚我我就直接调用这个功能哦
    print(string*number)
    #返回值可有可无,看自己的需求


write1('windows')

这个需要强调的是默认值只能写在最后,不能放在最前。

参数的打包和解包

当我们传入数据不知道有多少个参数,这个时候不能向上面那样一个一个创建形式参数,因为你不知道传入的参数有多少,这个时候需要将参数打包传入,看代码:

#定义一个形参*args
def tt(*args):
  print(args)


#传入tt当中
tt(1,2,3,4,5,6,7,8)  #可以传入任意多个参数
// 输出1,2,3,4,5,6,7,8



#定义一个**kwargs
def tt(**kwargs):
  print(kwargs)

tt(a =11,b = 12, c = 33)
// 输出{"a":11,"b":12,"c":33}

解包就是将传入的打包的传入的数据解开传入,解开的结果和本次函数输出的结果一致。

混合传递:可以将上方几种传参的方式混合传参,但是要注意形式参数的位置。看代码:

def te (a,b,c = 33,*args,**kwargs):  #这个形式参数的位置一定是这样的
  print(a,b,c,args,kwargs)

本周笔记完毕,下周继续。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值