Python面向过程、模块的使用

一、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

二、模块的介绍

‘‘‘
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 具体的功能

‘‘‘

三、模块的使用

‘‘‘当前执行文件‘‘‘
# 当前的执行文件-------run.py
x=1
y=2
# 首次导入模块发生了3件事:
#1、以模块为准创造一个模块的名称空间
#2、执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间
#3、在当前执行文件中拿到一个模块名
import spam

# 之后的重复导入会直接引用之前创造好的结果,不会重复执行模块的文件
# import spam #spam=spam=模块名称空间的内存地址

# spam.名字
# print(x)
# spam.x
# print(spam.money)
# print(spam.read1)
# print(spam.read2)
# print(spam.change)
# money=11111111111111
# spam.read1()
# def read1():
#     print(‘执行文件的read1‘)
# spam.read2()

# spam.change()
# print(spam.money)
# print(money)

# import spam as sm
# print(sm.money)

import time,spam,os,sys
# import spam
# import os
# import sys

‘‘‘被导入模块‘‘‘
#spam.py:被导入的模块------spam.py
# print(‘from the spam.py‘)

money=1000

def read1():
    print(‘spam模块:‘,money)

def read2():
    print(‘spam模块‘)
    read1()

def change():
    global money
    money=0

四、模块的导入应用

"""当前的执行文件----run.py-----"""
# x=1
# y=2
# 首次导入模块发生了3件事:
#1、以模块为准创造一个模块的名称空间
#2、执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间
#3、在当前执行文件中拿到一个模块名
# import spam

# 之后的重复导入会直接引用之前创造好的结果,不会重复执行模块的文件
# import spam #spam=spam=模块名称空间的内存地址

# spam.名字
# print(x)
# spam.x
# print(spam.money)
# print(spam.read1)
# print(spam.read2)
# print(spam.change)
# money=11111111111111
# spam.read1()
# def read1():
#     print(‘执行文件的read1‘)
# spam.read2()

# spam.change()
# print(spam.money)
# print(money)

# import spam as sm
# print(sm.money)

# import time,spam,os,sys
# import spam
# import os
# import sys

# import spam
# spam.money

# from ... import ...首次导入也发生了三件事:
#1、以模块为准创造一个模块的名称空间
#2、执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间
#3、在当前执行文件的名称空间中拿到一个名字,该名字直接指向模块中的某一个名字,意味着可以不用加任何前缀而直接使用

# x=1
# y=2
#
# from spam import money,read1
# money=10
# print(money)
# print(read1)

# from .... import ... 对比 import 。。。
# 优点:不用加前缀,代码更为精简
# 缺点:容易与当前执行文件中名称空间中的名字冲突

# 相同点:
# 1、都会执行模块对应的文件,都会产生模块的名称空间
# 2、调用功能时,需要跑到定义时寻找作用域关系,与调用位置无关
# 不同点
# 1、一种需要加前缀,一种不需要加前缀

# from spam import money,read1,read2,change
# money=111111111111111111
# read1()
# def read1():
#     print(‘当前执行文件的read1‘,money)

# read1()

# def read1():
#     print(‘当前执行文件的read1‘,money)

# read2()

# change=1
# change()
# print(money)

# from spam import money
# from spam import read1
# from spam import read2
# from spam import change

from spam import *
print(money)
print(read1)

print(change)
# print(read2)

""""spam.py:被导入的模块"""
# print(‘from the spam.py‘)
__all__=[‘read1‘,‘money‘]

money=1000

def read1():
    print(‘spam模块:‘,money)

def read2():
    print(‘spam模块‘)
    read1()

def change():
    global money
    money=0

原文地址:https://www.cnblogs.com/sui776265233/p/9189071.html

时间: 2024-11-09 05:35:16

Python面向过程、模块的使用的相关文章

python/面向过程的编程思想及举例

python基础--面向过程的编程思想及举例 面向过程的编程思想 1.面向过程的编程思想及举例 写程序时: 要先想功能,分步实现 2. os模块中walk输出目录中文件路径 os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下. Send可以传多个值,但是必须是元组类型 面向过程的编程思想 像流水线,代码简洁,体系结构 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

Python面向过程编程

目录 面向过程编程 面向过程编程 "面向过程"(Procedure Oriented)是一种以过程为中心的编程思想.这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响.与面向对象明显的不同就是封装.继承.类. 在python中就一句花,可以流水线的编程,调用返回值 面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想.可以说面向过程是一种基础的方法.它考虑的是实际地实现.一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想

Python 面向过程编程

一.解释 面向过程:核心是过程二字,过程即解决问题的步骤,基于面向过程去设计程序就像是在设计,流水线式的编程思想,在设计程序时,需要把整个流程设计出来, 一条工业流水线,是一种机械式的思维方式 二.优缺点 优点:程序体系结构清晰,可以把复杂的问题简单化,流程化 缺点:可扩展性差,一条流线只是用来解决一个问题,所以说面向过程的应用多为不需要经常变化的软件 应用场景:linux内核,git,httpd,shell脚本 三.实例(利用协程函数进行面向过程编程) 过滤一个文件下的子文件.字文件夹的内容中

python面向过程与函数式编程

周六闲暇的午后,看到博客园众多大神的技术贴.作为一个什么都不懂的小学生,也开通了自己的博客,以后可以对外装×成伪大神了.第一篇记录下今天下午学的python基础: 1.面向过程编程:在python中,所说的过程其实和函数差别不大,也需要def进行定义,但是过程是没有返回值的. def guocheng(): print('我是过程') 上面定义的就是一个过程,没有返回值,只有函数内部的相关逻辑. 调用上面的过程:a=guocheng(),这样即可调用,如果在面板上打印a,会显示NONE,因为过程

Python面向过程和面向对象基础

总结一下: 面向过程编程:根据业务逻辑从上到下的写代码-----就是一个project写到底,重复利用性比较差 函数式:将某些特定功能代码封装到函数中------方便日后调用 面向对象:对函数进行分类封装,使开发更快捷更灵活 面向过程编程: 1 name = "mac" 2 age = 15 3 sex = 'male' 4 #...... 5 print("%s's %s,%d years old!" %(name,sex,age)) 函数式: 1 def nam

python自动化开发-[第五天]-面向过程、模块、包

今日概要: 1.内置模块 2.协程函数 3.递归 4.面向过程编程与函数编程 5.模块 6.包 7.re正则 一.内置模块 1.匿名函数lambda 定义:匿名函数通常是创建了可以被调用的函数,它返回了函数,而并没有将这个函数命名 #不使用匿名函数 def func(x,y): return x+y func(1,2) #使用匿名函数 f=lambda x,y:x+y print(f(1,2)) 2.max,zip(拉链函数),sorted用法 age={ 'dragon':18, 'panda

python基础---面向过程编程

面向过程编程 核心是过程二字,过程即解决问题的步骤,基于面向过程去设计程序就像是在设计一条工业流水线,是一种机械式的思维方式 优点:程序结构清晰可以把复杂的问题简单化,流程化 缺点:可扩展性差,一条流线只是用来解决一个问题 应用场景:linux内核,git,httpd,shell脚本 练习:过滤目录下文件内容包含error的文件 grep –rl 'error' /dir 使用os模块walk方法: os.walk会把目录下的二级目录和文件做成一个迭代器,多次使用实现文件路径的拼接 #grep 

python基础——面向过程的编程思想及举例

面向过程的编程思想 1.面向过程的编程思想及举例 写程序时: 要先想功能,分步实现 2. os模块中walk输出目录中文件路径 os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下. Send可以传多个值,但是必须是元组类型 面向过程的编程思想 像流水线,代码简洁,体系结构 实现对一个目录下面(包含子目录下面)有一行包含过滤字符串就输出其文件名的绝对路径 C:\python_fullstack_wen\day24\wen """ import ti

面向对象和面向过程,python中的类class,python中程序的入口——main方法,

1.程序入口,让main显现出来: print(__name__)#__name___是模块中的隐藏字段,当前模块运行的函数名 if __name__ == __main__ __main__() #定义程序入口:Python中main函数默认是隐藏的,main函数在当前运行的模块下,定义程序入口就是让main函数显 #现出来 def __main__(): ....... 2.面向对象和面向过程: 面向对象:使用对象完成任务,不需要在意过程: 3.什么是类:一个类型,定义class来表示一个类