基础部分先告一段落,今天开始学习函数。

一、函数:完成 特定 功能的代码块,作为一个整体,对其进行特定的命名,该名字就代表函数

        -- 现实中:很多问题要通过一些工具进行处理 => 可以将工具提前生产出来并命名
        => 通过名字就可以找到工具 => 使用工具来解决问题

# 函数的优点:
# 1. 避免代码的冗余
# 2. 让程序代码结构更加清晰
# 3. 让代码具有复用性,便于维护

函数的四部分:
1. 函数名:使用该函数的依据
2. 函数体:完成功能的代码块
3. 返回值:功能完成的反馈结果
4. 参数:完成功能需要的条件信息

# 函数的定义语法:
# def:定义函数的关键字
# 函数名:该工具的名字,后期就是通过工具的名字使用工具
# 参数列表:使用工具需要提供一些参数
# 函数体:解决问题的过程逻辑
# 返回值:告诉外界功能执行的结果

# 使用函数:
# 1.根据需求定义函数
# 2.通过函数名找到函数所在的位置(内存地址)
# 3.函数名() 执行函数地址中存放的所有代码块
#       -- 函数在定义时需要外界的参数,就要在调用时传入对应的参数
# 4.函数执行完一定有返回结果,通过return关键字将结果返回给外界
#       -- 外界需要知道执行结果,用变量接收,反之只执行函数(不需要接收)即可# 注:函数必须先定义,后使用# 函数的四部分都可以根据需求的变化而变化

二、函数的分类

# 1.根据函数体分类
# 空函数: pass来填充函数体的函数
#        -- 优先明确函数名,暂不明确函数体(编程中就存在一些没有函数体的函数)
def login(): pass  # 在开发初期,可以讲所有功能提前列出来,用pass占位着,后期再去填充功能体# 非空函数:有函数体的函数
def fn2():print('函数体')

# 2.根据函数参数分类
def add():print('功能体不需要外界的参数')n1 = input('n1: ')n2 = input('n2: ')print(n1 + n2)# 有参函数
def add_two(n1, n2):print('功能体需要外界的参数')print(n1 + n2)

# 3.根据函数返回值分类:所有的函数都有返回值
# 不明确返回值
def low_two(n1, n2):# 外部不需要知道内部的执行结果print(n1 - n2)# 明确返回值
def jump_two(n1, n2):# 外部需要知道内部的执行结果return n1 * n2
res = jump_two(10, 20)
print(res)

三、函数的返回值

# 重点:函数名()
# 1)拿到函数地址 => 2)加()执行函数体 => 3)得到函数的执行结果# 重点: 返回值的功能
# 1.结束函数;2.将函数的内部数据返回给外部

# 应用场景
# 1.不明确return关键词的函数:系统在函数最末尾自动添加了return,返回的是None
def fn1():print('普通的函数执行')res = fn1()  # 一般不需要对这样的函数进行接收执行结果
print(res)

# 2.明确空return关键词的函数:为了结束函数而return
def print_msg():while True:msg = input("msg: ")if msg == 'q':# breakreturn  # 在特定的位置需要直接结束函数,但不需要告诉外界某个结果,用空return处理print(msg)print(msg)  # 在break下可以被执行,在return下不能被执行
res = print_msg()
print(res)

# 3.有明确的返回值需求的函数:
#       -- python中的函数本质上只能返回一个值,
#               -- 值跟在return关键词后
#               -- 可以通过语法上返回多个值,值之间用逗号隔开,但是本质上返回装有多个值的元组
# 一个值
def get_num():num = input('num: ')return num
print(get_num())# 多个值
def get_two_num():n1 = input('n1: ')n2 = input('n2: ')return n1, n2# return (n1, n2)
# print(get_two_num())
num1, num2 = get_two_num()  # python的return支持多值返回的语法原因是python中有解压赋值
print(num1, num2)

注:
# 当用一个值接收函数的返回值,一定没有问题
#       -- 函数返回一个接收一个;函数返回多个,接收装有多个值得元组
# 当用多个值接收函数的返回值,采用的是解压赋值的机制,返回值的个数一定要与接收值得个数相同

转载于:https://www.cnblogs.com/wangwei5979/p/10765018.html

初学python之路-day10相关推荐

  1. 初学python之路-day18

    time时间模块 时间戳(timestamp):time.time() 延迟线程的运行:time.sleep(secs) (指定时间戳下的)当前时区时间:time.localtime([secs]) ...

  2. 初学python之路-day20

    logging模块 # 日志:日常的流水 => 日志文件,将程序运行过程中的状态或数据进行记录,一般都是记录到日志文件中 # 在正常的项目中,项目运行的一些打印信息,采用looging打印到文件 ...

  3. 初学python之路-day04

    每天一篇总结,今天学习的是有关于流程控制的知识. 流程控制,顾名思义,在计算机运行中,程序是被某种控制方式按照某种流程或者规律来执行的.而python程序的运行,肯定也是按照某种规律在执行.这些规律可 ...

  4. 初学python之路-day15

    一.生成器send方法 # send的工作原理 # 1.send发送信息给当前停止的yield # 2.再去调用__next__()方法,生成器接着往下指向,返回下一个yield值并停止 # 案例: ...

  5. 初学python之路-day11

    一.函数的参数:实参与形参 # 参数介绍: # 函数为什么要有参数:因为内部的函数体需要外部的数据 # 怎么定义函数的参数:在定义函数阶段,函数名后面()中来定义函数的参数 # 怎么使用函数的参数:在 ...

  6. python之路——模块和包

    一.模块 1.什么是模块? 常见的场景:一个模块就是一个包含了Python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1.使用Python编 ...

  7. python 之路,Day11 (下)- sqlalchemy ORM

    python 之路,Day11 - sqlalchemy ORM 本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 多对多关系 表结构设计作业 1. ORM介绍 ...

  8. Python之路【第五篇】:面向对象及相关

    Python之路[第五篇]:面向对象及相关 Python之路[第五篇]:面向对象及相关 面向对象基础 基础内容介绍详见一下两篇博文: 面向对象初级篇 面向对象进阶篇 其他相关 一.isinstance ...

  9. 初学python的30个操作难点汇总(入门篇)希望对你有帮助

    初学Python的人总会遇到这样或者那样的问题,在我学习Python的这段时间我总结了自己的29个问题,具体如下: 1 在cmd下 盘与盘之间的切换 直接 D或d: 就好 2 查找当前盘或者文件下面的 ...

最新文章

  1. HDU1040简单排序题
  2. iOS学习资源(一)
  3. 如何编辑UG中打开文件的历史记录信息(history.pax)?
  4. 【使用注意】Jsoup的select方法
  5. C语言程序的错误和警告
  6. 演练 创建数据库MySchool 1007 sqlserver
  7. setInterval,setTimeout,clearInterval
  8. 闭包,作用域链,垃圾回收,内存泄露
  9. Python环境搭建之OpenCV(转载)
  10. java实现Beta函数
  11. 软件评测师该如何自学?如何指定计划?
  12. win10出现的异常解决
  13. 大牛给计算机专业学生的 7 个建议
  14. 大厂字节程序员薪资曝光:排行世界第五厉害了
  15. 形式化方法-- petri net
  16. 网络层的拥塞控制与服务质量
  17. 南大和中科大计算机哪个好,南京大学和中国科技大学哪个更好?
  18. oracle如何设置连接数,关于Oracle连接数设置
  19. 透明质酸/氧化石墨烯/聚丙烯酰胺复合水凝胶/透明质酸/βTCP复合水凝胶研究制备
  20. 云帆文档管理系统版本更新说明:v4.6.0

热门文章

  1. 武汉.NET俱乐部论坛已经恢复
  2. 用python怎样做学生管理系统用类的形式-Python配置管理的几种方式
  3. python列表按照指定顺序排序-Python3实现对列表按元组指定列进行排序的方法分析...
  4. 微软400集python课程-最强福利——来自微软的Python学习教程(开发指南)
  5. python和c学习-学习 Python与C相互调用
  6. python推荐系统-利用python构建一个简单的推荐系统
  7. python 科学计算基础教程电子版-终于领会python科学计算入门教程
  8. python好学嘛-python语言好学吗
  9. python项目归纳总结-python excel常用方法归纳总结
  10. python画散点图类型-绘制python中的线和散点图