Python核心编程2第三章课后练习
1. 标识符。为什么Python 中不需要变量名和变量类型声明?
Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程。每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
2.标识符。为什么Python 中不需要声明函数类型?
Python中使用def关键字定义函数,函数包括函数名称和参数,不需要定义返回类型,Python能返回任何类型函数没有定义返回类型,实际上每一个函数都有返回值,默认为None(python的空值).
3.标识符。为什么应当避免在变量名的开始和和结尾使用双下划线?
在python中有特殊意义,表示系统定义名字,防止系统脚本出错
4.python 一行书写多个语句方式?
同一行书写多个语句使用(;)号隔开
5.语句。在Python 中可以将一个语句分成多行书写吗?
多行书写,在该行语句排头加入反斜杠(\)即可
6 变量赋值
(a)赋值语句 x, y, z = 1, 2, 3 会在 x、y、z 中分别赋什么值?
x=1 y=2 z=3
(b)执行z, x, y = y, z, x 后,x、y、z 中分别含有什么值?
z=2 x=3 y=1
7.标识符。下面哪些是Python 合法的标识符?如果不是,请说明理由!在合法的标识符中,哪些是关键字?
合法的标识符:第一个字符必须是字母或下划线(_);剩下的字符可以是字母和数字或下划线
int32、printf、_print、this、self、__name__、bool、true、type、thisIsAVar、R_U_Ready、Int、True、do、access是Python合法的标识符。
print、if、是Python合法的标识符且是关键字。
4.0XL、$aving$、0X40L、big-daddy、2hot2touch、thisIsn'tAVar、counter-1、-不是Python合法的标识符。
8.Python 代码。将脚本拷贝到您的文件系统中,然后修改它。可以添加注释,修改修改提示符(‘>’太单调了)等等,修改这些代码,使它看上去更舒服。
makeTextFile.py
#!/usr/bin/env python
#-*-coding:utf-8-*-
import os
ls =os.linesep
#导入os模块,获取当前系统行终止符
#取得fname变量的文件名
while True:
fname =raw_input("Enter filename:")
try:
if os.path.exists(fname):
print "ERROR:'%s' already exists" % fname
else:
break
except:
print "*** file open error:",e
#输入文件名,如果存在提示存在,不存在结束循环进入下个程序
all =[]
print "\nEnter lines ('.' by itself to quit).\n"
#提示使用.quit
while True:
entry =raw_input('>')
if entry=='.':
break
else:
all.append(entry)
#循环,如果有.结束循环,其他情况添加.
fobj =open(fname,'w')
fobj.writelines(['%s%s'%(x,ls) for x in all])
#输入输入进去的每一行
fobj.close()
print 'DONE!

readTextFile.py
#!/usr/bin/env python
#-*-coding:utf-8-*-
fname =raw_input("Enter filename:")
#提示输入需要阅读的文件名
print
try:
fobj =open(fname,'r')
#在读的模式下打开文件
except IOError,e:
print "*** file open error:",e
#若出错提示错误
else:
for eachLine in fobj:
print eachLine,
fobj.close()
#打印出每一行,并关闭

9.移植。 如果你在不同类型的计算机系统中分别安装有Python, 检查一下,os.linesep 的值是否有不同。 记下操作系统的类型以及 linesep 的值。
RedHat

WindowsXP

10.异常。使用类似readTextFile.py 中异常处理的方法取代 readTextFile.py makeTextFile.py 中 对 os.path.exists()的调用。反过来, 用os.path.exists()取代readTextFile.py 中的异常处理方法。
#!/usr/bin/env python
#-*-coding:utf-8-*-
'readTextFile.py -- read and display text file'
#fname变量获得文件名
import os
fname=raw_input('Enter filename:')
if os.path.exists(fname):
#fobj对象读模式打开文件
fobj=open(fname,'r')
for eachLine in fobj:
print eachLine.strip()
fobj.close()
else:
print "No this file"

11.字符串格式化 不再抑制 readTextFile.py 中 print 语句生成的 NEWLINE 字符,修改你的代码,在显示一行之前删除每行末尾的空白。这样,你就可以移除 print 语句末尾的逗号了。提示: 使用字符串对象的 strip()方法
#!/usr/bin/env python
#-*-coding:utf-8-*-
'readTextFile.py -- read and display text file'
#fname变量获得文件名
import os
fname=raw_input('Enter filename:')
if os.path.exists(fname):
#fobj对象读模式打开文件
fobj=open(fname,'r')
for eachLine in fobj:
print eachLine.strip()
fobj.close()
else:
print "No this file"

12.合并源文件。将两段程序合并成一个,给它起一个你喜欢的名字,比方readNwriteTextFiles.py。让用户自己选择是创建还是显示一个文本文件。
#!/usr/bin/env python
#-*-coding:utf-8-*-
import os
ls =os.linesep
while True:
print """
1.readTextFile
2.makeTextFile
3.quit
4.make the already Text File
"""
choose =raw_input("please find the choose")
if choose =='':
print "You choose 1"
while True:
fname =raw_input("enter the name:")
if os.path.exists(fname):
print "the name is already exists!"
else:
break
all=[]
print"\n Enter lines('.' by itself to quit)\n"
while True:
entry =raw_input(">")
if entry =='.':
break
else:
all.append(entry)
fobj =open(fname,'w')
fobj.writelines(['%s%s'%(x,ls) for x in all])
fobj.close()
print "DONE!"
if choose=='':
print 'You choose 2'
fname =raw_input("please choose the file:")
fobj =open(fname,'r')
for eachLine in fobj:
print eachLine,
fobj.close
if choose=='':
break
if choose=='':
fname =raw_input("please choose the file:")
all =[]
while True:
entry =raw_input(">")
if entry=='.':
break
else:
all.append(entry)
fobj =open(fname,'w')
fobj.writelines(['%s%s'%(x,ls) for x in all])
fobj.close()
print "DONE!"
Python核心编程2第三章课后练习的更多相关文章
- Python核心编程2第四章课后练习
4-1 Python 对象.与所有 Python 对象有关的三个属性是什么?请简单的描述一下. 身份:对象的唯一标识 类型 :对象的类型决定了该对象可以保存什么类型的值 ...
- Python核心编程笔记 第三章
3.1 语句和语法 3.1.1 注释( # ) 3.1.2 继续( \ ) 一般使用换行分隔,也就是说一行一个语句.一行过长的语句可以使用反斜杠( \ ) 分 ...
- 《Python核心编程》 第三章 Python基础 - 练习
创建文件: # -*- coding: gbk -*- #! /auto/ERP/python_core/chapter ''' Created on 2014年5月21日 @author: user ...
- Python核心编程2第五章课后练习
5-1 整型,讲讲python普通整型与长整型区别 python整形一共有三种:布尔型,长整型和标准整型.普通整型与长整型的区别在于标准整形的取值范围是-2^31到2^31-1,长整型所能表达的数值与 ...
- Python核心编程2第六章课后练习
6-1 字符串 .string 模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串是否是另一个大字符串的一部分? #!/usr/bin/env python def contain(str1 ...
- 《Python核心编程》 第六章 序列 - 课后习题
课后习题 6–1.字符串.string 模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串是否是另一个大字符串的一部分? 答:成员关系操作符(in.not in) import string ...
- 《Python核心编程》 第四章 Python对象- 课后习题
练习 4-1. Python对象.与所有Python对象有关的三个属性是什么?请简单的描述一下. 答:身份.类型和值: 身份:每一个对象都有一个唯一的身份标识自己,可以用id()得到. 类型:对象的 ...
- 《Python核心编程》 第五章 数字 - 课后习题
课后习题 5-1 整形. 讲讲 Python 普通整型和长整型的区别. 答:普通整型是绝大多数现代系统都能识别的. Python的长整型类型能表达的数值仅仅与你机器支持的(虚拟)内存大小有关. 5- ...
- python核心编程2 第十一章 练习
11-2 函数.结合你对练习5-2的解,以便你创建一个带一对相同数字并同时返回它们之和以及产物的结合函数. multiply = lambda x, y: x * y if __name__ == ' ...
随机推荐
- 运用HBuilder上传到GitHub
Hbuilder安装github插件 如图所示: 一.打开自己GitHub,新建一个"库" 2.设置自己项目名和简介 3.建完后,就会显示GitHub要上传路径 4.打开" ...
- hdu4488 Faulhaber’s Triangle(模拟题)
Faulhaber’s Triangle Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- Using JAAS Authentication in Java Clients---weblogic document
The following topics are covered in this section: JAAS and WebLogic Server JAAS Authentication Devel ...
- SpringMVC项目学习1_web.xml
最近接触的所有项目都是SpringMVC+ajax的项目,因此以一个项目为例学习下. --------------------------------------------------------- ...
- 三分钟学会缓存工具DiskLruCache
DiskLruCache是一个十分好用的android缓存工具,我们可以从GitHub上下载其源码:https://github.com/JakeWharton/DiskLruCache DiskLr ...
- linux find grep使用
在当前目录下所有文件中查找内容包含 string 的文件: find ./ -name "*" -exec grep "string" {} \; 注意:在最后 ...
- Spring文件上传出错:java.lang.ClassCastException: org.apache.catalina.connector.Request
java.lang.ClassCastException: org.apache.catalina.connector.RequestFacade cannot be cast to org.spri ...
- VS2010调试多进程--医疗His调试中使用
有些时候碰到自己开发的程序嵌入到别人的框架中,而在接口的地方出了问题,而又不方便将自己的模快加入到别人的工程中这个时候VS的附加到进程调试变得不可或缺了,直奔主题 http://msdn.micros ...
- 动态添加JS文件到页面
/*** ** 功能: 加载外部JS文件,加载完成后执行回调函数callback ***/ var utools = { config: { id: "", url: " ...
- PHP 进制问题
PHP有一些函数提供进制之间的转化问题 在Math函数中有一部分: decbin() - 十进制转换为二进制 bindec() — 二进制转换为十进制 octdec() - 八进制转换为十进制 hex ...