python开发之路---第二章之--基本函数介绍

1、函数: 是指一组语句的集合,通过一个名字(函数名)封装起来,要想执行这个函数,只需要调用函数名即可

优点:

# 减少重复代码

# 使程序可扩展

# 使程序易维

栗子1:

1 def sayhi():
2     print ('hello')
3 
4 sayhi()

## sayhi 是指向函数的内存地址,加了() 就是执行这个函数

# 如下又是一种,这个是可以给函数插入参数,参数可以根据调用时传入的参数的不同,来决定内部执行代码的流程

eg:(1)

1 def sayhi(name):
2     print('hello',name)
3 
4 say('feifei')

eg:(2)

1 def cale(x,y):
2      res = x ** y
3      print(res)
4 
5 cale(5,10)
6 cale(2,10)

#形式参数和实参

1 def cale(x,y)  ## 形参,只在函数内部有效,只有在调用并分配值得时候,才会分配内存空间,并在调用结束后,就释放内存
2     res= x ** y
3     return res
4 
5 c = cale(a,b)  ## 实参
6 print(c)

##默认参数,默认参数必须放在位置参数的后面(必须必须!!!)

1 def stu_register(name,age,course,country='CN',):  ##country就是默认参数,默认参数必须放在最后面
2     print('-----注册学生信息-----')
3     print('姓名',name)
4     print('age',age)
5     print('国籍',country)
6     print('课程',course)
7 
8 
9 stu_register('feifei',23,'中文')

## 关键参数,不想按顺序的时候就用关键参数,关键参数必须放在位置参数的后面

def stu_register(name,age,course,country='CN',):
    print('-----注册学生信息-----')
    print('姓名',name)
    print('age',age)
    print('国籍',country)
    print('课程',course)


stu_register('王大哥',course='PYthon',age=22,)

##j绝对不可以这样

## stu_register('王大哥',course='PYthon',23)

## 非固定参数,如果参数中出现了*形式参数,传递的参数就可以不再是固定参数,会把传入的参数打包称为一个元祖,发送给*agrs,

def send_alert(msg,*agrs)   ## 一个※ 代表可以传入无限数量的参数都代表*usr
    for u in users:
    print('我要发信息给',u)

##方式一参数传递方式:
send_alert(
'我要发信息',‘alex’,'abc')


##方式二参数传递方式:*号后手动加上'[ ]'
send_alert('我要发信息',*[‘alex’,'abc'])


## 非固定参数2, 2个*的形式参数 **kwargs 接受的是关键字参数

def func(name,*args,**kwargs):
    print(name,args,kwargs)

func('pengfei',22,'tesla','1000w')
func('pengfei',22,'tesla','1000w',addr='山东',num='12442323')

。。。。。。待续

猜你喜欢

转载自www.cnblogs.com/LoveElsa/p/10247666.html