Loading

面向过程编程

TOC

一、什么是面向过程编程

面向过程编程是一门编程思想
核心是‘过程’二字,是指一种解决问题的步骤,即先干什么再干什么。

二、面向过程编程的例子

基于该编程思想编写程序,就好比在设计一条工厂的流水线,一种机械化的思维方式。

# 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}\n')  # 加上换行符,以便存入多个值


get_user_password()

三、面向过程编程的优缺点

  • 优点
    • 将复杂的问题流程化,具体化,进而编写简单
  • 缺点
    • 可扩展性差,修改某一部分代码,会导致其他部分也需要修改(牵一发而动全身)
posted @ 2019-11-19 17:16  开花的马铃薯  阅读(234)  评论(0编辑  收藏  举报