python-----函数1

函数是一个过程、功能、动作,实现某个功能或者某些功能指令的集合

1 函数的定义

def (define function)
语法结构:
def 函数名称([参数列表 ] :
     # 缩进 函数体
    #[ return 返回值 ]
#定义一个取绝对值的函数
def abs(x):
    if x >= 0:
        return x
    else:
        return -x
print(abs(-100))

#结果返回多个值
import math 
def move(x,y,step,angle=0): 
    nx = x + step*math.cos(angle) 
    ny = y - step*math.sin(angle) 
    return nx,ny 
x,y = move(7,7,7,math.pi/6) 
print(x,y)

#结果返回多个值(返回多个值的时候实际返回的是一个元组)
import math 
def move(x,y,step,angle=0): 
    nx = x + step*math.cos(angle) 
    ny = y - step*math.sin(angle) 
    return nx,ny 
r = move(7,7,7,math.pi/6) 
print(r)

2 函数的调用

函数名称([参数 ]
#abs为取绝对值函数
>>> x = abs 
>>> x(-1)
1

3 函数的分类

1 、有无参数
有参函数和无参函数
2 、有无返回值
有返回值函数和无返回值函数
3 、根据定义者角色
系统自定义(内置函数)
第三方 ( 公司、个人、组织 ) 自定义的

4 函数的参数

     4.1位置参数

#对于power(x,n)来说有两个参数,调用函数的时候需要依次按照顺序传入两个参数的值
def power(x,n): # x = 4 n =3 
    s = 1 
    while n > 0: 
        n = n -1   # n = 3-1=2   n = 2-1  n = 1-1 
        s = s * x  # s = 1 *4    s = 4*4  s = 16 * 4 
    return s 
print(power(4,3))

     4.2默认值参数

默认值参数就是给一个参数设定默认值,如果这个参数没有传入相对应的值,按照默认值进行计
算,如果传入对应的值,按照传入的值进行计算
注意:默认值参数写在后面
def power(x,n=2):        # x = 4 n =3 
    s = 1 
    while n > 0: 
        n = n -1         # n = 3-1=2  n = 2-1   n = 1-1 
        s = s * x        # s = 1 *4   s = 4*4   s = 16 * 4 
    return s 
print(power(4))

     4.3可变参数

可变参数, * 表示可变参数
允许调用函数的时候传入 0 个或者任意个参数,系统会将这些参数自动封装成元组
def num(*numbers): 
    sum = 0 
    for n in numbers: 
        sum = sum + n*n 
    return sum 
# print(num([1,2,3,4])) 
# print(num((1,2,3,4))) 
print(num(1,2,3,4)) 
print(num(1,2,3))

     4.4关键字参数

允许调用函数的时候传入 0 个或者任意个参数,系统会将这些参数自动封装成字典
>>> def person(name,age,**kw): 
... print("name:",name,"age:",age,"other:",kw) 
... 
>>> person("zhangsan",18) 
name: zhangsan age: 18 other: {} 
>>> person("zhangsan",18,city="Beijing") 
name: zhangsan age: 18 other: {'city': 'Beijing'} 
>>> person("zhangsan",18,city="Beijing",gender="男") 
name: zhangsan age: 18 other: {'city': 'Beijing', 'gender': '男'} 
>>> d = {"city":"chongqing","gender":"男"} 
>>> person("lisi",20,city=d["city"],gender=d["gender"]) 
name: lisi age: 20 other: {'city': 'chongqing', 'gender': '男'} 
>>> person("lisi",20,**d) 
name: lisi age: 20 other: {'city': 'chongqing', 'gender': '男'}

     4.5命名关键字参数

>>> def person(name,age,*,city,gender): 
... print(name,age,city,gender) 
... 
>>> person("zhansgan",24,city="beijing",gender="男") 
zhansgan 24 beijing 男


#报错
#报错原因:person("zhansgan",24,"beijing","男")报错的原因是没有出现命名关键字,系统默认的是位置参
数,person(name,age,*,city,gender)函数位置参数只有两个,所以会报错
>>> person("zhansgan",24,"beijing","男") 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: person() takes 2 positional arguments but 4 were given

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值