python3 - 写一个生成双色球号码的一个程序,生成的号码写到文件里面

写一个生成双色球号码的一个程序,生成的号码写到文件里面
# 中奖号码由6个红色球号码和1个蓝色球号码组成
# 篮球范围:01-16
# 红球范围:01-33
def swq(num):
random.ranint(1,16)
#tikti.txt
篮球:xx 红球号码是xx 01 08 09 12 13 19
篮球:xx 红球号码是xx 01 08 09 12 13 19

 

import random
f = open("tickets.txt","w+",encoding="utf-8")
def swq(num):
    for i in range(num):
        blueball = str(random.randint(1,16)) #随机产生篮球数字
       
if len(blueball)==1:
            blueball = str(blueball).zfill(2)
            #print(blueball)
       
redball_set = set()
        while len(redball_set) < 6:
            redball = str(random.randint(0,33)) #随机产生红球数字
           
if len(redball)==1:
                redball = str(redball).zfill(2)
                #print(redball)
           
redball_set.add(redball) 
            redballs = list(redball_set)
            redball_str = ""
            for i in redballs:
                redball_str =redball_str +i+" "
        f.write("篮球:"+blueball+" 红球:"+redball_str+"\n")

swq(10)

 

运行后产生的结果为:

篮球:01 红球:22 12 07 31 24 25
篮球:15 红球:20 06 17 09 32 25
篮球:09 红球:19 12 08 31 23 25
篮球:14 红球:15 18 08 11 23 25
篮球:16 红球:27 33 06 28 09 05
篮球:01 红球:16 27 19 29 24 23
篮球:13 红球:16 22 09 32 29 11
篮球:03 红球:02 22 12 32 14 25
篮球:04 红球:26 06 22 09 29 31
篮球:13 红球:16 27 21 17 11 23 

 

总结:

1. 因为要求每次产生的红球数为6个,且不能重复,所以可以将产生的红球放入到集合中,因为集合可以去重复。

redball_set.add(redball) 

2. 打印时,因为需要每行打印出来号码数,但是集合若直接转化为字符串打印,会将红球的数字显示为一串带单引号,逗号的字符窜,不是独立的数字,所以需要将该集合转化为list,然后遍历取出每个值后,变成字符串拼接起来

for i in redballs:
    redball_str =redball_str +i+" "

3. 产生的随机数中,若是一位数,需要前面补0,变成两位数,使用函数"".zfill()

if len(blueball)==1:
    blueball = str(blueball).zfill(2)

 

posted @ 2018-04-18 10:35  julieyuan  阅读(604)  评论(0编辑  收藏  举报