《Python核心编程》第三章练习解析

来源:互联网 发布:oracle数据库oblob操作 编辑:程序博客网 时间:2024/05/21 19:31

第三章

第一题:

标识符,为什么python不需要变量名和变量类型的声明?

在python中不需要显示的声明变量,变量在第一次赋值时自动声明。在python中一切皆是对象,变量里储存的并不是具体的数值,而是对象的引用。所以,变量的类型依据等号右边对象的类型被自动声明。

第二题:

标识符。为什么python不需要声明函数类型?

这与第一题大同小异,python是动态脚本语言,程序会在运行的时候对函数进行类型检测。

第三题:

标识符。为什么应当避免在变量的开始和结尾使用双下划线?

因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,应避免使用下划线作为变量名的开始。一般来讲,变量名__XXX被看作是“私有的”,在模块或类外不可以使用。当变量是私有的时候,用__XXX来表示变量是很好的习惯。因为变量名__XXX__对python来说有特殊的含义,对于普通的变量应当避免这种命名风格。

第四题:

语句。python中可以一行写多个语句么?

可以,python可以以分号为分隔符一行写多个语句,但为了代码的可读性python并不建议这样做。

第五题:

语句。python可以将一个语句分多行书写么?

可以,一个过长的语句可以使用反斜杠(\)分解成几行。有两种列外的情况一个语句不使用反斜杠也能跨行:

         一、在使用闭合操作符时,单一语句可以跨行,例如在含有小括号、中括号、大括号时可以多行书写。

         二、三引号包括下的字符串也可以多行书写。

第六题:

变量赋值。

        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 = x;x = z;y = x

第七题:

标识符。

合法的标识符有: int32  printf  print  _print  this  self  __name__  bool  true  big-daddy  type  thisIsn'tAVar  thisISAVar  R_U_Ready  Int  True  if  do  counter-1  access

关键字:print  if


************************以下问题涉及书本第三章的makeTextFile.py和readTextFile.py脚本,我将在原来脚本的基础上修改,一并回答所有问题************************

<span style="font-size:14px;">#2015-02-15# -*- coding: utf-8 -*-import osdef maketextfile():    'MakeTextFile -- create and read text file'    ls = os.linesep        #get filename    while True:        fname = raw_input('Enter File Name:')        if os.path.exists(fname):            print "ERROR :%s already exits" % fname        else:            break            #get file content    all = []    print "\nEntser lines ('.'by itself to quit).\n"        #loop until user terminates input    while True:        enter = raw_input()        if enter == '.':            break        else:            all.append(enter)                #write lines to file with proper line-ending    fobj = open(fname,'w')    fobj.writelines(['%s%s'%(x,ls) for x in all])    fobj.close()    print 'DONE!'    def readtextfile():    'ReadTextFile -- read and display text file'        #get filename    while True:        fname = raw_input('Enter File Name:')                #attempt open file for raeding        try:            fobj = open(fname,'r')        except IOError as e:            print 'file open error:',e        else:            #display conetnt to the screen            for eachline in fobj:                print eachline.strip('\n')            fobj.close()            break        def addtextfile():    'AddTextFile -- add content to the text file'        ls = os.linesep    #get filename    while True:        fname = raw_input('Enter File Name:')                #attempt open file for raeding        try:            fobj = open(fname,'a')        except IOError as e:            print 'file open error:',e        else:            #add conetnt to the screen            all = []            while True:                inter = raw_input()                if inter == '.':                    break                else:                    all.append(inter)            print 'Do you want save it,yes or no ?'            inter = raw_input()            if inter == 'yes':                fobj.writelines(['%s%s'% (x,ls) for x in all])                fobj.close()            break        if __name__== '__main__':    print 'This is a document management system'    print "input 'h' to see the help information"    while True:        order = raw_input()        if order == 'h':            print 'm : Create a text file.'            print 'r : Read a text file.'            print 'a : Add a text file.'            print 'q : Quit!'        elif order == 'm':            print maketextfile.__doc__            maketextfile()        elif order == 'r':            print readtextfile.__doc__            readtextfile()        elif order == 'a':            print addtextfile.__doc__            addtextfile()        elif order == 'q':            print 'DONE!'            break</span>


0 0
原创粉丝点击