- 论坛徽章:
- 0
|
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字符串 |
|