日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Python进阶之路一

發(fā)布時間:2024/8/26 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 Python进阶之路一 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

輸入和輸出

輸出
str(): 函數(shù)返回一個用戶易讀的表達(dá)形式。
repr(): 產(chǎn)生一個解釋器易讀的表達(dá)形式。

Python兩種輸出值的方式: 表達(dá)式語句和 print() 函數(shù)。 第三種方式是使用文件對象的 write() 方法,標(biāo)準(zhǔn)輸出文件可以用 sys.stdout 引用。 如果你希望輸出的形式更加多樣,可以使用 str.format() 函數(shù)來格式化輸出值。

            
                >>> s = 'Hello, Runoob'
                >>> str(s)
                'Hello, Runoob'
                >>> repr(s)
                "'Hello, Runoob'"
                >>> str(1/7)
                '0.14285714285714285'
                >>> x = 10 * 3.25
                >>> y = 200 * 200
                >>> s = 'x 的值為: ' + repr(x) + ',  y 的值為:' + repr(y) + '...'
                >>> print(s)
                x 的值為: 32.5,  y 的值為:40000...
                >>> #  repr() 函數(shù)可以轉(zhuǎn)義字符串中的特殊字符
                ... hello = 'hello, runoob
'
                >>> hellos = repr(hello)
                >>> print(hellos)
                'hello, runoob
'
                >>> # repr() 的參數(shù)可以是 Python 的任何對象
                ... repr((x, y, ('Google', 'Runoob')))
                "(32.5, 40000, ('Google', 'Runoob'))"
            
        

這里有兩種方式輸出一個平方與立方的表:

            
                >>> for x in range(1, 11):
                ...     print(repr(x).rjust(2), repr(x*x).rjust(3), end=' ')
                ...     # 注意前一行 'end' 的使用
                ...     print(repr(x*x*x).rjust(4))
                ...
                 1   1    1
                 2   4    8
                 3   9   27
                 4  16   64
                 5  25  125
                 6  36  216
                 7  49  343
                 8  64  512
                 9  81  729
                10 100 1000

                >>> for x in range(1, 11):
                ...     print('{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x))
                ...
                 1   1    1
                 2   4    8
                 3   9   27
                 4  16   64
                 5  25  125
                 6  36  216
                 7  49  343
                 8  64  512
                 9  81  729
                10 100 1000
            
        

另一個方法 zfill(), 它會在數(shù)字的左邊填充 0,如下所示:

            
                >>> '12'.zfill(5)
                '00012'
                >>> '-3.14'.zfill(7)
                '-003.14'
                >>> '3.14159265359'.zfill(5)
                '3.14159265359'
            
        

str.format() 的基本使用如下:

            
                >>> print('{0} 和 {1}'.format('Google', 'Runoob'))
                Google 和 Runoob
                >>> print('{1} 和 {0}'.format('Google', 'Runoob'))
                Runoob 和 Google

                >>> print('站點列表 {0}, {1}, 和 {other}。'.format('Google', 'Runoob', other='Taobao'))
                站點列表 Google, Runoob, 和 Taobao。
            
        

輸入

Python提供了 input() 內(nèi)置函數(shù)從標(biāo)準(zhǔn)輸入讀入一行文本,默認(rèn)的標(biāo)準(zhǔn)輸入是鍵盤。 input 可以接收一個Python表達(dá)式作為輸入,并將運算結(jié)果返回。

            
                str = input("請輸入:");
                print ("你輸入的內(nèi)容是: ", str)
            
        

讀和寫文件

            
                open(filename, mode)

                //filename:包含了你要訪問的文件名稱的字符串值。
                //mode:決定了打開文件的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個參數(shù)是非強(qiáng)制的,默認(rèn)文件訪問模式為只讀(r)。

            
        
不同模式打開文件的完全列表
模式 描述
r 以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認(rèn)模式。
rb 以二進(jìn)制格式打開一個文件用于只讀。文件指針將會放在文件的開頭。
r+ 打開一個文件用于讀寫。文件指針將會放在文件的開頭。
rb+ 以二進(jìn)制格式打開一個文件用于讀寫。文件指針將會放在文件的開頭。
w 打開一個文件只用于寫入。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內(nèi)容會被刪除。如果該文件不存在,創(chuàng)建新文件。
wb 以二進(jìn)制格式打開一個文件只用于寫入。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內(nèi)容會被刪除。如果該文件不存在,創(chuàng)建新文件。
w+ 打開一個文件用于讀寫。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內(nèi)容會被刪除。如果該文件不存在,創(chuàng)建新文件。
wb+ 以二進(jìn)制格式打開一個文件用于讀寫。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內(nèi)容會被刪除。如果該文件不存在,創(chuàng)建新文件。
a 打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結(jié)尾。也就是說,新的內(nèi)容將會被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫入。
ab 以二進(jìn)制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結(jié)尾。也就是說,新的內(nèi)容將會被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫入。
a+ 打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結(jié)尾。文件打開時會是追加模式。如果該文件不存在,創(chuàng)建新文件用于讀寫。
ab+ 以二進(jìn)制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結(jié)尾。如果該文件不存在,創(chuàng)建新文件用于讀寫。

文件對象的方法

文件讀取
方法 描述
f.read() 為了讀取一個文件的內(nèi)容,調(diào)用 f.read(size), 這將讀取一定數(shù)目的數(shù)據(jù), 然后作為字符串或字節(jié)對象返回。 size 是一個可選的數(shù)字類型的參數(shù)。 當(dāng) size 被忽略了或者為負(fù), 那么該文件的所有內(nèi)容都將被讀取并且返回。
f.readline() f.readline() 會從文件中讀取單獨的一行。換行符為 '
'。f.readline() 如果返回一個空字符串, 說明已經(jīng)已經(jīng)讀取到最后一行。
f.readlines() f.readlines() 將返回該文件中包含的所有行。
f.write() f.write(string) 將 string 寫入到文件中, 然后返回寫入的字符數(shù)。
f.tell() f.tell() 返回文件對象當(dāng)前所處的位置, 它是從文件開頭開始算起的字節(jié)數(shù)。
f.seek() 如果要改變文件當(dāng)前的位置, 可以使用 f.seek(offset, from_what) 函數(shù)。 /td>
f.close() 在文本文件中 (那些打開文件的模式下沒有 b 的), 只會相對于文件起始位置進(jìn)行定位。
            
                //當(dāng)處理一個文件對象時, 使用 with 關(guān)鍵字是非常好的方式。在結(jié)束后, 它會幫你正確的關(guān)閉文件。 而且寫起來也比 try - finally 語句塊要簡短:
                >>> with open('/tmp/foo.txt', 'r') as f:
                ...     read_data = f.read()
                >>> f.closed
                True
            
        

pickle模塊

python的pickle模塊實現(xiàn)了基本的數(shù)據(jù)序列和反序列化。 通過pickle模塊的序列化操作我們能夠?qū)⒊绦蛑羞\行的對象信息保存到文件中去,永久存儲。 通過pickle模塊的反序列化操作,我們能夠從文件中創(chuàng)建上一次程序保存的對象。

            
                //基本接口
                pickle.dump(obj, file, [,protocol])


                //有了 pickle 這個對象, 就能對 file 以讀取的形式打開:
                x = pickle.load(file)
            
        

實例1

            
                import pickle

                # 使用pickle模塊將數(shù)據(jù)對象保存到文件
                data1 = {'a': [1, 2.0, 3, 4+6j],
                         'b': ('string', u'Unicode string'),
                         'c': None}

                selfref_list = [1, 2, 3]
                selfref_list.append(selfref_list)

                output = open('data.pkl', 'wb')

                # Pickle dictionary using protocol 0.
                pickle.dump(data1, output)

                # Pickle the list using the highest protocol available.
                pickle.dump(selfref_list, output, -1)

                output.close()
            
        

實例2

            
                import pprint, pickle

                #使用pickle模塊從文件中重構(gòu)python對象
                pkl_file = open('data.pkl', 'rb')

                data1 = pickle.load(pkl_file)
                pprint.pprint(data1)

                data2 = pickle.load(pkl_file)
                pprint.pprint(data2)

                pkl_file.close()
            
        

File(文件) 方法

open方法

注意:使用 open() 方法一定要保證關(guān)閉文件對象,即調(diào)用 close() 方法。 open() 函數(shù)常用形式是接收兩個參數(shù):文件名(file)和模式(mode)。

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

參數(shù)說明

file: 必需,文件路徑(相對或者絕對路徑)。
mode: 可選,文件打開模式
buffering: 設(shè)置緩沖
encoding: 一般使用utf8
errors: 報錯級別
newline: 區(qū)分換行符
closefd: 傳入的file參數(shù)類型
opener:

file對象
方法 描述
file.close() 關(guān)閉文件。關(guān)閉后文件不能再進(jìn)行讀寫操作。
file.flush() 刷新文件內(nèi)部緩沖,直接把內(nèi)部緩沖區(qū)的數(shù)據(jù)立刻寫入文件, 而不是被動的等待輸出緩沖區(qū)寫入。
file.fileno() 返回一個整型的文件描述符(file descriptor FD 整型), 可以用在如os模塊的read方法等一些底層操作上。
file.isatty() 如果文件連接到一個終端設(shè)備返回 True,否則返回 False。
file.read([size]) 從文件讀取指定的字節(jié)數(shù),如果未給定或為負(fù)則讀取所有。
file.readline([size]) 讀取整行,包括 "
" 字符。
file.readlines([sizeint]) 讀取所有行并返回列表,若給定sizeint>0,返回總和大約為sizeint字節(jié)的行, 實際讀取值可能比 sizeint 較大, 因為需要填充緩沖區(qū)。
file.seek(offset[, whence]) 移動文件讀取指針到指定位置
file.tell() 返回文件當(dāng)前位置。
file.truncate([size]) 從文件的首行首字符開始截斷,截斷文件為 size 個字符,無 size 表示從當(dāng)前位置截斷;截斷之后后面的所有字符被刪除,其中 Widnows 系統(tǒng)下的換行代表2個字符大小。
file.write(str) 將字符串寫入文件,返回的是寫入的字符長度。
file.writelines(sequence) 向文件寫入一個序列字符串列表,如果需要換行則要自己加入每行的換行符。

OS 文件/目錄方法

os 模塊
方法 描述
os.access(path, mode) 檢驗權(quán)限模式
os.chdir(path) 改變當(dāng)前工作目錄
os.chflags(path, flags) 設(shè)置路徑的標(biāo)記為數(shù)字標(biāo)記。
os.chmod(path, mode) 更改權(quán)限
os.chown(path, uid, gid) 更改文件所有者
os.chroot(path) 改變當(dāng)前進(jìn)程的根目錄
os.close(fd) 關(guān)閉文件描述符 fd
os.closerange(fd_low, fd_high) 關(guān)閉所有文件描述符,從 fd_low (包含) 到 fd_high (不包含), 錯誤會忽略
os.dup(fd) 復(fù)制文件描述符 fd
os.dup2(fd, fd2) 將一個文件描述符 fd 復(fù)制到另一個 fd2
os.fchdir(fd) 通過文件描述符改變當(dāng)前工作目錄
os.fchmod(fd, mode) 改變一個文件的訪問權(quán)限,該文件由參數(shù)fd指定,參數(shù)mode是Unix下的文件訪問權(quán)限。
os.fchown(fd, uid, gid) 修改一個文件的所有權(quán),這個函數(shù)修改一個文件的用戶ID和用戶組ID,該文件由文件描述符fd指定。
os.fdatasync(fd) 強(qiáng)制將文件寫入磁盤,該文件由文件描述符fd指定,但是不強(qiáng)制更新文件的狀態(tài)信息。
os.fdopen(fd[, mode[, bufsize]]) 通過文件描述符 fd 創(chuàng)建一個文件對象,并返回這個文件對象
os.fpathconf(fd, name) 返回一個打開的文件的系統(tǒng)配置信息。name為檢索的系統(tǒng)配置的值,它也許是一個定義系統(tǒng)值的字符串,這些名字在很多標(biāo)準(zhǔn)中指定(POSIX.1, Unix 95, Unix 98, 和其它)。
os.fstat(fd) 返回文件描述符fd的狀態(tài),像stat()。
os.fstatvfs(fd) 返回包含文件描述符fd的文件的文件系統(tǒng)的信息,Python 3.3 相等于 statvfs()。
os.fsync(fd) 返回包含文件描述符fd的文件的文件系統(tǒng)的信息,Python 3.3 相等于 statvfs()。
os.fsync(fd) 強(qiáng)制將文件描述符為fd的文件寫入硬盤。
os.ftruncate(fd, length) 裁剪文件描述符fd對應(yīng)的文件, 所以它最大不能超過文件大小。
os.getcwd() 返回當(dāng)前工作目錄
os.getcwdu() 返回一個當(dāng)前工作目錄的Unicode對象
os.isatty(fd) 如果文件描述符fd是打開的,同時與tty(-like)設(shè)備相連,則返回true, 否則False。
os.lchflags(path, flags) 設(shè)置路徑的標(biāo)記為數(shù)字標(biāo)記,類似 chflags(),但是沒有軟鏈接
os.lchmod(path, mode) 修改連接文件權(quán)限
os.lchown(path, uid, gid) 更改文件所有者,類似 chown,但是不追蹤鏈接。
os.link(src, dst) 創(chuàng)建硬鏈接,名為參數(shù) dst,指向參數(shù) src
os.listdir(path) 返回path指定的文件夾包含的文件或文件夾的名字的列表。
os.lseek(fd, pos, how) 設(shè)置文件描述符 fd當(dāng)前位置為pos, how方式修改: SEEK_SET 或者 0 設(shè)置從文件開始的計算的pos; SEEK_CUR或者 1 則從當(dāng)前位置計算; os.SEEK_END或者2則從文件尾部開始. 在unix,Windows中有效
os.lstat(path) 像stat(),但是沒有軟鏈接
os.major(device) 從原始的設(shè)備號中提取設(shè)備major號碼 (使用stat中的st_dev或者st_rdev field)。
os.makedev(major, minor) 以major和minor設(shè)備號組成一個原始設(shè)備號
os.makedirs(path[, mode]) 遞歸文件夾創(chuàng)建函數(shù)。像mkdir(), 但創(chuàng)建的所有intermediate-level文件夾需要包含子文件夾。
os.minor(device) 從原始的設(shè)備號中提取設(shè)備minor號碼 (使用stat中的st_dev或者st_rdev field )。
os.mkdir(path[, mode]) 以數(shù)字mode的mode創(chuàng)建一個名為path的文件夾.默認(rèn)的 mode 是 0777 (八進(jìn)制)。
os.mkfifo(path[, mode]) 創(chuàng)建命名管道,mode 為數(shù)字,默認(rèn)為 0666 (八進(jìn)制)
os.mknod(filename[, mode=0600, device]) 創(chuàng)建一個名為filename文件系統(tǒng)節(jié)點(文件,設(shè)備特別文件或者命名pipe)。
os.open(file, flags[, mode]) 打開一個文件,并且設(shè)置需要的打開選項,mode參數(shù)是可選的
os.openpty() 打開一個新的偽終端對。返回 pty 和 tty的文件描述符。
os.pathconf(path, name) 返回相關(guān)文件的系統(tǒng)配置信息。
os.pipe() 創(chuàng)建一個管道. 返回一對文件描述符(r, w) 分別為讀和寫
os.popen(command[, mode[, bufsize]]) 從一個 command 打開一個管道
os.read(fd, n) 從文件描述符 fd 中讀取最多 n 個字節(jié),返回包含讀取字節(jié)的字符串,文件描述符 fd對應(yīng)文件已達(dá)到結(jié)尾, 返回一個空字符串。
os.readlink(path) 返回軟鏈接所指向的文件
os.remove(path) 刪除路徑為path的文件。如果path 是一個文件夾,將拋出OSError; 查看下面的rmdir()刪除一個 directory。
os.removedirs(path) 遞歸刪除目錄。
os.rename(src, dst) 重命名文件或目錄,從 src 到 dst
os.renames(old, new) 遞歸地對目錄進(jìn)行更名,也可以對文件進(jìn)行更名。
os.rmdir(path) 刪除path指定的空目錄,如果目錄非空,則拋出一個OSError異常。
os.stat(path) 獲取path指定的路徑的信息,功能等同于C API中的stat()系統(tǒng)調(diào)用。
os.stat_float_times([newvalue]) 決定stat_result是否以float對象顯示時間戳
os.statvfs(path) 獲取指定路徑的文件系統(tǒng)統(tǒng)計信息
os.symlink(src, dst) 創(chuàng)建一個軟鏈接
os.tcgetpgrp(fd) 返回與終端fd(一個由os.open()返回的打開的文件描述符)關(guān)聯(lián)的進(jìn)程組
os.tcsetpgrp(fd, pg) 設(shè)置與終端fd(一個由os.open()返回的打開的文件描述符)關(guān)聯(lián)的進(jìn)程組為pg。
os.ttyname(fd) 返回一個字符串,它表示與文件描述符fd 關(guān)聯(lián)的終端設(shè)備。如果fd 沒有與終端設(shè)備關(guān)聯(lián),則引發(fā)一個異常。
os.unlink(path) 刪除文件路徑
os.utime(path, times) 返回指定的path文件的訪問和修改的時間。
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]]) 輸出在文件夾中的文件名通過在樹中游走,向上或者向下。
os.write(fd, str) 寫入字符串到文件描述符 fd中. 返回實際寫入的字符串長度
os.path 模塊 獲取文件的屬性信息。

總結(jié)

以上是生活随笔為你收集整理的Python进阶之路一的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。