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知识库 -> 学习python的第二十九天 -> 正文阅读

[Python知识库]学习python的第二十九天

函数的作用

  1. 函数存在的价值:当一个功能需要反复使用的时候,调用实现这个功能的条件。

  2. 实现功能对应的代码只需要写一遍(封装成函数),然后再每次需要这个功能的时候调用实现这个功能的函数。

    def sumN(num):
        sum1 = 0
        for x in range(1, num+1):
            sum1 += x
        print('和:', sum1)
    sumN(10)
    sumN(50)
    

例:提取’shhk237水电费9292KJs8’

def get_nums(str1):
    new_str1 = ''
    for x in str1:
        if x.isdigit():
            new_str1 += x
    print(new_str1)
get_nums('shhk237水电费9292KJs8')

认识函数

1. 什么是函数

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

2. 函数的分类

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

  • 系统函数(别人已经造好的机器) - 由系统创建的函数(Python本身就创建好的函数),例如:print、input、type、max、min等。
  • 自定义函数(自己造的机器) - 由程序员自己创建的函数。

3. 定义函数

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

例1:定义一个函数求一个数的阶乘

def factorial(num):
    sum1 = 1
    for x in range(1, num+1):
        sum1 *= x
    print(sum1)
factorial(10)

例2:定义一个函数求两个数的乘积

def product(num1, num2):
    print(num1 * num2)
product(10,20)

条件对应的表达式如果不是布尔,就转换成布尔看结果是否为True (0值和空值是False, 其他都是True)

调用函数

1. 调用函数

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

重要结论:定义函数不会执行函数体,调用函数的时候才会执行函数体

例:

def func1():
    pass
func1()

2. 函数调用过程

每次在调用函数的时候,它的执行步骤:

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

练习:定义一个函数求5的阶乘!

def factorial(num):
    sum1 = 1
    for x in range(1, num+1):
        sum1 *= x
    print(sum1)
factorial(5)

函数的参数

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

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

  • 位置参数:以’实参1,实参2,实参3,…'的形式存在,让实参和形参从位置上一一对应。
  • 关键字参数:以’形参1=实参1, 形参2=实参2,…‘的形式存在,通过’='将实参和形参对应。

? 注意:位置参数和关键字参数可以一起用,但是必须保证位置参数在关键字参数的前面

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

2. 参数默认值

定义函数的时候可以通过’形参名=数据’的方式给形参赋默认值;

在调用函数的时候,有默认值的参数可以不用传参。

注意:定义函数的时候,如果一个函数有的参数有默认值有的参数没有默认值,没有默认值的形参必须在有默认值的形参的前面

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

如果想要跳过前面有默认值的参数,直接给后面的参数赋值,使用关键字参数传参.

3. 参数类型说明

没有默认值参数的类型说明:直接在形参后面加’:类型名’;
有默认值的参数,默认值数据对应的类型就是这个形参的类型。

-> str:返回值类型说明

def func1(x: str, y='') -> str:
    return x.strip()

4. 对应的不定长参数

  • 参数个数不确定可以使用不确长参数。

    定义函数的时候,如果在某一个形参前面加*,那么这个形参就会变成一个不定长参数,它可以接收多个实参(可以是0个、1个、2个、…、10个…)。
    带*的不定长参数的本质是一个元组,它接收到的所有的实参是这个元组中的元素。

    例1:定义函数求多个数的和

    def sumN(*nums):
        sum1 = 0
        for x in nums:
            sum1 += x
        print(sum1)
    sumN(10)
    sumN(1, 23, 45)
    

    例2:定义一个函数收集学生信息

    def get_stu_info(name, age, *awards):
        print(awards)
    get_stu_info('小明', 18)
    get_stu_info('小明', 18, '三好学生', '优秀干部')
    
  • 定义函数的时候单独使用*

    如果定义函数的时候,形参列表中有一个独立的*,调用函数的时候*后面的所有的形参必须使用关键字参数传参。

    def func1(x, *, y, z):
        pass
    func1(10, y=20, z=30)
    
    def func2(x, *y, z, t):
        print(x)
        print(y)
        print(z, t)
    func2(10, 27, 89, 34, 78, 34, z=100, t=200)
    # 10 (12, 45, 32, 16) 15 21
    
  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:44:44 
 
开发: 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年11日历 -2024/11/15 9:52:51-

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