Python编程快速上手-让繁琐工作自动化 第三章 函数习题及其答案
Posted bjx2020
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python编程快速上手-让繁琐工作自动化 第三章 函数习题及其答案相关的知识,希望对你有一定的参考价值。
第三章 函数习题及其答案
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子句中。
3.11 实践项目 作为实践,请编写程序完成下列任务
3.11.1 Collatz序列
编写一个名为collatz()的函数,它有一个名为number的参数。如果参数是偶数,那么collatz()就打印number//2,
并返回该值。如果number是奇数,collatz()就打印并返回 3*number + 1
然后编写一个程序,让用户输入一个整数,并不断对这个数调用collatz(),直到函数返回值1(令人惊奇的是,这个序列
对于任何整数都有效,利用这个序列,你迟早会得到1!即使数学家也不能确定为什。你的程序在研究所谓的"Collatz序列",
它有时后被称为"最简单的、不可能的数学问题")。
记得将input()的返回值用int函数转成一个整数,否则它会是一个字符串。
提示:如果number % 2 == 0, 整数number就是偶数。如果number % 2 == 1, 它就是奇数。
答:
#!/usr/bin/env python3 # -*- coding:utf-8 -*- # Author: davie """ 编写一个名为collatz()的函数,它有一个名为number的参数。如果参数是偶数,那么collatz()就打印number//2, 并返回该值。如果number是奇数,collatz()就打印并返回 3*number + 1 然后编写一个程序,让用户输入一个整数,并不断对这个数调用collatz(),直到函数返回值1(令人惊奇的是,这个序列 对于任何整数都有效,利用这个序列,你迟早会得到1!即使数学家也不能确定为什。你的程序在研究所谓的"Collatz序列", 它有时后被称为"最简单的、不可能的数学问题")。 记得将input()的返回值用int函数转成一个整数,否则它会是一个字符串。 提示:如果number % 2 == 0, 整数number就是偶数。如果number % 2 == 1, 它就是奇数。 """ def collatz(number): if number == 1: return 1 elif number % 2 == 0: return number // 2 elif number % 2 == 1: return 3*number + 1 print(collatz(18)) print(collatz(17))
3.11.2 输入验证
在前面的项目中添加try和except语句,检测用户是否输入了一个非整数的字符串。正常情况下,int()函数在传入一个非整数字符串时,会产生ValueError错误,比如int(‘puppy‘)。在execpt子句中,向用户输出一条信息,告诉他们必须输入一个整数。
答:
#!/usr/bin/env python3 # -*- coding:utf-8 -*- # Author: davie """ 编写一个名为collatz()的函数,它有一个名为number的参数。如果参数是偶数,那么collatz()就打印number//2, 并返回该值。如果number是奇数,collatz()就打印并返回 3*number + 1 然后编写一个程序,让用户输入一个整数,并不断对这个数调用collatz(),直到函数返回值1(令人惊奇的是,这个序列 对于任何整数都有效,利用这个序列,你迟早会得到1!即使数学家也不能确定为什。你的程序在研究所谓的"Collatz序列", 它有时后被称为"最简单的、不可能的数学问题")。 记得将input()的返回值用int函数转成一个整数,否则它会是一个字符串。 提示:如果number % 2 == 0, 整数number就是偶数。如果number % 2 == 1, 它就是奇数。 """ def collatz(number): if number == 1: return 1 elif number % 2 == 0: numbers = number // 2 print(numbers) collatz(numbers) elif number % 2 == 1: numbers = 3*number + 1 print(numbers) collatz(numbers) try: number = int(input("请输入一个整数->:")) collatz(number) except ValueError: print("please input a integer number")
以上是关于Python编程快速上手-让繁琐工作自动化 第三章 函数习题及其答案的主要内容,如果未能解决你的问题,请参考以下文章
入门python:《Python编程快速上手让繁琐工作自动化》中英文PDF+代码