计算机管理系统:电脑网络技术记录本

Python

当前位置:首页 > 程序语言集合 > Python

python中函数的概念,以及python函数的定义

python中函数的概念,以及python函数的定义

函数的概念


  在编程中,我们经常要调用相同或者类似的操作,这些相同或者类似的操作是由同一段代码完成的,而函数的出现,可以帮助我们避免重复编写这些代码。函数的作用就是把相对独立的某个功能抽象出来,使之成为一个独立的实体。


 例如:我们开发一个支持人与人之间对话的社交网站,“对话”这个功能实现起来比较复杂,我们可以将它封装为一个函数,每次调用函数就可以发起对话。大型网站都有日志功能,所有重要操作都会记录日志,而日志处理需要多行python文件操作的相关代码组成,将这些代码组成装为函数,每次写日志调用此函数即可。


  python在全世界被广泛使用的一个原因,就是python中有大量的内置函数,这些函数可以帮助我们快速构建各种场景的网站,下面开始讲解python函数。


函数的定义


  定义一个函数只要以“def”开头即可。

def functions_name (arg1,arg2):
    function body
    return value

函数名(functions_name): 和python中其它的标识符命名规则相同,有效的函数名字以字母或下划线开头,后面可以跟字母,数字,下划线,函数名应该能够反映函数所执行的任务。


注意python中的函数名区分大小写,字母相同但是大小写不同的函数视为两个不同的函数。


函数参数(arg1,arg2): 调用一个函数时可以传递的参数。参数可以有一个或者多个,也可以没有参数。


函数内容(function body): 任何有效的代码都可以出现在函数内部。注意函数内容相对于定义函数的 “def”行需要缩进四个空格。


函数返回的值(return value): 函数执行完成后返回的值。也可以不返回任何内容,不返回内容可视为“None”。

def introduce (name):
    print("Hello",name)

introduce("World")

# Hello world

introduce("电脑网络技术记录本")

# Hello 电脑网络技术记录本

执行的结果如下:

Hello World
Hello 电脑网络技术记录本

  函数命名为 “introduce”,接受1个参数 “name”,没有返回值。一共调用了两次函数,每次都会输出如注释中的文字。


函数参数


  在创建函数时,可以设置参数,也可以不设置参数。对于设置参数的函数,当调用函数时需要向函数进行传参,被传入的函数称为实参,而函数定义时的参数为形参。


  python中函数的参数可以分成以下几种类型:

1,必须参数。

2,关键字参数。

3,默认参数。

4,可变参数。

5,组合参数。


必须参数:

必须参数,顾名思义就是函数定义的参数调用时必须传入,并且在调用的时候数量和顺序必须和定义函数时的参数保持一致。例如:

def add(a,b):
    print("a + b =", a+b)
    
add(1,2)

执行结果如下:

a + b = 3

如果我们少传入一个参数:

def two_arg_function(arg1,arg2):

    print("第一个参数",arg1)
    
    print("第二个参数",arg2)
    
two_arg_function(1)

执行结果如下:

TypeError: two_arg_function() missing 1 required positional argument: 'arg2'

这一执行结果告诉我们,调用函数时,函数缺少了一个必要的参数。


如果我们多传入一个参数:

def one_arg_function(arg1):

    print("第一个参数",arg1)
    
one_arg_function(1,2)

执行结果如下:

TypeError: one_arg_function() takes 1 positional argument but 2 were given

这一执行结果告诉我们,函数只需要一个参数,但是调用时给了两个参数。


用过以上例子我们可以发现,调用函数时必须保证参数的数量与定义函数时的参数数量一致。


关键字参数:

使用关键字参数可以不按函数定义时的参数的顺序来调用函数,python解释器能够根据函数定义时的参数名来匹配参数。例如:

def hello(name,age):
    print("姓名",name)
    priny("年龄",age)

 # 按顺序传递参数。      
hello(name="零一",age="18")

# 不按顺序传递参数。
hello(age=3,name="小明")

执行结果如下:

姓名 零一
年龄 18
姓名 小明
年龄 3

但是注意不能传入没有定义的参数。

def person_name(name):
    print("姓名",name)
    
# age 参数未定义
person_name(name="零一",age=18)

执行结果如下:

TypeError: person_name() got an unexpected keyword argument 'age'

这一执行结果告诉我们,代码中有未知的关键字“age”。


通过以上例子,我们可以发现,关键字传参的顺序对结果没有影响,无论是否按照顺序调用都可以得到正常的结果。

文章评论

表情

共 0 条评论,查看全部
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~