函数基础

函数的作用

1.没有使用函数的时候的问题:
a.同样的代码要写多次(冗余)
b.功能发生改变的时候需要修改多个位置的代码

2.解决问题:用函数

1.函数的声明

1.什么是函数

1)函数的定义
函数就是对实现某一特定功能的代码的封装

2)函数的分类
系统函数 - 系统(语言系统)已经声明好,程序员可以直接使用的函数(别造好的机器),列如:print、input、hex、bin、oct、chr.
自定义函数 - 开发者自己声明的函数(自己造机器).

2.函数的声明(定义函数) - 造机器
  • 1)语法:
    def 函数名(参数列表):
    函数说明文档
    函数体

  • 2)说明
    def - 关键字;固定写法
    函数名 - 和变量名的要求一样
    (): - 固定写法
    参数列表 - 这儿的参数又叫形参;以'参数名1,参数名2,....’的形式存在,参数名其实就是变量名
    作用:将函数外面的数据传到函数里面
    函数说明文档 - 本质就是一段注释;必须在第一行有效代码的前面,需要使用三个双引号引起来的(机器的说明书)
    函数体 - 和def保持一个缩进的一条或者多条语句;实现函数功能的代码

  • 3)初学者声明函数的步骤
    a.确定函数的功能
    b.根据功能确定函数名
    c.确定参数(形参),看实现函数的功能需不需要额外的数据,需要几个就设置几个形参
    d.实现函数的功能
    e.写说明文档

注意: 声明函数的时候不会执行函数!!(重要!)

# 1)声明一个函数,打印两个数的和
def yt_sum(num1, num2):
    """
    (函数功能说明区)求两个数的和
    :param num1: 提供第一个数;数字
    :param num2: 提供第二个数;数字
    :return:(返回值)
    """
    print(num1 + num2)


# 2)声明一个函数,求N!
def jiecheng_sum(sun):
    """
    求一个数的阶乘
    :param sun: 提供需求的数
    :return:
    """
    a = 1
    for x in range(sun):
        a *= (x + 1)
    print(a)
3.函数的调用
  • 1)语法
    函数(实参列表)

  • 2)说明
    函数 - 已经声明的函数
    () - 固定写法
    实参列表 - 多个数据用逗号隔开;需要传递到函数中使用的具体的数据,用来形参赋值的

  • 3)函数的调用过程
    a.回到函数声明的位置
    b.传参 - 用实参给形参赋值(必须保证每个形参都有值)
    c.执行函数体
    d.确定返回值
    e.回到函数调用的位置,接着往后执行

2.函数的声明

1.根据实参的传值方式将实参分为: 位置参数、关键字参数

1)位置参数 - 直接让实参的值和形参一一对应
2)关键字参数 - 调用函数的时候以'形参名1=值,形参名2=值2,....'的形式传参
3)位置参数和关键字参数混用 - 混用的时候必须保证位置参数在关键字参数的前面,同时保证每个参数都有值

def func1(a, b, c):
    print('a:{},b:{},c:{}'.format(a, b, c))


# 位置参数
func1(10, 20, 30)

# 关键字参数
func1(c=33, b=22, a=11)

# 混用
func1(100, c=300, b=100)
2.参数默认值(形参)

声明函数的时候,可以通过'参数名=值'的形式给参数默认值;有默认值的参数在调用的时候可以不传参

关键字参数的使用场景:想要跳过前面有默认值的参数直接给后面参数赋值的时候,必须使用关键字参数
注意:有默认值的参数必须放在没有没有默认值参数的后面

def func2(a, b, c=30):
    print('a;{},b:{},c{}'.format(a, b, c))
3. 参数类型说明

1)给参数赋默认值
2)形参:类型名
3)返回值类型说明 -> 类型

4.不定长参数

声明函数的时候,参数个数不确定(不定长参数)
1)声明函数的时候在参数名前加*,这个参数就会变成一个元组,元组中的元素就是对应的多个实参
注意:
a.调用的时候只能使用位置参数
b.不定长参数后面如果有其他的定长参数,那么它后面的其他参数必须使用关键字参数传参

2)声明函数的时候在参数名前加,这个参数会变成字典,字典中的元素->关键字:实参值
注意:
a.调用的时候只能使用关键字参数
b.
*可以同时使用这个参数值个数不固定,同时可以同时使用位置和关键数据查询

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第 2 章:函数基础 函数式编程不是仅仅用 function 这个关键词来编程。如果真这么简单,那我这本书可以到此...
    iKcamp阅读 4,463评论 0 7
  • 一、函数基础 1.什么是函数 函数就是对实现某一特定功能的代码段的封装 2.函数的分类 系统函数: 系统已经给我们...
    星龙断月阅读 1,306评论 0 0
  • 函数基础 review 1.python中三个单引号或者三个双引号引起来的也是字符串,这种字符串在字符串内部可以直...
    漫磋嗟阅读 3,590评论 0 0
  • 姐姐和表妹都出去聚会去了,今天晚上我有可能一个人睡。 没剩几天就要出去工作了,初十上班,可是票还没有买...
    李志富阅读 988评论 0 1
  • 米切尔,这个一年前进入NBA的小个子球员。 去年,他作为新2017年12月6日,在爵士队客场94-100不敌...
    卞y阅读 4,223评论 0 1