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__ == ' ...
随机推荐
- 高性能MySql进化论(十一):常见查询语句的优化
总结一下常见查询语句的优化方式 1 COUNT 1. COUNT的作用 · COUNT(table.filed)统计的该字段非空值的记录行数 · ...
- 遮罩层的实现(纯js兼容版)
这个代码是我以前测试时候的代码了,主要用到的知识点是opacity和filer分别实现 “标准浏览器”和IE浏览器下的半透明,使用js的document.body.offsetwidth 和scree ...
- Title Case
地址:http://www.codewars.com/kata/5202ef17a402dd033c000009/train/python 题目: A string is considered to ...
- 保持Service不被Kill掉的方法--双Service守护 && Android实现双进程守护
本文分为两个部分,第一部分为双Service守护,第二部分为双进程守护 第一部分: 一.Service简介:Java.lang.Object ↳Android.content.Context ↳an ...
- onInterceptTouchEvent和onTouchEvent调用时序
onInterceptTouchEvent()是ViewGroup的一个方法,目的是在系统向该ViewGroup及其各个childView触发onTouchEvent()之前对相关事件进行一次拦截,A ...
- MYSQL 系统命令 源码定位
sql_cmd.h enum enum_sql_command { SQLCOM_SELECT, SQLCOM_CREATE_TABLE, SQLCOM_CREATE_INDEX, SQLCOM_AL ...
- Show Global Status 整理
原文来源:MySQL 5.5 Reference Manual 部分翻译取自:<MySQL_5.1中文参考手册> 转载请注明原文链接http://www.cnblogs.com/lenag ...
- HttpModule,HttpHandler,HttpHandlerFactory
HttpModule:Http模块,可以在页面处理前后.应用程序初始化.出错等时候加入自己的事件处理程序. HttpHandler:Http处理程序,处理页面请求 HttpHandlerFactory ...
- day-8
/* 倒数8天了 今天高考报名 两个班主任都来了23333 然后填班主任姓名就尴尬了23333 上午考试 挺不错的题目 都不是很水 但需要思考 而我是一脸的懵逼~~ 下午整理各种板子 主要是图论的 最 ...
- 用Module元素实现SharePoint Webpart Page的自动生成
最近研发的项目中开发了很多的WebPart,每次部署这些WebPart到新环境中总是很麻烦,因为自己要新创建WebpartPage,同时还要把这些WebPart放到指定的WebPart页中去: 为了方 ...