函数 : 函数就是在我们需要重复使用某个功能的时候,为了方便
我们把那个功能进行定义或者封装,在需要的时候随时拿过来执行,,,,
我们封装的那个东西就是 函数
语法:
def 函数名( 形参 ): # 定义函数, 定义过后函数体代码块不会执行 只有调用的时候才会执行,执行到代码块最后
函数体,代码块 一句时,函数执行完毕
return 返回值 # 在函数执行过程中,只要执行到return 函数就会 彻底 停止
函数名( 实参 ) # 调用函数,开始执行函数代码块
return 返回值 # 在调用函数后,执行完函数后返回给调用方的 返回值
返回值: 每个函数中, 如果没有写 无 return =====> 默认返回 None
只写了 return ======> 默认返回None
写了一个返回的值 return 返回值1 =====> 默认返回值1
多个返回值1, 返回值2,返回值3 return 返值1,返值2,返值3=====>( 返回值1,返回值2,返回值3 )
: 多个返回值, 结果会返回一个 元组形式的 包含返回值的元组 tuple
元组形式 解构 : a, b, c =函数名() =====> 结果是 返回值1
返回值2
返回值3
在函数中,可以多次调用,但是无论调用几次, 返回值是相同的 ret=fn()
ret1=fn() 因为调用的是同一个函数
e.g
def shopping(fangshi): # fangshi 形参 : 如数学函数中的x ,y 一样的性质
print("打开%s," % fangshi,)
print("搜索要的)
print("挑选要买的东西")
print("加入购物车")
print("付钱,结算")
print("购买完成")
return "所有想买的东西","好吃的","好用的"
ret=shopping("淘宝") ====> ("所有想买的东西","好吃的","好用的") # 返回值是元组的形式
ret=shopping("京东") ====> ( "所有想买的东西","好吃的","好用的") # 返回值相同
a,b,c=shopping("淘宝") # 淘宝 : 实参 ,实际导入函数中的参数 ,就像数学函数中带入的x,y,的实际数
a,b,c=shopping("京东")
参数: 在函数执行时,用来给函数传递信息的, 包括 形参, 实参
形参: 在函数声明定义时,声明出来的变量 def shopping( 形参: fangshi )
实参: 在函数调用时,实际给出的函数的传递值 shopping( 实参: "京东")
参数的个数,在函数中是没有要求的 但是:
形参有几个 : 实参也要给几个 若少给一个=====>报错
参数的分类
站在 "实参的角度 " : 1. 位置参数 ,按照参数的顺序,给出相应的值
2. 关键字参数: 根据关键字( 形参 ) = 赋值 , 可以是无序的
3. 混合参数: 既有位置参数,又可以有关键字参数 但是必须前边是有顺序的位置参数 ,后边
再是关键字参数 ,,,,,,,否则后边位置参数的之不确定是给哪个,
因此 先位置后关键字参数 关键字可以无序
e.g def fn( a,b,c )
print(a)
print(b)
print(c)
fn(1,2,3)=====> a=1,b=2,c=3 # 位置参数 ,按照形参的位置,给出相应的值 ,顺序一定
fn( b=3,a=1,c=2 ) =====> a=1,b=3,c=2 # 关键字参数 ,根据形参 ,给其赋值, 顺序可以改变
fn( 1,c=3,b=2 ) ====> a=1,b=2,c=3 # 混合 , 前边是位置 第一个a是1, 后边是关键字, ,b=2,c=3
站在" 形参的角度 " : 1. 位置参数 :位置顺序的参数
2. 默认值参数: 在形参中给出来的值,一定的值,就是默认值,, 当实参中给了形参中默认值对应
的参数,结果会按照实参来显示, 因为是实际的参数
3. 混合使用: 先写位置参数,再写默认值参数
e.g
def fn(name,age,address,hobby,sex,id): # 位置参数
print("%s是一个年龄为%s的,住址位%s的,爱好为%s的,性别为%s的,序号为%s的人" % (name,age,address,hobby,sex,id
fn("太白","28","保定","音乐","男","1") # 位置参数
fn(id="1",name="太白",age=28,address="保定",hobby="音乐",sex="男") # 关键字参数
fn("太白","28",id="1",address="保定",hobby="音乐",sex="男") # 混合参数
def fn(name,age,address,hobby="游戏",id=1,sex="女") # 默认值 混合
fn( "小小",15,123 ) ====> 小小是个15岁的地址是123的爱好游戏的性别为女的序号为1的人
实际函数应用
1+2+3 +...+n=?
def sum( n )
s=0
count=1
while coune<=n:
s=s+count
count=count+1
return s
sum(n)
print(sum(n))
判断n是奇数还是偶数
def fn(n) def fn(n)
if n%2==0: if n%2==o:
return "偶数" return "偶数"
else: ===> return "奇数"
return "奇数 "
fn(n) fn(n)