Python的函数方法、类以及组织方法比较不同于以往常见的语言。以求大乐透随机数方法为例,其定义如下:
1 import random
2 def getResultStr(totalCount,resultCount):
3 elements = [x+1 for x in range(totalCount)]
4 retStr =''
5 for i in range(resultCount):
6 res = elements[random.randint(0,len(elements)-1)]
7 elements.remove(res)
8 retStr += ''+str(res)
9 return retStr
这里L1首先导入了随机数包,然后L2定义函数,注意定义结尾有:号。第三行播下了数组的所有元素。在第五行开始进行了遍历。注意python的缩进,就代表了代码的区块,这和我们之前C是不一样的。这就导致了一个问题,编辑器如果有各种空格制表符的话,会导致编译不通过,这是一个郁闷的问题,目前我只能用IDLE解决。
直接调用这个函数就可以了。Print getResultStr(36,5)#这是三十六选五。在另外一个程序里调时这样:
1 import xuanhao
2 print xuanhao.getResultStr(33,6)
3 print xuanhao.getResultStr(16,1)
同理,先导入,再调用。下面看下关于类的组织方法:
1 import random
2 class xuanhao:
3 def __init__(self):
4 pass
5 def getResultStr(self,totalCount,resultCount):
6 elements = [x+1 for x in range(totalCount)]
7 retStr = ''
8 for i in range(resultCount):
9 res = elements[random.randint(0,len(elements)-1)]
10 elements.remove(res)
11 retStr +=''+str(res)
12 return retStr
13 pass
14 class xuanhao2(xuanhao):
15 name="new class"
16 dlt = xuanhao2()
17 print dlt.getResultStr(36,5)
18 print dlt.name
注意,首先还是导入包,定义class的形式是class classname:def function(self,a,b):function body return pass调用是va = classname()。这里xuanhao2是对xuanhao进行的继承 。python支持多继承,其它OO属性都没有看。
参考:
文档 http://docs.python.org/tutorial/index.html