深入Python(5):random与range
来源:互联网 发布:ie右下角弹出淘宝广告 编辑:程序博客网 时间:2024/04/30 23:10
一、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.cnblogs.com/buro79xxd/archive/2011/05/23/2054493.html
二、random模块
Python中的random模块用于生成随机数。
这里不再啰嗦了,最好看看文档,不过这里推荐阅读:http://www.cnblogs.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 i<20: s= random.choice(love_list) #选取范围 lis.append(s) i+=1 max=0 #列表元素出现最多的次数 what = u'' #列表元素出现最多的次数时对应的元素 for obj in lis: if lis.count(obj)>max: 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实现了一个随机数生成器
- 深入Python(5):random与range
- random 与 range
- Random.Range
- Python range函数深入解析
- python range与xrange
- python range与xrange
- Python xrange与range
- Python -range 与xrange
- python random模块与实例
- 【python】关于range()与xrange()
- Python: range()与xrange()区别
- python -for与range()例子
- Random.Range 范围
- random numbers (Expand a random range from 1–5 to 1–7)
- python:与概率有关的random模块
- Python中range与xrange的区别
- python range 与xrange的区别
- Python中range 与 xrange的区别
- GUI简单设计一
- 深入Python(5):递归
- ueditor编辑文章时候,复制粘贴内容,原来的图片不能显示
- unity_eclipse
- GUI简单设计二
- 深入Python(5):random与range
- 新辰:网站排名浮动不前 相比竞争者到底缺少了什么?
- 【webservice】如何发布axis2的webservice服务端
- 标准输入、输出和错误和文件重定向
- 200条装修小常识
- 在ubuntu下安装node.js步骤
- 课后实训解答(我的见解,目前为止就这么多,还在进行中)
- 动态修改winform的app.config的键值
- 最少javascript代码完成一个2048游戏