python简述定义函数的规则_python基础知识(三)---函数语法规则

Python 函数语法规则

1.定义函数

函数的返回,在函数体中 有return语句,return后可以跟多个值用逗号隔开即可

def add (a,b): # 参数名 是函数中的局部变量

return a+b, str(a)+str(b) # 返回多个数据时返回数据类为元组

函数调用

调用: 直接写函数名称 和传递参数

v=add(100,200)

print(v,type(v))

a=10

def f2():

print('函数执行')

#函数没有写 返回值时 默认返回 None

print( f2() ) # 打印f2() 函数执行后的返回值 为None

2.Python 函数 参数的各种形式

1.参数的“多态性” ---- 参数变量 可以代表任何数据类型

def add(a,b):

return a+b

print( add(1,2) )

print( add("hello","world") )

2. 函数对参数的 处理 分可变数据 和不可变数据 两种情况

a=10 # a变量所引用的 值10 所占的内存空间 不可在改变 其中的数据, int,float,bool,Str 等都是不可变数据

def f2(p1):

p1=p1+1

return p1

print(f2(a)) # 当传递到函数中的数据 是不可变数据时,函数中对该数据的更改,不会影响传递进来之前的数据

print(a) # a 仍然保持为 原来的10

# 以上的输出 分别是 11 和10

l1=[1,2] # l1 所引用的值 所占的空间 是可改变的,list set dict 这些数据类型 的存储空间是 可改变的

def f3(p1):

p1.append(3) # 当传递进来的数据 可变时,函数中对数据做的更改,会对传递进来之前的值 产生影响

return p1

print( f3(l1))

print(l1 )

# 以上两行输出的 值是一样的 改变后的。 l1被函数所改变

l2=[3,4,5]

l3=l2

l3.append(6)

print(l2,l3,id(l2),id(l3)) # 表示 l2 l3 都引用同一个 列表

3.函数定义时和调用时 参数列表中 有等号的情况

1.定义函数时 参数带等号 表示给参数设定默认值

def f1(a,b=10):

print(a,b)

调用函数f1

f1(10) # 只给参数 a 传递值10, b参数采用默认值 10

f1(10,20) # 给a传递10, b传递20

以上两行分别输出10 10; 10 20

2.调用函数时 参数带等号,表示 指定给某一个参数传递值

f1(a=123,b=456)

f1(b=123,a=456) #指定给参数传递值 可以不按照 定义函数时 参数的顺序传递

以上两行输出123 456; 456 123

注意:

f1(b=123, 456) # 调用函数时 如果通过指定参数名传递, 则从第一个指定名称传递开始 后面的参数都必须通过指定名称传递

以上写法 会报语法错误!!

f1(b=123, 456)

^

SyntaxError: positional argument follows keyword argument

3. 函数的参数定义时 和调用时 有星号的情况

1. 定义函数时 参数有星号的情况

def f2(*p1): # 星号参数表示在调用该函数时可以传递任意多个参数

print(p1, type(p1)) # 在函数中用一个参数名字统一表示多个数据,以元组形式存在

f2(1,2,3,4,5) # 可以传递任意多个参数 进去

2.调用函数时 参数带星号的情况

def f3(a,b,c,d,e,f):

print(a,b,c,d,e,f)

t1=(1,2,3,4,5,6)

f3(*t1) # 调用函数f3时,可以用一个变量名将多个数据分别传递给各个参数, 按照变量中的元素顺序传递给各个参数

3.定义时参数有2个星号的情况 表示收集任意多 对 键值对,在函数中该参数类型是 “字典”

def add_info(**i):

print(i,type(i))

add_info(name="张", tel='12345678',email='abc@abc.com')

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值