• 视频、源码、课件、软件、笔记:超全面Python基础入门教程【十天课程】博客笔记汇总表【黑马程序员】
  • Python基础day04【字典】

  

目录

3.函数

函数的定义和调用

函数定义 PEP8规范

快速按照PEP8规范格式化代码

函数的文档说明

查看函数的文档注释:Ctrl+B

自定义函数文档注释

书写带参数的函数

局部变量

全局变量

返回值

<1>“返回值”介绍

<2>带有返回值的函数

<3>保存函数的返回值

return返回多个数据值

函数返回值解析

函数的嵌套调用

函数应用:打印图形和数学计算

打印图形

数学计算

函数的参数

<1> 定义带有参数的函数

<2> 调用带有参数的函数

<3> 练一练

<4> 调用函数时参数的顺序

<5> 小总结

day04总结


3.函数

print():打印输出
 input():输入
 len():求容器长度的
 ...
 函数可以实现一个具体的功能。

如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数。

函数的定义和调用

  

函数定义 PEP8规范

  

快速按照PEP8规范格式化代码

函数的文档说明

查看函数的文档注释:Ctrl+B

自定义函数文档注释

书写带参数的函数

好处: 可以使函数代码更加通用,适用更多的场景。

局部变量

  1. 局部变量的作用域(作用范围): 当前函数的内部。
  2. 局部变量的生存周期:在函数调用的时候被创建,函数调用结束之后,被销毁(删除)。
  3. 局部变量只能在当前函数的内部使用,不能在函数的外部使用。

  

全局变量

  1. 全局变量:就是在函数外部定义的变量。
  2. 在函数内部可以访问全局变量的值,如果想要修改全局变量的值,需要使用 global 关键字声明。

返回值

在函数中定义的局部变量,或者通过计算得出的局部变量, 想要在函数外部访问和使用,此时就可以使用 return 关键字,将这个返回值返回。

<1>“返回值”介绍

现实生活中的场景:

我给儿子10块钱,让他给我买包烟。这个例子中,10块钱是我给儿子的,就相当于调用函数时 传递参数。让儿子买烟这个事情最终的目标是,让他把烟给你带回来然后给你。此时烟就是返回值。

开发中的场景:

定义了一个函数,获取室内温度。想一想是不是应该把这个结果给调用者?(是)

只有调用者拥有了这个返回值,才能够根据当前的温度做适当的调整。

综上所述:

  • 所谓“返回值”,就是程序中函数完成一件事情后,最后给调用者的结果

<2>带有返回值的函数

想要在函数中把结果返回给调用者,需要在函数中使用return

如下示例:

def add2num(a, b):
    c = a+b
    return c

或者

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

<3>保存函数的返回值

在本小节刚开始的时候,说过的“买烟”的例子中,最后儿子给你烟时,你一定是从儿子手中接过来。程序也是如此,如果一个函数返回了一个数据,那么想要用这个数据,那么就需要保存。

保存函数的返回值示例如下:

return返回多个数据值

程序代码遇到一个 return 之后,后续的代码不再执行。

1. return 关键字后边可以不写数据值, 默认返回 None。
def func():
    xxx
    return   # 返回 None,终止函数的运行的。
 ​
2. 函数可以不写 return,返回值默认是 None。
def func():
    xxx
    pass

函数返回值解析

函数的嵌套调用

一个函数里面又调用了另外一个函数,这就是所谓的函数嵌套调用。

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

  

函数应用:打印图形和数学计算

打印图形

目标

  • 感受函数的嵌套调用
  • 感受程序设计的思路,复杂问题分解为简单问题

思考&实现1

  1. 写一个函数打印一条横线
  2. 打印自定义行数的横线

  

数学计算

思考&实现2

  1. 写一个函数求三个数的和
  2. 写一个函数求三个数的平均值

  

函数的参数

思考一个问题,如下:

现在需要定义一个函数,这个函数能够完成2个数的加法运算,并且把结果打印出来,该怎样设计?下面的代码可以吗?有什么缺陷吗?

def add2num():
       a = 11
       b = 22
       c = a+b
       print c

为了让一个函数更通用,即想让它计算哪两个数的和,就让它计算哪两个数的和。在定义函数的时候可以让函数接收数据,这就是函数的参数。

<1> 定义带有参数的函数

示例如下:

def add2num(a, b):
    c = a+b
    print c

<2> 调用带有参数的函数

以调用上面的add2num(a, b)函数为例:

def add2num(a, b):
    c = a+b
    print c

add2num(11, 22) # 调用带有参数的函数时,需要在小括号中,传递数据

调用带有参数函数的运行过程:

<3> 练一练

要求:定义一个函数,完成前2个数完成加法运算,然后对第3个数,进行减法;然后调用这个函数。

  • 使用def定义函数,要注意有3个参数
  • 调用的时候,这个函数定义时 有几个参数,那么就需要传递几个参数

<4> 调用函数时参数的顺序

>>> def test(a,b):
...     print(a,b)
...
>>> test(1,2)
1 2
>>> test(b=1,a=2)
2 1
>>>
>>> test(b=1,2)File "<stdin>", line 1
SyntaxError: positional argument follows keyword argument
>>>
>>>

<5> 小总结

  • 定义时小括号中的参数,用来接收参数用的,称为 “形参”。
  • 调用时小括号中的参数,用来传递给函数用的,称为 “实参”。

day04总结

Python基础day04【函数(定义与调用、文档说明、传参函数、全局变量、返回值、嵌套调用)】相关推荐

  1. java doget 返回json_HttpClient调用doGet、doPost、JSON传参及获得返回值

    调用 doPost:map传参 Map map = new HashMap<>(); map.put("test","test"); String ...

  2. Python基础day04 作业解析【3道 字典题】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day04[字典(介绍.定义与访问.操作数据.常见操作)] Python基础day ...

  3. 转:在 C# 中使用 P/Invoke 调用 Mupdf 函数库显示 PDF 文档

    在 C# 中使用 P/Invoke 调用 Mupdf 函数库显示 PDF 文档 一直以来,我都想为 PDF 补丁丁添加一个 PDF 渲染引擎.可是,目前并没有可以在 .NET 框架上运行的免费 PDF ...

  4. 12_python基础—函数基础(参数、返回值、调用)

    文章目录 目标 一.了解函数 二.函数基本使用 2.1 函数的定义 2.2 函数调用 2.3 第一个函数演练 思考 2.4 PyCharm 的调试工具 2.5 函数的文档注释 三.函数的参数 3.1 ...

  5. python 帮助文档,撰写函数文档,并查看函数文档

    python 帮助文档,撰写函数文档,并查看函数文档 定义函数 def test(a,b):'''参数:a:整数b:整数返回值:a+b'''return a+b 运行函数 test(11,22) 33 ...

  6. python基础:序列(列表、元组、字符串)、函数、字典、集合

    Python语言运行环境: windows linux unix Macos等等 博客记录内容: Python3的所有语法.面向对象思维.运用模块进行编程.游戏编程.计算机仿真. Python是什么类 ...

  7. Python量化交易平台:JQData | API使用文档(转)

    Python量化交易平台:JQData | API使用文档(转) #原文地址:https://www.joinquant.com/help/api/help?name=JQData JQData说明书 ...

  8. 基于pdf2docx模块Python实现批量将PDF转Word文档(安装+完整代码教程)

    PDF文件是一种常见的文档格式,但是在编辑和修改时不太方便,因为PDF本质上是一种静态的文档格式.因此,有时候我们需要将PDF文件转换成Word格式,以便更好地编辑和修改文档.在本篇文章中,我们将介绍 ...

  9. 孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档

    孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库 ...

最新文章

  1. centos下将vim配置为强大的源码阅读器
  2. 在虚拟机中的Nginx的安装
  3. Windows Phone 7 Tip (13) -- 如何搜集应用使用数据
  4. node开发 npm install -g express-generator@4
  5. CentOS 7安装Redis服务
  6. PESTEL的风险建模
  7. 【大数据论文笔记】大数据技术研究综述
  8. np变题了。但我过了
  9. 当 Messaging 遇上 Jepsen
  10. 互联网分层架构的本质
  11. nodejs+express开发blog(2)
  12. TT畅聊物联网(一)-初识物联网
  13. 如何将OGG文件转换成MP3?
  14. Intel SGX开发者参考书(二)——构建一个SGX项目(一)
  15. 手写数字识别问题(5)——完结
  16. C#接口--C#基础
  17. java selector 源码_Java NIO——Selector机制源码分析---转
  18. 净水器哪个牌子好,家用净水器什么牌子好科普
  19. camunda如何监控流程执行
  20. 阿里云部署metasploit framework

热门文章

  1. aes key长度_Go 语言 map 解析之 key 的定位核心流程
  2. java集群_Kafka多节点分布式集群搭建实现过程详解_java
  3. marlin固件烧录教程_小白穿越机教程-刷固件 | 穿越机如何刷最新的betaflight固件教程...
  4. linux的memmap函数_linux /proc下的statm、maps、memmap 内存信息文件分析
  5. 用pv操作描述如下前驱图_跟我学PMP | PV、AC、EV…挣值管理的基本概念都是啥?...
  6. x3850x5服务器内存_联想3850 X5服务器添加内存之后红屏
  7. 在网络中同时使用kfold和使用Dropout(基于Iris数据集)
  8. Mysql数据库有两种安装方法
  9. 在理解通用近似定理之前,你可能都不会理解神经网络
  10. 时间自适应卷积:比自注意力更快的特征提取器