设为首页 收藏本站
查看: 1388|回复: 0

[经验分享] 深入Python(5):random与range

[复制链接]

尚未签到

发表于 2015-4-27 12:43:07 | 显示全部楼层 |阅读模式
一、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()
  今天人品很好,抽了个让我满意的答案:
DSC0000.jpg
  
三、感悟:关于学完就忘
  相信很多人和我一样,对于知识的学习,尤其是一门编程语言,总是学完就忘,十分苦恼。
  不过这里,通过我多次的跌倒总结如下,或许能够巩固知识:

  (1)、好记性不如烂笔头,多写技术博客,多总结,贵在总结
  (2)、烂笔头不如学而时习之,但是很多人不想时习之,因为大多数对于学过的东西就不再那么有好奇心了,但是如果转换一个观念,或许就能激发兴趣去复习。如:
  (2.1):以待面试,给自己施压
  (2.2):尝试从中抽离没有挖掘的价值知识
  (2.3):以”入门--深入--精通“ 来划分阶段,实现阶段性学习与复习
  (3)、最好能学以致用,结合到自己工作中,或者写个小demo

  还记得”一万小时定律“吗?
  要成为某个领域的专家,需要10000小时,按比例计算就是:如果每天工作四个小时,一周工作五天,那么成为一个领域的专家至少需要十年。这就是所谓的一万小时定律。
DSC0001.jpg
  勤奋努力的学习加上自己不断总结、自省,一套好的学习方法,我想要不得1万个小时吧?
  在天朝,最好不要等十年去造就一个伪专家!
  标准库random实现了一个随机数生成器

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-61236-1-1.html 上篇帖子: Python 插件杂谈 (4) 下篇帖子: Python核心模块——urllib模块
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表