函数就是把一组代码合在一起,可以实现某种功能,需要再用到这个
def my(): #定义函数,名称是my,下面是函数体

my() #表示调用函数my,函数必须调用才会执行,出现这个形式,就可以run了

形式参数的格式无限制,可以在定义之后的函数体中加一个强制转换类型

也支持多个参数的传递


函数的必填参数和位置一一对应!也叫位置参数


默认值参数,有输入显示输入的值,没输入,显示默认值:


可变参数(也叫参数组),不是必填的,接收到的是一个元组。它把调用函数时传进去的每一个参数都放到了一个元组里面(格式前面是加个*号),参数常用名称args


关键字参数,也不是必填的!接收的是一个字典,调用得用 xx = XX,参数常用名称kwargs

传字典的时候,直接传字典里面的key和value,或者调用时括号里写 **{}


以上参数,混合:

以上在输入值的时候想实现country输出为“china”是不可实现的,因为位置摆在那儿

如果必填参数、默认值参数、可变参数和关键字参数要一起用的话(少见,常见必填+默认值or必填+关键字),必须按照必填参数、默认值参数、可变参数和关键字参数的顺序接收,括号里面的参数顺序不可变,否接接收了也报错!多参数连用时,只要有必填参数,调用时就不能为空

关键字 参数 的调用(和关键字参数不是一回事!)
调用的时候写出xx = XX ,则支持乱序
调用的时候前面记得,直接写XX,后面乱序的写xx = XX ,也可以
调用的时候如果前面乱序的写xx = XX ,后面直接写XX,系统会报错!


函数的返回值
return #调用函数后返回计算的结果;return必须写在函数里面,写到外面不行,函数碰到return,立即结束这个函数,就像循环里面碰见break一样,后面的代码永远不会再执行
返回的类型可以是int也可以是str 由输入的值的类型以及return后面是否有强制转换决定
函数可以没有返回值(没有return),只要没有返回值,默认给返回none
如果这个函数的处理结果咱们需要在别处用到,那就得给函数返回值

上面程序中,因为函数plus有“return a+b”,所以后面的res才可以定义成"plus(score1,score2)",如果plus中不写“return a+b”,则res也可以那么定义,只是最后的返回值就是none


如果函数return多个值的话,那么它会把多个值放到一个元组里面去


写一个判断小数的程序


全局变量和局部变量:
在函数里面定义的变量叫局部变量,只能在函数里面用,出了该函数外,就不能使用了
在函数外面定义的变量是全局变量,在函数内也可以使用
变量要先定义,后使用,所以一般全局变量都写在最上面
有同名的话,函数先找局部变量再找全局变量


如果想在函数里面修改全局变量的值,那么要先用global关键字声明
要修改全局变量是int、string的话,必须得写global
如果是字典和list的话就不要写global了!函数内和函数外的变量尽可能避免重名

 

其他知识点:
1、递归调用:一个函数自己调用自己就是递归调用,一个函数最多递归调用999次(死循环没次数限制,但是函数的递归有次数限制)
要用递归调用,需要有一个明确的结束条件
递归效率不高,能不用就不用,知道是什么即可
每次进入更深一层递归时,问题规模相比上次递归都应有所减少(减少递归次数)
递归的作用就是循环,如下用while循环:
def test1():
while True:
num = int(input('请输入数字:'))
if num%2 == 0:
return True
print('不是偶数请继续输入')
test1()

上述和下面的递归效果相同:
def test1():
num = int(input('请输入数字:'))
if num%2 == 0:
return True
print('不是偶数请继续输入')
test1()
test1()

2、高阶函数(较少用)
如果一个函数的入参是一个函数名的话,那么这个函数就是一个高阶函数
先理解:函数即变量
def hello(name):
print(name)
new_hello = hello #new_hello和hello两个函数里面的函数体内容一致
new_hello(test1)#name这个形参既可以是一个字符串也可以是list 字典及函数,这里的test1 是函数名,最后返回了这个函数的内存地址
hello('world')

int()\str()等这种强制转换数据类型的,也是一个函数
def add(x,y,z):#参数z是要传入一个函数名
res = z(x)+z(y)
return res
print(add('66','22',int))#如果z传入一个非函数,这里会报错

3、python内置函数的用法

posted on 2017-06-17 00:53  chenxi99  阅读(142)  评论(0编辑  收藏  举报