第三章-Python基础 课后答案

时间:2021-04-30 18:38:24

3-1

python是动态语言,它的对象的类型和内存都是运行时确定的;在创建新对象时,解释器会根据语法和右侧的操作数来决定新对象的类型。

3-2

python不用去声明函数的返回类型,是由其“若类型”的语言特性决定的。python是把储存的数据直接放到内存,然后再去用一个变量名引用这个数据。

3-3

因为python系统定义的名字是__xxx__,所以在变量名的开始和结尾使用双下划线容易引起混淆。

3-4

可以,但是要用";"分隔开。

3-5

可以,一行过长的语句可以使用反斜杠( \ )分解成几行;使用闭合操作符时,单一语句也可以跨多行,例如:在含有小括号、中括号、花括号时可以书写多行。另外就是三引号包括下的字符串也可以跨行书写。

3-6

(a) 1,2,3

(b) 2,3,1

3-7

查文档

3-8

makeTextFile.py

 1 'makeTextFile.py -- create text file'
 2 
 3 import os
 4 ls = os.linesep
 5 
 6 #get filename
 7 while True:
 8 
 9     if os.path.exists('C:\\Users\\Administrator\\Desktop\\python\\xue\\weixing.txt'):
10         print "ERROR: '%s' already exists" % ('C:\\Users\\Administrator\\Desktop\\python\\xue\\weixing.txt')
11     else:
12         break
13 
14 #get file content (text) lines
15 all = []
16 print "\nEnter lines ('.' by itself to quit).\n"
17 
18 # loop until user terminates input
19 while True:
20     entry = raw_input('input something you want to write: ')
21     if entry == '.':
22         break
23     else:
24         all.append(entry)
25 
26 # write lines to file with proper line-ending
27 fobj = open('C:\\Users\\Administrator\\Desktop\\python\\xue\\weixing.txt', 'w')
28 fobj.writelines(['%s%s' % (x, ls) for x in all])
29 fobj.close()
30 print 'DONE!'

readTextFile.py

 1 'readTextFile.py -- read and display text file'
 2 
 3 # get filename
 4 fname = raw_input('Enter filename: ')
 5 print
 6 
 7 # attempt to open file for reading
 8 try:
 9     fobj = open(fname, 'r')
10 except IOError, e:
11     print "*** file open error:", e
12 else:
13     #display contents to the screen
14     for eachLine in fobj:
15         print eachLine,
16     fobj.close()

3-9

os.linesep给出当前平台使用的行终止符

windows平台使用 '\r\n'

linux平台使用 '\n'

mac平台使用 '\r'

3-10

makeTextFile2.py

 1 import os
 2 ls = os.linesep
 3 
 4 #get filename
 5 while True:
 6     fname = raw_input("Enter file name:")
 7     try:
 8         open(fname, 'r')
 9         print "*** ERROR:'%s' already exists" % fname
10     except IOError:
11         break
12         fname.close()
13 
14 # get file content (text) lines
15 all = []
16 print "\nEnter lines ('.' by itself to quit).\n"
17 
18 # loop until user terminates input
19 while True:
20     entry = raw_input("input something you want to write: ")
21     if entry == '.':
22         break
23     else:
24         all.append(entry)
25 
26 # write lines to file with proper line-ending
27 fobj = open(fname, 'w')
28 fobj.writelines(['%s%s' % (x, ls) for x in all])
29 fobj.close()
30 print 'DONE!'

readTextFile2.py

 1 import os
 2 
 3 'readTextFile.py -- read and display text file'
 4 
 5 # get filename
 6 fname = raw_input('Enter filename: ')
 7 print
 8 
 9 # attempt to open file for reading
10 if os.path.exists(fname):
11     fobj = open(fname, 'r')
12     for eachLine in fobj:
13         print eachLine,
14     fobj.close()
15 else:
16     print "Error: can't find the file!"
17     

3-11

 1 'readTextFile.py -- read and display text file'
 2 
 3 # get filename
 4 fname = raw_input('Enter filename: ')
 5 print
 6 
 7 # attempt to open file for reading
 8 try:
 9     fobj = open(fname, 'r')
10 except IOError, e:
11     print "*** file open error:", e
12 else:
13     #display contents to the screen
14     for eachLine in fobj:
15         print eachLine.strip()
16     fobj.close()

3-12

 1 import os
 2 ls = os.linesep
 3 
 4 def makeTextFile():
 5     while True:
 6         fname = raw_input("Enter file name:")
 7         try:
 8             open(fname, 'r')
 9             print "*** ERROR:'%s' already exists" % fname
10         except IOError:
11             break
12             fname.close()
13 
14     # get file content (text) lines
15     all = []
16     print "\nEnter lines ('.' by itself to quit).\n"
17 
18     # loop until user terminates input
19     while True:
20         entry = raw_input("input something you want to write: ")
21         if entry == '.':
22             break
23         else:
24             all.append(entry)
25 
26     # write lines to file with proper line-ending
27     fobj = open(fname, 'w')
28     fobj.writelines(['%s%s' % (x, ls) for x in all])
29     fobj.close()
30     print 'DONE!'
31 
32 def readTextFile():
33     fname = raw_input('Enter filename: ')
34     print
35 
36     # attempt to open file for reading
37     if os.path.exists(fname):
38         fobj = open(fname, 'r')
39         for eachLine in fobj:
40             print eachLine,
41         fobj.close()
42     else:
43         print "Error: can't find the file!"
44 
45 if __name__ == "__main__":
46     while True:
47         print """Choose one:
48             1)makeTextFile
49             2)readTextFile
50             3)quit
51         """
52 
53         getcode = raw_input("which you choose:")
54         if getcode == "1":
55             makeTextFile()
56         elif getcode == "2":
57             readTextFile()
58         elif getcode == "3":
59             break
60         else:
61             print "Please repeat one!"