Python基础(十六):函数的初步认识

news2024/11/18 0:48:28

文章目录

函数的初步认识

一、函数的作用

二、函数的使用步骤

1、定义函数

2、调用函数

3、快速体验

三、函数的参数作用

四、函数的返回值作用

1、应用

五、函数的说明文档

1、语法

2、快速体验

3、函数嵌套调用

七、函数应用

1、打印图形

2、函数计算

八、总结


函数的初步认识

一、函数的作用

需求:用户到 ATM 机取钱:
1. 输⼊密码后显示 " 选择功能 " 界面
2. 查询余额后显示 " 选择功能 "界面
3. 2000 钱后显示 " 选择功能 "界面

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

函数就是将 ⼀段具有独立功能的代码块 整合到⼀个整体并命名,在需要的位置 调⽤这个名称 即可完成对应的需求。
函数在开发过程中,可以更⾼效的实现 代码重用

二、函数的使用步骤

1、定义函数

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

2、调用函数

函数名(参数)
注意:
  • 不同的需求,参数可有可无。
  • Python中,函数必须先定义后使用

3、快速体验

需求:复现 ATM 取钱功能。
3.1、搭建整体框架(复现需求)
print('密码正确登录成功')
# 显示"选择功能"界⾯
print('查询余额完毕')
# 显示"选择功能"界⾯
print('取了2000元钱')
# 显示"选择功能"界⾯

3.2、确定“选择功能”界面内容

print('查询余额')
print('存款')
print('取款')
3.3、封装“选择功能”
注意:⼀定是先定义函数,后调⽤函数。
# 封装ATM机功能选项 -- 定义函数
def select_func():
    print('-----请选择功能-----')
    print('查询余额')
    print('存款')
    print('取款')
    print('-----请选择功能-----')

3.4、调用函数

在需要显示 选择功能 函数的位置调用函数。
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)

1、应用

需求:制作⼀个计算器,计算任意两数字之和,并保存结果。
def sum_num(a, b):
    return a + b
# ⽤result变量保存函数返回值
result = sum_num(1, 2)
print(result)

五、函数的说明文档

思考:定义⼀个函数后,程序员如何书写程序能够快速提示这个函数的作用?
答:注释
思考:如果代码多,我们是不是需要在很多代码中找到这个函数定义的位置才能看到注释?如果想更方便的查看函数的作用怎么办?
答:函数的说明文档
函数的说明⽂档也叫函数的⽂档说明。

1、语法

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

2、快速体验

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

3、函数嵌套调用

所谓函数嵌套调用指的是 ⼀个函数里面⼜调用了另外⼀个函数
  • 示例
def testB():
    print('---- testB start----')
    print('这⾥是testB函数执⾏的代码...(省略)...')
    print('---- testB end----')
def testA():
    print('---- testA start----')
    testB()
    print('---- testA end----')
testA()
  • 效果

  • 执行流程

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

七、函数应用

1、打印图形

1.1、打印⼀条横线
def print_line():
    print('-' * 20)
print_line()

1.2、打印多条横线

def print_line():
    print('-' * 20)
def print_lines(num):
    i = 0
    while i < num:
        print_line()
        i += 1

print_lines(5)

2、函数计算

2.1、求三个数之和
def sum_num(a, b, c):
    return a + b + c
result = sum_num(1, 2, 3)
print(result) # 6

2.2、求三个数平均值

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

八、总结

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

2、函数使用步骤

  • 定义函数
def 函数名():
    代码1
    代码2
    ...
  • 调用函数
函数名()

3、函数的参数:函数调⽤的时候可以传⼊真实数据,增⼤函数的使⽤的灵活性

  • 形参:函数定义时书写的参数(非真实数据)
  • 实参:函数调⽤时书写的参数(真实数据)

4、函数的返回值

  • 作用:函数调⽤后,返回需要的计算结果
  • 写法

5、函数的说明文档

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

  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/96352.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

还在为多张Excel汇总统计发愁?Python 秒处理真香!

为什么越来越多的非程序员白领都开始学习 Python &#xff1f;他们可能并不是想要学习 Python 去爬取一些网站从而获得酷酷的成就感&#xff0c;而是工作中遇到好多数据分析处理的问题&#xff0c;用 Python 就可以简单高效地解决。本文就通过一个实际的例子来给大家展示一下 P…

新手传奇gm架设要学会的几个修改技巧

每个传奇gm对于架设一个服务器都有自己独立的看法和想法&#xff0c;一些人之所以会想着要架设一个传奇私服主要原因是自己在其他人的服力玩得不是那么舒心。所以想要按照自己的想法和思路打造一个适合自己的专属服务器进行游戏&#xff0c;其实这两者之间是有必然联系的&#…

毕业三年活得像个废物,转行网络安全,写给像我一样迷茫的人...

首先说说我吧&#xff0c;普通二本非科班商贸专业毕业&#xff0c;三年了&#xff0c;做过电商&#xff0c;做过新媒体&#xff0c;做过业务员&#xff0c;从躺平到摆烂&#xff0c;一开始还挺享受这样的生活的&#xff0c;毕竟每月4千工资&#xff0c;抛出吃住&#xff0c;剩个…

重学webpack系列(八) -- webpack的运行机制与工作原理

前面几个章节我们分别去探索了webpack的loader机制、plugin机制、devServer、sourceMap、HMR&#xff0c;但是你是否知道这些配置项是怎么去跟webpack本身执行机制挂钩的呢&#xff1f;这一章我们就来探索一下webpack的运行机制与工作原理吧。 webpack核心工作过程 我们打开w…

第十四章 文件操作

1.文件的基本操作 文件&#xff0c;对我们并不陌生&#xff0c;文件是数据源&#xff08;保存数据的地方&#xff09;的一种&#xff0c;比如大家经常使用的Word文档&#xff0c;TXT文件&#xff0c;excel文件…都是文件。文件最主要的作用就是保存数据&#xff0c;它既可以保…

用户虚拟地址空间管理-mm_struct

一、进程虚拟地址空间管理概览 二、mm_struct结构体的主要成员 atomic_t mm_users;共享同一个用户虚拟地址空间的进程的数量&#xff0c;也就是线程组包含的进程的数量atomic_t mm_count;内存描述符的引用计数struct vm_area_struct *mmap;虚拟内存区域链表struct rb_root mm_…

【java】课程设计--抽卡模拟器

文章目录工期安排自己实现菜单逻辑抽卡算法0.书写要求1.用户需求2.设计思想3.各个功能和算法描述4.系统调试中问题5.总结新知识怎么打开任务管理器改进&#xff08;进一步的设想&#xff09;交给她们实现1.注册登录2.读文件-显示查找内容暂时成功案例工期安排 1 自定义增加和删…

数据权限就该这么设计

在项目实际开发中我们不光要控制一个用户能访问哪些资源&#xff0c;还需要控制用户只能访问资源中的某部分数据。 控制一个用户能访问哪些资源我们有很成熟的权限管理模型即RBAC&#xff0c;但是控制用户只能访问某部分资源&#xff08;即我们常说的数据权限&#xff09;使用…

[附源码]Python计算机毕业设计红旗家具城管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

✿✿✿JavaScript --- 事件

目录 1.事件相关概念 2. js中注册监听&#xff08;事件绑定&#xff09;的方式 (1)在定义标签时&#xff0c;添加事件名称属性。属性值是js代码&#xff08;js代码会被自动封装到一个function函数的方法体中&#xff09; (2)通过js获取元素对象&#xff0c;再添加事件。 补…

ADI Blackfin DSP处理器-BF533的开发详解54:CVBS输出-DSP和CH7024的应用详解(含源码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 CVBS OUT 视频输出 硬件实现原理 CVBS_OUT 子卡板连接在 ADSP-EDU-BF53x 开发板的扩展端口 PORT3 和 PORT4 上&#xff0c;板卡插入时&#xff0…

window10 下Tomcat安装步骤

目录先安装JDK根据JDK选择tomcat版本下载安装设置系统变量运行测试先安装JDK 略过 根据JDK选择tomcat版本 打开CMD窗口&#xff0c;运行java -version查看本机JDK版本 C:\Users\admin>java -version java version "11.0.17" 2022-10-18 LTS Java(TM) SE Runtime E…

python函数讲解进阶

关于python函数的基本知识可以点击“python函数讲解” 目录 一.函数多返回值 思考 二.函数参数种类 1.位置参数 2.关键字参数 3.缺省参数 4.不定长参数 位置传递 关键字传递 总结 三.匿名函数 函数作为参数传递 lambda匿名函数 一.函数多返回值 思考 运行之后&…

Python抓取电商平台数据 / 采集商品评论 / 可视化展示 词云图...

前言 大家早好、午好、晚好吖 ❤ ~ 我给大家准备了一些资料&#xff0c;包括: 2022最新Python视频教程、Python电子书10个G &#xff08;涵盖基础、爬虫、数据分析、web开发、机器学习、人工智能、面试题&#xff09;、Python学习路线图等等 直接在文末名片自取即可&#x…

[附源码]Node.js计算机毕业设计公交电子站牌管理系统软件Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

多模态在医疗中的应用

多模态是把要检索的模态融合起来&#xff0c;做整体的检索&#xff0c;查询和检索的必须至少有一个模态是相同的&#xff0c;也就是要查询和检索的模态都已经在融合模态里了。 跨模态是检索结果和查询的模态是不同&#xff0c;如图像检索文本&#xff0c;视频和音频。跨模态检索…

2022-12-17 TCP/IP 协议栈_2

TCP/IP 协议栈_2前言一、TCP/IP协议栈四层协议系统二、封装和分用总结前言 既然要学习计算机网络编程, 就不得不提计网祖师爷 W Richard Stevens, 天妒英才, 先生于1999年就早早陨落. 不知多少人凭着先生所著 “TCP/IP详解” 以及 “UNIX网络编程” 吃的盆满钵满. 而至今可说还…

深入浅出 - Rust 所有权与内存管理机制

一、从变量说起 fn main() {// 基本数据类型let a 5;let b a;// 指针let ptr_a &a;let ptr_b &b;println!("a value {}", a);println!("b value {}", b);println!("ptr_a value {:p}", ptr_a);println!("ptr_b value {:p}…

未来笔试重点(1)

一起成为更优秀的人 1.数组笔试重点考察 1.1整型数组与sizeof 1.2字符数组与sizeof 1.3sizeof与字符串 1.4strlen与字符串 2.指针笔试重点考察 2.1指针与sizeof 2.2指针与strlen sizeof与整型数组 int a[] { 1,2,3,4 };printf("%d\n", sizeof(a));printf(…

NMS与Soft NMS算法解析以及numpy实现

1. NMS算法 1.1 什么是NMS算法 NMS全称为Non Maximum Suppression&#xff0c;中文意思是非极大值抑制&#xff0c;字面意思就是不是极大值的元素被抑制掉&#xff0c;其实就是筛选出局部最大值得到最优解。NMS算法被广泛运用于目标检测算法处理网络输出的边界框。 1.2 为什…