實作密碼產生器
請使用者輸入要產生幾位數的密碼長度
依據使用者輸入的密碼長度,輸出密碼
import random
import string
數字 = string.digits
英文 = string.ascii_letters
字母表 = 數字 + 英文
# 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
亂數字母表 = list(數字 + 英文)
random.shuffle(亂數字母表)
# ['Y', 'h', 'u', 'J', 'I', 'G', 'q', 'A',..., '2', '4', 'X']
亂數字母表 = list(數字 + 英文)
random.shuffle(亂數字母表)
長度 = int(input("你的密碼要幾位數?"))
密碼 = "".join(亂數字母表[:長度])
print(f"密碼:{密碼}")
random 標準函式庫
random
模組是Python的一個內置模組,它提供了生成隨機數的功能。隨機數在許多應用中都很有用,例如模擬、遊戲、加密和隨機數學等。以下是一些有關 random
模組的介紹:
- 隨機數生成:
random
模組提供了多種生成隨機數的函數,包括整數和浮點數。以下是一些常用的函數:random.random()
: 返回一個0到1之間的隨機浮點數。random.randint(a, b)
: 返回一個在整數範圍**[a, b]
**內的隨機整數。random.uniform(a, b)
: 返回一個在浮點數範圍**[a, b]
**內的隨機浮點數。
import random
# 生成隨機浮點數
random_num = random.random()
print("隨機浮點數:", random_num)
# 隨機浮點數: 0.9522926491054712
# 生成隨機整數
random_int = random.randint(1, 10)
print("隨機整數:", random_int)
# 隨機整數: 7
- 隨機序列操作:
random
模組還提供了一些用於操作隨機序列的函數,例如將序列打亂、從序列中隨機選取元素等。random.shuffle(seq)
: 打亂序列seq
的順序。random.choice(seq)
: 從序列seq
中隨機選取一個元素。random.sample(seq, k)
: 從序列seq
中隨機選取k
個不重複的元素。
import random
my_list = [1, 2, 3, 4, 5]
# 打亂序列順序
random.shuffle(my_list)
print("打亂後的序列:", my_list)
# 打亂後的序列: [1, 3, 5, 4, 2]
# 隨機選取一個元素
random_element = random.choice(my_list)
print("隨機選取的元素:", random_element)
# 隨機選取的元素: 2
# 隨機選取多個不重複的元素
random_sample = random.sample(my_list, 2)
print("隨機選取的樣本:", random_sample)
# 隨機選取的樣本: [2, 1]
- 隨機種子設定:
如果需要生成可重複的隨機數序列,您可以使用random.seed(seed)
函數,其中seed
是隨機種子值。同一個種子值將產生相同的隨機數序列。
import random
# 設定隨機種子
random.seed(42)
# 生成隨機數
random_num = random.random()
print("隨機浮點數:", random_num)
# 隨機浮點數: 0.6394267984578837
random
模組提供了許多強大的隨機數生成工具,可用於各種應用。根據您的需求,您可以使用這些函數來生成隨機數、操作序列,以及實現其他隨機性相關的功能。
string 函式庫
string
模組是Python的一個內置模組,它提供了一些常用的字符串相關常數和函數。這個模組通常用於處理和操作字符串,包括字符集、標點符號、數字等等。以下是一些 string
模組中的常用成員和功能:
string.ascii_letters
: 包含所有ASCII字母(大寫和小寫)的字符
import string
letters = string.ascii_letters
print(letters) # 輸出: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
string.ascii_lowercase
: 包含所有ASCII小寫字母的字符串。
import string
lowercase = string.ascii_lowercase
print(lowercase) # 輸出: 'abcdefghijklmnopqrstuvwxyz'
string.ascii_uppercase
: 包含所有ASCII大寫字母的字符串。
import string
uppercase = string.ascii_uppercase
print(uppercase) # 輸出: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
string.digits
: 包含所有數字字符的字符串。
import string
digits = string.digits
print(digits) # 輸出: '0123456789'
string.punctuation
: 包含所有標點符號字符的字符串。
import string
punctuation = string.punctuation
print(punctuation) # 輸出: '!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~'
string.whitespace
: 包含所有空白字符(空格、制表符、換行符等)的字符串。
import string
whitespace = string.whitespace
print(whitespace) # 輸出: ' \t\n\r\x0b\x0c'
這些成員讓您可以方便地訪問常見的字符集,並用於字符串操作和驗證。例如,您可以使用 string.digits
來檢查一個字符串是否只包含數字字符。這些常數可以幫助簡化代碼並提高代碼的可讀性。
此外,string
模組還提供了一些函數,如 string.capwords()
,用於大寫字符串中的每個單詞的首字母,以及 string.Template
,用於進行字符串模板替換等等。如果您需要更多信息,可以參考Python官方文檔中有關 string
模組的詳細說明。
結論
透過使用 random 和 string 內建函式庫,就可以簡單達到一些小的應用,
這些函式庫應用的好可以幫我們更快地達成任務。
系列文章
[Python教學]開發工具介紹
[開發工具] Google Colab 介紹
[Python教學] 資料型態
[Python教學] if判斷式
[Python教學] List 清單 和 Tuple元組
[Python教學] for 和 while 迴圈
[Python教學] Dictionary 字典 和 Set 集合
[Python教學] Dictionary 字典 和 Set 集合
[Python教學] Function 函示
[Python教學] Class 類別
[Python教學] 例外處理
[Python教學] 檔案存取
[Python教學] 實作密碼產生器
[Python教學] 日期時間
最後最後有一件小小的請求,請大家幫我填寫一下問卷,
讓我們知道你想上怎麼樣課程,感激不盡。
問卷這邊