《Python核心编程》第二版第437页第十四章练习 -Python核心编程答案-自己做的-
2013-03-04 11:52
543 查看
这是自己做的练习,可能有错误,欢迎讨论和各种优化重构方案。
根据反馈,或者code review,对本篇文章答案或者相关内容的更新补充,一般会被添加在本篇博客的评论中。
将尽量保证每题的答案代码是完整的,不仅仅是函数或者类,打开Python 2.7的IDLE,将代码完整拷贝进去,就能调试运行。
欢迎访问Balian在博客园的家。 http://www.cnblogs.com/balian
14-1.
可调用对象。说出Python中的可调用对象。exec语句和内建函数eval()有什么不同。
【答案】
Python中的可调用对象有三:
函数-包括内建函数(BIF),用户定义函数(UDF),lambda表达式
方法-包括内建方法(BIM),用户定义方法(UDM)
类-也就是类实例
exec语句是一个BIF。exec obj表示执行obj,obj可以是单一的Python语句或者语句的集合(即代码对象或者字符串)或者一个文件对象(一个被打开的Python脚本)。exec语句只有obj参数。参考该书第419页。
eval()接收括弧内的字符串,并把它作为Python表达式进行求值。eval()还有可选的的第二第三参数。参考该书第418页。
14-2.
input()和raw_input()。内建函数input()和raw_input()有什么不同?
这里附一个英文版书中的原题。
【答案】
input()为内建函数(BIF),是eval()和raw_input()的组合,即eval(raw_input())。
和raw_input()一样,input()有可选字符串参数,该参数是给用户的字符串提示。
raw_input()总是以字符串的形式,逐字返回用户的输入。
input()把输入作为Python表达式求值,返回一个Python对象。
【参考代码】
14-3.
执行环境。创建运行其他Python脚本的Python脚本。
【答案】
代码如下:
14-4.
os.system()。选择熟悉的系统命令,该命令执行任务时不需要输入,也不输出到屏幕或根本不输出任何东西。调用os.system()运行程序。附加题:将你的解决方案移植到subprocess.call()。
【答案】
这里选用系统命令dir > test.txt。Dir的结果是存放在test.txt文件中,所以这个命令不需要输入,也无输出到屏幕。
代码如下:
附加题代码如下:
14-5.
commands.getoutput()。用commands.getoutput()解决前面的问题。
【答案】
commands.getoutput()在unix平台才能运行。参考http://bugs.python.org/issue15073
根据反馈,或者code review,对本篇文章答案或者相关内容的更新补充,一般会被添加在本篇博客的评论中。
将尽量保证每题的答案代码是完整的,不仅仅是函数或者类,打开Python 2.7的IDLE,将代码完整拷贝进去,就能调试运行。
欢迎访问Balian在博客园的家。 http://www.cnblogs.com/balian
14-1.
可调用对象。说出Python中的可调用对象。exec语句和内建函数eval()有什么不同。
【答案】
Python中的可调用对象有三:
函数-包括内建函数(BIF),用户定义函数(UDF),lambda表达式
方法-包括内建方法(BIM),用户定义方法(UDM)
类-也就是类实例
exec语句是一个BIF。exec obj表示执行obj,obj可以是单一的Python语句或者语句的集合(即代码对象或者字符串)或者一个文件对象(一个被打开的Python脚本)。exec语句只有obj参数。参考该书第419页。
eval()接收括弧内的字符串,并把它作为Python表达式进行求值。eval()还有可选的的第二第三参数。参考该书第418页。
14-2.
input()和raw_input()。内建函数input()和raw_input()有什么不同?
这里附一个英文版书中的原题。
【答案】
input()为内建函数(BIF),是eval()和raw_input()的组合,即eval(raw_input())。
和raw_input()一样,input()有可选字符串参数,该参数是给用户的字符串提示。
raw_input()总是以字符串的形式,逐字返回用户的输入。
input()把输入作为Python表达式求值,返回一个Python对象。
【参考代码】
>>> b = input("Please input a formular: ... ") Please input a formular: ... 1 + 2 >>> b 3 >>> a = raw_input("Please input a formular: ..." ) Please input a formular: ...1 + 2 >>> a '1 + 2' >>>
14-3.
执行环境。创建运行其他Python脚本的Python脚本。
【答案】
代码如下:
>>> exec ''' ... print 'Hello World!' ... ''' Hello World! >>>
14-4.
os.system()。选择熟悉的系统命令,该命令执行任务时不需要输入,也不输出到屏幕或根本不输出任何东西。调用os.system()运行程序。附加题:将你的解决方案移植到subprocess.call()。
【答案】
这里选用系统命令dir > test.txt。Dir的结果是存放在test.txt文件中,所以这个命令不需要输入,也无输出到屏幕。
代码如下:
>>> import os >>> os.system("dir > test.txt") 0 >>>
附加题代码如下:
>>> import subprocess >>> subprocess.call(('dir > test.txt'), shell = True) 0 >>>
14-5.
commands.getoutput()。用commands.getoutput()解决前面的问题。
【答案】
commands.getoutput()在unix平台才能运行。参考http://bugs.python.org/issue15073
相关文章推荐
- 《Python核心编程》第二版第437页第十四章练习 续一 -Python核心编程答案-自己做的-
- 《Python核心编程》第二版第437页第十四章练习 续二 -Python核心编程答案-自己做的-
- 《Python核心编程》第二版第209页第八章练习 -Python核心编程答案-自己做的-
- 《Python核心编程》第二版第405页第十三章练习 续三 -Python核心编程答案-自己做的-
- 《Python核心编程》第二版第405页第十三章练习 续一 -Python核心编程答案-自己做的-
- 《Python核心编程》第二版第407页第十三章练习 续六 -Python核心编程答案-自己做的-
- 《Python核心编程》第二版第308页第十一章练习 续五 -Python核心编程答案-自己做的-
- 《Python核心编程》第二版第36页第二章练习 续二 -Python核心编程答案-自己做的-
- 《Python核心编程》第二版第405页第十三章练习 -Python核心编程答案-自己做的-
- 《Python核心编程》第二版第308页第十一章练习 续一 -Python核心编程答案-自己做的-
- 《Python核心编程》第二版第36页第二章练习 续三 -Python核心编程答案-自己做的-
- 《Python核心编程》第二版第407页第十三章练习 续四 -Python核心编程答案-自己做的-
- 《Python核心编程》第二版第308页第十一章练习 续二 -Python核心编程答案-自己做的-
- 《Python核心编程》第二版第209页第八章练习 续三 -Python核心编程答案-自己做的-
- 《Python核心编程》第二版第160页第六章练习 续二 -Python核心编程答案-自己做的-
- 《Python核心编程》第二版第308页第十一章练习 续三 -Python核心编程答案-自己做的-
- 《Python核心编程》第二版第36页第二章练习 续一 -Python核心编程答案-自己做的-
- 《Python核心编程》第二版第18页第一章练习 -Python核心编程答案-自己做的-
- 《Python核心编程》第二版第55页第三章练习 续二 -Python核心编程答案-自己做的-
- 《Python核心编程》第二版第209页第八章练习 续二 -Python核心编程答案-自己做的-