您的位置:首页 > 编程语言 > Python开发

使用Python完成双色球的程序

2016-12-18 23:07 225 查看
使用Python完成一个双色球的程序

程序能实现该功能,但是算法应该不是最好的,如果有更好的算法,欢迎留言指正

import random 

balls = []                                   #创建一个空列表

redball = list(range(1,34))       #创建红色球的列表

blueball = list(range(1,17))     #创建蓝色球的列表

for i in range(6):                

    x = random.choice(redball)   #每次从红色球里随机取出一个

    if x not in balls:                     #判断取出的球在列表ball是否存在,如果不存在,就加到列表里

        balls.append(x)

if len(balls) != 6:                      #随机数可能存在取出来重复的数字,6次循环后判断列表的长度是否是6

    y = random.choice(redball)  #如果不等于6,再继续从红色球列表里取出来一个

    if y not in balls:                    #判断新取出来的是否在balls列表里

        balls.append(y)                #不在里面就加进去

balls.sort()                                 #前面取出来的6个数字是无序的,一般双色球都是从小往大的出

balls.append(random.choice(blueball))    #最后将蓝色球随机取出来一个放到列表里

print(balls)

[3, 9, 14, 23, 26, 32, 8]   会不会万一出来这个,不小心中了500万

注:该程序还是会出现红球随机取的时候,出现多次取出相同的球,我只做了一次判断是否等于6,那么只能加一个到balls里,这时会出现取到的球一共不足7个

改进后的程序:

import random 

balls = []

redball = list(range(1,34))

blueball = list(range(1,17))

for i in range(6):                

    x = random.choice(redball)

    if x not in balls:

        balls.append(x)

for j in range(5):

    if len(balls) != 6:

        y = random.choice(redball)

        if y not in balls:

            balls.append(y)

    else:

        break

balls.sort()

balls.append(random.choice(blueball))

print(balls)

[5, 11, 13, 27, 31, 32, 4]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 双色球