目錄
二、分層實現功能
python從入門到放棄完整教程目錄:
面向過程程式設計是解決問題的一種思想,相當於武林門派,武林門派之間沒有好壞之分,因此它與我們之後學習的物件導向程式設計其實沒有好壞之分。
面向過程程式設計,核心是程式設計二字,過程指的是解決問題的步驟,即先幹什麼、後幹什麼、再幹什麼、然後幹什麼……
基於該思想編寫程式就好比在設計一條流水線,面向對稱程式設計其實是一種機械式的思維方式。
當我們寫登入功能,我們首先需要輸入賬號、密碼,然後認證兩次密碼是否相同,然後從資料庫中讀取密碼驗證使用者密碼輸入是否正確,然後輸入驗證碼……之後,我們就能夠實現登入功能。這樣把登入功能問題流程化,進而是解決問題的思路非常清晰。
優點:複雜的問題流程化,進而簡單化。
缺點:擴充套件性差。
def check_username():
username = input('username>>>').strip()
if username.isalpha():
return username
else:
print('使用者名稱必須為字母,傻叉')
def check_pwd():
while true:
pwd = input('password>>>').strip()
if len(pwd) < 5:
print('密碼長度至少五位')
continue
re_pwd = input('re_password>>>').strip()
if pwd == re_pwd:
return pwd
else:
print('兩次輸入密碼不一致')
def insert(username, pwd, path='57.txt'):
with open(path, 'a', encoding='utf8') as fa:
fa.write(f':\n')
def register():
username = check_username()
pwd = check_pwd()
insert(username, pwd)
print(f'註冊成功')
register()
username>>>nick
password>>>12345
re_password>>>12345
nick註冊成功
如果現在我們需要校驗使用者的年齡,因此我們需要增加乙個check_age()方法,並且其他有牽連的地方都需要修改,因此它的擴充套件性極差。
# def register():
# while true:
# username = input('username>>>').strip()
# # 檢測使用者是否重複,如果重複則重新輸入
# with open('db.txt', 'r', encoding='utf8') as fr:
# for line in fr:
# info = line.strip('\n').split(':')
# if username == info[0]:
# print('使用者名稱已經存在')
# break
# else:
# # 使用者名稱不存在
# # 跳出迴圈,不用重複輸入使用者名字
# res =
# def tell_info():
# username = input('username>>>').strip()
# with open('db.txt', 'r', encoding='utf8') as fr:
# for line in fr:
# info = line.strip('\n').split(':')
# if username == info[0]:
# return info
資料處理層
def select(username):
with open('db.txt', 'r', encoding='utf8') as fr:
for line in fr:
info = line.strip('\n').split(':')
if username == info[0]:
return info
def tell_info():
username = input('username>>>').strip()
info = select(username)
print(info)
使用者功能層
def register():
while true:
username = input('username>>>').strip()
# 檢測使用者是否重複,如果重複則重新輸入
res = select(username)
if res:
print('使用者名稱已經存在')
else:
break
while true:
pwd = input('password>>>').strip()
re_pwd = input('re_password>>>').strip()
if pwd != re_pwd:
print('兩次輸入密碼不一致,請重新輸入')
else:
break
把註冊功能分開之後,功能與功能直接解耦合,複雜的問題流程化,更加清晰。 面向過程程式設計
面向過程程式設計是解決問題的一種思想,相當於武林門派,武林門派之間沒有好壞之分,因此它與我們之後學習的物件導向程式設計其實沒有好壞之分。面向過程程式設計,核心是程式設計二字,過程指的是解決問題的步驟,即先幹什麼 後幹什麼 再幹什麼 然後幹什麼 基於該思想編寫程式就好比在設計一條流水線,面向對稱程式設...
面向過程程式設計
面向過程程式設計是解決問題的一種思想,相當於武林門派,武林門派之間沒有好壞之分,因此它與我們之後學習的物件導向程式設計其實沒有好壞之分。面向過程程式設計,核心是程式設計二字,過程指的是解決問題的步驟,即先幹什麼 後幹什麼 再幹什麼 然後幹什麼 基於該思想編寫程式就好比在設計一條流水線,面向對稱程式設...
面向過程程式設計
面向過程程式設計是解決問題的一種思想,相當於武林門派,武林門派之間沒有好壞之分,因此它與我們之後學習的物件導向程式設計其實沒有好壞之分。面向過程程式設計,核心是程式設計二字,過程指的是解決問題的步驟,即先幹什麼 後幹什麼 再幹什麼 然後幹什麼 基於該思想編寫程式就好比在設計一條流水線,面向對稱程式設...