IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 学习总结week3_1函数 -> 正文阅读

[Python知识库]学习总结week3_1函数

python函数

一、函数作用

当一个功能需要反复使用的时候,将此功能编写成函数,后续需要此功能时,调用此函数即可

1.什么是函数

实现某一特定功能的代码封装
实现某一或者某类功能的代码打成一个包,以后在需要这包中的这段代码对应的功能的时候,使用该函数即可

2…函数的分类

根据这个函数是由谁创建的,我们将函数分为系统函数;自定义函数

1)系统 - 系统创建的函数(python本身创建的函数)(print / input 等)
2)自定义 - 有程序员自己创建的函数

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

3.说明

1)def - 关键字;固定写法
2)函数名 - 自命名(两个要求,三个规范)
3)() - 固定写法
4)形参列表 - 以’变量名1, 变量名2,变量名3,…'的形式存在,根据情况变量的数据可以为0
作用:将函数外部的数据传递到函数里面
确定形参的方法:看实现函数的功能需不需要额外的数据,需要多少个
5)函数说明文档 - 多行注释
6)函数体 - 结构上,和def保持一个缩进的一条或者多条语句
逻辑上,函数体就是实现函数功能的代码

def dict_exchange(dict1):
    """
    (功能说明区):交换字典的键,值
    :param dict1: (参数说明区)
    :return: (返回值说明区)
    """
    dict2 = {}
    for x in dict1:
        c = dict1[x]
        dict2.setdefault(c, x)
    print(dict2)


dict_exchange({'a': 1, 'b': 2, 'c': 3, 'd': 4})
dict_exchange({'a': 1, 'b': 2})
# 练习:定义一个函数统计字符串中数字字符的个数
def count_numbers(str1):
    count = 0
    for x in str1:
        if x.isdigit():
            count += 1
    print(count)


# 练习2:定义一个函数,将两个字符串中所有的大写字母合并成一个新的字符串
def merge_upper(str1, str2):
    str3 = ''
    for x in str1 + str2:
        if x.isupper():
            str3 += x
    print(str3)


# 练习3:定义一个函数,删除列表中所有的空值
# (包括None,和其他空值(比如空字符串、空列表、空元组等))
def delete_null(list1):
    for x in list1[:]:
        if not x and x != 0:
            list1.remove(x)
    print(list1)

二、调用函数

1.语法:函数名(实参列表)

说明:
1.函数名 - 需要哪个函数对应的功能,就调用那个,想要调用哪个,就写那个函数名
函数名必须是已经定义过函数的函数名
2.() - 固定写法
3.实参列表 - 以’数据1, 数据2, 数据3’的形式存在,每一个数据就是一个实参
实参对应的数据可以是任何有结果的表达式 / 实参是用来给形参赋值的,在提供实参时要和形参保持一一对应
重要结论:定义函数不会执行函数体,调用才会执行

2.函数调用过程

每次在调用函数时,执行步骤是:
1.回到函数定义的位置 def在哪行,先回到那行
2.传参(用实参给形参赋值,要一一对应,每个形参都要有值)
3.执行函数体
4.确定函数返回值
5.回到函数调用的位置,接着往后执行

3.位置参数和关键字参数

根据实参的提供方式将实参分为位置参数和关键字参数两种

1.位置参数:以’实参1, 实参2, 实参3,…'的形式存在,让实参和形参从位置上一一对应
2.关键字参数:以’形参1 = 实参1, 形参2 = 实参2, …‘的形式存在,通过’='将两者对应,顺序不影响
注意:两者可以一起用,但是必须保证位置参数在关键字参数的前面

4.参数默认值

定义函数的时候可以通过’形参 = 数据’的方式,给形参赋默认值:
若形参有默认值,在调用函数时,有默认值的参数可以不用传参
在调用时,若是输入位置参数,按顺序替换
注意:在定义函数的时候,如果一个函数有的参数有默认值,有的没有,没有默认值的形参必须在有默认值的形参的前面

def func1(x=10, y=20, z=30):
    print(f'x:{x}, y:{y}, z:{z}')


func1(100)
func1(z=300)
func1(100, 200)


def func2(x, y, z=10):
    print(x, y, z)


func2(10, 10)

5.参数类型说明

对于无默认值参数的类型说明,直接在形参后面加: 类型名
有默认值的参数,默认值数据对应的类型就是这个形参的类型
返回值对应的类型说明 def func3(x: str) -> str:

def func3(x: str):
    print(x.count('0'))

6.*对应的不定长参数

1)定义函数的时候,如果在某一个形参前面加*,那么这个形参就会变成一个不定长参数,可以接受多个实参
带 * 的不定长参数的本质是一个元组,他接受到的所有的实参是这个元组的元素

def sum_n(*num):
    nums = 0
    for x in num:
        nums += x
    print(nums)


sum_n(11, 22, 33)
sum_n(11)

2)定义函数的时候单独使用 * :调用函数时,强迫*后面的实参必须要用关键字参数传参

def func4(x, *, y, z):
    print(x, y, z)


func4(10, y=10, z=10)
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 10:40:12  更:2022-08-06 10:41:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 14:43:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计