python学习之路(基础篇)——函数

Posted tony8gbmy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习之路(基础篇)——函数相关的知识,希望对你有一定的参考价值。

一、简单介绍

三种编程: 面向对象  class    面向过程   def    函数式编程   def

技术分享图片

过程是没有返回值的函数

定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可
特性:
1、减少重复代码
2、使程序变的可扩展(改一处,都改)
3、使程序变得易维护
语法定义
def sayhi():#函数名
    print("Hello, I‘m nobody!")
 sayhi() #调用函数
可以带参数
 
二、函数的参数
1
    def   call(m):
         print(m)
   
    call(tom)
   该代码中m  为形参     tom   为实参
 
2   
写函数时
def stu_register(name,age,country,course):
    print("----注册学生信息------")
    print("姓名:",name)
    print("age:",age)
    print("国籍:",country)
    print("课程:",course)
stu_register("王山炮",22,"CN","python_devops")
stu_register("张叫春",21,"CN","linux")
stu_register("刘老根",25,"CN","linux")
默认参数 提前定义变量
 
发现 country 这个参数 基本都 是"CN", 就像我们在网站上注册用户,像国籍这种信息,你不填写,默认就会是 中国, 这就是通过默认参数实现的,把country变成默认参数非常简单
def stu_register(name,age,course,country="CN"):
 
3
关键参数
正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只需指定参数名即可,但记住一个要求就是,关键参数必须放在位置参数之后
 
4
非固定参数
若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数
def stu_register(name,age,*args): # *args(args是变量名) 会把多传入的参数变成一个元组形式
    print(name,age,args)
 stu_register("Alex",22)
#args是元组形式
#输出
#Alex 22 () #后面这个()就是args,只是因为没传值,所以为空
 stu_register("Jack",32,"CN","Python")
#输出
# Jack 32 (‘CN‘, ‘Python‘)
 
还可以有一个**kwargs
def stu_register(name,age,*args,**kwargs): # *kwargs 会把多传入的参数变成一个dict形式
    print(name,age,args,kwargs)
 stu_register("Alex",22)
#kwargs 是字典形式
#输出
#Alex 22 () {}#后面这个{}就是kwargs,只是因为没传值,所以为空
 stu_register("Jack",32,"CN","Python",sex="Male",province="ShanDong")
#输出
# Jack 32 (‘CN‘, ‘Python‘) {‘province‘: ‘ShanDong‘, ‘sex‘: ‘Male‘}
将n个关键字参数转换成字典的方式
 
三、函数式编程
函数式编程中的函数这个术语不是指计算机中的函数(实际上是Subroutine),而是指数学中的函数,即自变量的映射。也就是说一个函数的值仅决定于函数参数的值,不依赖其他状态。比如sqrt(x)函数计算x的平方根,只要x不变,不论什么时候调用,调用几次,值都是不变的。
函数式编程 输入确定,输出确定
 
函数不一样 里面有逻辑判断 if x>7: return 0 输入确定 输出不确定
 
四、高阶函数
变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
def add(x,y,f):
    return f(x) + f(y)
res = add(3,-6,abs)
print(res)
abs() 取绝对值
 
 
 
   
 
  

以上是关于python学习之路(基础篇)——函数的主要内容,如果未能解决你的问题,请参考以下文章

Python学习之路——基础05篇

Python学习之路——基础02篇

python学习之路基础篇(第五篇)

Python学习之路——基础07篇

Python学习之路——基础08篇

python学习之路基础篇