python-面向過(guò)程與函數(shù)式

面向過(guò)程與函數(shù)式

面向過(guò)程

”面向過(guò)程“核心是“過(guò)程”二字,“過(guò)程”指的是解決問(wèn)題的步驟,即先干什么再干什么......,基于面向過(guò)程開(kāi)發(fā)程序就好比在設(shè)計(jì)一條流水線,是一種機(jī)械式的思維方式,這正好契合計(jì)算機(jī)的運(yùn)行原理:任何程序的執(zhí)行最終都需要轉(zhuǎn)換成cpu的指令流水按過(guò)程調(diào)度執(zhí)行,即無(wú)論采用什么語(yǔ)言、無(wú)論依據(jù)何種編程范式設(shè)計(jì)出的程序,最終的執(zhí)行都是過(guò)程式的。

創(chuàng)新互聯(lián)公司2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元宿遷做網(wǎng)站,已為上家服務(wù),為宿遷各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

1、優(yōu)點(diǎn)

將復(fù)雜的問(wèn)題流程化,進(jìn)而簡(jiǎn)單化

2、缺點(diǎn)

程序的可擴(kuò)展性極差,

3、應(yīng)用場(chǎng)景

面向過(guò)程的程序設(shè)計(jì)一般用于那些功能一旦實(shí)現(xiàn)之后就很少需要改變的場(chǎng)景, 如果你只是寫一些簡(jiǎn)單的腳本,去做一些一次性任務(wù),用面向過(guò)程去實(shí)現(xiàn)是極好的,但如果你要處理的任務(wù)是復(fù)雜的,且需要不斷迭代和維護(hù), 那還是用面向?qū)ο笞顬榉奖恪?

函數(shù)式

函數(shù)式編程并非用函數(shù)編程這么簡(jiǎn)單,而是將計(jì)算機(jī)的運(yùn)算視為數(shù)學(xué)意義上的運(yùn)算,比起面向過(guò)程,函數(shù)式更加注重的是執(zhí)行結(jié)果而非執(zhí)行的過(guò)程,代表語(yǔ)言有:Haskell、Erlang。而python并不是一門函數(shù)式編程語(yǔ)言,但是仍為我們提供了很多函數(shù)式編程好的特性,如lambda,map,reduce,filter

匿名函數(shù)lambda

對(duì)比使用def關(guān)鍵字創(chuàng)建的是有名字的函數(shù),使用lambda關(guān)鍵字創(chuàng)建則是沒(méi)有名字的函數(shù),即匿名函數(shù),語(yǔ)法如下

lambda 參數(shù)1,參數(shù)2,...: expression

案例:

# 1、定義
lambda x,y,z:x+y+z

#等同于
def func(x,y,z):
    return x+y+z

# 2、調(diào)用
# 方式一:
res=(lambda x,y,z:x+y+z)(1,2,3)

# 方式二:
func=lambda x,y,z:x+y+z # “匿名”的本質(zhì)就是要沒(méi)有名字,所以此處為匿名函數(shù)指定名字是沒(méi)有意義的
res=func(1,2,3)
print(res)

匿名函數(shù)與有名函數(shù)有相同的作用域,但是匿名意味著引用計(jì)數(shù)為0,使用一次就釋放,所以匿名函數(shù)用于臨時(shí)使用一次的場(chǎng)景,匿名函數(shù)通常與其他函數(shù)配合使用

案例

salaries={
    'siry':3000,
    'tom':7000,
    'lili':,
    'jack':2000
}

要想取得薪水的最大值和最小值,我們可以使用內(nèi)置函數(shù)max和min(為了方便開(kāi)發(fā),python解釋器已經(jīng)為我們定義好了一系列常用的功能,稱之為內(nèi)置的函數(shù),我們只需要拿來(lái)使用即可)

print(max(salaries))
print(min(salaries))
#默認(rèn)根據(jù)字符比較大小


"""結(jié)果如下"""
tom
jack

內(nèi)置max和min都支持迭代器協(xié)議,工作原理都是迭代字典,取得是字典的鍵,因而比較的是鍵的最大和最小值,而我們想要的是比較值的最大值與最小值,于是做出如下改動(dòng)

max1=max(salaries,key=lambda k:salaries[k])
print(max1)
min1=min(salaries,key=lambda k:salaries[k])
print(min1)

"""結(jié)果如下"""
lili
jack

直接對(duì)字典進(jìn)行排序,默認(rèn)也是按照字典的鍵去排序的

print(sorted(salaries))

"""結(jié)果如下"""
['jack', 'lili', 'siry', 'tom']

根據(jù)值的最大值與最小值排序

res=sorted(salaries,key=lambda k:salaries[k])
print(res)

"""結(jié)果如下"""
['jack', 'siry', 'tom', 'lili']
  • 特點(diǎn)

    • 使用lambda關(guān)鍵字創(chuàng)建函數(shù)
    • 沒(méi)有名字的函數(shù)
    • 匿名函數(shù)冒號(hào)后面的表達(dá)式只有一個(gè),注意:是表達(dá)式,而不是語(yǔ)句
    • 匿名函數(shù)自帶return,而這個(gè)return的結(jié)果是表達(dá)式計(jì)算后的結(jié)果
  • 缺點(diǎn)

    • lamdba只能是單個(gè)表達(dá)式:不是一個(gè)代碼塊,lamdba的設(shè)計(jì)就是為了滿足簡(jiǎn)單的函數(shù)場(chǎng)景
    • 僅僅能封裝有限的邏輯,復(fù)雜邏輯實(shí)現(xiàn)不了,必須使用def來(lái)處理
#匿名函數(shù)
m=lambda x,y:x+y
#通過(guò)變量去調(diào)用匿名函數(shù)
print(m(23,19))
M=lambda a,b,c:a*b*c
print(M(1,2,3))

age =15
print('可以繼續(xù)參軍,'if age>18 else'繼續(xù)上學(xué)')
C=lambda x,y:x if x>y else y
print(C(1,5))

re=(lambda  x,y:x if x<y else y)(16,12)
print(re)

Rs=lambda x:(x**2)+890
print(Rs(10))
map、filter、reduce(了解)
l = ['zhoa', 'lisi', 'wangwu ']

res = map(lambda name: name + '_dsb', l)
print(res)  # 生成器
res1 = filter(lambda name: name.endswith('u'), l)
print(res1)

from functools import reduce

res3=reduce(lambda x, y: x + y, [1, 2, 3],10)
print(res3)

"""結(jié)果如下"""
<map object at 0x0000014D2CDF7E80>
<filter object at 0x0000014D2CDF7D60>
16

新聞名稱:python-面向過(guò)程與函數(shù)式
本文鏈接:http://m.kartarina.com/article24/dsogsce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航品牌網(wǎng)站設(shè)計(jì)移動(dòng)網(wǎng)站建設(shè)網(wǎng)站內(nèi)鏈定制網(wǎng)站外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
主站蜘蛛池模板: 日韩午夜福利无码专区a| 亚洲中文字幕久久精品无码VA| 亚洲精品无码专区在线播放| 无码人妻精品内射一二三AV| 国产综合无码一区二区三区| 无码精品一区二区三区在线| 超清无码一区二区三区| 精品人妻系列无码一区二区三区| 亚洲日韩VA无码中文字幕| 亚洲国产AV无码专区亚洲AV| 日韩免费无码一区二区视频| 中文字幕无码精品亚洲资源网久久 | 免费无码AV片在线观看软件| 亚洲国产精品无码久久久蜜芽| 无码视频免费一区二三区| 无码精品国产VA在线观看| 中文无码vs无码人妻| 国产精品无码久久av| 人妻精品无码一区二区三区| 少妇人妻无码精品视频| 日本爆乳j罩杯无码视频| 国产成人精品无码一区二区老年人| 久久精品无码午夜福利理论片| 日韩精品无码专区免费播放| 日韩精品无码专区免费播放| 无码一区二区波多野结衣播放搜索 | 亚洲精品无码久久毛片| 亚洲真人无码永久在线观看| 日韩精品人妻系列无码专区 | 亚洲AV日韩AV永久无码色欲| 国产成人无码AV麻豆| 无码国产69精品久久久久网站| 精品无人区无码乱码大片国产| 无码熟熟妇丰满人妻啪啪软件| 亚洲精品无码专区在线播放| 中文字幕无码精品亚洲资源网久久| 亚洲国产成AV人天堂无码| 久久午夜夜伦鲁鲁片免费无码影视| 无码国产乱人伦偷精品视频| 水蜜桃av无码一区二区| 久久无码专区国产精品|