編寫Python函數:完成一個雙色球彩票的模擬生成過程,
其中前六個為紅色球,數字范圍1-33,不可重復。最后一個為藍色球 1-16。
import random #red_nums是采集紅色球的數字, #集合的目的是不用判斷隨機數字是否重疊,比較方便。如果使用列表,就要先去重后再來判斷長度是否到6,如果先判斷長度是否到6,萬一列表里有重復的元素,去重后就沒有6個元素了。 red_nums= set() while True: red_num = int(random.random() * 34) #random.random()返回隨機生成的一個實數,它在[0,1)范圍內,所以要想得到33,必須乘以34 if red_num == 0: continue else: red_nums.add(red_num) #add()方法用於給集合添加元素,如果添加的元素在集合中已存在,則不執行任何操作 if len(red_nums) == 6: break # 將集合進行排序,彩票就是這樣的,前6個數字從小到大 red_ = sorted(red_nums) # 將集合轉為列表的形式,方便向該數字中增加藍色數值 double_ball = list(red_) # 生成一個不為0的1~16的藍色球數字 while True: blue_num = int(random.random() * 17) if blue_num != 0: break # 組合成雙色球,藍色球數字和前六個紅色球的數字之間沒有關系 double_ball.append(blue_num) print(double_ball)