小工具實戰-Python 實現小工具輸出字串大小寫轉換、字串統計、編解碼、MD5 加密
- 本文主要是使用 Python 做一些簡單小工具,列印輸出即可;
- 本文涉及到的小工具有字串大小寫轉換、字串統計、編解碼、MD5 加密等等;
- 文章內容通俗易懂,適合剛入門 Python 練習基礎知識;
- 文章中使用到了 Python 的標準輸入輸出、字串基本操作、unittest 框架基本使用、方法和類的使用等;
- 寫作思路是先大概介紹每個小工具的實現思路,然後寫一點部分程式碼,最後會把所有小工具整合在一起執行。
字串大小寫轉換
實現思路
- 根據使用者鍵盤輸入的字串來按照要求進行大小寫轉換;
- 主要有大寫轉換成小寫、小寫轉換成小寫、大小寫轉換、首字母大寫。
部分程式碼
- 詳細的程式碼後續會整合在一起,這裡看下部分程式碼:
print('您選擇的是 1-字串大小寫轉換,轉換進行中~~~') print(f"大寫轉換成小寫:{self.s.lower()}") print(f"小寫轉換成小寫:{self.s.upper()}") print(f"大小寫轉換:{self.s.swapcase()}") print(f"首字母大寫:{self.s.title()}")
字串統計
實現思路
- 根據輸入的字串,先判斷一個字元是不是在該字串中;
- 然後判斷該字元在字串中出現的次數;
- 去掉字串左右空格;
- 去掉字串左邊空格;
- 去掉字串右邊空格。
部分程式碼:
def test_case2(self): print('您選擇的是 2-字串統計或計數,轉換進行中~~~') i = input('請輸入要統計的字元:') if i in self.s: print(f"字串統計:{self.s.count(i)}") print(f"去掉字串左右空格:{self.s.strip()}") print(f"去掉字串左邊空格:{self.s.lstrip()}") print(f"去掉字串右邊空格:{self.s.rstrip()}") else: print(f"您輸入的字元:{i} 沒有在字串{self.s}中")
字串編解碼
實現思路
- 根據輸入字串,將 Unicode 字串轉換為位元組序列;
- 將位元組序列解碼為 Unicode 字串。
部分程式碼
def test_case3(self): print('您選擇的是 3-字串編碼或解碼,轉換進行中~~~') str_byte = self.s.encode('utf-8') print(f"Unicode 字串轉換為位元組序列:{str_byte}") print(f"將位元組序列解碼為 Unicode 字串:{str_byte.decode('utf-8')}")
字串 MD5 加密
實現思路
- 根據輸入的字串進行簡單的 MD5 加密。
部分程式碼
def test_case4(self): print('您選擇的是 4-字串 MD5 加密,轉換進行中~~~') md = hashlib.md5(self.s.encode()) md5_pass = md.hexdigest() print(f"字串{self.s}, md5 直接加密後為:{md5_pass}")
小工具整體設計
設計思路
- 先建立一個類,這個類繼承於 unittest 框架的 TestCase,目的是組織所有的用例;
- 每個用例必須按照 unittest 框架的規則去寫,比如函式開頭必須為 test 等;
- 每個用例其實就是一個小工具,這個用例中主要實現對應的小工具內容;
- unittest 框架的前置 setUpClass 處理小工具的開始資訊,比如提示資訊或者要輸入的字串;
- unittest 框架的後置 tearDownClass 處理小工具的結束資訊,比如結束語等等;
- 除了類中的方法外,還定義了一個主函式 main() 用來組織所有的用例執行;
- 主函式 main() 中的用例執行邏輯按照 unittest 框架的 suite、testcase、addTest、TextTestRunner 方式去組織。
- 最後就是呼叫 main() 函式即可。
工具完整程式碼實現
import unittest
import time
import hashlib
class TestToX(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
# cls.s = 'I like python, And you?'
cls.s = input('請輸入要轉換的字串:')
print("開始進行轉換,請稍等......")
print("#" * 50)
@classmethod
def tearDownClass(cls) -> None:
print("#" * 50)
print("轉換結束,歡迎使用~,工具執行中,您也可繼續操作-----")
def test_case1(self):
print('您選擇的是1-字串大小寫轉換,轉換進行中~~~')
print(f"大寫轉換成小寫:{self.s.lower()}")
print(f"小寫轉換成小寫:{self.s.upper()}")
print(f"大小寫轉換:{self.s.swapcase()}")
print(f"首字母大寫:{self.s.title()}")
def test_case2(self):
print('您選擇的是2-字串統計或計數,轉換進行中~~~')
i = input('請輸入要統計的字元:')
if i in self.s:
print(f"字串統計:{self.s.count(i)}")
print(f"去掉字串左右空格:{self.s.strip()}")
print(f"去掉字串左邊空格:{self.s.lstrip()}")
print(f"去掉字串右邊空格:{self.s.rstrip()}")
else:
print(f"您輸入的字元:{i} 沒有在字串{self.s}中")
def test_case3(self):
print('您選擇的是3-字串編碼或解碼,轉換進行中~~~')
str_byte = self.s.encode('utf-8')
print(f"Unicode字串轉換為位元組序列:{str_byte}")
print(f"將位元組序列解碼為Unicode字串:{str_byte.decode('utf-8')}")
def test_case4(self):
print('您選擇的是4-字串MD5加密,轉換進行中~~~')
md = hashlib.md5(self.s.encode())
md5_pass = md.hexdigest()
print(f"字串{self.s}, md5直接加密後為:{md5_pass}")
def main():
while True:
print('== 1:字串大小寫轉換 == \n'
'== 2:字串統計或計數 == \n'
'== 3:字串編碼或解碼 == \n'
'== 4:字串MD5加密 == \n')
num = int(input('請根據以上提示按要求輸入數字:'))
suite = unittest.TestSuite()
if num == 1:
suite.addTest(TestToX('test_case1'))
runner = unittest.TextTestRunner()
runner.run(suite)
time.sleep(0.8)
elif num == 2:
suite.addTest(TestToX('test_case2'))
runner = unittest.TextTestRunner()
runner.run(suite)
time.sleep(0.8)
elif num == 3:
suite.addTest(TestToX('test_case3'))
runner = unittest.TextTestRunner()
runner.run(suite)
time.sleep(0.8)
elif num == 4:
suite.addTest(TestToX('test_case4'))
runner = unittest.TextTestRunner()
runner.run(suite)
time.sleep(0.8)
else:
print("輸入有誤~我們將執行所有的用例,請查閱...")
unittest.main()
if __name__ == "__main__":
main()
輸出效果
- 效果 1:
== 1:字串大小寫轉換 == == 2:字串統計或計數 == == 3:字串編碼或解碼 == == 4:字串 MD5 加密 == 請根據以上提示按要求輸入數字:1 請輸入要轉換的字串:I like python, And you? 開始進行轉換,請稍等...... ################################################## 您選擇的是 1-字串大小寫轉換,轉換進行中~~~ 大寫轉換成小寫:i like python, and you? 小寫轉換成小寫:I LIKE PYTHON, AND YOU? 大小寫轉換:i LIKE PYTHON, aND YOU? 首字母大寫:I Like Python, And You? ################################################## 轉換結束,歡迎使用~,工具執行中,您也可繼續操作-----
- 效果 2:
== 1:字串大小寫轉換 == == 2:字串統計或計數 == == 3:字串編碼或解碼 == == 4:字串 MD5 加密 == 請根據以上提示按要求輸入數字:2 請輸入要轉換的字串:i like python 開始進行轉換,請稍等...... ################################################## 您選擇的是 2-字串統計或計數,轉換進行中~~~ 請輸入要統計的字元:i 字串統計:2 去掉字串左右空格:i like python 去掉字串左邊空格:i like python 去掉字串右邊空格:i like python ################################################## 轉換結束,歡迎使用~,工具執行中,您也可繼續操作-----
- 效果 3:
== 1:字串大小寫轉換 == == 2:字串統計或計數 == == 3:字串編碼或解碼 == == 4:字串 MD5 加密 == 請根據以上提示按要求輸入數字:3 請輸入要轉換的字串:我有一個億 開始進行轉換,請稍等...... ################################################## 您選擇的是 3-字串編碼或解碼,轉換進行中~~~ Unicode 字串轉換為位元組序列:b'\xe6\x88\x91\xe6\x9c\x89\xe4\xb8\x80\xe4\xb8\xaa\xe4\xba\xbf' 將位元組序列解碼為 Unicode 字串:我有一個億 ################################################## 轉換結束,歡迎使用~,工具執行中,您也可繼續操作-----
- 效果 4:
== 1:字串大小寫轉換 == == 2:字串統計或計數 == == 3:字串編碼或解碼 == == 4:字串 MD5 加密 == 請根據以上提示按要求輸入數字:4 請輸入要轉換的字串:123456 開始進行轉換,請稍等...... ################################################## 您選擇的是 4-字串 MD5 加密,轉換進行中~~~ 字串 123456, md5 直接加密後為:e10adc3949ba59abbe56e057f20f883e ################################################## 轉換結束,歡迎使用~,工具執行中,您也可繼續操作-----
總結
本文是使用 Python 實現小工具輸出字串大小寫轉換、字串統計、編解碼、MD5 加密,簡單容易理解,適合入門 Python 基礎練習。可能需要對一些基礎知識要簡單看下。建議學習的時候,不侷限於上邊的示例,可以自己新增的一些示例,比如 MD5 加密的時候,也可以增加一些使用者名稱和密碼組合 MD5 加密、密碼使用 MD5+ 鹽加密、MD5 加鹽後將密碼整體插入鹽中、SHA1 加密、SHA256 加密、HMAC 加密等等。
更多內容可以學習《測試工程師 Python 工具開發實戰》書籍、《大話效能測試 JMeter 實戰》書籍
相關文章
- 字串中大小寫轉換輸出字串
- 字串-大小寫轉換字串
- JavaScript字串大小寫轉換JavaScript字串
- Python中怎麼轉換字串大小寫Python字串
- 字串 md5線上生成的小工具字串
- 字串大小寫轉換和字串的比較字串
- python實現字串轉換整數Python字串
- 【編測編學】零基礎學python_02_字串(大小寫轉換)Python字串
- python 實現計算器功能 輸入字串,輸出相應結果Python字串
- c++實現輸入一組字串,找出字串中最大最小和統計相同字串出現次數C++字串
- 用PYTHON初次編寫小工具心得Python
- ts - 兩種方法實現忽略大小寫的字串排序字串排序
- Java 正確的做字串編碼轉換Java字串編碼
- 萬能java字串編碼轉換工具類Java字串編碼
- python實現兩字串對映詳解Python字串
- 將字串轉換成大寫 2020.12.28字串
- Python 漢字區位碼、字串 相互轉換Python字串
- js實現字串轉JSON格式字串JSON
- 用指標編寫程式將輸入的字串倒序輸出指標字串
- 從字串A中刪除字串B中存在的字母(不區分大小寫)C語言實現字串C語言
- python字串格式化輸出Python字串格式化
- 前端開發入門到實戰:JavaScript字串轉換數字前端JavaScript字串
- python 字串replace方法實現探索Python字串
- C++實現一個將字串中所有字母轉換為大寫的方法C++字串
- Java Stram實現Map和字串之間互相轉換| BaeldungJava字串
- 中文字串 轉 unicode 編碼的字串字串Unicode
- python字串比較大小Python字串
- Go小工具系列——型別轉換Go型別
- ARM彙編解決階乘以及大小寫轉換
- qt實現md5加密QT加密
- python字串轉換為日期時間Python字串
- Python 字串格式化輸出方式Python字串格式化
- Python將字串轉為字典最佳實踐Python字串
- Python 實現隨機打亂字串Python隨機字串
- python中字串的編碼和解碼Python字串
- 前端實用小工具前端
- Python配合Redis寫個Remember小工具PythonRedisREM
- DM8 字串大小寫敏感字串