python不匹配函數(shù) 不精確匹配函數(shù)

網頁編碼和Python編碼不匹配怎么辦

網頁編碼格式有很多,比如UTF-8,GBK2312等,在網址頁面F12鍵,ctrl+f搜索charset可看到該網頁使用的編碼格式,如CSDN為charset=”utf-8”。我們使用python獲取網頁內容時,經常會由于網頁編碼問題導致程序崩潰報錯或獲取到一堆二進制內容,軟件的兼容性很差。有一個辦法,可以通過第三方庫chardet獲取編碼格式,再使用該編碼格式解碼數(shù)據(jù)可實現(xiàn)兼容。

創(chuàng)新互聯(lián)溝通電話:028-86922220,為您提供成都網站建設網頁設計及定制高端網站建設服務,創(chuàng)新互聯(lián)網頁制作領域10年,包括紗窗等多個方面擁有多年的網站設計經驗,選擇創(chuàng)新互聯(lián),為企業(yè)保駕護航。

1、安裝chardet庫

chardet是第三方庫,需要先安裝再使用。簡單的辦法是啟動DOS界面,進入python安裝路徑下Scripts路徑中(其中有pip腳本),運行”pip install chardet”,即可完成安裝(可能需要先更新pip,根據(jù)提示運行命令即可);

2、導入charset、建立函數(shù)

python工程中導入charset庫(”import chardet”);建立函數(shù)如下:

def get_url_context(url):

content = urllib.request.urlopen(url) #獲取網頁內容

encode = chardet.detect(content) #獲取網頁編碼格式字典信息,字典encode中鍵encoding的值為編碼格式

return content.decode(encode['encoding'], 'ignore') #根據(jù)獲取到的編碼格式進行解碼,并忽略不能識別的編碼信息

以上函數(shù)的返回值即為網頁解碼后的內容,無論網頁是哪種格式編碼,都能輕松識別轉換;需要注意的是解碼時要加參數(shù)’ignore’,否則網頁中可能會有混合編碼導致程序出錯。

python中isread函數(shù)么

文件對象(open() 函數(shù)的返回值)提供了read()函數(shù)可以按字節(jié)或字符讀取文件內容,到底是讀取字節(jié)還是字符,取決于使用 open() 函數(shù)打開文件時,是否使用了 b 模式,如果使用了 b 模式,則每次讀取一個字節(jié);反之,則每次讀取一個字符。

read() 函數(shù)的基本語法格式如下:

file.read([size])

其中,file 表示打開的文件對象;size 作為一個可選參數(shù),用于指定要讀取的字符個數(shù),如果省略,則默認一次性讀取所有內容。

【例 1】采用循環(huán)讀取整個文件的內容。

# a.txt 文件內容為:C語言中文網

f = open("a.txt", 'r', True)

while True:

# 每次讀取一個字符

ch = f.read(1)

# 如果沒有讀到數(shù)據(jù),跳出循環(huán)

if not ch:

break

# 輸出ch

print(ch, end='')

f.close()

運行結果為:

C語言中文網

上面程序采用循環(huán)依次讀取每一個字符(因為程序沒有使用 b 模式),每讀取到一個字符,程序就輸出該字符。

正如從上面程序所看到的,當程序讀寫完文件之后,推薦立即調用 close() 方法來關閉文件,這樣可以避免資源泄露(后續(xù)章節(jié)會詳細介紹 close() 函數(shù))。

注意,在調用 read() 函數(shù)讀取文件內容時,成功讀取的前提是在 open() 函數(shù)中使用 r 或 r+ 的模式打開文件,否則(比如將上面程序中 open()的打開模式改為 w),程序會拋出io.UnsupportedOperation異常:

Traceback (most recent call last):

File "C:\Users\mengma\Desktop\demo.py", line 4, in

ch = f.read(1)

io.UnsupportedOperation: not readable

【例 2】調用 read() 方法時不傳入?yún)?shù),該方法默認會讀取全部文件內容。例如:

f = open("a.txt", 'r', True)

# 直接讀取全部文件

print(f.read())

f.close()

運行結果為:

C語言中文網

read()函數(shù)拋出UnicodeDecodeError異常的解決方法

當使用 open() 函數(shù)打開文本文件時,默認會使用當前操作系統(tǒng)的字符集,比如 Windows 平臺,open() 函數(shù)默認使用 GBK 字符集。因此,上面程序讀取的 a.txt 也必須使用 GBK 字符集保存;否則,程序就會出現(xiàn)UnicodeDecodeError錯誤。

如果要讀取的文件所使用的字符集和當前操作系統(tǒng)的字符集不匹配,則有兩種解決方式:

使用二進制模式讀取,然后用 bytes 的 decode() 方法恢復成字符串。

利用 codecs 模塊的 open() 函數(shù)來打開文件,該函數(shù)在打開文件時允許指定字符集。

例如,下面程序使用二進制模式來讀取文本文件:

# 指定使用二進制方式讀取文件內容,a.txt 以 utf-8 編碼存儲

f = open("a.txt", 'rb', True)

# 直接讀取全部文件,并調用bytes的decode將字節(jié)內容恢復成字符串

print(f.read().decode('utf-8'))

f.close()

上面程序在調用 open() 函數(shù)時,傳入了 rb 模式,這表明采用二進制模式讀取文件,此時文件對象的 read() 方法返回的是 bytes 對象,程序可調用 bytes 對象的 decode() 方法將它恢復成字符串。由于此時讀取的 a.txt 文件是以 UTF-8 的格式保存的,因此程序需要使用 decode() 方法恢復字符串時顯式指定使用 UTF-8 字符集。

下面程序使用 codes 模塊的 open() 函數(shù)來打開文件,此時可以顯式指定字符集:

import codecs

# 指定使用utf-8 字符集讀取文件內容

f = codecs.open("a.txt", 'r', 'utf-8', buffering=True)

while True:

# 每次讀取一個字符

ch = f.read(1)

# 如果沒有讀取到數(shù)據(jù),則跳出循環(huán)

if not ch : break

# 輸出ch

print (ch, end='')

f.close()

上面程序在調用 open() 函數(shù)時顯式指定使用 UTF-8 字符集,這樣程序在讀取文件內容時就完全沒有問題了。

python中pos函數(shù)用法

Pos()功能在一個字符串中查找所包含的另一個字符串的起始位置。語法Pos ( string1, string2 {, start } )

參數(shù)string1:string類型,指定要從中查找子串string2的字符串string2:string類型,指定要在string1中查找的字符串start:long類型,可選項,指定從string1的第幾個字符開始查找。缺省值為1返回值Long。函數(shù)執(zhí)行成功時返回在start位置后string2在string1中第一次出現(xiàn)的起始位置。如果在string1中按指定要求未找到string2、或start的值超過了string1的長度,那么Pos()函數(shù)返回0。如果任何參數(shù)的值為NULL,Pos()函數(shù)返回NULL。用法Pos()函數(shù)在字符串查找時區(qū)分大小寫,因此,"aa"不匹配"AA"。

拓展資料:

公式的運用

一、數(shù)字處理

1、取絕對值函數(shù)

公式:=ABS(數(shù)字)

2、取整函數(shù)

公式:=INT(數(shù)字)

3、四舍五入函數(shù)

公式:=ROUND(數(shù)字,小數(shù)位數(shù))

二、判斷公式

1、如果計算的結果值錯誤那么顯示為空

公式:=IFERROR(數(shù)字/數(shù)字,)

說明:如果計算的結果錯誤則顯示為空,否則正常顯示。

2、IF語句的多條件判定及返回值

公式:IF(AND(單元格(邏輯運算符)數(shù)值,指定單元格=返回值1),返回值2,)

說明:所有條件同時成立時用AND,任一個成立用OR函數(shù)。

三、常用的統(tǒng)計公式

1、統(tǒng)計在兩個表格中相同的內容

公式:B2=COUNTIF(數(shù)據(jù)源:位置,指定的,目標位置)

說明:如果返回值大于0說明在另一個表中存在,0則不存在。

如果,在此示例中所用到的公式為:B2=COUNTIF(Sheet15!A:A,A2)

2、統(tǒng)計不重復的總數(shù)據(jù)

公式:C2=SUMPRODUCT(1/COUNTIF(A2:A8,A2:A8))

說明:用COUNTIF函數(shù)統(tǒng)計出源數(shù)據(jù)中每人的出現(xiàn)次數(shù),并用1除的方式把變成分數(shù),最后再相加。

四、數(shù)據(jù)求和公式

1、隔列求和的應用

公式:H3=SUMIF($A$2:$G$2,H$2,A3:G3)或=SUMPRODUCT((MOD(COLUMN(B3:G3),2)=0)*B3:G3)

說明:如果在標題行中沒有規(guī)則就可以用第2個公式

2、單條件應用之求和

公式:F2=SUMIF(A:A,C:C)

說明:這是SUMIF函數(shù)的最基礎的用法

五、查找與引用公式

1、單條件查找

說明:VLOOKUP是excel中最常用的查找方式

六、字符串處理公式

1、多單元格字符串的合并

說明:Phonetic函數(shù)只能合并字符型數(shù)據(jù),不能合并數(shù)值。

2、截取結果3位之外的部分

說明:LEN計算總長度,LEFT從左邊截總長度-3個。

python函數(shù)括號內有沒有變量

rex

=

r'[^abcde]*'re.match(rex,

'this

is

a

string')返回值是none則不匹配,反之匹配

當然先compile一下也很好。

python的函數(shù)不一樣

對的 python3.1和python2.x有一些區(qū)別的

最主要的,就是你發(fā)現(xiàn)的

print()函數(shù)

input()函數(shù),相當于python2.x里的raw_input()

此外還有 range()函數(shù)相當于python2.x里的xrange()

其實并沒有太多區(qū)別的

不過如果你剛接觸還是建議直接看python3的教程

Python參數(shù)類型

上一期我們學習參數(shù)傳遞怎么傳遞,也了解了參數(shù)的幾種類型。

首先,我們再來回顧一下,形參和實參:

形參是在定義函數(shù)時定義的,放在函數(shù)名后面的圓括號里,可為空

實參是調用函數(shù)時為形參傳入具體的參數(shù)值

簡單總結一下,誰調用函數(shù),誰就負責傳入?yún)?shù)。

好吶,本期我們來詳細學習函數(shù)幾種參數(shù)類型,大綱如下:

python函數(shù)的參數(shù)名是無意義的,Python允許在調用函數(shù)時通過通過名字來傳入?yún)?shù)值。

位置參數(shù):按照形參位置傳入的參數(shù)

調用函數(shù)時,實參默認按位置順序傳遞的。同時實參個數(shù)也要和形參匹配

舉一個小栗子

如果實參的個數(shù)與形參不匹配時,調用函數(shù)運行就會報錯

Python中,形參與調用函數(shù)緊密聯(lián)系在一起的。

關鍵字參數(shù):調用函數(shù)時,使形參名稱來傳遞參數(shù),形式為“形參名=實參”

關鍵字參數(shù),又叫命名參數(shù),傳遞時無需考慮參數(shù)位置和順序

舉一個小栗子

默認參數(shù):定義函數(shù)時,我們可以為形參提前設置具體的值。

在定義函數(shù)時,默認參數(shù)要放到位置等其他參數(shù)后面

在調用函數(shù)時,默認參數(shù)是可選的。如果傳入新值,則會覆蓋默認值

舉一個小栗子

注意,默認值不能位于位置參數(shù)前面,否則程序會報錯誤

不定長參數(shù)又名可變參數(shù)。

不定長參數(shù)指的是可變數(shù)量的參數(shù),分兩種情況:

如果不定長參數(shù)后面,可以新增參數(shù)嗎?

我們通過例子來看,會發(fā)生什么?

運行上面的程序,Python解釋器會報錯

原因是,形參a已經是不定長參數(shù),我們調用的test(2,3,4)傳入的三個實參,系統(tǒng)自動把它們屬于形參a的值,形參b 和形參c就等于沒有值傳入,這時候系統(tǒng)就認為,調用函數(shù)的對象,參數(shù)沒有傳夠。

為了解決這一報錯,python引入了 強制命名參數(shù)

規(guī)定,調用不定參數(shù)后面有跟位置參數(shù)的函數(shù)時,傳入給位置參數(shù)時,必須要強制命名參進行傳參。

逆向參數(shù)收集針對的對象傳入函數(shù)的實參

調用函數(shù)時,如果實參是元組,列表或者字典,通過在實參前面加入星號,可以自動把元素進行隔開,然后再轉入給函數(shù)進行處理

舉一個小栗子

本期,我們詳細學習了參數(shù)幾種類型,為后面我們學習函數(shù),打好基礎。

實踐是檢驗真理的過程,大家多動手練習練習,會有不一樣的奇妙旅程~

好吶,以上是本期內容,歡迎大佬們評論區(qū)指正~

網站題目:python不匹配函數(shù) 不精確匹配函數(shù)
文章轉載:http://muchs.cn/article24/hhepce.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供自適應網站網站收錄、網站策劃、網站營銷標簽優(yōu)化

廣告

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

網站托管運營