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__ == ' ...
随机推荐
- Intellij IDEA调试
这段时间一直在使用Intellij IDEA, 今天把调试区工具的使用方法记录于此. 先编译好要调试的程序. 1.设置断点 选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可. 2.开启调试会话 ...
- 微信开发第5章 通过accesstoken获取用户基本信息并修改用户备注
在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同).公众号可通过本接口来根据Op ...
- sublime中安装sublimelinter php 语法检查
打开控制台,install package 搜 sublimelinter 先安装sublimelinter本体 安装完以后再搜索一下,安装sublimelinter-php 接下来,打开prefer ...
- FZU2138-久违的月赛之一
Problem Description 好久没举月赛了,这次lqw给大家出了5道题,因为hsy学长宣传的很到位,吸引了n个DDMM们来做,另一位kk学长说,全做对的要给金奖,做对4题要给银奖,做对3题 ...
- JavaBean以及MVC模式
JavaBean, 咖啡豆. JavaBean是一种开发规范,可以说是一种技术. JavaBean就是一个普通的java类.只有符合以下规定才能称之为javabean: 1)必须提供无参数的构造方法 ...
- hdu 4634 Swipe Bo 搜索
典型的bfs模拟 (广度优先搜索) ,不过有好多细节要注意,比如图中如果是 R# 走到这个R的话就无限往右走了,这样就挂了~肯定到不了出口.还有一种容易造成死循环的,比如 #E## DLLL D. ...
- extern用法总结!
extern 在源文件A里定义的函数,在其他源文件中是看不见的(即不能訪问).为了在源文件B里能调用这个函数,应该在B的头部加上一个外部声明: extern 函数原型: 这样,在源文件B里也能够调 ...
- gdb调试运行时的程序小技巧
使用gdb调试运行时的程序小技巧 标签: 未分类 gdb pstack | 发表时间:2012-10-15 04:32 | 作者:士豪 分享到: 出处:http://rdc.taobao.com/bl ...
- HTTP的报文格式,GET和POST的区别
1.HTTP报文格式 HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的.HTTP有两类报文:请求报文和响应报文. 请求报文: 一个HTTP请求报文由请求行( ...
- android开发之SwipeListView的使用
实现一种类似于qq中滑动列表的功能: 向左或者向右滑动,然后执行相关操作. 这里用到的是GitHub上的开源控件SwipeListView,下载地址https://github.com/47deg/a ...