round函數(shù)python:
10年專注成都網(wǎng)站制作,企業(yè)網(wǎng)站設(shè)計,個人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識、方案,網(wǎng)站設(shè)計流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站設(shè)計,高端網(wǎng)頁制作,對發(fā)電機維修等多個領(lǐng)域,擁有豐富的網(wǎng)站營銷經(jīng)驗。
這個函數(shù)相當(dāng)于調(diào)去里面的一個函數(shù),有一個數(shù)組,從中里面調(diào)取一個數(shù)據(jù)。簡單的說,round是使用四舍五入對小數(shù)進(jìn)行位數(shù)控制的函數(shù),round(a,b),a參數(shù)是小數(shù),b是小數(shù)點后保留的位數(shù)。實際使用需要考慮的python2和python3版本的差異與小數(shù)精度的問題。
ound函數(shù)的使用用法
根據(jù)Excel的幫助得知,round函數(shù)就是返回一個數(shù)值,該數(shù)值是按照指定的小數(shù)位數(shù)進(jìn)行四舍五入運算的結(jié)果。
round函數(shù)的語法是:ROUND(number,num_digits),即:Round(數(shù)值,保留的小數(shù)位數(shù))
Number:需要進(jìn)行四舍五入的數(shù)字。
Num_digits:指定的位數(shù),按此位數(shù)進(jìn)行四舍五入。
其中,如果num_digits大于0,則四舍五入到指定的小數(shù)位。
如果num_digits等于0,則四舍五入到最接近的整數(shù)。
如果num_digits小于0,則在小數(shù)點左側(cè)進(jìn)行四舍五入。
8個超好用內(nèi)置函數(shù)set(),eval(),sorted(),reversed(),map(),reduce(),filter(),enumerate()
python中有許多內(nèi)置函數(shù),不像print那么廣為人知,但它們卻異常的強大,用好了可以大大提高代碼效率。
這次來梳理下8個好用的python內(nèi)置函數(shù)
1、set()
當(dāng)需要對一個列表進(jìn)行去重操作的時候,set()函數(shù)就派上用場了。
用于創(chuàng)建一個集合,集合里的元素是無序且不重復(fù)的。集合對象創(chuàng)建后,還能使用并集、交集、差集功能。
2、eval()之前有人問如何用python寫一個四則運算器,輸入字符串公式,直接產(chǎn)生結(jié)果。用eval()來做就很簡單:eval(str_expression)作用是將字符串轉(zhuǎn)換成表達(dá)式,并且執(zhí)行。
3、sorted()在處理數(shù)據(jù)過程中,我們經(jīng)常會用到排序操作,比如將列表、字典、元組里面的元素正/倒排序。這時候就需要用到sorted() ,它可以對任何可迭代對象進(jìn)行排序,并返回列表。對列表升序操作:
對元組倒序操作:
使用參數(shù):key,根據(jù)自定義規(guī)則,按字符串長度來排序:
根據(jù)自定義規(guī)則,對元組構(gòu)成的列表進(jìn)行排序:
4、reversed()如果需要對序列的元素進(jìn)行反轉(zhuǎn)操作,reversed()函數(shù)能幫到你。reversed()接受一個序列,將序列里的元素反轉(zhuǎn),并最終返回迭代器。
5、map()做文本處理的時候,假如要對序列里的每個單詞進(jìn)行大寫轉(zhuǎn)化操作。這個時候就可以使用map()函數(shù)。
map()會根據(jù)提供的函數(shù),對指定的序列做映射,最終返回迭代器。也就是說map()函數(shù)會把序列里的每一個元素用指定的方法加工一遍,最終返回給你加工好的序列。舉個例子,對列表里的每個數(shù)字作平方處理:
6、reduce()前面說到對列表里的每個數(shù)字作平方處理,用map()函數(shù)。那我想將列表里的每個元素相乘,該怎么做呢?這時候用到reduce()函數(shù)。
reduce()會對參數(shù)序列中元素進(jìn)行累積。第一、第二個元素先進(jìn)行函數(shù)操作,生成的結(jié)果再和第三個元素進(jìn)行函數(shù)操作,以此類推,最終生成所有元素累積運算的結(jié)果。再舉個例子,將字母連接成字符串。
你可能已經(jīng)注意到,reduce()函數(shù)在python3里已經(jīng)不再是內(nèi)置函數(shù),而是遷移到了functools模塊中。這里把reduce()函數(shù)拎出來講,是因為它太重要了。
7、filter()一些數(shù)字組成的列表,要把其中偶數(shù)去掉,該怎么做呢?
filter()函數(shù)輕松完成了任務(wù),它用于過濾序列,過濾掉不符合條件的元素,返回一個迭代器對象。filter()函數(shù)和map()、reduce()函數(shù)類似,都是將序列里的每個元素映射到函數(shù),最終返回結(jié)果。我們再試試,如何從許多單詞里挑出包含字母w的單詞。
8、enumerate()這樣一個場景,同時打印出序列里每一個元素和它對應(yīng)的順序號,我們用enumerate()函數(shù)做做看。
enumerate翻譯過來是枚舉、列舉的意思,所以說enumerate()函數(shù)用于對序列里的元素進(jìn)行順序標(biāo)注,返回(元素、索引)組成的迭代器。再舉個例子說明,對字符串進(jìn)行標(biāo)注,返回每個字母和其索引。
舉例2:
運行結(jié)果:
運行結(jié)果:
定義:
調(diào)用:
我們經(jīng)常在看別人的代碼中,經(jīng)常出現(xiàn)def(*args, **kwargs)這樣的表現(xiàn)形式:
外部變量被改(x由100改為101):
內(nèi)部變量外部也可用:
統(tǒng)計程序中的變量,返回的是個字典
結(jié)果:
lambda版本寫法:
結(jié)果:
舉例:
我們這次的任務(wù)是利用Python來模擬拋硬幣的情況,并且記錄正面朝上占所有試驗中的比率,大家是不是想起了課堂中提到過的蒲豐,皮爾遜等人做的試驗?當(dāng)然,我們現(xiàn)在已經(jīng)不再需要再去扔幾千次,幾萬次硬幣了;Python為我們提供了一個相當(dāng)便捷的解決方案。Python 的randint(0,1)函數(shù)可以等概率,隨機地返回0與1兩個數(shù),我們可以將返回的數(shù)值0記為硬幣的反面,1記為硬幣的正面,所以問題就轉(zhuǎn)換成了:統(tǒng)計大量重復(fù)試驗中,結(jié)果為1占總試驗次數(shù)的比例。
簡單地畫一個流程圖,希望有助于大家理解。
*流程圖是網(wǎng)上使用ProcessOn畫的,一個免費的在線流程圖繪制平臺,簡單容易上手,強烈安利給大家~
廢話不多說,上圖:
可以看見,隨著硬幣投擲次數(shù)的增加,正面朝上的幾率逐漸穩(wěn)定在0.5,這就是我們在課堂上講過的內(nèi)容:在重復(fù)試驗中,我們可以使用頻率的穩(wěn)定值作為事件發(fā)生的概率。
怎么樣,是不是學(xué)到了一招?
在這個程序的基礎(chǔ)上,我相信大家有能力進(jìn)行進(jìn)一步地延伸與發(fā)散。
大家可以嘗試著去完成這樣三個問題:
1,比較一下當(dāng)投擲次數(shù)為100次,1000次與10000次的圖像差別(提示:為了使區(qū)別更加顯著,大家可以嘗試將X軸使用對數(shù)坐標(biāo)表示)
好的,就先寫到這里,感覺有意思的話點個贊再走唄~
拋出異常是停止運行這個函數(shù)中的代碼。
哈希算法將一個不定長的輸入,通過散列函數(shù)變換成一個定長的輸出,即散列值。是一種信息摘要算法。對象的hash值比原對象擁有更低的內(nèi)存復(fù)雜度。
它不同于加密。哈希是將目標(biāo)文本轉(zhuǎn)換成具有相同長度的,不可逆的雜湊字符串,而加密則是將文本轉(zhuǎn)換為具有相同長度的,可逆的密文。哈希算法是不可逆的,只能由輸入產(chǎn)生輸出,不能由輸出產(chǎn)生輸入。而加密則是可逆的。即可以從輸入產(chǎn)生輸出,也可以反過來從輸出推出輸入。