1. 程式人生 > >python3 - 寫一個生成雙色球號碼的一個程序,生成的號碼寫到文件裏面

python3 - 寫一個生成雙色球號碼的一個程序,生成的號碼寫到文件裏面

PE red spa apple 去重復 lis enc encoding ica

寫一個生成雙色球號碼的一個程序,生成的號碼寫到文件裏面
# 中獎號碼由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)

python3 - 寫一個生成雙色球號碼的一個程序,生成的號碼寫到文件裏面