python核心編程-第三章-習題

1.這是python的語言特性,python先建立對象,在給變量賦值時,不須要定義變量的名稱和類型,它實際是用變量引用對象。變量類型在給變量賦值時自動聲明python

2.緣由相似變量無須聲明類型git

3.python用下劃線做爲變量前綴和後綴指定特殊變量,對解釋器有特殊意義,也是內建標識符所使用的特殊符號,故通常避免用下劃線做爲變量的開頭和結尾編程

4.python一行能夠書寫多個語句,多個語句間用";"分隔。可是爲了良好的編程風格,不推薦這麼作app

5.python能夠將一個語句分紅多行書寫,行的末尾用反斜槓"\"標識。python一行語句最好不超過80字符,因此若一個語句過長,能夠分紅多行書寫。其餘狀況下,仍是保持一個物理行寫一個邏輯行吧this

6.變量賦值操作系統

(a)賦值語句 x, y, z = 1, 2, 3  在x中賦值1,y中賦值2,z中賦值3code

(b)執行在z, x, y = y, z, x後,x值是3,y的值是1,z的值是2對象

 7.標識符ip

int32  printf  print  _print  this  self  __name__  bool  true   type  thisIsAVar  R_U_ready  Int  True  if  do  accessutf-8

是合法的python標識符

其中,print;if是python關鍵字。

8.

#!/user/bin/env python

# -*- coding:utf-8 -*-

'makeTextFile.py -- create text file'import os

ls = os.linesep
while True:
    fname = raw_input("請輸入要建立的文件名".decode("utf-8").encode("gbk"))
    #判斷文件是否已經存在,若是存在則從新輸入
    if os.path.exists(fname):
        print u"錯誤:'%s' 文件已經存在!" % fname
    else:
        break
all = []
print u"\n 請輸入每一行的內容,在單行輸入英文狀態的'.'完成輸入。\n"
while True:
    entry = raw_input("輸入沒一行的內容吧:\n".decode("utf-8").encode("gbk"))
    #判斷輸入內容是不是退出字符,如果則結束輸入    
    if entry == '.':
        break
    else:
        all.append(entry)
#建立文件,並以寫入模式打開
fobj = open(fname,'w')
#將輸入的每行寫入文件中
fobj.writelines(['%s%s' % (x,ls) for x in all])
fobj.close()
print u"成功建立!程序結束!"

 

9.操做系統:Windows 10 64位

os.linesep:'\r\n'

10.① try-except-else 替代

#!/user/bin/env python
# -*- coding:utf-8 -*-

'makeTextFile.py -- create text file'

import os
ls = os.linesep
while True:
    fname = raw_input("請輸入要建立的文件名".decode("utf-8").encode("gbk"))
    #判斷文件是否已經存在,若是存在則從新輸入
    try:
        fobj = open(fname)
    except IOError:        
        break
    else:
        print u"錯誤:%s 文件已經存在" % fname
    
all = []
print u"\n請輸入每一行的內容,在單行輸入英文狀態的'.'完成輸入。\n"
while True:
    entry = raw_input("輸入每一行的內容吧:\n".decode("utf-8").encode("gbk"))
    #判斷輸入內容是不是退出字符,如果則結束輸入  
    if entry == '.':
        break
    else:
        all.append(entry)
#建立文件,並以寫入模式打開
fobj = open(fname,'w')
#將輸入的每行寫入文件中
fobj.writelines(['%s%s' % (x,ls) for x in all])
fobj.close()

print u"成功建立!程序結束!"

②os.path.exists()替換try-except-else

#!/user/bin/env python
# -*- coding:utf-8 -*-

'readTextFile.py -- read and display text file'

import os
 
#用戶輸入要打開的文件
fname = raw_input("請輸入文件名:")
print 

#嘗試以閱讀模式打開文件
if os.path.exists(fname):
    fobj = open(fname,'r')
    for eachline in fobj:
        print eachline,
        fobj.close()
else:    
    print "錯誤:文件不存在!"

 

11.

#!/user/bin/env python
# -*- coding:utf-8 -*-

"readTextFile.py -- read and display text file"

#用戶輸入要打開的文件
fname = raw_input("Enter file name".decode("utf-8").encode("gbk"))
print 

#嘗試以閱讀模式打開文件
try:
    fobj = open(fname,'r')
except IOError,e:
    print "*** file open error:",e
else:
    #打印出文件內容
    for eachline in fobj:
        print eachline.strip('\n')
    fobj.close()

給本身的提示:字符串的strip()方法用於移除字符串頭尾指定的字符,它返回移除指定字符後的新字符串

eg:

str = "11111Let's see how the strip() works.1111111"
print str.strip('1')

輸出:

Let's see how the strip() works.

12.修改後程序以下

#!user/bin/env python
# -*- coding:utf-8 -*-

'read_or_makeTextFile.py -- read and display text file,or create text file '

import os

ls = os.linesep

while True:
    choise = raw_input("打開文件請輸入1,建立文件輸入2,退出輸入3:".decode("utf-8").encode("gbk"))
    if not choise.isdigit():
        print u"請輸入數字"
    elif int(choise) == 1:
        fname = raw_input("請輸入文件名:".decode("utf-8").encode("gbk"))
        print #
        
        嘗試以閱讀模式打開文件
        if os.path.exists(fname):
            fobj = open(fname,'r')
            for eachline in fobj:
                print eachline,
            fobj.close()
        else:
            print "錯誤:文件不存在!"
            
    elif int(choise) == 2:
        while True:
            fname = raw_input("請輸入要建立的文件名".decode("utf-8").encode("gbk"))
            #判斷文件是否已經存在,若是存在則從新輸入
            if os.path.exists(fname):
                print u"錯誤:'%s' 文件已經存在!" % fname
            else:
                break
            all = []
            print u"\n請輸入每一行的內容,在單行輸入英文狀態的'.'完成輸入。\n"
            while True:
                entry = raw_input("輸入每一行的內容吧:\n".decode("utf-8").encode("gbk"))
                #判斷輸入內容是不是退出字符,如果則結束輸入    
                if entry == '.':
                    break
                else:
                    all.append(entry)
                #建立文件,並以寫入模式打開
                fobj = open(fname,'w')
                #將輸入的每行寫入文件中
                fobj.writelines(['%s%s' % (x,ls) for x in all])
                fobj.close()
                print u"成功建立!程序結束!"
    elif int(choise) == 3:
        print u"程序將退出"
        break
    else:
        print u"請從新輸入"

 

13.修改後程序以下

#!user/bin/env python 
# -*- coding:utf-8 -*- 

'read_or_makeTextFile.py -- read and display text file,or create text file '

import os 

ls = os.linesep
print os.getcwd()

while True:
    choise = raw_input("打開文件請輸入1,建立文件輸入2,編輯文件輸入3,退出輸入4:".decode("utf-8").encod\e("gbk"))
    if not choise.isdigit():
        print u"請輸入數字"
    elif int(choise) == 1:
        fname = raw_input("請輸入文件名:".decode("utf-8").encode("gbk"))
        print
        
        #嘗試以閱讀模式打開文件
        if os.path.exists(fname):
            fobj = open(fname,'r')
            for eachline in fobj:
                print eachline,
            fobj.close()
        else:
            print u"錯誤:文件不存在!"
            
    elif int(choise) == 2:
        
        while True:
            fname = raw_input("請輸入要建立的文件名".decode("utf-8").encode("gbk"))
            
            #判斷文件是否已經存在,若是存在則從新輸入
            if os.path.exists(fname):
                print u"錯誤:'%s' 文件已經存在!" % fname34 
            else:
                break
            
            all = []
            print u"\n請輸入每一行的內容,在單行輸入英文狀態的'.'完成輸入。\n"
            while True:
                entry = raw_input("輸入每一行的內容吧:\n".decode("utf-8").encode("gbk"))
                
                #判斷輸入內容是不是退出字符,如果則結束輸入
                if entry == '.':
                    break
                else:
                    all.append(entry)
                    
            #建立文件,並以寫入模式打開
            fobj = open(fname,'w')
            
            #將輸入的每行寫入文件中
            fobj.writelines(['%s%s' % (x,ls) for x in all])
            
            fobj.close()
            print u"成功建立!程序結束!"
    
    elif int(choise) == 3:
        fname = raw_input("請輸入文件名:".decode("utf-8").encode("gbk"))
        print
        
        #嘗試以讀寫模式("r+")模式打開文件
        if os.path.exists(fname):
            fobj = open(fname,'r+')
            count = len(fobj.readlines())
            fobj.close()
            lines = []
            for i in range(1,count):
                line = raw_input("請輸入修改後的每行的內容:".decode("utf-8").encode("gbk"))
                lines.append(line)
            while True:
                save = raw_input("保存修改輸入1,不保存輸入2:".decode("utf-8").encode("gbk"))
                if not save.isdigit():
                    print u"請輸入數字1保存或者2不保存!!"
                elif int(save)  == 1:
                    fobj = open(fname,'w')
                    fobj.writelines(['%s%s' % (x,ls) for x in lines])
                    fobj.close
                    print u"修改爲功!"
                    break
                elif int(save) == 2:
                    break
                else:
                    print u"錯誤!文件不存在!"
                    
    elif int(choise) == 4:
        print u"程序將退出"
        break
    else:
        print u"請從新輸入"
相關文章
相關標籤/搜索