這篇文章會介紹使用 Python 的 random 隨機數模組,做出大樂透電腦選號的程式 ( 從 1~49 個數字中,選出六個不重複的數字 )。
本篇使用的 Python 版本為 3.7.12,
所有範例可使用
Google Colab
實作
,不用安裝任何軟體 ( 參考:
使用 Google Colab
)
方法一、串列判斷
先建立一個空串列,接著不斷將 1~49 的隨機數放入串列中,放入時進行判斷,如果串列中已經有該數字就不放入,直到串列的長度等於 6 為止。
參考:
while 迴圈
、
random.randint
、
if 判斷式
import random
a = [] # 建立空串列
while len(a)<6: # 使用 while 迴圈,直到串列的長度等於 6 就停止
b = random.randint(1, 49) # 取出 1~49 得隨機整數
if b not in a: # 判斷如果 a 裡面沒有 b
a.append(b) # 將 b 放入 a
print(a) # [34, 18, 31, 11, 47, 46]
方法二、搭配集合 set
因為 Python 的集合有著「項目不會重複」的特性,所以只要將 1~49 的隨機數字不斷放到一個集合裡,直到集合的項目到達六個,就完成選號不重複的動作。
參考:集合
import random
a = set() # 建立空集合
while len(a)<6: # 使用 while 迴圈,直到集合的長度等於 6 就停止
b = random.randint(1, 49) # 取出 1~49 得隨機整數
a.add(b) # 將隨機數加入集合
print(a) # {34, 41, 48, 49, 19, 30}
方法三、使用 random.sample
因為 Python random 模組裡的 random.sample 具有取出不重複項目的特性,所以只要使用 random.sample 就能輕鬆的取得串列中的六個不重複數字。
參考:random.sample(seq, k)、range(start, stop, step)
import random
a = random.sample(range(1, 50), 6)
# 從包含 1~49 數字的串列中,取出六個不重複的數字變成串列
print(a) # [9, 39, 10, 8, 25, 43]
如果有任何建議或問題,可傳送「」給我,謝謝~
Python 學習導讀
關於 Python
使用 Google Colab
使用 Anaconda
使用 Python 虛擬環境
Python 範例集錦
變數 variable
變數 ( 全域、區域 )
數字 number
文字與字串 string
文字與字串 ( 常用方法 )
文字與字串 ( 格式化 )
串列 list
串列 ( 常用方法 )
元組/數組 tuple
字典 dictionary
集合 set
縮排和註解
運算子 operator
邏輯判斷 ( if、elif、else )
邏輯判斷 ( and 和 or )
重複迴圈 ( for、while )
例外處理 ( try、except )
生成式 comprehension
物件類別 class
物件繼承 inheritance
匯入模組 import
函式 function
匿名函式 lambda
遞迴 recursion
產生器 generator
裝飾器 decorator
閉包 closure
內建函式&方法
輸入與輸出
字串操作與轉換
迭代物件轉換
迭代物件操作
檔案讀寫 ( open )
eval() 與 exec()
標準函式庫&模組
隨機數 random
數學 math
數學統計函式 statistics
時間與日期 datetime
時間處理 time
日曆 calendar
使用正規表達式 re
檔案操作 os
查找匹配檔案 glob
壓縮檔案 zipfile
高階檔案操作 shutil
高效迭代器 itertools
容器資料型態 collections
CSV 檔案操作
JSON 檔案操作
threading 多執行緒處理
concurrent.futures