day10-函数基础

1.函数的声明

1)什么是函数

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

2)函数的分类

按照函数是谁来声明的将函数分为系统函数和自定义函数

  • 系统函数:由系统声明,程序员直接使用的函数。例如:print/input/hex/length/sum/max/min等
  • 自定义函数:由程序员自己声明的函数

3)函数的声明(定义)

a.语法:

def 函数名(参数列表):
函数说明文档
函数体

b.说明

def - python声明函数的关键字,固定写法
函数名 - 程序员自己命名;
要求:是标识符,不能是关键字
规范:PEP命名规范;见名知义(看到函数名大概知道函数的功能);不能使用系统函数名或者类名
() - 固定写法
参数列表 - 这儿的参数叫形参;以'变量名1,变量名2,...'的形式存在
它的作用是将函数外面的数据传递到函数里面
: - 固定写法
函数说明文档 - 使用三个双引号引起来的文本信息
函数体 - 和def保持一个缩进的一条或者多条语句。就是实现函数功能的代码段

c.初学者声明函数的步骤

1.确定函数功能
2.根据功能确定函数名
3.确定函数的参数;看实现函数的功能需不需要额外的数据,需要几个
4.实现函数的功能
5.写函数说明文档

d.注意:函数在声明的时候不会执行函数体,调用的时候才会执行(重要!)

写一个函数,求两个数的和

def ysy_sum(num1, num2):
    """
    功能说明:求两个数的和
    :param num1: 参数说明  - 数字
    :param num2: 参数说明  - 数字
    :return: 返回和的值
    """
    sum1 = num1 + num2
    return sum1


print(ysy_sum(1, 2))

练习:写一个函数,打印指定字符串中所有的中文字符

def c_char(str1):
    """
    功能说明:求指定字符串中所有的中文字符
    :param str1: 指定的字符串
    :return: 返回一个包含所有中文的新的字符串
    """
    str2 = ''
    for chars in str1:
        if '\u4e00' <= chars <= '\u9fa5':
            str2 += chars
    return str2


print(c_char('as12哈哈9你好1q'))

4)函数的调用

a.语法

函数(实参列表)

b.说明

函数名 - 已经声明过的函数名
() - 固定写法
实参列表 - 以‘值1,值2,值3,...’的形式存在;实参是用来给形参赋值的

c.注意:同一个函数可以调用多次

2.函数的调用

1)函数的调用过程

1)回到函数声明的位置
2)用实参给形参赋值(传参);传参的时候要保证每个参数都有值
3)执行函数体
4)确定函数的返回值
5)回到函数调用的位置,接着往后执行。

def ysy_sum(num1, num2):
    # num1 = 1, num2 = 2
    print(num1 + num2)


ysy_sum(1, 2)

3.函数的参数

1)参数分类

1.位置参数和关键字参数(实参分类)

a.位置参数:让实参和形参一一对应,来给不同的形参赋不同的值
b.关键字参数:以'参数名1=值1,参数名2=值2,...'的形式来传参
注意:1.如果位置参数和关键字参数同时存在的时候,位置参数必须放在关键字参数的前面
2.如果希望跳过前面某个、某几个参数,直接给后面的参数赋值,就必须使用关键字参数

def func1(x, y, z):
    print(x, y, z)


# 位置参数
func1(1, 2, 3)

# 关键字参数
func1(x=1, y=1, z=1)
func1(y=2, x=1, z=3)

# 位置参数+关键字参数
func1(3, z=2, y=1)

2.参数默认值 - 形参

声明函数的时候,可以给形参赋默认值;已经有默认值的参数在调用的时候可以不用传参

注意:没有默认值的参数必须放在有默认值参数的前面

def func2(x, y=2, z=1):
    print(x, y, z)


func2(1, z=2)

3.参数类型说明

a.给参数设置默认值,默认值的类型就是参数类型
b.形参:类型名

4.不定长参数 - 参数个数不确定

a.在参数名前加,那么这个参数就会变成一个元组去接收多个参数,调用的时候不能使用关键字参数传参
b.在参数名前加
*,那么这个参数就会变成一个字典去接收多个参数,调用的时候只能使用关键字参数传参

# 计算多个数的和
def ysy_sum(*num):
    print(sum(num))


ysy_sum(1, 2, 3)


def func5(x, *y):
    print(x)
    print(y)


func5('ab', 1, '1s')


def func6(**num):
    print(num)


func6()
# func6(1)    # TypeError: func6() takes 0 positional arguments but 1 was given
func6(x=10)
func6(x=1, y=2)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言回顾 1.函数的定义:函数就是对实现某一特定功能的代码块的封装2.函数的声明: def 函数名(形参列表):函...
    不语sun阅读 212评论 0 0
  • """author = 陈俊龙""" ============函数的返回值============== 1.什么是...
    陈俊龙1995阅读 172评论 0 0
  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,914评论 0 5
  • 一、函数的返回值 返回值就是函数返回给函数调用者的值(概念) 返回值就是return后面的值(语法) 返回值就是函...
    毋望阅读 143评论 0 0
  • 第5章 函数和函数式编程 5.1 引言函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数...
    VIVAFT阅读 1,062评论 0 5

友情链接更多精彩内容