当前位置:首页 >> 理学 >>

python核心编程第二版第3章习题答案


3-1.标识符。为什么 Python 中不需要变量名和变量类型声明? 答案:Python 语言中对象的类型和内存都是运行时确定的。在创建也就是赋值时,解释器 会根据语法和右侧的操作数来决定新对象的类型。 因为变量在第一次赋值的时候就被自动声明了。Python 是无类型的语言。 Python 既是动态类型语言(因为它不使用显示数据类型声明,在运行期间才去确定数据类 型),又是强类型语言(因为只要一个变量获得了一个数据,它就一直就是这个数据的数据类 型)。 3-2.标识符。为什么 Python 中不需要声明函数类型? 答案:函数没有定义返回的数据类型。Python 不需要指定返回值的数据类型;甚至不需要 指定是否有返回值。实际上,每个 Python 函数都返回一个值;如果函数执行过 return 语句, 它将返回指定的值,否则将返回 None(Python 的空值)。 3-3.标识符。为什么应当避免在变量名的开始和结尾使用双下划线? 答案:因为变量名__xxx__对 Python 来说有特殊含义,对于普通的变量应当避免这种命名风 格。 3-4.语句。在 Python 中一行可以书写多个语句吗? 答案:可以 3-5.语句。在 Python 中可以将一个语句分成多行书写吗? 答案:可以 3-6.变量赋值。 (a)赋值语句 x, y, z = 1, 2, 3 会在 x、y、z 中分别赋什么值? (b)执行 z, x, y = y, z, x 后,x、y、z 中分别含有什么值? 答案: (a)x = 1, y = 2, z = 3 (b)x = 3, y = 1, z = 2 3-7.标识符。 下面哪些是 Python 合法的标识符?如果不是, 请说明理由。 在合法的标识符中, 哪些是关键字? int32 40XL $aving$ printf print _print this self __name__ 0X40L bool true big-daddy 2hot2touch type thisIsn'tAVar thisIsAVar R_U_Ready Int True if do counter-1 access 答案: Python 标识符字符串规则和其他大部分用 C 便携的高级语言相似: 第一个字符必须是字母或下划线'_';剩下的字符可以是字母数字或下划线;大小写敏感。 int32、printf、_print、this、self、__name__、bool、true、type、thisIsAVar、R_U_Ready、Int、 True、do、access 是 Python 合法的标识符。 print、if 是 Python 合法的标识符且是关键字。 40XL、$aving$、0X40L、big-daddy、2hot2touch、thisIsn'tAVar、counter-1、-不是 Python 合

法的标识符。 3-8.Python 代码。将脚本拷贝到你的文件系统中,然后修改它。可以添加注释,修改提示符 (‘>’太单调了)等,修改这些代码,使他们看上去更舒服。 答案:略 3-9.移植。如果你在不同类型的计算机系统中分别安装有 Python,检查一下,os.linesep 的值 是否有不同。记下操作系统的类型及 linesep 的值。 答案: Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. >>> import os >>> os.linesep '\r\n' linux 系统没有,略。 3-10.异常。使用类似 readTextFile.py 中异常处理的方法取代 makeTextFile.py 中对 os.path.exists()的调用。反过来,用 os.path.exists()取代 readTextFile.py 中的异常处理方法。 答案:后续补上 3-11.字符串格式化。不再抑制 readTextFile.py 中 print 语句生成的 NEWLINE 字符,修改你的 代码,在显示一行之前删除每行末尾的空白。这样,你就可以移除 print 语句末尾的逗号了。 提示:使用字符串对象的 strip()方法。 答案: #/usr/bin/env python 'readTextFile.py -- read and display text file' # get filename fname = raw_input("Enter filename: ") print # attempt to open file for reading try: fobj = open(fname,'r') except IOError,e: print "*** file open error:", e else: # display contents to the screen for eachLine in fobj: print eachLine.strip() fobj.close()

3-12.合并源文件。将两段程序合并成一个,给它起一个你喜欢的名字,比如 readNwriteTextFiles.py。让用户自己选择是创建还是显示一个文本文件。 #!/usr/bin/env python #_*_coding:utf8_*_ import os ls = os.linesep #get filename while True: print ''' 1.makeTextFile 2.readTextFile 3.quit ''' choose = raw_input('请输入操作代码: '.decode("utf-8").encode("gbk")) if int(choose) == 1: while True: fname = raw_input('请输入要创建的文件名: '.decode("utf-8").encode("gbk")) if os.path.exists(fname): print "ERROR: '%s' already exists" % fname else: break #get file content (text) Lines all_list = [] """原著上使用了 all 做 list,但是在使用 eclipse 是发现有 assignment to reserved built-in symbol:all 的 warning,所以就使用 all_list""" #all = [] print "\nEnter lines ('.' by itself to quit).\n" #loop until user terminates input while True: entry = raw_input('> ') if entry == '.': break else: all_list.append(entry) #write lines to file with proper line-ending fobj = open(fname,'w') fobj.writelines(['%s%s' % (x,ls) for x in all_list]) fobj.close() print 'DONE!'

elif int(choose) == 2: while True: fname = raw_input('请输入文件名: '.decode("utf-8").encode("gbk")) if os.path.exists(fname): break else: print "ERROR: '%s' is not exists" % fname fobj = open(fname,'r') for eachLine in fobj: print eachLine.strip() fobj.close() elif int(choose) == 3: print "程序将退出".decode("utf-8").encode("gbk") break else: print "Please again" 3-13.*添加新功能。将你上一个问题改造好的 readNwriteTextFiles.py 增加一个新功能:允许 用户编辑一个已经存在的文本文件。你可以使用任何方式,无论是一次编辑一行,还是一次 编辑所有的文本。需要提醒一下的是,一次编辑全部文本有一定难度,你可能需要借助 GUI 工具包或一个基于屏幕文本编辑的模块比如 curses 模块。要允许用户保存他的修改(保存 到文件)或取消他的修改(不改变原始文件),并且要确保原始文件的安全性(不论程序是 否正常关闭)。 答案:日后补上


相关文章:
python核心编程第二版第3章习题答案.doc
python核心编程第二版第3章习题答案_理学_高等教育_教育专区。python核心编程第二版第3章习题答案 3-1.标识符。为什么 Python 中不需要变量名和变量类型声明? ...
python核心编程第二版第4章习题答案.doc
python核心编程第二版第4章习题答案 - 4-1.Python 对象。与所有
PYTHON核心编程第二版第2章习题答案.pdf
PYTHON核心编程第二版第2章习题答案 - 2-1.变量,print 和字符串
Python核心编程(第二版)第三,四章课后习题部分答案代码.txt
Python核心编程(第二版)课后习题部分代码(3-4章)(持续更新)文章分类:Python编程 本人近期研究了下Python,所用的书籍主要是Python核心编程(第二版)等,在此期间,...
Python核心编程第三版课后习题解答(第二章).doc
Python核心编程第三版课后习题解答(第二章)_计算机软件及应用_IT/计算机_专业资料。Python核心编程第三版第二章课后习题解答 Python 核心编程第三版课后习题解答...
python核心编程第二版第2章习题答案.doc
python核心编程第二版第2章习题答案_教育学_高等教育_教育专区。pytho
python核心编程第二版第9章习题答案.doc
python核心编程第二版第9章习题答案 - 91. 文件过滤. 显示一个文件
python核心编程第二版第7章习题答案.doc
python核心编程第二版第7章习题答案_教育学_高等教育_教育专区。pytho
python核心编程第二版第9章习题答案.doc
python核心编程第二版第9章习题答案 - 91. 文件过滤. 显示一个文件
Python核心第二版习题答案.pdf
Python核心第二版习题答案 - Pytho 核心编程第二版(第二,三,四,五
Python核心编程第二版-习题答案_图文.pdf
Python核心编程第二版-习题答案 - Chun_AppA.fm Page 1
PYTHON核心编程第二版课后题答案第八章.pdf
PYTHON核心编程第二版课后题答案第八章 - def loop(f, t, i
Python核心编程(第二版)第十章习题答案.doc
Python核心编程(第二版)第十章习题答案 - 10.1 引发异常。以下的哪个
PYTHON核心编程(第二版)第十章习题答案.pdf
PYTHON核心编程(第二版)第十章习题答案_电子/电路_工程科技_专业资料。1
PYTHON核心编程第二版习题解答及执行结果第二章 PY3.4实现.pdf
PYTHON核心编程第二版习题解答及执行结果第二章 PY3.4实现_电子/电路_工程科技...第二章习题解答 2-4 >>> num = input("please input a number: ") ...
Python核心编程第三版课后习题解答(第四章).doc
Python核心编程第三版课后习题解答(第四章)_计算机软件及应用_IT/计算机_专业资料。Python核心编程第三版第章课后习题解答 Python 核心编程第三版课后习题解答...
python核心编程第二版课后题答案第九章.doc
核心| 编程| python核心编程第二版课后题答案第九章_理学_高等教育_教育专区。python核心编程第二版课后题答案,转载,仅供参考 9.11 练习 91. 文件过滤. 显示...
PYTHON核心编程第二版课后题答案第六章.pdf
PYTHON核心编程第二版课后题答案第六章 - def idcheck(): &
python核心编程第二版第8章习题答案.doc
python核心编程第二版第8章习题答案_教育学_高等教育_教育专区。pytho
python核心编程第二版课后题答案第五章.doc
python核心编程第二版课后题答案第五章_工学_高等教育_教育专区。python核心编程第二版课后题答案,转载,仅供参考 def ji(x1, x2): '''5-2 返回两个数的...
更多相关文章: