最近在学习python3,其中有个例子,自动产生随机数,灵机一动改了一下代码,可以自动生成任意行数、列数、最大数、最小数。这个程序就可以自动产生类似双色球前6个数字。最近又听说双色球中出了亿元大奖,如果人有足够的钱,买足够多的号,你觉得可以买多少柱才能中奖呢?不防我们做个实验。用这个小脚本生成如1000万行的数字,然后把每行数字与双色球前6个去对比,你觉得会中嘛?
以下是 lottery.py文件代码:51Testing软件测试网 ^Ogg)g0_
@E
#!/usr/bin/env python3
import random51Testing软件测试网\KXp,u
import sys
def get_int(msg,minimum,default):51Testing软件测试网3@9i1l j0na)fb,Y]
while True:51Testing软件测试网iNp$v*l_6[
try:
@
S"Z~K;|)p0 line=input(msg)
@G ?4QK.D8EyuE0 if not line and default is not None:51Testing软件测试网t#b;c?.o n.de,WX3\
return default
c#Y6S+in"X;?n0 i=int(line)51Testing软件测试网b OCQ.[ JB3\"qWx
if i<minimum:
B*I_Q&p0 print("must be >=",minimum)51Testing软件测试网wc|j
h
else:51Testing软件测试网:[ fL#nJ#zUn
return i
EmC/qpB?1c3G7s0 except ValueError as err:
)N6H"C^`5|0 print(err)
Ls*uWU0rows=get_int("rows:",1,None)51Testing软件测试网/vTFAJBf)q,pa
columns=get_int("columns:",1,None)51Testing软件测试网\Id,`L
AS
minimum=get_int("minimum (or Enter for 0):",-100000,0)51Testing软件测试网-@ v$TU#V.OSe
print("minimum =",minimum)
default=1000
Kn(~(eU#t'x1QpU0if default<minimum:51Testing软件测试网$HN8M*~W3XP$rh
default=2*minimum
T2Z*Q5J1W4j.~e4N0maximum=get_int("maximum (or enter for "+str(default)+"):",minimum,default)
print("rows=",rows," columns=",columns," maximum=",maximum)
_#bD)SY
i0row=051Testing软件测试网$H4a!o1A8ZDz
while row<rows:
o!~8?E@7f].m0 line=""51Testing软件测试网lYB#h?xT;B%tb
b
column=0
u&kY&v$~0 result=[]51Testing软件测试网8kj#ID0z*NaB6KB
while column<columns:51Testing软件测试网ho%U1~
O Z XY*Z
ve
i=random.randint(minimum,maximum)51Testing软件测试网D2o\
L)uw*q5gd2K
result.append(i)51Testing软件测试网M3]6m P/i&G)rj
X
column+=1
S-{3a yX
AM~0 result.sort()51Testing软件测试网o!C`phu7w
index=051Testing软件测试网({ dw$OD _g
while index<columns:51Testing软件测试网8~mZ${6o,bc
z
s=str(result[index])51Testing软件测试网2@Q;fL&k2rT
while len(s)<4:
a-L3P$W%|eVM.t0 s=" "+s51Testing软件测试网o0y$B3k"J:{ K
line+=s
1P'^\5]c&PT:d:r0 index+=1
&sL HeLV0 print(line)51Testing软件测试网~BLr~
row+=151Testing软件测试网^tIw4B'X(y
例如代码没有去掉重复的数字,以及没有双色球第7位数字(1-16),如有兴趣的朋友可以再修改一下代码。不过试验的结果是,即使有1000万行数据,匹配5个数以上的一行数据都没有,哈哈。朋友,你还会买双色球嘛?下面是自动生成100行执行过程图