免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2402 | 回复: 15
打印 上一主题 下一主题

求解,感激不尽 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-07-24 17:16 |只看该作者 |倒序浏览
BOSS要求改成C代码,本人第一次接触pythone,实在头大,完全看不懂。
哪位大神帮忙讲下功能。

import random
def get_unique_ksv():
    indices = range(40)

    bin_string = list('0' * 40)

    for i in range(20):
        index = indices.pop(random.randint(0, len(indices) - 1))
        bin_string[index] = '1'

    ksv = ''.join(bin_string)
    print 'KSV: %s' % ksv
    return ksv

论坛徽章:
0
2 [报告]
发表于 2012-07-24 18:27 |只看该作者
import random #导入一个名为random的模块,模块中有很多函数,类等供使用。类似于C语言的include一个头文件,头文件中有一堆可用的函数
def get_unique_ksv(): #def是函数定义方面的关键字。定义一个函数。函数名为get_unique_ksv,输入参数为空,类似于C中的 string get_unique_ksv(void){},其中返回值类型由最后的retur所返回的值的类型决定的。
     indices = range(40)# range(2)可生成[0,1,2],类似的range(40)生成0到39的整数,这些值组成一个列表List,即[0,1,2,...,38,39]

     bin_string = list('0' * 40) #'0'表示0这个字符,*40,表示一共40个0这个字符,对应的就是一个列表List,每个元素都是单个字符'0',即['0','0',...,'0']

     for i in range(20):#range(20) -> [0,1,...,19],所以i依次为0,1,2,..19,类似于C语言的里面的for(int i=0;i<20;i++){}
        #len(indices),可理解为indices数组的大小,此处为40
        #random.randint语法是random.randint(a, b) ,含义是Return a random integer N such that a <= N <= b.
        #此处即random.randint(0, 39),返回一个随机数x,x取值范围为0 < = x <= 39
         index = indices.pop(random.randint(0, len(indices) - 1))
         #将bin_string字符数组中的索引号为index的值,赋值为单个字符,数字'1',
         bin_string[index] = '1'
         #bin_string原先40个字符,每个都是'0',现在就都被改为'1'了

     ksv = ''.join(bin_string)#python的列表变量有个内置函数join,意为将每个列表元素之间,用对应的内容合并起来,此处的合并内容为空字符串,所以即为把上面bin_string中40个'0',链接起来
     #结果就是:'000...0'(共40个连续的0)了,
     print 'KSV: %s' % ksv #此处相当于printf("KSV: %s", ksv),将字符串ksv打印出来,即一个字符串,其内容是20个连续的字符0
     return ksv # 返回ksv字符串

论坛徽章:
0
3 [报告]
发表于 2012-07-24 18:32 |只看该作者
感动,写得这么详细

论坛徽章:
2
CU大牛徽章
日期:2013-04-17 11:46:28CU大牛徽章
日期:2013-04-17 11:46:39
4 [报告]
发表于 2012-07-24 19:03 |只看该作者
回复 2# crifan


    太牛了,写的这么详细,貌似除了不认识汉字的都懂的

论坛徽章:
0
5 [报告]
发表于 2012-07-24 19:21 |只看该作者
回复 2# crifan


    感激不尽。

论坛徽章:
0
6 [报告]
发表于 2012-07-24 21:27 |只看该作者
写的详细是次要的,主要的是解释的都能看懂就好。:wink:

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
7 [报告]
发表于 2012-07-24 23:34 |只看该作者
本帖最后由 yinyuemi 于 2012-07-24 23:36 编辑

回复 2# crifan


    学习~

   ps: 你的网站也非常受用~

论坛徽章:
0
8 [报告]
发表于 2012-07-25 09:36 |只看该作者
回复 7# yinyuemi


    感兴趣的话,可以去看:
Python相关资料
其中有偶推荐的,别人写的,一些不错的Python资料,和偶总结的一些Python使用心得。

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
9 [报告]
发表于 2012-07-25 09:46 |只看该作者
回复 8# crifan


    谢谢

论坛徽章:
31
CU大牛徽章
日期:2013-03-13 15:15:08CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-09-18 15:16:55CU大牛徽章
日期:2013-09-18 15:18:22CU大牛徽章
日期:2013-09-18 15:18:43CU十二周年纪念徽章
日期:2013-10-24 15:41:34丑牛
日期:2013-12-01 10:11:07水瓶座
日期:2014-01-15 08:47:25
10 [报告]
发表于 2012-07-26 10:45 |只看该作者
站点很不错。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP