函数一

2023-05-16

文章目录

  • 函数
  • 目标
  • 一. 函数的作用
  • 二. 函数的使用步骤
    • 2.1 定义函数
    • 2.2 调用函数
    • 2.3 快速体验
  • 三.函数的参数作用
  • 四.函数的返回值作用
    • 4.1 应用
  • 五.函数的说明文档
    • 5.1 语法
    • 5.2 快速体验
  • 六.函数嵌套调用
  • 七. 函数应用
    • 7.1 打印图形
    • 7.2 函数计算
  • 八. 总结

函数

目标

  • 函数的作用
  • 函数的使用步骤
  • 函数的参数作用
  • 函数的返回值作用
  • 函数的说明文档
  • 函数嵌套

一. 函数的作用

需求:用户到ATM机取钱:

  1. 输入密码后显示"选择功能"界面
  2. 查询余额后显示"选择功能"界面
  3. 取2000钱后显示"选择功能"界面

特点:显示“选择功能”界面需要重复输出给用户,怎么实现?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yTXjFFzP-1600568720933)(01-函数一.assets/image-20181231211912413-6262352.png)]

函数就是将一段具有独立功能的代码块 整合到一个整体并命名,在需要的位置调用这个名称即可完成对应的需求。

函数在开发过程中,可以更高效的实现代码重用

# 因为函数要先定义再调用,所以步骤2和3要在步骤1的上面书写
# 2. 确定选择功能界面: 显示余额 存款 取款; # 3. 封装函数


def sel_func():
    print('显示余额')
    print('存款')
    print('取款')

# 1. 搭建整体框架
"""
输入密码登录后显示功能; 查询余额后显示功能; 取完钱后显示功能
"""
print('恭喜您登录成功')
# 显示功能界面# 4. 在需要的位置调用函数
sel_func()

print('您的余额是10000000')
# 显示功能界面# 4. 在需要的位置调用函数
sel_func()

print('取了100元钱')
# 显示功能界面# 4. 在需要的位置调用函数
sel_func()

二. 函数的使用步骤

2.1 定义函数

def 函数名(参数):
    代码1
    代码2
    ......

2.2 调用函数

函数名(参数)

注意:

1. 不同的需求,参数可有可无。
2. 在Python中,函数必须==先定义后使用==。
# 1. 使用一个函数 2.测试注意事项
# 需求:一个函数:打印hello world

# info_print()  # 报错


# 定义函数
def info_print():
    print('hello world')


# 调用函数
info_print()


"""
结论:
1. 函数先定义后调用,如果先调用会报错
2. 如果没有调用函数,函数里面的代码不会执行
3. 函数执行流程***
    当调用函数的时候,解释器回到定义函数的地方去执行下方缩进的代码,当这些代码执行完,回到调用函数的地方继续向下执行
    定义函数的时候,函数体内部缩进的代码并没有执行
"""

2.3 快速体验

需求:复现ATM取钱功能。

  1. 搭建整体框架(复现需求)
print('密码正确登录成功')

# 显示"选择功能"界面

print('查询余额完毕')

# 显示"选择功能"界面

print('取了2000元钱')

# 显示"选择功能"界面
  1. 确定“选择功能”界面内容
print('查询余额')
print('存款')
print('取款')
  1. 封装"选择功能"

注意:一定是先定义函数,后调用函数。

# 封装ATM机功能选项 -- 定义函数
def select_func():
    print('-----请选择功能-----')
    print('查询余额')
    print('存款')
    print('取款')
    print('-----请选择功能-----')
  1. 调用函数

在需要显示“选择功能”函数的位置调用函数。

print('密码正确登录成功')
# 显示"选择功能"界面 -- 调用函数
select_func()

print('查询余额完毕')
# 显示"选择功能"界面 -- 调用函数
select_func()

print('取了2000元钱')
# 显示"选择功能"界面 -- 调用函数
select_func()

三.函数的参数作用

思考:完成需求如下:一个函数完成两个数1和2的加法运算,如何书写程序?

# 定义函数
def add_num1():
    result = 1 + 2
    print(result)


# 调用函数
add_num1()

思考:上述add_num1函数只能完成数字1和2的加法运算,如果想要这个函数变得更灵活,可以计算任何用户指定的两个数字的和,如何书写程序?

分析:用户要在调用函数的时候指定具体数字,那么在定义函数的时候就需要接收用户指定的数字。函数调用时候指定的数字和定义函数时候接收的数字即是函数的参数。

# 定义函数时同时定义了接收用户数据的参数a和b,a和b是形参
def add_num2(a, b):
    result = a + b
    print(result)


# 调用函数时传入了真实的数据10 和 20,真实数据为实参
add_num2(10, 20)

四.函数的返回值作用

例如:我们去超市购物,比如买烟,给钱之后,是不是售货员会返回给我们烟这个商品,在函数中,如果需要返回结果给用户需要使用函数返回值。

def buy():
    return '烟'

# 使用变量保存函数返回值
goods = buy()
print(goods)

4.1 应用

需求:制作一个计算器,计算任意两数字之和,并保存结果。

def sum_num(a, b):
    return a + b


# 用result变量保存函数返回值
result = sum_num(1, 2)
print(result)

五.函数的说明文档

思考:定义一个函数后,程序员如何书写程序能够快速提示这个函数的作用?

答:注释

思考:如果代码多,我们是不是需要在很多代码中找到这个函数定义的位置才能看到注释?如果想更方便的查看函数的作用怎么办?

答:函数的说明文档

函数的说明文档也叫函数的文档说明。

5.1 语法

  • 定义函数的说明文档
def 函数名(参数):
    """ 说明文档的位置 """
    代码
    ......
  • 查看函数的说明文档
help(函数名)

5.2 快速体验

def sum_num(a, b):
    """ 求和函数 """
    return a + b


help(sum_num)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AjD8oCzU-1600568720937)(01-函数一.assets/image-20190219112749727.png)]

六.函数嵌套调用

所谓函数嵌套调用指的是一个函数里面又调用了另外一个函数

  • 示例
def testB():
    print('---- testB start----')
    print('这里是testB函数执行的代码...(省略)...')
    print('---- testB end----')

def testA():
    print('---- testA start----')
    testB()
    print('---- testA end----')

testA()
  • 效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ryUovCk2-1600568720942)(01-函数一.assets/image-20190219113648783.png)]

  • 执行流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LE9xY4h9-1600568720947)(01-函数一.assets/1.png)]

  • 如果函数A中,调用了另外一个函数B,那么先把函数B中的任务都执行完毕之后才会回到上次 函数A执行的位置。

七. 函数应用

7.1 打印图形

  1. 打印一条横线
def print_line():
    print('-' * 20)


print_line()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7GQYqZCN-1600568720950)(01-函数一.assets/image-20190219155107988.png)]

  1. 打印多条横线
def print_line():
    print('-' * 20)


def print_lines(num):
    i = 0
    while i < num:
        print_line()
        i += 1


print_lines(5)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qILNNyL3-1600568720952)(01-函数一.assets/image-20190219155040124.png)]

7.2 函数计算

  1. 求三个数之和
def sum_num(a, b, c):
    return a + b + c


result = sum_num(1, 2, 3)
print(result)  # 6
  1. 求三个数平均值
def average_num(a, b, c):
    sumResult = sum_num(a, b, c)
    return sumResult / 3

result = average_num(1, 2, 3)
print(result)  # 2.0

八. 总结

  • 函数的作用:封装代码,高效的代码重用

  • 函数使用步骤

    • 定义函数
    def 函数名():
        代码1
        代码2
        ...
    
    • 调用函数
    函数名()
    
  • 函数的参数:函数调用的时候可以传入真实数据,增大函数的使用的灵活性

    • 形参:函数定义时书写的参数(非真实数据)
    • 实参:函数调用时书写的参数(真实数据)
  • 函数的返回值

    • 作用:函数调用后,返回需要的计算结果
    • 写法
    return 表达式
    
  • 函数的说明文档

    • 作用:保存函数解释说明的信息
    • 写法
    def 函数名():
        """ 函数说明文档 """
    
  • 函数嵌套调用:一个函数内部嵌套调用另外一个函数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

函数一 的相关文章

随机推荐

  • vue2\vue3 + ts项目中如何优雅的使用localStorage,可以设置过期时间,存储值加密

    title storage ts Desc 对存储的简单封装 加密库 import CryptoJS from 34 crypto js 34 import projectPrefix expireTimes from 34 variabl
  • SpringBoot:使用application/octet-stream 流式上传大文件,解决Mutipartfile multipart/form-data上传产生临时文件问题

    目录 multipart原理简介multipart的流是服务器临时文件流multipartfile生成临时文件到默认文件夹临时文件的目录可配Mutipartfile的文件默认来自临时文件 Mutipartfile产生临时文件的好处坏处好处坏
  • SpringBoot+Mybatis 动态多数据源

    目录 前言代码 前言 基于SpringBoot Mybatis Druid实现一个服务连接多个数据库的动态数据源代码 xff0c 本文中数据源是固定两个 xff0c 在配置文件和代码中写死成两个了 xff0c 如果需要更多可以修改配置和代码
  • 基于SpringBoot实现的小区物业管理系统(含文档)

    一 技术 框架 xff1a springboot xff0c mybatis xff0c html 工具 xff1a idea或者eclipse xff0c navicat 数据库 xff1a mysql 二 功能描述 1 系统管理 小区物
  • JPA 中的entityManager.createNativeQuery()

    在JPA 中的entityManager createNativeQuery sql 我们用来执行原生的sql xff0c 什么叫原生的sql xff0c 你写的这个sql呢 xff0c 放到数据库中拼接上参数就可以直接执行了 代码举例 s
  • SpringMVC配置详解以及工作流程

    1 SpringMVC配置详解 xff1a 配置激活 64 controller和 64 RequestMapping注解的语句配置静态资源过滤器配置视图解析器 xff0c 如果使用freemarker插件视图解析器的配置在后面实现文件上传
  • python两个服务器之间进行文件传输(转载)

    import os import paramiko class SSHConnection object def init self host port username pwd self host 61 host self port 61
  • linux服务器开机启动流程

    Linux服务器开机启动流程顺序 xff1a 通电 gt BIOS gt 主引导记录 xff08 MBR xff09 gt grub引导 gt 加载内核 gt init进程 gt 读取 etc inittab xff08 运行级别 xff0
  • CentOS7升级8及glibc更新尝试

    CentOS7升级8及glibc更新尝试 建国70周年 xff0c 想听我和我的祖国 xff0c 想着下载个网易云音乐 结果启动 xy 64 xycto netease cloud music 发现libgcc版本太低不支持 xff0c o
  • 消息队列3个面试题

    1 在何种场景下使用了消息中间件 xff1f 2 为什么要在系统里引入消息中间件 xff1f 3 如何实现幂等 xff1f 链式调用是我们在写程序时候的一般流程 xff0c 为了完成一个整体功能 xff0c 会将其拆分成多个函数 xff08
  • 华为开发者大会2019观后感

  • element 时间日期选择器限制选择至少7天,快捷选择回调使用methods内的方法

    template部分代码 lt el date picker append to body 61 34 false 34 64 change 61 34 dateChange1 34 v model 61 34 targetTime1 34
  • win7+Ubuntu18.04双磁盘双系统安装踩坑记录

    win7 43 Ubuntu18 04双磁盘双系统安装踩坑记录 重装双系统 之前安装的双系统不知道什么原因不能进入了 xff0c 只能进入win7系统 xff0c 试了很多办法后决定重装ubuntu 1 备份原始Ubuntu重要文件 进入w
  • 指针和函数

    指针和函数 1 形参改变不了实参的值 图1 图1 2 通过地址传递可以改变实参的值 xff1a 图2 注意 xff1a 在图1与图2 在定义函数参数中 a b前 星号 的有无 说明传递的是 实参的地址与实参的值 2 函数参数中如果有数组 都
  • 文件操作

    文件操作 1 文件分类 xff1a 文本文件 xff08 例 xff1a 记事本 xff09 二进制文件 xff08 例 xff1a 视频文件 xff09 xff0c 优点 xff1a 所占内存较小 操作文件地址的两种方式 xff1a 相对
  • 简易文本编辑器

    C语言QT开发简易文本编辑器 文件 xff1a 新建 打开 保存 另存为 推出 编辑 xff1a 撤销 赋值 粘贴 剪切 构架 xff1a 编译 帮助 xff1a 关于 删除下方对框栏 设置textexit全屏 先点击textedit 然后
  • 二叉树编程

    二叉树编程 span class token macro property span class token directive keyword define span CRT SECURE NO WARNINGS span span cl
  • 字符串

    字符串 目标 认识字符串下标切片常用操作方法 一 认识字符串 字符串是 Python 中最常用的数据类型 我们一般使用引号来创建字符串 创建字符串很简单 xff0c 只要为变量分配一个值即可 a span class token opera
  • 集合

    集合 目标 创建集合集合数据的特点集合的常见操作 一 创建集合 创建集合使用 或set xff0c 但是如果要创建空集合只能使用set xff0c 因为 用来创建空字典 s1 span class token operator 61 spa
  • 函数一

    文章目录 函数目标一 函数的作用二 函数的使用步骤2 1 定义函数2 2 调用函数2 3 快速体验 三 函数的参数作用四 函数的返回值作用4 1 应用 五 函数的说明文档5 1 语法5 2 快速体验 六 函数嵌套调用七 函数应用7 1 打印