python繪制常函數(shù) python繪制數(shù)學(xué)函數(shù)

python基礎(chǔ)-math模塊常用的函數(shù)

import math

為思南等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及思南網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計、成都做網(wǎng)站、思南網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

r=math.floor(3.2) #向下取整

print(r)

r=math.ceil(4.5) #向上取整

print(r)

r=abs(-2)

r=round(4.5) #四舍五入

r=math.pow(3,2) #冪運算

r=math.sqrt(25) #開平方

其中 函數(shù)fabs和abs的區(qū)別:函數(shù)fabs的作用是求浮點數(shù)x的絕對值;函數(shù)abs的作用是求x的絕對值。fabs函數(shù)原型:double fabs(double x);abs函數(shù)原型:int fabs(int x)。fabs函數(shù)參數(shù):參數(shù)x是一個浮點數(shù);abs函數(shù)參數(shù):參數(shù)x是一個整數(shù)

一文秒懂python正則表達(dá)式常用函數(shù)

01 Re概覽

Re模塊是python的內(nèi)置模塊,提供了正則表達(dá)式在python中的所有用法,默認(rèn)安裝位置在python根目錄下的Lib文件夾(如 ..\Python\Python37\Lib)。主要提供了3大類字符串操作方法:

字符查找/匹配

字符替換

字符分割

由于是面向字符串類型的模塊,就不得不提到字符串編碼類型。re模塊中,模式串和搜索串既可以是 Unicode 字符串 (常用str類型) ,也可以是8位字節(jié)串 (bytes,2位16進(jìn)制數(shù)字,例如\xe5) , 但要求二者必須是同類型字符串。

02 字符串查找/匹配

預(yù)編譯:compile

在介紹查找和匹配函數(shù)前,首先需要知道re的compile函數(shù),該函數(shù)可以將一個模式串編譯成正則表達(dá)式類型,以便后續(xù)快速匹配和復(fù)用

import?re pattern?=?re.compile(r'[a-z]{2,5}') type(pattern)?#re.Pattern

此例創(chuàng)建了一個正則表達(dá)式式對象 (re.pattern) ,命名為pattern,用于匹配2-5位小寫字母的模式串。后續(xù)在使用其他正則表達(dá)式函數(shù)時,即可使用pattern進(jìn)行方法調(diào)用。

匹配:match

match函數(shù)用于從文本串的起始位置開始匹配,若匹配成功,則返回相應(yīng)的匹配對象,此時可調(diào)用group()方法返回匹配結(jié)果,也可用span()方法返回匹配起止下標(biāo)區(qū)間;否則返回None

import?re pattern?=?re.compile(r'[a-z]{2,5}') text1?=?'this?is?a?re?test' res?=?pattern.match(text1) print(res)?# if?res: ?print(res.group())?#this ?print(res.span())?#(0,?4) text2?=?'是的,?this?is?a?re?test' print(pattern.match(text2))#None

match函數(shù)還有一個變形函數(shù)fullmatch,當(dāng)且僅當(dāng)模式串與文本串剛好全部匹配時,返回一個匹配對象,否則返回None

搜索:search

match只提供了從文本串起始位置匹配的結(jié)果,如果想從任意位置匹配,則可調(diào)用search方法,與match方法類似,當(dāng)任意位置匹配成功,則立即返回一個匹配對象,也可調(diào)用span()方法獲取起止區(qū)間、調(diào)用group方法獲得匹配文本串

import?re pattern?=?re.compile(r'\s[a-z]{2}') text1?=?'this?is?a?re?test' res?=?pattern.search(text1) print(res)?# if?res: ?print(res.group())?#is ?print(res.span())?#(4,?7) pattern2?=?re.compile(r'\s[a-z]{5}') text2?=?'是的,this?is?a?re?test' print(pattern2.search(text2))#None

match和search均用于匹配單個結(jié)果,唯一區(qū)別在于前者是從起始位置開始匹配,而后者從任意位置匹配,匹配成功則返回一個match對象。

全搜索:findall/finditer

幾乎是最常用的正則表達(dá)式函數(shù),用于尋找所有匹配的結(jié)果,例如在爬蟲信息提取中,可非常方便地提取所有匹配字段

import?re pattern?=?re.compile(r'\s[a-z]{2,5}') text1?=?'this?is?a?re?test' res?=?pattern.findall(text1) print(res)?#['?is',?'?re',?'?test']

findall返回的是一個列表對象類型,當(dāng)無匹配對象時,返回一個空列表。為了避免因同時返回大量匹配結(jié)果占用過多內(nèi)存,可以調(diào)用finditer函數(shù)返回一個迭代器類型,其中每個迭代元素是一個match對象,可繼續(xù)調(diào)用group和span方法獲取相應(yīng)結(jié)果

import?re pattern?=?re.compile(r'\s[a-z]{2,5}') text1?=?'this?is?a?re?test' res?=?pattern.finditer(text1) for?r?in?res: ?print(r.group()) """ ?is ?re ?test """

當(dāng)匹配模式串較為簡單或者僅需單詞調(diào)用時,上述所有方法也可直接調(diào)用re類函數(shù),而無需事先編譯。此時各方法的第一個參數(shù)為模式串。

import?re pattern?=?re.compile(r'\d{2,5}') text?=?'this?is?re?test' re.findall('[a-z]+',?text)?#['this',?'is',?'re',?'test'] 03 字符串替換/分割

替換:sub/subn

當(dāng)需要對文本串進(jìn)行條件替換時,可調(diào)用re.sub實現(xiàn) (當(dāng)然也可先編譯后再用調(diào)用實例方法) ,相應(yīng)參數(shù)分別為模式串、替換格式、文本串,還可以通過增加缺省參數(shù)限定替換次數(shù)和匹配模式。通過在模式串進(jìn)行分組,可實現(xiàn)字符串的格式化替換(類似字符串的format方法),以實現(xiàn)特定任務(wù)。

import?re text?=?'today?is?2020-03-05' print(re.sub('-',?'',?text))?#'today?is?20200305' print(re.sub('-',?'',?text,?1))?#'today?is?202003-05' print(re.sub('(\d{4})-(\d{2})-(\d{2})',?r'\2/\3/\1',?text))?#'today?is?03/05/2020'

re.sub的一個變形方法是re.subn,區(qū)別是返回一個2元素的元組,其中第一個元素為替換結(jié)果,第二個為替換次數(shù)

import?re text?=?'today?is?2020-03-05' print(re.subn('-',?'',?text))?#('today?is?20200305',?2)

分割:split

還可以調(diào)用正則表達(dá)式實現(xiàn)字符串的特定分割,相當(dāng)于.split()方法的一個加強版,實現(xiàn)特定模式的分割,返回一個切割后的結(jié)果列表

import?re text?=?'today?is?a?re?test,?what?do?you?mind?' print(re.split(',',?text))?#['today?is?a?re?test',?'?what?do?you?mind?'] 04 總結(jié)

python中的re模塊提供了正則表達(dá)式的常用方法,每種方法都包括類方法調(diào)用(如re.match)或模式串的實例調(diào)用(pattern.match)2種形式

常用的匹配函數(shù):match/fullmatch

常用的搜索函數(shù):search/findall/finditer

常用的替換函數(shù):sub/subn

常用的切割函數(shù):split

還有其他很多方法,但不是很常用,具體可參考官方文檔

另外,python還有第三方正則表達(dá)式庫regex可供選擇

到此這篇關(guān)于一文秒懂python正則表達(dá)式常用函數(shù)的文章就介紹到這了,希望大家以后多多支持!

Python基礎(chǔ)之常見內(nèi)建函數(shù)

map() 函數(shù)接受兩個參數(shù),一個是函數(shù),一個是可迭代對象(Iterable), map 將傳入的函數(shù)依次作用到可迭代對象的每一個元素,并把結(jié)果作為迭代器(Iterator)返回。

舉例說明,有一個函數(shù) f(x)=x^2 ,要把這個函數(shù)作用到一個list [1,2,3,4,5,6,7,8,9] 上:

運用簡單的循環(huán)可以實現(xiàn):

運用高階函數(shù) map() :

結(jié)果 r 是一個迭代器,迭代器是惰性序列,通過 list() 函數(shù)讓它把整個序列都計算出來并返回一個 list 。

如果要把這個list所有數(shù)字轉(zhuǎn)為字符串利用 map() 就簡單了:

小練習(xí):利用 map() 函數(shù),把用戶輸入的不規(guī)范的英文名字變?yōu)槭鬃帜复髮懫渌懙囊?guī)范名字。輸入 ['adam', 'LISA', 'barT'] ,輸出 ['Adam', 'Lisa', 'Bart']

reduce() 函數(shù)也是接受兩個參數(shù),一個是函數(shù),一個是可迭代對象, reduce 將傳入的函數(shù)作用到可迭代對象的每個元素的結(jié)果做累計計算。然后將最終結(jié)果返回。

效果就是: reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

舉例說明,將序列 [1,2,3,4,5] 變換成整數(shù) 12345 :

小練習(xí):編寫一個 prod() 函數(shù),可以接受一個 list 并利用 reduce 求積:

map() 和 reduce() 綜合練習(xí):編寫 str2float 函數(shù),把字符串 '123.456' 轉(zhuǎn)換成浮點型 123.456

filter() 函數(shù)用于過濾序列, filter() 也接受一個函數(shù)和一個序列, filter() 把傳入的函數(shù)依次作用于每個元素,然后根據(jù)返回值是 True 還是 False 決定保留還是丟棄該元素。

舉例說明,刪除list中的偶數(shù):

小練習(xí):用 filter() 求素數(shù)

定義一個篩選函數(shù):

定義一個生成器不斷返回下一個素數(shù):

打印100以內(nèi)素數(shù):

python內(nèi)置的 sorted() 函數(shù)可以對list進(jìn)行排序:

sorted() 函數(shù)也是一個高階函數(shù),還可以接受一個 key 函數(shù)來實現(xiàn)自定義排序:

key 指定的函數(shù)將作用于list的每一個元素上,并根據(jù) key 函數(shù)返回的結(jié)果進(jìn)行排序.

默認(rèn)情況下,對字符串排序,是按照ASCII的大小比較的,由于'Z' 'a',結(jié)果,大寫字母Z會排在小寫字母a的前面。如果想忽略大小寫可都轉(zhuǎn)換成小寫來比較:

要進(jìn)行反向排序,不必改動key函數(shù),可以傳入第三個參數(shù) reverse=True :

小練習(xí):假設(shè)我們用一組tuple表示學(xué)生名字和成績: L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)] 。用sorted()對上述列表分別按c成績從高到低排序:

運用匿名函數(shù)更簡潔:

Python中的常用內(nèi)置函數(shù)有哪些呢?

abs() divmod() input() open() staticmethod()

all() enumerate() int() ord() str()

any() eval() isinstance() pow() sum()

basestring() execfile() issubclass() print() super()

bin() file() iter() property() tuple()

bool() filter() len() range() type()

bytearray() float() list() raw_input() unichr()

callable() format() locals() reduce() unicode()

chr() frozenset() long() reload() vars()

classmethod() getattr() map() repr() xrange()

cmp() globals() max() reverse() zip()

compile() hasattr() memoryview() round() __import__()

complex() hash() min() set()

delattr() help() next() setattr()

dict() hex() object() slice()

dir() id() oct() sorted()

如何用python表示三角函數(shù)

Python編碼下面的三角函數(shù)包括以下種類:acos(x)//返回x的反余弦弧度值。asin(x)//返回x的反正弦弧度值。atan(x)//返回x的反正切弧度值。atan2(y,x)//返回給定的X及Y坐標(biāo)值的反正切值。cos(x)//返回x的弧度的余弦值。hypot(x,y

描述

sin()返回的x弧度的正弦值。

語法

以下是sin()方法的語法:

importmath

math.sin(x)

注意:sin()是不能直接訪問的,需要導(dǎo)入math模塊,然后通過math靜態(tài)對象調(diào)用該方法。

參數(shù)

x--一個數(shù)值。

返回值

返回的x弧度的正弦值,數(shù)值在-1到1之間。

實例

以下展示了使用sin()方法的實例:

#!/usr/bin/python

import math

print "sin(3) : ", math.sin(3)

print "sin(-3) : ", math.sin(-3)

print "sin(0) : ", math.sin(0)

print "sin(math.pi) : ", math.sin(math.pi)

print "sin(math.pi/2) : ", math.sin(math.pi/2)

以上實例運行后輸出結(jié)果為:

sin(3) : 0.14112000806

sin(-3) : -0.14112000806

sin(0) : 0.0

sin(math.pi) : 1.22460635382e-16

sin(math.pi/2) : 1

總結(jié)

以上就是本文關(guān)于Python入門之三角函數(shù)sin()函數(shù)實例詳解的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:python正則表達(dá)式re之compile函數(shù)解析、Python中enumerate函數(shù)代碼解析、簡單了解Python中的幾種函數(shù)等,有什么問題可以隨時留言,小編會及時回復(fù)大家的。感謝朋友們對本站的支持!

分享名稱:python繪制常函數(shù) python繪制數(shù)學(xué)函數(shù)
標(biāo)題鏈接:http://muchs.cn/article12/hjdgdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、商城網(wǎng)站、用戶體驗虛擬主機、電子商務(wù)企業(yè)網(wǎng)站制作

廣告

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

營銷型網(wǎng)站建設(shè)