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

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

  1. day20 函数收尾+面向过程+模块

    目录 一.算法(二分法) 二.面向过程与函数式 1 编程范式/思想 2 面向过程 3 函数式 3.1 匿名函数与lambda 三.模块 1 什么是模块 2 为何要有模块 3 怎么用模块 3.1第一次导 ...

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

    总结一下: 面向过程编程:根据业务逻辑从上到下的写代码-----就是一个project写到底,重复利用性比较差 函数式:将某些特定功能代码封装到函数中------方便日后调用 面向对象:对函数进行分类 ...

  3. python 面向过程和面向对象比较

    面向过程 VS 面向对象 面向过程的程序设计:核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么......面向过程的设计就好比精心设计好一条流水线,是一种机械式的思维方式. 优点是:复杂度 ...

  4. Python面向过程编程

    面向过程编程 D:\Document\视频\python20期\day4\视频\面向过程编程 三元表达式示例1 #三元表达式x=10 y=20 res=x if x>y else y print ...

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

    今日概要: 1.内置模块 2.协程函数 3.递归 4.面向过程编程与函数编程 5.模块 6.包 7.re正则 一.内置模块 1.匿名函数lambda 定义:匿名函数通常是创建了可以被调用的函数,它返回 ...

  6. python基础之面向过程编程,模块

    面向过程编程 面向过程的核心是过程,指的是解决问题的步骤,即先干什么再干什么,就好像设计一条流水线. 优点:复杂的问题流程化,进而简单化 缺点:可扩展性差,修改流水线的任意一个阶段,都会牵一发而动全身 ...

  7. Python笔记_第二篇_面向过程_第二部分_3.模块的概述

    这部分内容是非常重要的,分模块的基本概念和一些常用模块的使用,其实常用模块使用这部分也不是太全面,后续或者有机会再通过其他材料进行讲解. 1. 模块的概述: 目前代码比较少,写在一个文件中还体现不出什 ...

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

    1.程序入口,让main显现出来: print(__name__)#__name___是模块中的隐藏字段,当前模块运行的函数名 if __name__ == __main__ __main__() # ...

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

    面向过程的编程思想 1.面向过程的编程思想及举例 写程序时: 要先想功能,分步实现 2. os模块中walk输出目录中文件路径 os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上 ...

随机推荐

  1. 可以简易设置文字内边距的EdgeInsetsLabel

    可以简易设置文字内边距的EdgeInsetsLabel 最终效果: 源码: EdgeInsetsLabel.h 与 EdgeInsetsLabel.m // // EdgeInsetsLabel.h ...

  2. September 13th 2017 Week 37th Wednesday

    Whenever people agree with me, I always feel I must be wrong. 每次人们赞同我时,我都觉得自己一定错了. We can draw lesso ...

  3. CSS 鼠标样式

    设置鼠标指针放在一个元素边界范围内时所用的光标形状,需要对元素的css属性cursor进行设置. cursor属性可能的值: default 默认光标(通常是一个箭头) auto 默认.浏览器设置的( ...

  4. React Native 基础报错及解决方案记录

    刚开始上手RN,碰到很多坑,记录一下.碰到问题多去看看github上面的issue! 启动命令react-native run-ios报错 1.:xcrun: error: unable to fin ...

  5. 如何运行vue项目(从gethub上download的开源项目)

    前提:入坑vue.js,从GitHub上download一个vue.js的开源项目,发现不知如何在浏览器运行,通过查阅网上教程,发现网上的很多是教你怎么新建项目,并没有一个是教如何打开已有的项目.自已 ...

  6. 学习python第三天数据库day2

    day01回顾: 数据库: 定义:存储数据的仓库(database,简称db) 常用的数据库对象有哪些? 1).数据表(table) ***** 2).视图(view) 3).索引(index) 4) ...

  7. 【转】 iOS播放视频时候,忽略设备静音按钮

    用户有时会在静音模式下观看视频,如果不主动设置的话,视频是没有声音的,通过AVAudioSession可开启以视频为主导的播放模式, 首先需要导入,AVFoundtion.framework,在控制播 ...

  8. Day1 Spring初识(一)

    在网上看到一篇文章,感觉写得挺不错的,转载一下,本文转载自:http://www.cnblogs.com/xdp-gacl/p/3707631.html和http://www.cnblogs.com/ ...

  9. react中受控组件相关的warning

    在表单中,报如下的错,意思是非受控的输入框变成了受控的,报错信息如下 Warning: A component is changing an uncontrolled input of type te ...

  10. Java反射学习一

    Java 反射机制 基本概念 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法? 答案是肯定的. 这种动态获取类的信息以及动态调用对象 ...