<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • python讀函數(shù) python看函數(shù)用法

            python中isread函數(shù)么

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

            成都創(chuàng)新互聯(lián)專(zhuān)注于秦都企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),成都商城網(wǎng)站開(kāi)發(fā)。秦都網(wǎng)站建設(shè)公司,為秦都等地區(qū)提供建站服務(wù)。全流程定制設(shè)計(jì),專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)

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

            file.read([size])

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

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

            # a.txt 文件內(nèi)容為:C語(yǔ)言中文網(wǎng)

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

            while True:

            # 每次讀取一個(gè)字符

            ch = f.read(1)

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

            if not ch:

            break

            # 輸出ch

            print(ch, end='')

            f.close()

            運(yùn)行結(jié)果為:

            C語(yǔ)言中文網(wǎng)

            上面程序采用循環(huán)依次讀取每一個(gè)字符(因?yàn)槌绦驔](méi)有使用 b 模式),每讀取到一個(gè)字符,程序就輸出該字符。

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

            注意,在調(diào)用 read() 函數(shù)讀取文件內(nèi)容時(shí),成功讀取的前提是在 open() 函數(shù)中使用 r 或 r+ 的模式打開(kāi)文件,否則(比如將上面程序中 open()的打開(kāi)模式改為 w),程序會(huì)拋出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】調(diào)用 read() 方法時(shí)不傳入?yún)?shù),該方法默認(rèn)會(huì)讀取全部文件內(nèi)容。例如:

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

            # 直接讀取全部文件

            print(f.read())

            f.close()

            運(yùn)行結(jié)果為:

            C語(yǔ)言中文網(wǎng)

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

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

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

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

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

            例如,下面程序使用二進(jìn)制模式來(lái)讀取文本文件:

            # 指定使用二進(jìn)制方式讀取文件內(nèi)容,a.txt 以 utf-8 編碼存儲(chǔ)

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

            # 直接讀取全部文件,并調(diào)用bytes的decode將字節(jié)內(nèi)容恢復(fù)成字符串

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

            f.close()

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

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

            import codecs

            # 指定使用utf-8 字符集讀取文件內(nèi)容

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

            while True:

            # 每次讀取一個(gè)字符

            ch = f.read(1)

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

            if not ch : break

            # 輸出ch

            print (ch, end='')

            f.close()

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

            python內(nèi)置函數(shù)

            python內(nèi)置函數(shù)是什么?一起來(lái)看下吧:

            python內(nèi)置函數(shù)有:

            abs:求數(shù)值的絕對(duì)值

            abs(-2) 2

            pmod:返回兩個(gè)數(shù)值的商和余數(shù)

            pmod(5,2) (2,1) pmod(5.5,2) (2.0,1.5)

            bool:根據(jù)傳入的參數(shù)的邏輯值創(chuàng)建一個(gè)布爾值

            bool()?#未傳入?yún)?shù) False bool(0)?#數(shù)值0、空序列等值為False False bool(1) True

            all:判斷可迭代對(duì)象的每個(gè)元素是否都為T(mén)rue值

            all([1,2])?#列表中每個(gè)元素邏輯值均為T(mén)rue,返回True True ?all(())?#空元組 True ?all({})?#空字典 True

            help:返回對(duì)象的幫助信息

            help(str)? Help?on?class?str?in?module?builtins: class?str(object) |??str(object='')?-?str |??str(bytes_or_buffer[,?encoding[,?errors]])?-?str |?? |??Create?a?new?string?object?from?the?given?object.?If?encoding?or |??errors?is?specified,?then?the?object?must?expose?a?data?buffer |??that?will?be?decoded?using?the?given?encoding?and?error?handler. |??Otherwise,?returns?the?result?of?object.__str__()?(if?defined) |??or?repr(object). |??encoding?defaults?to?sys.getdefaultencoding(). |??errors?defaults?to?'strict'. |?? |??Methods?defined?here: |?? |??__add__(self,?value,?/) ??????????Return?self+value.

            _import_:動(dòng)態(tài)導(dǎo)入模塊

            index?=?__import__('index') index.sayHello()

            locals:返回當(dāng)前作用域內(nèi)的局部變量和其值組成的字典

            def?f(): ????print('before?define?a?') ????print(locals())?#作用域內(nèi)無(wú)變量 ????a?=?1 ????print('after?define?a') ????print(locals())?#作用域內(nèi)有一個(gè)a變量,值為1 ?f?f() before?define?a? {}? after?define?a {'a':?1}

            input:讀取用戶輸入值

            s?=?input('please?input?your?name:') please?input?your?name:Ain ?s 'Ain'

            open:使用指定的模式和編碼打開(kāi)文件,返回文件讀寫(xiě)對(duì)象

            #?t為文本讀寫(xiě),b為二進(jìn)制讀寫(xiě) ?a?=?open('test.txt','rt') ?a.read() 'some?text' ?a.close()

            eval:執(zhí)行動(dòng)態(tài)表達(dá)式求值

            eval('1+2+3+4') 10

            除了上述舉例的函數(shù)之外,內(nèi)置函數(shù)按分類(lèi)還可分為:

            1、數(shù)學(xué)運(yùn)算(7個(gè))

            2、類(lèi)型轉(zhuǎn)換(24個(gè))

            3、序列操作(8個(gè))

            4、對(duì)象操作(7個(gè))

            5、反射操作(8個(gè))

            6、變量操作(2個(gè))

            7、交互操作(2個(gè))

            8、文件操作(1個(gè))

            9、編譯操作(4個(gè))

            10、裝飾器(3個(gè))

            python怎么讀封裝函數(shù)

            封裝其實(shí)分為兩個(gè)層面,但無(wú)論哪種層面的封裝,都要對(duì)外界提供好訪問(wèn)你內(nèi)部隱藏內(nèi)容的接口(接口可以理解為入口,有了這個(gè)入口,使用者無(wú)需且不能夠直接訪問(wèn)到內(nèi)部隱藏的細(xì)節(jié),只能走接口,并且我們可以在接口的實(shí)現(xiàn)上附加更多的處理邏輯,從而嚴(yán)格控制使用者的訪問(wèn))

            第一個(gè)層面的封裝(什么都不用做):創(chuàng)建類(lèi)和對(duì)象會(huì)分別創(chuàng)建二者的名稱(chēng)空間,我們只能用類(lèi)名.或者obj.的方式去訪問(wèn)里面的名字,這本身就是一種封裝。print(m1.brand) #實(shí)例化對(duì)象(m1.)

            print(motor_vehicle.tag) #類(lèi)名(motor_vehicle.)

            -------------輸出結(jié)果---------注意:對(duì)于這一層面的封裝(隱藏),類(lèi)名.和實(shí)例名.就是訪問(wèn)隱藏屬性的接口

            第二個(gè)層面的封裝:類(lèi)中把某些屬性和方法隱藏起來(lái)(或者說(shuō)定義成私有的),只在類(lèi)的內(nèi)部使用、外部無(wú)法訪問(wèn),或者留下少量接口(函數(shù))供外部訪問(wèn)。

            Python中私有化的方法也比較簡(jiǎn)單,即在準(zhǔn)備私有化的屬性(包括方法、數(shù)據(jù))名字前面加兩個(gè)下劃線即可。

            一文讀懂Python 高階函數(shù)

            將函數(shù)作為參數(shù)傳入,這樣的函數(shù)稱(chēng)為高階函數(shù)。 函數(shù)式編程就是指這種高度抽象的編程范式。

            變量可以指向函數(shù),函數(shù)的參數(shù)能接收變量,那么一個(gè)函數(shù)就可以接收另一個(gè)函數(shù)作為參數(shù),這種函數(shù)就稱(chēng)之為高階函數(shù)。如下所示:

            map(fun, lst),將傳入的函數(shù)變量func作用到lst變量的每個(gè)元素中,并將結(jié)果組成新的列表返回。

            定義一個(gè)匿名函數(shù)并調(diào)用,定義格式如--lambda arg1,arg2…:表達(dá)式

            reduce把一個(gè)函數(shù)作用在一個(gè)序列[x1, x2, x3, …]上,這個(gè)函數(shù)必須接收兩個(gè)參數(shù),reduce把結(jié)果繼續(xù)和序列的下一個(gè)元素做累積計(jì)算。

            filter() 函數(shù)用于過(guò)濾序列,過(guò)濾掉不符合條件的元素,返回由符合條件元素組成的新列表。

            閉包的定義?閉包本質(zhì)上就是一個(gè)函數(shù)

            如何創(chuàng)建閉包?

            如何使用閉包?典型的使用場(chǎng)景是裝飾器的使用。

            global與nonlocal的區(qū)別:

            簡(jiǎn)單的使用如下:

            偏函數(shù)主要輔助原函數(shù),作用其實(shí)和原函數(shù)差不多,不同的是,我們要多次調(diào)用原函數(shù)的時(shí)候,有些參數(shù),我們需要多次手動(dòng)的去提供值。

            而偏函數(shù)便可簡(jiǎn)化這些操作,減少函數(shù)調(diào)用,主要是將一個(gè)或多個(gè)參數(shù)預(yù)先賦值,以便函數(shù)能用更少的參數(shù)進(jìn)行調(diào)用。

            我們?cè)賮?lái)看一下偏函數(shù)的定義:

            類(lèi)func = functools.partial(func, *args, **keywords)

            我們可以看到,partial 一定接受三個(gè)參數(shù),從之前的例子,我們也能大概知道這三個(gè)參數(shù)的作用。簡(jiǎn)單介紹下:

            總結(jié)

            本文是對(duì)Python 高階函數(shù)相關(guān)知識(shí)的分享,主題內(nèi)容總結(jié)如下:

            python 文件的打開(kāi)與讀寫(xiě)

            /python通過(guò)解釋器內(nèi)置的open()函數(shù)打開(kāi)一個(gè)文件,并實(shí)現(xiàn)該文件與一個(gè)程序變量的關(guān)聯(lián),open()函數(shù)格式如下:

            /open()函數(shù)包含有兩個(gè)參數(shù):文件名和打開(kāi)模式.當(dāng)文件與執(zhí)行文件在同一文件夾中,直接輸入文件名,亦可輸入文件的完整路徑.打開(kāi)模式是指以何種方式打開(kāi)文件,python提供了7種打開(kāi)模式.

            /r/w/x/a模式與b/t/+模式可以組合使用,比如'rt'為文本只讀.'rb'為二級(jí)制只讀.

            /文件使用結(jié)束后,需要使用close()關(guān)閉文件使用權(quán)限,釋放內(nèi)存.

            /當(dāng)文件使用文本格式打開(kāi)時(shí),讀寫(xiě)按照字符串方式,采用計(jì)算機(jī)當(dāng)前編碼或指定編碼.

            /當(dāng)文件以二進(jìn)制方式打開(kāi)時(shí),讀寫(xiě)按照字節(jié)流方式.

            /python本身將文件讀取為一個(gè)行序列.

            Python文件讀寫(xiě)

            常見(jiàn)的讀寫(xiě)操作:

            Python內(nèi)置了讀寫(xiě)文件的函數(shù),用法和C是兼容的。本節(jié)介紹內(nèi)容大致有:文件的打開(kāi)/關(guān)閉、文件對(duì)象、文件的讀寫(xiě)等。僅示例介紹 TXT 類(lèi)型文檔的讀寫(xiě),也就是最基礎(chǔ)的文件讀寫(xiě),也需要注意編碼問(wèn)題;

            open()?? close()???? with open(...) as ...

            看以下示例就能了解 Python?的 open()?及?close()?函數(shù)。這邊調(diào)用 read()方法可以一次讀取文件的全部?jī)?nèi)容,Python把內(nèi)容讀到內(nèi)存,用一個(gè)str對(duì)象表示,具體使用參見(jiàn)下文。

            在 E 盤(pán) python_file 文件夾下新建一 a.txt,輸入隨意,如下:

            Python 操作 打開(kāi)及關(guān)閉方式 如下:

            注意 open() 之后 一定要 close()。但由于文件讀寫(xiě)時(shí)都可能產(chǎn)生IOError,為了保證無(wú)論是否出錯(cuò)都能正確地關(guān)閉文件,我們用 try ... finally 來(lái)實(shí)現(xiàn):

            python 簡(jiǎn)化了改寫(xiě)法,即用 with open(...) as ...? ; 建議之后文件讀寫(xiě)都用該寫(xiě)法:

            上面,你肯定注意到了參數(shù) "r";該參數(shù)決定了打開(kāi)文件的模式:只讀,寫(xiě)入,追加等。所有可取值見(jiàn)如下的完全列表。這個(gè)參數(shù)是非強(qiáng)制的,默認(rèn)文件訪問(wèn)模式為只讀(r)。

            相關(guān)參數(shù):

            File 對(duì)象

            file 為一對(duì)象,它有一些內(nèi)置屬性,如下

            file對(duì)象的屬性:

            read()??? read(size)?? readline()?? readlines()

            之前的例子已經(jīng)接觸到了 read() 函數(shù),該函數(shù)會(huì)會(huì)一次性讀取文件的全部?jī)?nèi)容,如果能確保文件的大小,自然可以。但若文件過(guò)大,內(nèi)存就爆了,所以,可以反復(fù)調(diào)用read(size)方法,每次最多讀取size個(gè)字節(jié)的內(nèi)容;也可調(diào)用 readline() 每次讀取一行內(nèi)容;而調(diào)用readlines()可以一次讀取所有內(nèi)容并按行返回list??傊?,根據(jù)需求來(lái)。僅以 txt 文件為例,其他的文件讀取需要特殊處理;另外,文件的格式編碼方式也需要注意;這邊僅介紹讀取方法,其他的會(huì)出專(zhuān)題來(lái)學(xué)習(xí)。

            在D:\python_file 下新建 poet.txt;示例如下,由于一個(gè)中文會(huì)占多個(gè)字節(jié),故read(size) 部分會(huì)亂碼,如:

            write()

            寫(xiě)文件和讀文件是一樣的,唯一區(qū)別是調(diào)用open()函數(shù)時(shí),傳入標(biāo)識(shí)符'w'或者'wb'表示寫(xiě)文本文件或?qū)懚M(jìn)制文件;'a' 對(duì)應(yīng)的表示追加等。

            如下示例,由于 write.txt 文件不存在,創(chuàng)建該文件并寫(xiě)入:

            在上例基礎(chǔ)上,繼續(xù),該文件被重寫(xiě):

            繼續(xù),這次使用追加,會(huì)在文件結(jié)尾追加:

            分享文章:python讀函數(shù) python看函數(shù)用法
            當(dāng)前鏈接:http://www.jbt999.com/article46/hjjdhg.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、商城網(wǎng)站、Google、電子商務(wù)、App開(kāi)發(fā)、靜態(tài)網(wǎng)站

            廣告

            聲明:本網(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;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

            成都網(wǎng)站建設(shè)公司

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 影音先锋成人无码影院 | 夜夜撸一撸 | 久久国精品 | 大屌视频网 | 99热免费精品店 |