[Python教學] 實作密碼產生器

更新於 發佈於 閱讀時間約 8 分鐘

實作密碼產生器

密碼產生器

密碼產生器


請使用者輸入要產生幾位數的密碼長度

依據使用者輸入的密碼長度,輸出密碼

import random
import string

數字 = string.digits
英文 = string.ascii_letters
字母表 = 數字 + 英文
# 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

亂數字母表 = list(數字 + 英文)
random.shuffle(亂數字母表)
# ['Y', 'h', 'u', 'J', 'I',.., 'X']

長度 = int(input("你的密碼要幾位數?"))
密碼 = "".join(亂數字母表[:長度])
print(f"密碼:{密碼}")
執行密碼產生器

執行密碼產生器

random 標準函式庫

python random 亂數模組

python 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教學]開發工具介紹

[Python經驗分享]為什麼要學Python? 我回不去了

Google Colab 介紹

[Python教學] 資料型態

[Python教學] IF判斷式

[Python教學] List 清單 和 Tuple元組

[Python教學] for 和 while 迴圈

[Python教學] Dictionary 字典 和 Set 集合

[Python教學] Function函示

[Python教學] Class 類別

[Python教學] 例外處理

[Python教學] 檔案存取

[Python教學] 實作密碼產生器



最後最後有一件小小的請求,請大家幫我填寫一下問卷,

讓我們知道你想上怎麼樣課程,感激不盡。

問卷這邊

Facebook 粉絲頁 - TechMasters 工程師養成記

程式教育 - 工程師養成記

同步分享到部落格


avatar-img
12會員
16內容數
最近當一個講師,把自己會的技能分享出去, 從平常工作就在使用的Python開始教學 我會陸續把資料分享上來,希望可以透過教學相長的方式,互相學習進步。 教學單元有Colab介紹與使用、ChatGPT助教、變數與資料型態、IF判斷式、List清單、For迴圈、字典與集合、函式與模組、Class類別與物件、標準函示庫與套件
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
何誠殷的沙龍 的其他內容
檔案存取 路徑與檔案處理是很常用的功能,他們可以獨立運作,但是常常搭配一起使用,如果你處理的檔案是在當下的目錄,可以不需要使用路徑的功能單獨讀寫檔案,如果是想要做一些資料夾的管理,就需要理解路徑和檔案之間的關係。
例外處理 在Python中,try 和 except 是用來處理異常的關鍵字。它們讓你能夠在代碼中檢測和處理可能引發異常的情況,以確保程序在遇到問題時不會崩潰,而是能夠優雅地處理錯誤情況。 基本用法,以下是 try 和 except 的基本用法: try: # 可能引發異常的代碼 excep
Class 類別 想像一下,假如我們要做一個有關食譜和食物的程式。首先,什麼是食譜呢?食譜是一個告訴我們如何做一道菜的指南,裡面會寫著需要的材料和做法。這就像是一個「類別」,它定義了一種事物的特性和行為。
Function函示 想像一個特別的工廠,叫做「點心工廠」。 這個工廠可以製作各種美味的點心,比如餅乾、蛋糕、糖果等等。 每種點心都有不同的味道和形狀。 在這個比喻中,我們可以把「點心工廠」想像成是一個函式,而工廠製作的各種點心就是函式可以執行的事情。
Dictionary 字典 和 Set 集合 字典(Dictionary)是 Python 中一個常用的資料結構,用於儲存一組鍵值對(Key-Value pairs)。集合(Set)是 Python 中的一種無序、可變的資料結構,用於存儲多個元素,且集合中的元素是唯一的(不重複)
for 和 while 迴圈,回圈觀念就是重複,想像自己是一位跑者,需要繞操場十圈才能抵達終點,這十圈在同一個操場上奔跑,這個概念轉換回來解釋程式的回圈就是一直做重複的事情。 for 迴圈是 Python 中的一個迴圈控制結構,用於對集合(例如清單、字串、元組等)中的每個元素進行迭代操作
檔案存取 路徑與檔案處理是很常用的功能,他們可以獨立運作,但是常常搭配一起使用,如果你處理的檔案是在當下的目錄,可以不需要使用路徑的功能單獨讀寫檔案,如果是想要做一些資料夾的管理,就需要理解路徑和檔案之間的關係。
例外處理 在Python中,try 和 except 是用來處理異常的關鍵字。它們讓你能夠在代碼中檢測和處理可能引發異常的情況,以確保程序在遇到問題時不會崩潰,而是能夠優雅地處理錯誤情況。 基本用法,以下是 try 和 except 的基本用法: try: # 可能引發異常的代碼 excep
Class 類別 想像一下,假如我們要做一個有關食譜和食物的程式。首先,什麼是食譜呢?食譜是一個告訴我們如何做一道菜的指南,裡面會寫著需要的材料和做法。這就像是一個「類別」,它定義了一種事物的特性和行為。
Function函示 想像一個特別的工廠,叫做「點心工廠」。 這個工廠可以製作各種美味的點心,比如餅乾、蛋糕、糖果等等。 每種點心都有不同的味道和形狀。 在這個比喻中,我們可以把「點心工廠」想像成是一個函式,而工廠製作的各種點心就是函式可以執行的事情。
Dictionary 字典 和 Set 集合 字典(Dictionary)是 Python 中一個常用的資料結構,用於儲存一組鍵值對(Key-Value pairs)。集合(Set)是 Python 中的一種無序、可變的資料結構,用於存儲多個元素,且集合中的元素是唯一的(不重複)
for 和 while 迴圈,回圈觀念就是重複,想像自己是一位跑者,需要繞操場十圈才能抵達終點,這十圈在同一個操場上奔跑,這個概念轉換回來解釋程式的回圈就是一直做重複的事情。 for 迴圈是 Python 中的一個迴圈控制結構,用於對集合(例如清單、字串、元組等)中的每個元素進行迭代操作
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
今天要實作和體驗的是拼單字的小遊戲,類似小時候在報紙、英文童書、或著電子辭典的小遊戲,一開始都是空白,隨著使用者拼對而逐漸顯示原本的單字樣貌,直到整個單字拼出來為止。 場景: 電腦隨機從單字庫裡面撈一個單字出來。 讓使用者扮演玩家去玩拼單字的遊戲。
Thumbnail
相信大家小時候都有和朋友或玩伴玩過一個猜數字的小遊戲,一個人先在1~100裡面設定一個隱藏數字,其他的人去猜,看誰是最後一個猜中的就算輸,或者看誰最快猜中就算贏。 今天要示範如何用Python寫一個猜數字遊戲, 並且會從上層的思考邏輯開始,一步步構建出這個猜數字的小遊戲。
Thumbnail
題目敘述 Integer to English Words 給定一個整數num 請轉換成對應的的英文數字表達(One, Two, Three, ... 那種數字表達式)
Thumbnail
就如同標題一樣,input的作用就是從使用者那裡獲取輸入,直到使用者輸入一段文本並按下 ENTER 鍵。 然而用戶輸入的數據(文本)都將作為字串被返回,並存儲在變數中。 接著我們舉個例,比如說我們在一段數據中需要獲取使用者的名稱,範例如下: name = input("請輸入你的名字:") #
在Python中, 要寫一個完整的「符元化類 Tokenizer Class」, 這個Class需要的功能有: 1.「編碼 Encode」:將「文本 Text」分割成「符元 Token」。 2.「詞彙 Vocabulary」:將「符元 Token」映射到「符元ID TokenID
Thumbnail
在實務上,條碼槍傳送的資訊可能包含不可見字符或控制字符。這可能是因為條碼槍在傳送條碼數據時使用了一些特殊字符,這些字符在可見字符集合之外,例如 \x06 就是 ASCII 中的 "ACK" 控制字符。 本文將探討,如何查詢及處理這些特殊字符。
Thumbnail
Python 提供了一系列內建函式,其中一部分涉及數學和數學操作。 以下是一些常用的內建函式和數學相關的函式: 基本數學運算: abs(x): 返回 x 的絕對值。 result = abs(-5) print(result) # 輸出: 5 max(iterable) 和 min(
Thumbnail
本文介紹了Python中函式引數的*args和**kwargs用法,通過*args處理可變數量的位置引數,通過**kwargs處理可變數量的關鍵字引數。不僅介紹了相應的語法和程式範例,還解釋了它們的順序問題和建議的慣例用法。
Thumbnail
Python 提供了一個功能豐富的標準函式庫,其中 random 專門用於生成隨機數。本文將介紹 random 的基本介紹,以及函式應用。
Thumbnail
Python 產生器(Generator)是一種特殊的迭代器,能夠以更有效率的方式處理大量數據。本文將介紹產生器的基礎概念、使用方法,並提供實際應用範例
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
今天要實作和體驗的是拼單字的小遊戲,類似小時候在報紙、英文童書、或著電子辭典的小遊戲,一開始都是空白,隨著使用者拼對而逐漸顯示原本的單字樣貌,直到整個單字拼出來為止。 場景: 電腦隨機從單字庫裡面撈一個單字出來。 讓使用者扮演玩家去玩拼單字的遊戲。
Thumbnail
相信大家小時候都有和朋友或玩伴玩過一個猜數字的小遊戲,一個人先在1~100裡面設定一個隱藏數字,其他的人去猜,看誰是最後一個猜中的就算輸,或者看誰最快猜中就算贏。 今天要示範如何用Python寫一個猜數字遊戲, 並且會從上層的思考邏輯開始,一步步構建出這個猜數字的小遊戲。
Thumbnail
題目敘述 Integer to English Words 給定一個整數num 請轉換成對應的的英文數字表達(One, Two, Three, ... 那種數字表達式)
Thumbnail
就如同標題一樣,input的作用就是從使用者那裡獲取輸入,直到使用者輸入一段文本並按下 ENTER 鍵。 然而用戶輸入的數據(文本)都將作為字串被返回,並存儲在變數中。 接著我們舉個例,比如說我們在一段數據中需要獲取使用者的名稱,範例如下: name = input("請輸入你的名字:") #
在Python中, 要寫一個完整的「符元化類 Tokenizer Class」, 這個Class需要的功能有: 1.「編碼 Encode」:將「文本 Text」分割成「符元 Token」。 2.「詞彙 Vocabulary」:將「符元 Token」映射到「符元ID TokenID
Thumbnail
在實務上,條碼槍傳送的資訊可能包含不可見字符或控制字符。這可能是因為條碼槍在傳送條碼數據時使用了一些特殊字符,這些字符在可見字符集合之外,例如 \x06 就是 ASCII 中的 "ACK" 控制字符。 本文將探討,如何查詢及處理這些特殊字符。
Thumbnail
Python 提供了一系列內建函式,其中一部分涉及數學和數學操作。 以下是一些常用的內建函式和數學相關的函式: 基本數學運算: abs(x): 返回 x 的絕對值。 result = abs(-5) print(result) # 輸出: 5 max(iterable) 和 min(
Thumbnail
本文介紹了Python中函式引數的*args和**kwargs用法,通過*args處理可變數量的位置引數,通過**kwargs處理可變數量的關鍵字引數。不僅介紹了相應的語法和程式範例,還解釋了它們的順序問題和建議的慣例用法。
Thumbnail
Python 提供了一個功能豐富的標準函式庫,其中 random 專門用於生成隨機數。本文將介紹 random 的基本介紹,以及函式應用。
Thumbnail
Python 產生器(Generator)是一種特殊的迭代器,能夠以更有效率的方式處理大量數據。本文將介紹產生器的基礎概念、使用方法,並提供實際應用範例