码迷,mamicode.com
首页 > 编程语言 > 详细

Python核心编程(第二版) 第六章习题答案

时间:2014-06-05 15:25:41      阅读:338      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   java   

6–1.字符串.string 模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串
是否是另一个大字符串的一部分?

答:有,string.find(str,beg,end)

6–2.字符串标识符.修改例 6-1 的 idcheck.py 脚本,使之可以检测长度为一的标识符,并且
可以识别 Python 关键字,对后一个要求,你可以使用 keyword 模块(特别是 keyword.kelist)来帮你.

bubuko.com,布布扣
 1 #!/usr/bin/python
 2 
 3 import string
 4 import keyword
 5 import sys
 6 
 7 Startwith=string.letters+_
 8 Othersymbol=string.letters+_+string.digits
 9 def CheckID(s):
10         if s[0] in Startwith:
11                 if len(s)==1:
12                         print "The ID is valid"
13                         if s in keyword.kwlist:
14                                 print "And the ID is a key word"
15                 else:
16                         for j in s[1:]:
17                                 if j not in Othersymbol:
18                                         print "The other symbol is invalid."
19                                         sys.exit()
20                         print "The ID is valid."
21                         if s in keyword.kwlist:
22                                 print "And the ID is a key word"
23         else:
24                 print "The startwith is invalid."
25 
26 
27 
28 
29 if __name__=="__main__":
30         sid=raw_input("Enter a string:")
31         CheckID(sid)
bubuko.com,布布扣

6–3.排序

(a) 输入一串数字,从大到小排列之.
(b) 跟 a 一样,不过要用字典序从大到小排列之.

bubuko.com,布布扣
 1 #!/usr/bin/python
 2 
 3 astring=raw_input("Enter a list of num:")
 4 alist=astring.split()
 5 print alist
 6 
 7 ilist=[]
 8 for s in alist:
 9         i=int(s)
10         ilist.append(i)
11 
12 print ilist
13 print sorted(ilist)
14 #print ilist.sort()
15 print sorted(alist)
16 #print alist.sort()
bubuko.com,布布扣

6–4.算术. 更新上一章里面你的得分测试练习方案,把测试得分放到一个列表中去.你的代
码应该可以计算出一个平均分,见练习 2-9 和练习 5-3.

bubuko.com,布布扣
 1 !/usr/bin/python
 2 
 3 def value(num):
 4         if 90<=num<=100:
 5                 #print ‘A‘
 6                 return A
 7         elif 80<=num<=89:
 8                 #print ‘B‘
 9                 return B
10         elif 70<=num<=79:
11                 #print ‘C‘
12                 return C
13         elif 60<=num<=69:
14                 #print ‘D‘
15                 return D
16         elif num>=0 and num<60:
17                 #print ‘F‘
18                 return F
19         else:
20                 print  "The num is invalid."
21 
22 
23 if __name__=="__main__":
24         vlist=[]
25         ilist=[56,34,78,90,62,81,100]
26         for i in ilist:
27                 vlist.append(value(i))
28         print vlist
29         print sorted(ilist)
bubuko.com,布布扣

6–5.
字符串
(a)更新你在练习 2-7 里面的方案,使之可以每次向前向后都显示一个字符串的一个字符.
(b)通过扫描来判断两个字符串是否匹配(不能使用比较操作符或者 cmp()内建函数)。附加题:
在你的方案里加入大小写区分.
(c)判断一个字符串是否重现(后面跟前面的一致).附加题:在处理除了严格的回文之外,加入对
例如控制符号和空格的支持。
(d)接受一个字符,在其后面加一个反向的拷贝,构成一个回文字符串.

答:

c

bubuko.com,布布扣
 1 #!/usr/bin/python
 2 #encoding=utf-8
 3 #判断一个字符串是否重现(后面跟前面的一致).
 4 #附加题:在处理除了严格的回文之外,加入对例如控制符号和空格的支持。
 5 import sys
 6 
 7 def palindorom(s):
 8         l=len(s)
 9         if l%2<>0:
10                 print "The string is not palindorom."
11         else:
12                 for i in (0,int((l-1)/2)):
13                         if s[i]==s[-(i+1)]:
14                                 pass
15                         else:
16                                 print "The string is not palindorom."
17                                 sys.exit()
18                 print "The string is a palindorom."
19 
20 if __name__=="__main__":
21         astring=raw_input("Enter a string:")
22         palindorom(astring)
bubuko.com,布布扣

d

bubuko.com,布布扣
 1 #!/usr/bin/python
 2 #encoding:utf-8
 3 #接受一个字符,在其后面加一个反向的拷贝,构成一个回文字符串.
 4 
 5 original=raw_input("Enter a string:").strip()
 6 length=len(original)
 7 palindorom=original
 8 for i in range(1,length+1):
 9         palindorom=palindorom+original[-i]
10 
11 print palindorom
bubuko.com,布布扣

6–6.字符串.创建一个 string.strip()的替代函数:接受一个字符串,去掉它前面和后面的
空格(如果使用 string.*strip()函数那本练习就没有意义了)

bubuko.com,布布扣
 1 #!/usr/bin/python
 2 #encoding:utf-8
 3 #创建一个 string.strip()的替代函数:接受一个字符串,去掉它前面和后面的
 4 #空格(如果使用 string.*strip()函数那本练习就没有意义了)
 5 
 6 original=raw_input("Enter a string:")
 7 length=len(original)
 8 print length
 9 for i in range(0,length):
10         if original[i]<> :
11                 lstrip=original[i:]
12                 print len(lstrip)
13                 break
14         else:
15                 pass
16 
17 
18 for i in range(1,length+1):
19         if lstrip[-1]<> :
20                 strip=lstrip
21                 break
22         elif lstrip[-i]<> :
23                 strip=lstrip[:-i+1]
24                 print len(strip)
25                 break
26         else:
27                 pass
28 
29 print strip
bubuko.com,布布扣

 6–7.调试.看一下在例 6.5 中给出的代码(buggy.py)
(a)研究这段代码并描述这段代码想做什么.在所有的(#)处都要填写你的注释.
(b)这个程序有一个很大的问题,比如输入 6,12,20,30,等它会死掉,实际上它不能处理任何的偶
数,找出原因.
(c)修正(b)中提出的问题.

bubuko.com,布布扣
 1 #!/usr/bin/python
 2 
 3 num_str=raw_input("Enter a number:")
 4 
 5 num_num=int(num_str)
 6 
 7 fac_list=range(1,num_num+1)
 8 
 9 print "BEFORE:",fac_list
10 i=0
11 while i<len(fac_list):
12         if num_num % (fac_list[i])==0:
13                 del fac_list[i]
14         else:
15                 i=i+1
16 
17 print "AFTER:",fac_list
bubuko.com,布布扣

 

Python核心编程(第二版) 第六章习题答案,布布扣,bubuko.com

Python核心编程(第二版) 第六章习题答案

标签:c   style   class   blog   code   java   

原文地址:http://www.cnblogs.com/tmyyss/p/3768821.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!