本文摘自php中文网,作者anonymity,侵删。
python是面向过程的吗?
1、面向过程:核心是过程二字,过程指的是解决问题的步骤,好比如设计一条流水线,是一种机械式的思维方式。
就是程序从上到下一步步执行,一步步从上到下,从头到尾的解决问题 。基本设计思路就是程序一开始是要着手解决一个大的问题,然后把一个大问题分解成很多个小问题或子过程,这些子过程再执行的过程再继续分解直到小问题足够简单到可以在一个小步骤范围内解决。
2、优缺点:
优点:将复杂的问题流程化,进而简单化。
缺点:扩展性差
3、实例:面向过程式的登录注册程序
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | import json,re
def login():
'' '
用户输入
: return :
'' '
usename = input( '用户名:' ).strip()
pwd = input( '密码:' ).strip()
tel = input( '电话:' ).strip()
mail = input( '邮箱:' ).strip()
return {
'usename' :usename,
'pwd' :pwd,
'tel' :tel,
'mail' :mail
}
def authentication(use_info):
'' '
判断用户名和密码等信息是否合法
: return :
'' '
is_valid = True # 默认合法
if len(use_info[ 'usename' ])==0:
print ( '用户名不能为空!' )
is_valid = False
if len(use_info[ 'pwd' ])< 6:
print ( '密码长度不得小于6位!' )
is_valid = False
if len(re.findall( '1[0-9]{10}' ,use_info[ 'tel' ]))==0:
print ( '电话格式不对!' )
is_valid = False
if not re.search(r '@.*?.com$' ,use_info[ 'mail' ]).group(): # 使用Python的r前缀,就不用考虑转义的问题, '*' 加个?就可以让 '.' 采用非贪婪匹配
print ( '邮箱格式不对' )
is_valid = False
return {
'valid' :is_valid,
'info' :use_info
}
def register(auth):
'' '
若输入信息合法则注册,写入文件或数据库
:param auth:
: return :
'' '
if auth[ 'valid' ]==True:
with open( 'data.json' , 'w' ,encoding= 'utf-8' ) as f:
json.dump(auth[ 'info' ],f)
def main():
'' '
主逻辑程序
: return :
'' '
use_info = login()
auth = authentication(use_info)
register(auth)
if __name__== '__main__' : # 直接调用时执行下列程序,被调用时不执行
main()
|
注意:一般认为, 如果你只是写一些简单的脚本,去做一些一次性任务,用面向过程的方式是极好的,但如果你要处理的任务是复杂的,且需要不断迭代和维护 的, 那还是用面向对象最方便。
以上就是python是面向过程的吗的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
Python回车不能换行而是执行怎么办
Python中数据预处理(代码)
厉害了,30行Python代码爬取英雄联盟全英雄皮肤
基于Python的图片修复程序(实现水印去除)
Python字典基本操作有哪些
知道Python 为什么要有 pass 语句?
Python items()方法如何使用
windows怎么打开Python
Python input怎么用
Python共发布过哪些版本
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » python是面向过程的吗