文章目錄
- 一、統計字符
- 二、用戶登錄系統
- 三、不重復的亂數
本系列文章通過 1000(一篇文章表示 1 個實體) 個實體 ,為讀者提供較為詳細的練習題目,以便讀者舉一反三,深度學習,本系列的文章涉及到 Python 知識點包括:Python 語言基礎、運算子和運算式、陳述句和程式結構、串列和元組、字典和集合、字串、正則運算式、函式、面向物件編程、模塊和包、例外處理和程式除錯、檔案和目錄操作、資料庫編程、界面編程、網路編程、WEB 編程、行程和執行緒、網路爬蟲、游戲編程等知識點,由易到難,由淺入深,一步步打下堅實的編程基礎,
本系列文章涉及的演算法包括搜索、回溯、遞回、排序、迭代、貪心、分治和動態規劃等,涉及的資料結構包括字串、串列、指標、區間、佇列、矩陣、堆疊、鏈表、哈希表、線段樹、二叉樹、二叉搜索樹和圖結構等,
本系列文章是筆者為適應當前教育改革的創新要求,更好地踐行語言類課程,滿足實踐教學與創新能力培養的需要,閱讀大量書籍、各大互聯網公司的面試演算法、LintCode、LeetCode、九章演算法和結合筆者近幾年專案經驗撰寫的系列文章,精選了 1000 個趣味性、實用性強的應用實體,從不同難度、不同演算法、不同型別和不同資料結構等方面,將實際演算法進行總結,希望為 Python 編程人員拋磚引玉,由于筆者經驗與水平有限,博文中疏漏及不妥之處在所難免,衷心地希望各位讀者在評論區多提寶貴意見及具體的修改建議,以便筆者進一步修改和完善,
一、統計字符
需求:設計一個字串,利用字典的方法統計出每個字符出現的次數,案例演示效果如下:

示例代碼如下:
# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:25.統計字符.py
@time:2021/01/30
"""
test_str = "hello docker" # 定義字串
test_str = test_str.replace(" ", "") # 去除字串中的空格
dic = dict() # 定義空字典
for char in test_str: # 遍歷字串
if char in dic: # 字典有這個key
dic[char] += 1 # 該字符的值自增
else: # 字典沒有該字符
dic[char] = 1 # 初始化字符值
for key, value in dic.items(): # 遍歷字典
print(key, value) # 列印結果
二、用戶登錄系統
需求:創建一個字典物件,用來保存用戶名和密碼,通過接收用戶輸入的用戶名,判斷該用戶是否存在,如果不存在,則提示創建用戶;如果存在,則提示輸入密碼,當密碼輸入正確時,顯示登錄系統;當密碼輸入不正確時,提示還有幾次機會,案例演示效果如下:

示例代碼如下:
# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:27.用戶登錄系統.py
@time:2021/01/30
"""
users = {"張三": "123456", "李四": "111111", "王五": "234567"} # 用戶字典,保存用戶名和密碼
count = 2 # 輸入密碼的次數
while True: # 回圈使用系統
print("*" * 40)
name = input("歡迎登陸系統! \n請輸入用戶名:") # 接收用戶名
if name in users: # 用戶是否存在
while count >= 0: # 3次輸入密碼機會
password = input("請輸入密碼:").strip() # 接收密碼
if users[name] == password: # 密碼正確
print("登錄成功!")
break
else:
print(f"密碼輸入錯誤!你還有{count}次機會") # 剩余密碼次數
count -= 1 # 密碼次數-1
else:
print("您的次數已經用完!再見!")
break # 密碼次數用完或成功退出系統
else:
flag = input("用戶名不存在!\n是否創建用戶[y/n]:").strip() # 是否創建用戶
if flag == "y": # 創建用戶
while True: # 用戶創建失敗時,執行回圈
name = input("請創建用戶名:").strip() # 接收用戶名
if name in users: # 創建用戶已存在
print("用戶已存在!")
else:
password = input("請設定密碼:").strip()
re_password = input("請確認密碼:").strip()
if password == re_password: # 兩次密碼輸入正確
users[name] = password # 添加用戶資訊
print("用戶創建成功!")
break # 成功創建,退出創建回圈
else:
print("兩次密碼輸入不一致!")
else: # 不創建用戶
print("歡迎再次使用系統!再見!")
break
三、不重復的亂數
需求:輸入想要獲得不重復亂數的個數和亂數的范圍,輸出該亂數生成的集合,案例演示效果如下圖所示:

示例代碼如下:
# -*- coding: UTF-8 -*-
"""
@author:AmoXiang
@file:26.不重復的亂數.py
@time:2021/01/30
"""
import random # 匯入隨機模塊
max_num = int(input("請輸入亂數的范圍:").strip()) # 數值范圍
num = int(input("請輸入亂數的個數:").strip()) # 亂數個數
e_set = set() # 定義空集合
while len(e_set) < num: # 回圈生成亂數
temp_num = random.randint(1, max_num) # 生成范圍內的亂數
e_set.add(temp_num) # 將不重復的亂數添加到集合中
print(e_set) # 列印集合
感謝您閱讀本篇博文,希望本文能成為您編程路上的領航者,祝您閱讀愉快!

好書不厭讀百回,熟讀課思子自知,而我想要成為全場最靚的仔,就必須堅持通過學習來獲取更多知識,用知識改變命運,用博客見證成長,用行動證明我在努力,
如果我的博客對你有幫助、如果你喜歡我的博客內容,請點贊、評論、收藏一鍵三連哦!聽說點贊的人運氣不會太差,每一天都會元氣滿滿呦!如果實在要白嫖的話,那祝你開心每一天,歡迎常來我博客看看,
?編碼不易,大家的支持就是我堅持下去的動力,點贊后不要忘了關注我哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/254786.html
標籤:其他
上一篇:Py之seaborn:資料可視化seaborn庫的柱狀圖、箱線圖(置信區間圖)、散點圖/折線圖、核密度圖/等高線圖、盒形圖/小提琴圖/LV多框圖的簡介、使用方法之最強攻略(建議收藏)
下一篇:Linux系統呼叫原理及實作
