函数

  1. # *****
  2. # 函数:完成 特定 功能的代码块,作为一个整体,对其进行特定的命名,该名字就代表函数
  3. # -- 现实中:很多问题要通过一些工具进行处理 => 可以将工具提前生产出来并命名
  4. # => 通过名字就可以找到工具 => 使用工具来解决问题
  5.  
  6. # 函数的优点:
  7. # 1. 避免代码的冗余
  8. # 2. 让程序代码结构更加清晰
  9. # 3. 让代码具有复用性,便于维护
  10.  
  11. # 函数的四部分
  12. '''
  13. 1. 函数名:使用该函数的依据
  14. 2. 函数体:完成功能的代码块
  15. 3. 返回值:功能完成的反馈结果
  16. 4. 参数:完成功能需要的条件信息
  17. '''
  18.  
  19. # 定义函数的语法:通过def关键字来定义
  20. def get_water(water, money):
  21. print('收入你的%d元钱')
  22. print('给你%s水种')
  23. return '矿泉水'

函数的使用

  1. # *****
  2. # 使用函数:
  3. # 1.根据需求定义函数
  4. # 2.通过函数名找到函数所在的位置(内存地址)
  5. # 3.函数名() 执行函数地址中存放的所有代码块
  6. # -- 函数在定义时需要外界的参数,就要在调用时传入对应的参数
  7. # 4.函数执行完一定有返回结果,通过return关键字将结果返回给外界
  8. # -- 外界需要知道执行结果,用变量接收,反之只执行函数(不需要接收)即可
  9.  
  10. # 注:函数必须先定义,后使用
  11.  
  12. # 函数的四部分都可以根据需求的变化而变化
  13. def get_water(water, money):
  14. print('收入你的%d元钱' % money)
  15. print('给你%s水种' % water)
  16. return water
  17.  
  18. # 需要使用函数,就调用一次
  19. res = get_water('矿泉水', 10)
  20. print(res)
  21.  
  22. print('玩耍...')
  23. print('又口渴了...')
  24.  
  25. # 又来需求,在调用一次,代码可以复用,函数只有一个,代码结构清晰且不冗余
  26. res = get_water('王老吉', 20)
  27. print(res)

函数的分类

  1. # ***
  2.  
  3. # 1.根据函数体分类
  4. # 空函数: pass来填充函数体的函数
  5. # -- 优先明确函数名,暂不明确函数体(编程中就存在一些没有函数体的函数)
  6. def login(): pass # 在开发初期,可以讲所有功能提前列出来,用pass占位着,后期再去填充功能体
  7.  
  8. # 非空函数:有函数体的函数
  9. def fn2():
  10. print('函数体')
  11.  
  12. # 2.根据函数参数分类
  13. def add():
  14. print('功能体不需要外界的参数')
  15. n1 = input('n1: ')
  16. n2 = input('n2: ')
  17. print(n1 + n2)
  18.  
  19. # 有参函数
  20. def add_two(n1, n2):
  21. print('功能体需要外界的参数')
  22. print(n1 + n2)
  23.  
  24. # 3.根据函数返回值分类:所有的函数都有返回值
  25. # 不明确返回值
  26. def low_two(n1, n2):
  27. # 外部不需要知道内部的执行结果
  28. print(n1 - n2)
  29.  
  30. # 明确返回值
  31. def jump_two(n1, n2):
  32. # 外部需要知道内部的执行结果
  33. return n1 * n2
  34. res = jump_two(10, 20)
  35. print(res)

函数的返回值

  1. # *****
  2.  
  3. # 重点:函数名()
  4. # 1)拿到函数地址 => 2)加()执行函数体 => 3)得到函数的执行结果
  5.  
  6. # 重点: 返回值的功能
  7. # 1.结束函数;2.将函数的内部数据返回给外部
  8.  
  9. # 二、应用场景
  10. # 1.不明确return关键词的函数:系统在函数最末尾自动添加了return,返回的是None
  11. def fn1():
  12. print('普通的函数执行')
  13.  
  14. res = fn1() # 一般不需要对这样的函数进行接收执行结果
  15. print(res)
  16.  
  17. # 2.明确空return关键词的函数:为了结束函数而return
  18. def print_msg():
  19. while True:
  20. msg = input("msg: ")
  21. if msg == 'q':
  22. # break
  23. return # 在特定的位置需要直接结束函数,但不需要告诉外界某个结果,用空return处理
  24. print(msg)
  25. print(msg) # 在break下可以被执行,在return下不能被执行
  26. res = print_msg()
  27. print(res)
  28.  
  29. # 3.有明确的返回值需求的函数:
  30. # -- python中的函数本质上只能返回一个值,
  31. # -- 值跟在return关键词后
  32. # -- 可以通过语法上返回多个值,值之间用逗号隔开,但是本质上返回装有多个值的元组
  33. # 一个值
  34. def get_num():
  35. num = input('num: ')
  36. return num
  37. print(get_num())
  38.  
  39. # 多个值
  40. def get_two_num():
  41. n1 = input('n1: ')
  42. n2 = input('n2: ')
  43. return n1, n2
  44. # return (n1, n2)
  45. # print(get_two_num())
  46. num1, num2 = get_two_num() # python的return支持多值返回的语法原因是python中有解压赋值
  47. print(num1, num2)
  48.  
  49. # 总结:
  1. # 当用一个值接收函数的返回值,一定没有问题
    # -- 函数返回一个接收一个;函数返回多个,接收装有多个值得元组
    # 当用多个值接收函数的返回值,采用的是解压赋值的机制,返回值的个数一定要与接收值得个数相同
  1.  

day10函数,函数的使用,函数的分类,函数的返回值的更多相关文章

  1. VC与JavaScript交互(三) --- CWebPage类调用javascript函数(给js函数传参,并取得返回值)

    ①需要一个别人写好的类CWebPage,将其对于的两个文件WebPage.h和WebPage.cpp添加到工程中. ②添加WebBrowser控件,在视图/对话框类的头文件中#include &quo ...

  2. VC/MFC中通过CWebPage类调用javascript函数(给js函数传参,并取得返回值)

    转自:http://www.cnblogs.com/javaexam2/archive/2012/07/14/2632959.html ①需要一个别人写好的类CWebPage,将其对于的两个文件Web ...

  3. JS基础研语法---函数基础总结---定义、作用、参数、返回值、arguments伪数组、作用域、预解析

    函数: 把一些重复的代码封装在一个地方,在需要的时候直接调用这个地方的代码就可以了 函数作用: 代码重用 函数的参数: 形参:函数定义的时候,函数名字后面的小括号里的变量 实参:函数调用的时候,函数名 ...

  4. python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))

    1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层的函数,可以把复杂的任务分解成简单的任务,这种一步一步的分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...

  5. 不可或缺 Windows Native (16) - C++: 函数重载, 缺省参数, 内联函数, 函数模板

    [源码下载] 不可或缺 Windows Native (16) - C++: 函数重载, 缺省参数, 内联函数, 函数模板 作者:webabcd 介绍不可或缺 Windows Native 之 C++ ...

  6. linux shell自定义函数(定义、返回值、变量作用域)介绍

    http://www.jb51.net/article/33899.htm linux shell自定义函数(定义.返回值.变量作用域)介绍 linux shell 可以用户定义函数,然后在shell ...

  7. Java8函数之旅(四) --四大函数接口

    前言   Java8中函数接口有很多,大概有几十个吧,具体究竟是多少我也数不清,所以一开始看的时候感觉一脸懵逼,不过其实根本没那么复杂,毕竟不应该也没必要把一个东西设计的很复杂. 几个单词   在学习 ...

  8. 总结day7 ---- 函数的内容 ,初识,返回值,进阶(一)

    内容大纲: 一: 函数识别 二: 函数的结构 三: 函数的返回值, 四: 函数的参数 五: 动态参数 六: 形参的顺序 七: 名称空间 八: 作用域 九: 加载顺序和取值顺序 十: 内置函数 十一: ...

  9. python定义函数时的默认返回值

    python定义函数时,一般都会有指定返回值,如果没有显式指定返回值,那么python就会默认返回值为None, 即隐式返回语句: return None 执行如下代码 def now(): prin ...

  10. linux shell 自定义函数(定义、返回值、变量作用域)介绍

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 一.定义shell函数(define function) 语法: [ f ...

随机推荐

  1. ip通信第七周

    局域网的优点:1.具有较高的数据传输率 2.具有较低的误码率 3.具有较低的时延 4.能进行广播 网桥的基本特征:1.网桥在数据链录层上实现局域网互连 2.网桥能够互连两个采用不同数据链路层协议,不同 ...

  2. Ubuntu18.04 快速返回桌面 【快捷键】

    设置->设备->键盘->窗口->隐藏窗口 :双击重置快捷键

  3. 保护url时效性和安全性的一种解决方案

    几乎都是同事小哥哥帮我铺路,给我参考链接,实现的理论方法以及知识,我只剩下看资料,敲代码,出错了也是他帮我看着一步步解释搞定过来的.嗯,大好人一枚. ok,思路: 是生成一个随机数放在url里面,当做 ...

  4. Logstash - Working with plugins(使用插件)

    本章节开始介绍logstash的插件及功能,插件对于logstash来说非常重要,按类别分为:input.filter.codec.output四种类型. logstash有非常丰富的插件,通过安装目 ...

  5. matlab2014a 转化c语言

    一.原因错误 第一种,命令窗口测试代码mbulid -setup  出错 , 就是电脑没有安装sdk7.1  网上有很多安装教程(注意要有vc++2010要卸载,具体看网上教程,安装好了要更性vc++ ...

  6. win10家庭版删除文件提示没有权限最简单的方式

    1.cmd 2.右键-以管理员身份运行(重要) 3.输入:net user administrator /active:yes,开启超级管理员账号 4.win+r键打开运行对话框,输入 netplwi ...

  7. hook

    hook的定义 hook,钩子,勾住系统的程序逻辑. 在某段SDK源码逻辑执行的构成中,通过代码手段拦截执行该程序,加入自己的代码逻辑 使用价值 hook是安卓面向切面(aop)编程的基础,可以让我们 ...

  8. react github项目

    https://github.com/bailicangdu/react-pxq 网址;https://github.com/bailicangdu/react-pxq

  9. Jmeter笔记(Ⅱ)使用Jmeter实现轻量级的接口自动化测试

    接口测试虽然作为版本的一环,但是也是有一套完整的体系,有接口的功能测试.性能测试.安全测试:同时,由于接口的特性,接口的自动化低成本高收益的,使用一些开源工具或一些轻量级的方法,在测试用例开发的成本不 ...

  10. 安装jar包到本地仓库和远程仓库

    转载: https://blog.csdn.net/zengdongwen/article/details/81241198 如何部署到maven中央仓库呢? https://blog.csdn.ne ...