首頁  >  文章  >  後端開發  >  python是面向過程的嗎

python是面向過程的嗎

anonymity
anonymity原創
2019-06-13 14:56:437289瀏覽

python是面向過程的嗎?

python是面向過程的嗎

1、面向過程:核心是過程二字,過程指的是解決問題的步驟,好例如設計一條管線,是一種機械式的思維方式。

就是程式從上到下一個步驟執行,一步步從上到下,從頭到尾的解決問題 。基本設計想法就是程式一開始是要著手解決一個大的問題,然後把一個大問題分解成很多個小問題或子過程,這些子過程再執行的過程再繼續分解直到小問題足夠簡單到可以在一個小步驟範圍內解決。

2、優缺點

小優點:將複雜的問題流程化,進而簡化。

缺點:擴展性差

3、實例:針對過程式的登入註冊程式

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[&#39;pwd&#39;])< 6:
        print(&#39;密码长度不得小于6位!&#39;)
        is_valid = False
    if len(re.findall(&#39;1[0-9]{10}&#39;,use_info[&#39;tel&#39;]))==0:
        print(&#39;电话格式不对!&#39;)
        is_valid = False
    if not re.search(r&#39;@.*?.com$&#39;,use_info[&#39;mail&#39;]).group(): # 使用Python的r前缀,就不用考虑转义的问题,&#39;*&#39;加个?就可以让&#39;.&#39;采用非贪婪匹配
        print(&#39;邮箱格式不对&#39;)
        is_valid = False
    return {
        &#39;valid&#39;:is_valid,
        &#39;info&#39;:use_info
    }
def register(auth):
    &#39;&#39;&#39;
    若输入信息合法则注册,写入文件或数据库
    :param auth:
    :return:
    &#39;&#39;&#39;
    if auth[&#39;valid&#39;]==True:
        with open(&#39;data.json&#39;,&#39;w&#39;,encoding=&#39;utf-8&#39;) as f:
            json.dump(auth[&#39;info&#39;],f)
def main():
    &#39;&#39;&#39;
    主逻辑程序
    :return:
    &#39;&#39;&#39;
    use_info = login()
    auth = authentication(use_info)
    register(auth)
if __name__==&#39;__main__&#39;: # 直接调用时执行下列程序,被调用时不执行
    main()

注意 :一般認為, 如果你只是寫一些簡單的腳本,去做一些一次性任務,用面向過程的方式是極好的,但如果你要處理的任務是複雜的,且需要不斷迭代和維護的, 那還是用物件導向最方便。

以上是python是面向過程的嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn