Python|一辆车帮你读懂python函数

text":"函数的概念:
有一个超市 , a要去买西 , 走一段距离 , b去买东西走一段距离c去买东西也走一段距离 , 于是就有了公交车 , abc都可以搭这一趟公交车去超市买东西 , 这里的公交车就是函数 。 函数是组织好的 , 可重复使用的 , 用来实现单一 , 或相关联功能的代码段 。
函数的作用:
后面超市所在的位置扩建 , 有了菜市场、公园 , 相应的公交车把站台调整一下即可达到目的地 。 这样就在节约了人力做重复工作的同时还可以因为扩建而自由的调整公交站线路 , 这就是在函数里体现的作用----方便扩展、节约代码、提高代码复用性
函数的定义:
def function(params):
block return expression/value
(1)在Python中采用def(define)关键字进行函数的定义 , 不用指定返回值的类型 。
(2)函数参数params可以是零个、一个或者多个 , 同样的 , 函数参数也不用指定参数类型 , 因为在Python中变量都是弱类型的 , Python会自动根据值来维护其类型 。
(3)return语句是可选的 , 它可以在函数体内任何地方出现 , 表示函数调用执行到此结束;如果没有return语句 , 会自动返回NONE , 如果有return语句 , 但是return后面没有接表达式或者值的话也是返回NONE 。
调用函数语法:
函数名(参数表)
举例:
def printme():
'''函数体只用来实现打印语句'''
print(\"Hello\")
【Python|一辆车帮你读懂python函数】printme()       #函数的调用
输出:
Hello
函数中的相关概念:
形参、实参:
公交车里有老弱病残孕的专坐 , 有司机专用座 , 这些在形式上的一个安排 , 这些坐位就是函数中的形式参数 , 简称形参;具体坐什么人在函数中叫实际参数 , 并不是所有坐在这些坐位上的都是老弱病残 , 具体要看实际所坐的是什么人 。
-----函数后面跟的是形参;实际传的是实参
举例:
def add(ab):       #a、b是形参
'''函数体用来实现两位数的加法'''
return a+b
print(add(15))      #实参
值传递、引用传递:
搭车买票有两种方式 , 一种人工售票 , 上车前买好票 , 然后拿着票上车 , 不管上车后是剪票还是收费的形式 , 这个票跟对象(上车的人)所拥有的钱或是其它都没关系 , 这是值传递;另一种买票方式就是直接刷卡 , 根据车费的金额直接刷卡 , 这个刷卡会直接影响卡上的余额 , 这种就是引用传递;
------传递修改值不影响本身对象的值;引用传递修改就是修改本身的值
举例1:
def changenum(numa):
'''值传递:传递的是另一个复制的对象 , 不会影响本对象的值'''
numa = 20
numb = 10
changenum(numb);
print(numb)
输出
10
举例2:
def changenum1(list1):
'''引用传递:传递的是指向对象的地址 , 修改会影响对象的值'''
list1.append(0)
list2 = [1268

changenum1(list2)
print(list2)
输出
10
[1 2 6 8 0

函数的参数类型:
必备类型
不管是公交车还是其它车 , 车上的每个零件都有自己的作用 , 假设一个坐位需要大小不一的4个螺丝来固定 , 如果只拧3个(必须按传指定参数的个数)或没有按指定大小(按顺序传参)拧螺丝 , 那么坐位必然就会有倒的风险 。
-----这种参数通过位置、依次进行匹配的类型叫必备类型
举例:
def printMe(nameage):
'''必备类型:参数个数与位置都严格匹配'''
print(\"我叫\"+name+\"我今年\"+str(age)+'岁')