面向过程编程、python模块及搜索路径

面向过程

面向过程编程
    核心过程二字,过程指的是解决问题的步骤,即先干什么、再干什么、然后干什么...
    基于该思想编写程序就好比在设计一条流水线,是一种机械式的思维方式

    优点
        复杂的问题流程化、进而简单化
    缺点
        扩展性极差
# 接收用户输入用户名,进行用户名合法性校验,拿到合法的用户名
def check_user():
    while True:
        name = input('username>>').strip()
        if name.isalpha():
           return name
        else:
            print('用户名必须为字母,傻叉')

# 接收用户输入密码,进行密码合法性校验,拿到合法的密码
def check_pwd():
    while True:
        pwd1=input('password>>: ').strip()
        if len(pwd1) < 5:
            print('密码的长度至少5位')
            continue
        pwd2=input('again>>: ').strip()
        if pwd1 == pwd2:
            return pwd1
        else:
            print('两次输入的密码不一致')

def check_age():
    pass

# pwd=check_pwd()
# print(pwd)
# 将合法的用户名与密码写入文件
def insert(user,pwd,age,path='db.txt'):
    with open(path,mode='a',encoding='utf-8') as f:
        f.write('%s:%s:%s\n' %(user,pwd,age))

def register():
    user=check_user()
    pwd=check_pwd()
    age=check_age()
    insert(user,pwd,age)
    print('register successfull')

register()



# 用户功能层
def register():
    while True: # 检测用户名
        name=input('username>>: ').strip()
        #检测用户是否重复,如果重复了则重新输入,否则break
        res=check_user_interface(name)
        if res:
            print('用户存在')
        else:
            break

    while True: # 检测密码
        pwd1 = input('pwd1>>: ').strip()
        pwd2 = input('pwd2>>: ').strip()
        if pwd1 != pwd2:
            print('两次输入密码不一致,重新输入')
        else:
            break


def tell_info():
    name=input('>>: ').strip()
    info=select(name)
    print(info)

# 接口层
def check_user_interface(name):
    res = select(name)  # res=['egon','123']
    if res:
        return True
    else:
        return False


# 数据处理层
def select(name):
    with open('db.txt', 'r', encoding='utf-8') as f:
        for line in f:
            info = line.strip('\n').split(':') #info=['egon','123']
            if name == info[0]:
                return info

python模块

1、什么是模块
    模块是一系列功能的集合体
    常见的模块形式(自定义模块、第三方模块、内置模块):
        1、一个module.py文件就是一个模块,文件名是module.py,而模块名是module
        2、一个包含有__init__.py文件的文件夹也是模块
        3、已被编译为共享库或DLL的C或C++扩展
        4、使用C编写并链接到python解释器的内置模块

2、为什么要用模块
    1、用第三方或者内置的模块是一种拿来主义,可以极大地提升开发效率
    2、自定义模块即将我们自己程序中需要用到的公共的功能写入一个python文件
        然后程序的各部分组件可以通过导入的方式来引用/重用自定义模块中的功能

3、如何用模块
    导入的方式有两种
    import 模块名
    from 模块名 import 具体的功能

模块搜索路径:
一个py文件就是一个模块,在导入时必须从某一个文件夹下找到该py文件
模块的搜索路径指的就是在导入模块时需要检索的文件夹们

导入模块时查找模块的顺序是:
    1、先从内存中已经导入的模块中寻找
    2、内置的模块
    3、环境变量sys.path中找
        强调:sys.path的第一个值是当前执行文件的所在的文件夹模块
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值