|
一、range()内建函数
range(start, stop[, step])返回列表
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5)
[0, 5, 10, 15, 20, 25]
>>> range(0, 10, 3)
[0, 3, 6, 9]
>>> range(0, -10, -1)
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> range(0)
[]
>>> range(1, 0)
[]
下面一个实例实现冒泡排序:
"""实现冒泡排序"""
lis = [15,10,23,6,11,105,70,2,54,21,8]
for i in range(len(lis)-1,0,-1):
for j in range(0,i):
if lis[j]>lis[j+1]:
lis[j],lis[j+1] = lis[j+1],lis[j]
print lis #[2, 6, 8, 10, 11, 15, 21, 23, 54, 70, 105]
当然比起强大的Python内建函数,冒泡排序就显得臃肿了,可以使用sort()来实现上面的排序:
"""sort()的实现效果"""
lis2 = [15,10,23,6,11,105,70,2,54,21,8]
lis2.sort()
print lis2 #[2, 6, 8, 10, 11, 15, 21, 23, 54, 70, 105]
在我另一篇博文:深入Python(1): 字典排序 关于sort()、reversed()、sorted()、cmp()等,有详细的讲解。
关于range()这里不再累述,官网文档讲的很详细。
推荐阅读:http://www.iyunv.com/buro79xxd/archive/2011/05/23/2054493.html
二、random模块
Python中的random模块用于生成随机数。
这里不再啰嗦了,最好看看文档,不过这里推荐阅读:http://www.iyunv.com/yd1227/archive/2011/03/18/1988015.html
这里做个小实验,关于range()和random的随机算命小程序:
"""如题,输入5项自己的兴趣爱好,然后随机抽取20下,统计随机出现次数的最大数,依据此作为最后结果"""
def result():
love_list = [] #爱好列表
count = 5 #列表元素个数(同时作为循环计数)
while count>0:
love = raw_input(u'请选择你5项喜欢的做的事情:(还剩%s项)'%count)
love_list.append(love.decode('utf-8')) #解码
count-=1
random.shuffle(love_list) #元素打乱,重新洗牌
print '****随机统计,通过随机出现次数最多者为依据,结果在于人品****'
i = 0 #循环计数
lis = [] #循环后兴趣爱好列表
while imax:
max = lis.count(obj)
what = obj
if max:
print '综上:你最适合:%s' %(what.decode('UTF-8').encode('GBK') ) #下一步:Python经典问题:中文乱码的研究
result()
今天人品很好,抽了个让我满意的答案:
三、感悟:关于学完就忘
相信很多人和我一样,对于知识的学习,尤其是一门编程语言,总是学完就忘,十分苦恼。
不过这里,通过我多次的跌倒总结如下,或许能够巩固知识:
(1)、好记性不如烂笔头,多写技术博客,多总结,贵在总结
(2)、烂笔头不如学而时习之,但是很多人不想时习之,因为大多数对于学过的东西就不再那么有好奇心了,但是如果转换一个观念,或许就能激发兴趣去复习。如:
(2.1):以待面试,给自己施压
(2.2):尝试从中抽离没有挖掘的价值知识
(2.3):以”入门--深入--精通“ 来划分阶段,实现阶段性学习与复习
(3)、最好能学以致用,结合到自己工作中,或者写个小demo
还记得”一万小时定律“吗?
要成为某个领域的专家,需要10000小时,按比例计算就是:如果每天工作四个小时,一周工作五天,那么成为一个领域的专家至少需要十年。这就是所谓的一万小时定律。
勤奋努力的学习加上自己不断总结、自省,一套好的学习方法,我想要不得1万个小时吧?
在天朝,最好不要等十年去造就一个伪专家!
标准库random实现了一个随机数生成器 |
|