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第三章课后练习的更多相关文章

  1. Python核心编程2第四章课后练习

    4-1 Python 对象.与所有 Python 对象有关的三个属性是什么?请简单的描述一下.      身份:对象的唯一标识      类型 :对象的类型决定了该对象可以保存什么类型的值       ...

  2. Python核心编程笔记 第三章

    3.1     语句和语法    3.1.1   注释( # )   3.1.2   继续( \ )         一般使用换行分隔,也就是说一行一个语句.一行过长的语句可以使用反斜杠( \ ) 分 ...

  3. 《Python核心编程》 第三章 Python基础 - 练习

    创建文件: # -*- coding: gbk -*- #! /auto/ERP/python_core/chapter ''' Created on 2014年5月21日 @author: user ...

  4. Python核心编程2第五章课后练习

    5-1 整型,讲讲python普通整型与长整型区别 python整形一共有三种:布尔型,长整型和标准整型.普通整型与长整型的区别在于标准整形的取值范围是-2^31到2^31-1,长整型所能表达的数值与 ...

  5. Python核心编程2第六章课后练习

    6-1 字符串 .string 模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串是否是另一个大字符串的一部分? #!/usr/bin/env python def contain(str1 ...

  6. 《Python核心编程》 第六章 序列 - 课后习题

    课后习题 6–1.字符串.string 模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串是否是另一个大字符串的一部分? 答:成员关系操作符(in.not in) import string ...

  7. 《Python核心编程》 第四章 Python对象- 课后习题

    练习 4-1. Python对象.与所有Python对象有关的三个属性是什么?请简单的描述一下. 答:身份.类型和值: 身份:每一个对象都有一个唯一的身份标识自己,可以用id()得到.  类型:对象的 ...

  8. 《Python核心编程》 第五章 数字 - 课后习题

    课后习题  5-1 整形. 讲讲 Python 普通整型和长整型的区别. 答:普通整型是绝大多数现代系统都能识别的. Python的长整型类型能表达的数值仅仅与你机器支持的(虚拟)内存大小有关. 5- ...

  9. python核心编程2 第十一章 练习

    11-2 函数.结合你对练习5-2的解,以便你创建一个带一对相同数字并同时返回它们之和以及产物的结合函数. multiply = lambda x, y: x * y if __name__ == ' ...

随机推荐

  1. Python自动化之session

    request.body 所有请求内容的原生数据 request.META 所有请求头的原生数据 cookie返回存在于响应头里面 session session是保存在服务端的键值对 cookie和 ...

  2. php 环境变量收集

    常用的PHP环境变量和系统常量列表 是一个包含服务器端相关信息的PHP全局环境变量,在PHP4.1.0之前的版本使用$HTTP_SERVER_VARS.更多信息可以参考这里. $_SERVER['PH ...

  3. Chrome/Chromium HTML5 video 视频播放硬件加速

    Chromium站点上有个大致的框图.描写叙述了Chromium的video在各个平台 - 包含Android - 上是怎样使用硬件资源来做视频编解码加速的: 而依据Android Kitkat上的C ...

  4. HDU 1242 rescue and 优先级队列的条目

    Problem Description Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is ...

  5. mybatis0201 01复习

    mybatis是什么? mybatis是一个持久层框架,是apache下的开源项目,前身是itbatis,是一个不完全的ORM框架(因为mybatis提供输入和输出的映射,需要程序员自己写sql语句) ...

  6. 以色列学生---debugger 构建

    http://eli.thegreenplace.net/2011/01/23/how-debuggers-work-part-1 http://eli.thegreenplace.net/

  7. codeblocks创建和使用静态库(C语言)

    静态库  (扩展名为 .a 或 .lib) 是包含函数的文件,用于在link阶段整合执行程序,动态链接库(扩展名  .dll)是不在link阶段整合进执行程序中的. DLL文件在执行阶段动态调用 下面 ...

  8. kafka Windows客户端Linux服务器---转

    原文:http://blog.csdn.net/jingshuigg/article/details/25001979 一.对于服务器端的搭建可以参考上一篇文章:kafka单机版环境搭建与测试 服务器 ...

  9. Motion——shake攻略

    1.子类化窗口 如果响应链中没有motionEnded:withEvent:消息的接收者,那么该消息就会被发送给应用程序的window对象.所以需要在window对象上拦截motionEnded:wi ...

  10. hdu2025java字符题

    查找最大元素 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...