一、什么是面向过程编程
面向过程编程是一门编程思想
核心是‘过程’二字,是指一种解决问题的步骤,即先干什么再干什么。
二、面向过程编程的例子
基于该编程思想编写程序,就好比在设计一条工厂的流水线,一种机械化的思维方式。
# encoding:UTF-8
# 用于用户注册模块
def get_user_password():
"""
用于用户输入要注册的账号和密码,并校验是否合法
:return:
"""
flag = 0
while flag < 3: # 如果用户注册账号失败累计大于3,则终止注册程序
user_name = input('请输入注册的账号:').strip()
if 'A' < user_name > 'Z' or 'a' < user_name > 'z':
while flag < 3: # 如果用户注册密码尝试超过3次,则终止注册程序
password = input('请输入密码:').strip()
agin_password = input('请再次输入密码确认是否一致:').strip()
# 必须将不为空加上,否则输入两次空也符合密码相同
if password == agin_password and password != '':
new_user_password(user_name, password)
return user_name, password
else:
print('你输入的密码两次不一致,请重新输入!')
flag += 1
else:
print('输入字符不合法,请输入字母!')
flag += 1 # 如果字符不合法,flag计数+1
def new_user_password(user_name, password):
"""
将用户输入的密码和用户名转为字典的形式
:param user_name:
:param password:
:return:
"""
list_info = [] # 定义空的列表
list_info.extend([user_name, password]) # 使用extend向列表尾部添加多个值
res = dict([list_info]) # 将列表转为字典的形式
write_user_password(res)
return res # 返回出来的res会是元组包裹字典的形式
def write_user_password(res):
"""
将返回的res元组里面的字典存入用户信息文件
:param res:
:return:
"""
str_dict_info = str(res) # 将元组转为字符串,否则不能写入文件中
with open('user_info.txt', mode='a', encoding='UTF-8') as fw:
fw.write(f'{str_dict_info}
') # 加上换行符,以便存入多个值
get_user_password()
三、面向过程编程的优缺点
- 优点
- 将复杂的问题流程化,具体化,进而编写简单
- 缺点
- 可扩展性差,修改某一部分代码,会导致其他部分也需要修改(牵一发而动全身)
- 将复杂的问题流程化,具体化,进而编写简单
- 可扩展性差,修改某一部分代码,会导致其他部分也需要修改(牵一发而动全身)