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

更新於 2024/11/21閱讀時間約 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
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
最近來越南出差,遇到要將自己學習心得轉換成越南文給越南同事看。就研究了一下如何用Python來翻譯整個Word的文件,具越南同事說他有比對中文跟越南文意思差不多。 本文將教您如何使用 Python 的 python-docx 與 googletrans 套件,快速完成 Word 文件的自動翻譯。
這篇文章是在解說上一篇文章:[Python教學] 進階:函數式程式設計 的課後練習的題目的解答,如果還沒看過上一篇文章的話建議可以先行前往閱讀!
在這篇文章中,我們將深入介紹 Python 中的高階函數、匿名函數(lambda)、以及一些常用的高階函數工具如 map()、filter()、reduce()。這些概念和工具讓程式碼更加精簡並具有較高的可讀性和靈活性,是編寫 Python 程式碼的重要技巧。
在這篇文章中,我們將介紹如何在 Python 中進行除錯與測試。初學者可以利用 print() 進行簡單除錯,進階則可以學習 logging 模組進行更詳細的記錄,並利用 unittest 和 pytest 等單元測試工具進行自動化測試,以確保程式的穩定性。
Thumbnail
日期時間 時間日期在計算機科學和日常生活中都非常重要。時間:時間是一個連續的概念,用來衡量事件發生的順序和持續的時間。時間通常以不同的單位來表示,包括秒、分鐘、小時、天、月和年等。日期:日期是時間的一個特定點,通常包括年、月和日。
Thumbnail
⏳ 優質好文,歡迎支持與學習,讓阿Han給你最歡樂的學習課程、最貼近業界的實戰技巧…,just for fun fun fun…😄 相信對於具有開發基礎的學員們來說,基本的開發工程相信已經得心應手了, 那麼您們可能會苦於這些問題: ❓ 哇! pip install別人的程式好方便
Thumbnail
根據RFM的資料來分成8種類型的客戶,1.重要價值客戶2.重要保持客戶3.重要發展客戶4.一般發展客戶5.重要挽留客戶6.一般價值客戶7.一般保持客戶8.一般挽留客戶
Thumbnail
RFM模型是最基本的分析,可以讓你知道哪些是常客、哪些人是偶爾來一次,或是根本不常來,藉此針對不同的客群去做不同的策略,達到提升業績的方法。接下來就讓我教你如何運用PYTHON快速做出RFM分析
Thumbnail
介紹條件控制流程,包含組成它的比較運算子、條件運算式、條件語句。 繼講解完邏輯運算之後,我們終於要開始認識控制流程的其中之一:條件(Condition)。 如同在程式的邏輯思維中介紹到的,我們需要決定問題為 True 需要執行什麼,反之又要執行什麼。這些路徑的選擇便是由條件控制流程所實現。
Thumbnail
介紹邏輯運算的觀念,包含布林值、運算子與運算式的介紹。並說明如何使用 Python 撰寫這些觀念。
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
最近來越南出差,遇到要將自己學習心得轉換成越南文給越南同事看。就研究了一下如何用Python來翻譯整個Word的文件,具越南同事說他有比對中文跟越南文意思差不多。 本文將教您如何使用 Python 的 python-docx 與 googletrans 套件,快速完成 Word 文件的自動翻譯。
這篇文章是在解說上一篇文章:[Python教學] 進階:函數式程式設計 的課後練習的題目的解答,如果還沒看過上一篇文章的話建議可以先行前往閱讀!
在這篇文章中,我們將深入介紹 Python 中的高階函數、匿名函數(lambda)、以及一些常用的高階函數工具如 map()、filter()、reduce()。這些概念和工具讓程式碼更加精簡並具有較高的可讀性和靈活性,是編寫 Python 程式碼的重要技巧。
在這篇文章中,我們將介紹如何在 Python 中進行除錯與測試。初學者可以利用 print() 進行簡單除錯,進階則可以學習 logging 模組進行更詳細的記錄,並利用 unittest 和 pytest 等單元測試工具進行自動化測試,以確保程式的穩定性。
Thumbnail
日期時間 時間日期在計算機科學和日常生活中都非常重要。時間:時間是一個連續的概念,用來衡量事件發生的順序和持續的時間。時間通常以不同的單位來表示,包括秒、分鐘、小時、天、月和年等。日期:日期是時間的一個特定點,通常包括年、月和日。
Thumbnail
⏳ 優質好文,歡迎支持與學習,讓阿Han給你最歡樂的學習課程、最貼近業界的實戰技巧…,just for fun fun fun…😄 相信對於具有開發基礎的學員們來說,基本的開發工程相信已經得心應手了, 那麼您們可能會苦於這些問題: ❓ 哇! pip install別人的程式好方便
Thumbnail
根據RFM的資料來分成8種類型的客戶,1.重要價值客戶2.重要保持客戶3.重要發展客戶4.一般發展客戶5.重要挽留客戶6.一般價值客戶7.一般保持客戶8.一般挽留客戶
Thumbnail
RFM模型是最基本的分析,可以讓你知道哪些是常客、哪些人是偶爾來一次,或是根本不常來,藉此針對不同的客群去做不同的策略,達到提升業績的方法。接下來就讓我教你如何運用PYTHON快速做出RFM分析
Thumbnail
介紹條件控制流程,包含組成它的比較運算子、條件運算式、條件語句。 繼講解完邏輯運算之後,我們終於要開始認識控制流程的其中之一:條件(Condition)。 如同在程式的邏輯思維中介紹到的,我們需要決定問題為 True 需要執行什麼,反之又要執行什麼。這些路徑的選擇便是由條件控制流程所實現。
Thumbnail
介紹邏輯運算的觀念,包含布林值、運算子與運算式的介紹。並說明如何使用 Python 撰寫這些觀念。