Python基础 第三章 函数

3.1 概念整理

3.1.1 def语句和参数:
在调用print()或 len()等函数时,会传入一些值放于括号中间,在此称为参数。也可以自行定义接收参数的函数。

def hello(name):print('Hello + name')hello('yang')

在此函数定义中,name为一个“变元”,即可以存放参数以及赋值。值得注意的是,保存在“变元”中的值,在函数返回以后就丢失了。(类似程序结束后,内部的变量会丢弃。)

3.1.2 返回值与Return语句:
若调用len()函数,并向它传入’Hello’这样的参数,函数调用求值为5。一般来说,函数调用求值的结果称为函数的“返回值”。
return语句包含以下部分:
1.return关键字;
2.函数应返回的值或表达式;
若return中使用了表达式,那么返回的值即为表达式求值的结果。

3.1.3 None值:
None是 NoneType 数据类型的唯一值,首字母必须大写。
由于print()函数没有返回值,是简单的输出函数,故print()返回None。

关键字参数和print()
关键字参数是由函数调用时加在它们前面的关键字来识别的,关键字参数通常用于可选变元。

3.1.4 局部和全局作用域
在被调用函数内赋值的变元和变量,处于该函数的“局部作用域”。在所有函数以外赋值的变量,属于“全局作用域”。
一个函数被调用时,就创建了一个局部域,该函数返回值时,局部作用域就丢失了。
作用域注意点:
1.全局作用域中的代码不能使用任何局部变量;
2.局部作用域可以访问全局变量;
3.一个函数的局部作用域中的代码,不能使用其他局部作用域中的变量。
4.如果在不同的作用域中,可以用相同的名字命名不同变量,即spam可作为局部变量和整体变量。

注意:
1.局部变量不能在全局作用域中使用;
2.局部作用域不能使用其他局部变量;
3.全局变量可在局部作用域中使用;
4.名称相同的局部变量和全局变量(示例)

def spam():eggs = "spam local"print(eggs)
def bacon():eggs = "bacon local"print(eggs)spam()print(eggs)
eggs = "global"
bacon()
print(eggs)

运行结果如下:

bacon local
spam local
bacon local
global

3.1.5 global语句
如果一个函数需要在全局对变量进行修改,那么就要使用global语句,例如global eggs,就是指eggs为全局变量。
若要区分一个变量是否为全局变量,有三条法则:
1.若变量在全局作用域中使用,那就是全局变量;
2.若有global语句,那就是全局变量;
3.若该变量用于函数中赋值语句,则为局部变量;

3.1.6 异常处理
对于一个函数,需要确定的即为输入值与输出值,错误可由try(可能出错的)与except函数(处理错误)进行处理。

def spam(divideBy):try:return 42/divideByexcept ZeroDivisionError:print('Error:Invalid argument')

输出如下:

21.0
3.5
Error:Invalid argument
None

注:try语句中,所有发生的错误都会被捕捉,将spam放于语句块中:

def spam(divideBy):return 42/divideBy
try:print(spam(2))print(spam(12))print(spam(0))print(spam(1))
except ZeroDivisionError:print('Error:Invalid argument.')

运行结果:

21.0
3.5
Error:Invalid argument.

其中print(spam(1))未被执行,是因为一旦执行跳到except子句的代码,就不会回到try语句,会继续照常向下执行。

3.2 习题

1、为什么在程序中加入函数会有好处?
答:函数减少了重复的代码。这让程序更短,更容易阅读,更容易修改。

2、函数中的代码何时执行: 在函数被定义时,还是在函数被调用时?
答:函数中的代码在函数被调用时执行,而不是在函数定义时。

3、什么语句创建一个函数?
答:def语句定义了(创建了)一个函数。

4、一个函数和一次函数调用有什么区别?
答:函数包含def语句和在def子句中的代码。函数调用让程序执行转到函数内,函数调用求值为该函数的返回值。

5、Python程序中有多少全局作用域?有多少局部作用域?
答:在调用一个函数时,创建了一个全局函数和一个局部作用域。

6、当函数调用返回时,局部作用域中的变量发生了什么?
答:函数返回时,局部作用域被销毁,其中所有的变量都被遗忘了。

7、什么是返回值?返回值可以作为表达式的一部分吗?
答:返回值时函数调用求值的结果。像所有值一样,返回值可以作为表达式的一部分。

8、如果函数没有返回语句,对它调用的返回值是什么?
答:如果函数没有return语句,它的返回值就是None。

9、如何强制函数中的一个变量指的是全局变量?
答:global语句强制函数中的一个变量引用该全局变量。

10、None的数据类型是什么?
答: None的数据类型是None Type。

11、import areallyourpetsnamederic语句做了什么?
答:import语句导入了areallyourpetsnamederic模块(顺便说一句,这不是一个真正的Python模块)。

12、如果在名为spam的模块中,有一个名为bacon()的函数,在引入span后,如何调用它?
答:该函数可以通过spam.bacon()调用。

13、如何防止程序在遇到错误时崩溃?
答:将可能导致错误的代码行放在一个try子句中。

14、try子句中发生了什么?except子句中发生了什么?
答:可能导致错误的代码放在try子句中。发生错误时,要执行的代码放在except子句中。

Pytho基础 第三章相关推荐

  1. 大学计算机基础第五版第三章,大学计算机基础第三章习题答案

    <大学计算机基础第三章习题答案>由会员分享,可在线阅读,更多相关<大学计算机基础第三章习题答案(4页珍藏版)>请在人人文库网上搜索. 1.第三章 微型计算机硬件组成1.微型计算 ...

  2. 计算机基础课件第三章ppt,计算机应用基础第三章3.4.ppt

    文档介绍: 3.4 使用网络服务 本节主要学****内容: 掌握即时通信软件QQ的安装与使用; 2. 开通与使用博客或微博; 3. 使用常用的网络服务,如网上存储数据.网上求职或购物 村僧弄锄蔓很卒河 ...

  3. 计算机中的表示方法,计算机应用基础第三章计算机中信息的表示方法

    <计算机应用基础第三章计算机中信息的表示方法>由会员分享,可在线阅读,更多相关<计算机应用基础第三章计算机中信息的表示方法(17页珍藏版)>请在人人文库网上搜索. 1.第第三三 ...

  4. python基础代码事例-python基础第三章

    第三章主要讲解Python的print语句的应用和赋值语句,代码块与缩进,条件语句,循环语句.这几种基础的语句 Python 条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者 ...

  5. Tableau基础-第三章(快速表计算)

    从头开始学Tableau-第三章(快速表计算) 第一章 第二章 数据源 这一章主要介绍一下快速表计算,在前面的2章中我们基础的了解了一下Tableau的函数,有时候并不希望每一个指标值都用函数去构造, ...

  6. 计算机应用基础第三章操作步骤,最新江西三校生计算机应用基础模拟操作题集锦(超实用!)...

    第二章 Windows XP 操作系统 ? [2011高考] 将计算机系统时间修改为2011年9月1日10:30.请写出操作步骤. 答:双击系统托盘中时间图标(或双击"控制面板"窗 ...

  7. 计算机系统基础 第三章 知识点梳理

    第三章 程序的转换及机器级表示 概述 机器级指令和汇编指令一一对应,都是机器级指令. 机器指令是一个0/1序列,由若干字段组成. 汇编指令是机器指令的符号表示,在不同机器上格式可以不同 比如说:Int ...

  8. python基础第三章选择结构答案-零基础学Python--------第3章 流程控制语句

    第3章 流程控制语句 3.1程序的结构 计算机在解决某个具体问题时,主要有3种情况,分别是顺序执行所有的语句.选择执行部分语句和循环执行部分语句.程序设计中的3种基本结构为顺序结构.选择结构和循环结构 ...

  9. 网络基础-第三章:认识网线制作工具

    一.双绞线网线制作的材料及工具 在双绞线以太网网线制作中首先要做的工作就是准备必要的材料和工具,只有对这些材料和工具有了充分了解后才可以制作符合要求的网线,为此本篇先来简单介绍这些材料和制作工具,具体 ...

最新文章

  1. FineReport搭建物流报表平台的解决方案
  2. XAF-Domain Components 技术 使用接口来定义ORM业务对象
  3. 关于windows内存泄露思考
  4. 特异性matlab,基于灰色理论计算位置特异性矩阵
  5. 高性能服务器存储服务器,高性能存储服务器
  6. nodejs常用模块-url
  7. 160 - 50 DueList.5
  8. Mac下使用Fiddler
  9. 【边缘计算】移动边缘计算中延迟和能量约束任务卸载的最优拍卖
  10. Maven 安装教程详解
  11. PID控制以及各种控制环节-C语言实现
  12. Java获取名字首字母拼音及用户按名字拼音分组工具
  13. 再抱一抱DataStore
  14. 海洋角度分析全球气候变暖停滞原因
  15. 电动汽车的N种充电方式
  16. win10系统无法访问ftp服务器地址,win10如何访问ftp服务器地址
  17. 分布式事务框架seata介绍
  18. Jetson Nano——使用JetCam官方库调用双CSI摄像头
  19. C++课件知识点整理
  20. 香农的“创意思维在编程的应用

热门文章

  1. tong盾滑块参数分析
  2. 百亿级hive表更新与删除数据
  3. 打造高质量外链,助力外贸网站快速提升Google自然排名
  4. J-LinuxShell-W6
  5. [Debug]内存问题的一些调试方法
  6. python游戏:小蜜蜂历险记(一)
  7. H5+ app vue调用第三方应用,如果没有安装跳转到应用市场详情
  8. python输入123输出321的编程_第2章 Python编程基础知识 第2.1节 简单的Python数据类型、变量赋值及输入输出...
  9. 解决win7有些硬盘不能扩展卷的问题
  10. PostgreSQL 9.6源码解析之XLOG生成(二)xlog文件内部结构