zoukankan      html  css  js  c++  java
  • python基础-面向过程编程

    面向过程编程

    面向过程编程其实是一种机械式的思维方式,其核心就是"过程"

    过程指的是一种解决问题的步骤,即先干什么再干什么,最后干什么。

    优点:将复杂的问题流程化,进而简单化。

    哈哈哈哈,这种时刻,话不多说,上代码!

    # 需求:实现一个注册功能
    def user_pwd_auth():
        """
        检验用户名、密码的合法性
        :return: 合法的用户名、密码
        """
        while True:
            username = input("请输入用户名>>>:")
            if username.isalpha():
                break
            else:
                print("您输入的用户名不合法!")
        while True:
            password = input("请输入密码>>>:")
            re_pwd = input("请输入确认密码>>>:")
            if password == re_pwd:
                break
            else:
                print("密码和确认密码不一致!")
    
        return username, password
    
    
    def cut_user_pwd(username, pwd):
        """
        拼接用户名和密码,返回一个字符串
        :param username: 用户名
        :param pwd: 密码
        :return: 字符串
        """
        return f"{username}|{pwd}
    "
    
    
    def save_user(userinfo):
        """
        将用户名和密码信息存储在文本文件中
        :param userinfo: 拼接后的用户名和密码字符串
        :return: None
        """
        with open("userinfo.txt", "a", encoding="utf-8") as af:
            af.write(userinfo)
    
    
    def register():
        """
        注册用户信息
        :return:
        """
        # 1、让用户输入用户名、密码,检验用户名和密码的合法性,得到合法的用户名和密码
        username, pwd = user_pwd_auth()
        # 2、将用户名和密码进行拼接,得到一个用户密码字符串
        user_pwd = cut_user_pwd(username, pwd)
        # 3、将用户密码字符串存入文本文件中
        save_user(user_pwd)
    
    
    register()
    

    以上就是实现用户注册功能的面向过程思想的代码的展现。这个时候,如果我们想要在用户注册的时候,保存用户角色,并且每一个用户信息以用户名命名的文本文件保存,那我们该咋整?

    # 需求:实现一个注册功能
    def user_pwd_auth():
        """
        检验用户名、密码、用户角色的合法性
        用户角色:普通用户、管理员、超级用户
        :return: 合法的用户名、密码、用户角色
        """
        while True:
            username = input("请输入用户名>>>:")
            if username.isalpha():
                break
            else:
                print("您输入的用户名不合法!")
        while True:
            password = input("请输入密码>>>:")
            re_pwd = input("请输入确认密码>>>:")
            if password == re_pwd:
                break
            else:
                print("密码和确认密码不一致!")
        while True:
            user_role = input("请输入用户角色(普通用户/管理员/超级用户):")
            if user_role in ['普通用户', '管理员', '超级用户']:
                break
            else:
                print("您输入的用户角色不正确!")
    
        return username, password, user_role
    
    
    def cut_user_pwd(username, pwd, user_role):
        """
        拼接用户名和密码,返回一个字符串
        :param username: 用户名
        :param pwd: 密码
        :return: 字符串
        """
        return f"{username}|{pwd}|{user_role}
    "
    
    
    def save_user(userinfo, username):
        """
        将用户名和密码信息存储在文本文件中
        :param userinfo: 拼接后的用户名和密码字符串
        :return: None
        """
        with open(f"{username}.txt", "w", encoding="utf-8") as wf:
            wf.write(userinfo)
    
    
    def register():
        """
        注册用户信息
        :return:
        """
        # 1、让用户输入用户名、密码和用户角色。
        # 检验用户名、密码和用户角色的合法性,得到合法的用户名、密码和用户角色
        username, pwd, user_role = user_pwd_auth()
        # 2、将用户名、密码和用户角色进行拼接,得到一个用户密码角色字符串
        user_pwd = cut_user_pwd(username, pwd, user_role)
        # 3、将用户密码角色字符串存入以用户名命名的文本文件中
        save_user(user_pwd, username)
    
    
    register()
    

    为了展现这个缺点,一声不吭的使用了【CV】大法。非常感谢小阔爱们看到了这里,从上述两个代码中可以发现,面向过程编程缺点:若修改某一部分功能,会导致其他部分同时需要修改。牵一发而动全身,扩展性差。

  • 相关阅读:
    Mina、Netty、Twisted一起学(八):HTTP服务器
    Mina、Netty、Twisted一起学(七):发布/订阅(Publish/Subscribe)
    梦想还是要有的,万一实现了呢(校招季)
    我的地盘听我的
    React源码剖析系列 - 生命周期的管理艺术
    实现搜索联想
    为你的简历加分
    twobin博客样式—“蓝白之风”
    一起学习jQuery2.0.3源码—1.开篇
    this的安身之处
  • 原文地址:https://www.cnblogs.com/xiaodan1040/p/11863143.html
Copyright © 2011-2022 走看看