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

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

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

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

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

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

6.變量賦值spa

(a)賦值語句 x, y, z = 1, 2, 3  在x中賦值1,y中賦值2,z中賦值3操作系統

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

 7.標識符對象

int32;printf;print;_print;this;self;__name__;bool;true;type;thisIsAVar;R_U_ready;Int;True;if;do;accessblog

是合法的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.修改後程序以下

 1 #!user/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 'read_or_makeTextFile.py -- read and display text file,or create text file '
 5 
 6 import os
 7 ls = os.linesep
 8 print os.getcwd()
 9 while True:
10     choise = raw_input("打開文件請輸入1,建立文件輸入2,編輯文件輸入3,退出輸入4:".decode("utf-8").encode("gbk"))
11 
12     if not choise.isdigit():
13         print u"請輸入數字"
14     elif int(choise) == 1:
15         fname = raw_input("請輸入文件名:".decode("utf-8").encode("gbk"))
16 
17         print 
18 
19         #嘗試以閱讀模式打開文件
20 
21         if os.path.exists(fname):
22             fobj = open(fname,'r')
23             for eachline in fobj:
24                 print eachline,
25             fobj.close()
26         else:
27             print u"錯誤:文件不存在!"
28     elif int(choise) == 2:
29         while True:
30             fname = raw_input("請輸入要建立的文件名".decode("utf-8").encode("gbk"))
31             #判斷文件是否已經存在,若是存在則從新輸入
32             if os.path.exists(fname):
33                 print u"錯誤:'%s' 文件已經存在!" % fname
34             else:
35                 break
36         all = []
37         print u"\n請輸入每一行的內容,在單行輸入英文狀態的'.'完成輸入。\n"
38 
39         while True:
40             entry = raw_input("輸入每一行的內容吧:\n".decode("utf-8").encode("gbk"))
41             #判斷輸入內容是不是退出字符,如果則結束輸入    
42             if entry == '.':
43                 break
44             else:
45                 all.append(entry)
46         #建立文件,並以寫入模式打開
47         fobj = open(fname,'w')
48         #將輸入的每行寫入文件中
49         fobj.writelines(['%s%s' % (x,ls) for x in all])
50         fobj.close()
51         print u"成功建立!程序結束!"
52     elif int(choise) == 3:
53         fname = raw_input("請輸入文件名:".decode("utf-8").encode("gbk"))
54         print
55         
56         #嘗試以讀寫模式("r+")模式打開文件
57         if os.path.exists(fname):
58             fobj = open(fname)
59             count = len(fobj.readlines())
60             fobj.close()
61             lines = []
62             for i in range(1,count):
63                 line = raw_input("請輸入修改後的每行的內容:".decode("utf-8").encode("gbk"))
64                 lines.append(line)
65             while True:
66                 save = raw_input("保存修改輸入1,不保存輸入2:".decode("utf-8").encode("gbk"))
67                 if not save.isdigit():
68                     print u"請輸入數字1保存或者2不保存!!"
69                 elif int(save)  == 1:
70                     fobj = open(fname,'w')
71                     fobj.writelines(['%s%s' % (x,ls) for x in lines])
72                     fobj.close
73                     print u"修改爲功!"
74                     break
75                 elif int(save) == 2:
76                     break
77         else:
78             print u"錯誤!文件不存在!"
79     
80     elif int(choise) == 4:
81         print u"程序將退出"
82         break
83     else:
84         print u"請從新輸入"
相關文章
相關標籤/搜索