1. 程式人生 > >Python--面向過程編程

Python--面向過程編程

import 用戶註冊 not 復雜 col name 工廠 用戶 imp

面向過程編程是Python兩種編程流派的其中一種,另外一種是面向對象編程,這篇博客只討論面向過程編程:

1、概念

面向過程的核心是過程二字,過程就是解決問題的步驟,他就像是設計工廠的一條流水線,是一種機械式的思維方式

2、優點

復雜的問題流程化,簡單化

3、編程實例

用戶註冊:

 1 import json
 2 
 3 
 4 def interactive():
 5     name = input(>>: ).strip()
 6     pwd = input(>>: ).strip()
 7     return {
 8         name
: name, 9 pwd: pwd 10 } 11 12 13 def check(user_info): 14 is_valid = True 15 16 if len(user_info[name]) == 0: 17 print(用戶名不能為空) 18 is_valid = False 19 20 if len(user_info[pwd]) < 6: 21 print(密碼不能少於6位) 22 is_valid = False 23 24 return
{ 25 is_valid: is_valid, 26 user_info: user_info 27 } 28 29 30 def register(check_info): 31 if check_info[is_valid]: 32 with open(db.json, w, encoding=utf-8) as f: 33 json.dump(check_info[user_info], f) 34 35 36 def main(): 37 user_info = interactive()
38 check_info = check(user_info) 39 register(check_info) 40 41 42 if __name__ == __main__: 43 main()

過程分解,編程簡單,但是後期更改復雜,比如增加一個填寫email的選項,代碼如下:

 1 import json
 2 import re
 3 
 4 
 5 def interactive():
 6     name = input(>>: ).strip()
 7     pwd = input(>>: ).strip()
 8     email = input(>>: ).strip()
 9     return {
10         name: name,
11         pwd: pwd,
12         email: email
13     }
14 
15 
16 def check(user_info):
17     is_valid = True
18 
19     if len(user_info[name]) == 0:
20         print(用戶名不能為空)
21         is_valid = False
22 
23     if len(user_info[pwd]) < 6:
24         print(密碼不能少於6位)
25         is_valid = False
26 
27     if not re.search(r@.*\.com$, user_info[email]):
28         print(郵箱格式不合法)
29         is_valid = False
30 
31     return {
32         is_valid: is_valid,
33         user_info: user_info
34     }
35 
36 
37 def register(check_info):
38     if check_info[is_valid]:
39         with open(db.json, w, encoding=utf-8) as f:
40             json.dump(check_info[user_info], f)
41 
42 
43 def main():
44     user_info = interactive()
45     check_info = check(user_info)
46     register(check_info)
47 
48 
49 if __name__ == __main__:
50     main()

從以上代碼可以看出,面向過程編程擴展性較差,有一種牽一發而動全身的影響,

使用場景:適用於對擴展性要求不是很高的項目

Python--面向過程編程