Chapter8.条件和循环
这一章感觉有用的点并不多,在我眼里就只有迭代器,列表解析和生成器表达式值得研究而已。
8.2.循环,难度不大。
1 #!usr/bin/env python 2 #-*-coding=utf-8-*- 3 4 def ran(From,To,Increment): 5 return range(From,To+Increment,Increment) 6 7 if __name__ == '__main__': 8 print ran(2,26,4)
8.3.range()
>>> range(0,10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> range(3,21,3) [3, 6, 9, 12, 15, 18] >>> range(-20,1080,220) [-20, 200, 420, 640, 860]
8.5.约数,完成一个名为getfactors()的函数。它接受一个整型作为参数,返回它所有约数的列表,包含1和它本身。可以考虑使用列表解析。
1 #!usr/bin/env python 2 #-*-coding=utf-8-*- 3 4 def getfactors(n): 5 return [x for x in range(1,n+1) if n % x == 0] 6 7 if __name__ == '__main__': 8 print getfactors(6)
8.6素因数分解,本来想用很简洁的方式去解决的,但是发现自己没那本事,呜呜。。
1 #!usr/bin/env python 2 #-*-coding=utf-8-*- 3 4 def getfactors(n): 5 return [x for x in range(1,n+1) if n % x == 0] 6 7 def factors(n): 8 m = [] 9 while n > 1: 10 for x in range(2,n+1): 11 if n % x == 0: 12 m.append(x) 13 n /= x 14 break 15 return m 16 17 if __name__ == '__main__': 18 print factors(20)
8.10.文本处理,要求统计一篇文本上面的单词个数。试一下吧(先考虑单词之间只有空格的情况)
1 #!usr/bin/env python 2 #-*-coding=utf-8-*- 3 4 def num_of_word(filename): 5 return len([y for x in open(filename) for y in x.split()]) 6 7 if __name__ == '__main__': 8 print num_of_word('/home/dzhwen/python文件/Homework/Chapter8/123.txt')
其他题目没什么典型性,就不细讲了。
就这样,请多多指教!