Python--一些重要的小tips【持续更新】
在runoob.com點擊訪問進行Python學習時的一些筆記和心得
1-字典格式{ }
??? 列表格式[ ]
??? 元組格式( )
2-<>用于表示不等,返回bool值
??? ^用于計算位異或
?? <<非循環左移
?? pi和e都是可以直接使用的
?? degrees(x)弧度轉角度
?? radians(x)角度轉弧度
?? 數字輸出格式化,表格來自runoob.com
| 3.1415926 | {:.2f} | 3.14 | 保留小數點后兩位 |
| 3.1415926 | {:+.2f} | +3.14 | 帶符號保留小數點后兩位 |
| -1 | {:+.2f} | -1.00 | 帶符號保留小數點后兩位 |
| 2.71828 | {:.0f} | 3 | 不帶小數 |
| 5 | {:0>2d} | 05 | 數字補零 (填充左邊, 寬度為2) |
| 5 | {:x<4d} | 5xxx | 數字補x (填充右邊, 寬度為4) |
| 10 | {:x<4d} | 10xx | 數字補x (填充右邊, 寬度為4) |
| 1000000 | {:,} | 1,000,000 | 以逗號分隔的數字格式 |
| 0.25 | {:.2%} | 25.00% | 百分比格式 |
| 1000000000 | {:.2e} | 1.00e+09 | 指數記法 |
| 13 | {:10d} | ????????13 | 右對齊 (默認, 寬度為10) |
| 13 | {:<10d} | 13 | 左對齊 (寬度為10) |
| 13 | {:^10d} | ????13 | 中間對齊 (寬度為10) |
| 11 | '{:b}'.format(11) '{:d}'.format(11) '{:o}'.format(11) '{:x}'.format(11) '{:#x}'.format(11) '{:#X}'.format(11) | 1011 11 13 b 0xb 0XB | 進制 |
3-注意使用:符號,用于表示{ },進行函數體的編寫,在編寫時也需要注意縮進,必須保持一致,可以使用Tab進行調整
?? in / not in 用于對當前元素是否存在在列表、元組、字符串中進行判斷
?? 使用print語句時,在句末加入,符號,可以實現不換行
?? 使用elif實現else if功能
?? 使用:實現C語言中的{ }功能
?? 可以使用索引實現對元組、列表和字典的訪問,其中索引使用if num in range( len(變量名的形式)),使用時采用變量名[num] 的形式進行訪問
?? 無限循環在控制臺中使用CTRL+C實現停止操作
?? pass就只是為了實現占位,本身并沒有任何意義
4-注意區分is和==的意義,雖然都是進行比較,但is比較的相當于存儲位置,==比較的是值
?? 使用choice(range(num))實現隨機返回一個0~9之間的整數
?? uniform(x,y)實現隨機返回一個在x~y之間的實數
5-在for或while后加入else可以實現在循環結束后跳出進行下一步操作
?? 由于開始時語法真的是太不熟悉了,所以在使用__init__進行定義時不停的跳object()takes no parameters的error,也提示一下后來的小朋友們,__符號它是英文半角_*2是兩條啊
6-字符串,在行尾加入\表明續行
? ? \a表示響鈴
??? \b表示退格
??? \v縱向制表符
???? \t橫向制表符
??? 在‘’符號前加入r或R表示反轉譯,所有的轉義符都不會被執行
?? 在Python中同樣可以輸出類似C語言的格式化輸出,舉個栗子print “auihfui%d,joisdofa%s”%(12,‘nihongwa’),下面的表格就是可以使用的格式化內容,因為感覺整理的不錯就直接從runoob.com上拿下來啦
| ????? %c | ?格式化字符及其ASCII碼 |
| ????? %s | ?格式化字符串 |
| ????? %d | ?格式化整數 |
| ????? %u | ?格式化無符號整型 |
| ????? %o | ?格式化無符號八進制數 |
| ????? %x | ?格式化無符號十六進制數 |
| ????? %X | ?格式化無符號十六進制數(大寫) |
| ????? %f | ?格式化浮點數字,可指定小數點后的精度 |
| ????? %e | ?用科學計數法格式化浮點數 |
| ????? %E | ?作用同%e,用科學計數法格式化浮點數 |
| ????? %g | ?%f和%e的簡寫 |
| ????? %G | ?%f 和 %E 的簡寫 |
| ????? %p | ?用十六進制數格式化變量的地址 |
??? 也可以采用參數設置的方法,有三種方式,分別為直接參數方式、字典方式以及列表方式。直接參數方式采用將變量名放置在{}中,在.format()中進行對變量定義的方式;采用字典設置參數的方法,先對字典進行定義,在引用時,直接使用字典關鍵字,并在.format()中對該字典進行引用,以(**字典名)為格式;列表采用類似字典的方法,不同之處在于前半部分的{}采用名加[索引]的方式,.format直接使用列表名
??? 甚至可以使用str.format()的方式傳入對象,沒太看懂,所以直接使用runoob.com中使用的例子。
??????????? class AssignValue(object):
??????????????????? def __init__(self,value):
?????????????????????????? self.value=value
???????????? my_value=AssignValue(6)
???????????? print('value 為:{0.value}'.format(my_value))
???? 可以使用{ }符號對{ }進行轉譯??????
???? 在字符串定義的時候,可以使用三引號實現對字符串內容的換行定義
???? 對字符串中的數字處理,isdigit()和isdecimal()函數都是用于檢測內容是否為數字,返回bool值,
對isdigit()而言,True:Unicode數字、byte數字(單字節)、全角數字(雙字節)、羅馬數字
?????????????????????????????????? False:漢字數字
?????????????????????????????????? Error: 無
對isnumeric()而言,True: Unicode數字,全角數字(雙字節),羅馬數字,漢字數字
?????????????????????????????????????????? False: 無
?????????????????????????????????????????? Error: byte數字(單字節)
???? 使用find函數與rfind函數都是可以進行查找操作的,不同支持在于一個是從左邊開始找,一個是從右邊開始找,但是要找的目標字符串都是從左到右開始定義的
???? 使用splitlines當傳入參數為False時,在打印結果時,將不包含\n轉義符,如果使用True,則會將轉義符打印出來
7-通過使用del函數,實現對列表中元素的刪除
??? 使用+實現對列表的拼接、組合
??? 在截取中,使用正值從0開始計數,使用負值,則最后一位為-1
??? 使用list()可以將元組轉換為列表
??? 使用append()在列表末尾添加新的對象
??? 使用extend()可以使用新的列表對舊的列表進行擴充
??? 使用remove(obj)移除列表中obj的第一個匹配項
??? 使用pop(obj=list[-1])移除列表中的一個元素(默認最后一個元素),并且返回該元素的值
8-在創建元組時,如果該元組最后只有一個元素,需要在最后加入一個逗號
??? 元組一旦創建將無法修改,可以通過使用del將整個元組進行刪除
??? 對于任意無符號對象,以逗號隔開,默認為元組
??? 使用tuple()將列表轉化為元組
9-字典在創建后也可以進行修改
??? 使用del將刪除字典中的一條條目,使用.clear()將清空字典中的所有條目
?? .keys()將返回字典中所有的鍵;.values()將返回字典中所有的值
10-使用.localtime(time.time())可以獲得當前時間,但顯示并非格式化形式,使用asctime()可以獲得可讀時間模式,調用方式為time.asctime(time.localtime(time.time()))
????? 可以使用time模塊的strftime方法對日期進行格式化,和print進行搭配使用,用于定義用戶自己的顯示格式如:print time.strftime("%a %b %d %H:%M:%S %Y,time.localtime()),其中Python日期格式化符號可以在編寫時進行查詢
???? time.clock()用于返回CPU時間,可以用于衡量程序的耗時狀況
???? time.sleep(secs)用于推遲線程運行時間
????? 與time很像的calendar模塊用于獲取月歷信息,如calendar.month(year,month)將返回該月的日歷
11-使用def進行對函數的定義,無論最后是否返回內容,都需要在最后加入return,表示函數結束
???? 在函數中使用參數傳遞時,變量并沒有類型,它只是一種容器用于存放對象的地址
???? 傳入的參數存在會發生變化和不會發生變化的內容,除列表和字典外其余變量在傳入后不會發生變化
???? 使用關鍵字作為參數傳入時,可以不完全按照定義時傳入參數的順序進行參數的傳入,函數可以識別關鍵字
???? 甚至可以使用不定長參數,使用加*號的變量用于存放所有未命名的變量參數,但對于不定長參數,要在函數后面記得處理
???? 使用lambda關鍵字創建匿名函數,例sum=lambda arg1,arg2:arg1+arg2;調用時直接使用sum(1,2)即可
12-可以使用.py后綴形成模塊,并且使用import語句引入模塊,其格式為import module1[,module2[,...moduleN]]]
???? 在使用引用模塊中的函數時,調用格式為模塊名.函數名
???? 使用from從模塊中導入一個指定的部分,from fib import fibonacci 表示從fib模塊中導入fibonacci函數,如果導入全部內容,則使用from fib import *
???? 搜索路徑為system模塊的sys.path變量中,可設置PYTHONPATH變量 set PYTHONPATH=c:\python27\lib;
???? 如果要給函數內部的全局變量賦值,需要在全局變量前加入global關鍵詞
??? 使用dir函數,可以返回模塊中定義過的函數的名字,其中__name__和__file__分別指向模塊的名字和該模塊的導入文件名
??? 使用globals()函數返回該函數中所有能訪問的全局名字,使用locals()函數返回該函數例能訪問的命名
??? 由于每次模塊頂層的代碼只會被執行一次,因此如果希望重新執行模塊頂層使用的代碼,可以使用reload()函數,reload(hello)
??? 創建Python包,在包文件下創建許多的模塊,在導入時使用from語句,from包.py模塊名import函數名
13-使用raw_input和input函數可以實現從鍵盤輸入的功能,raw_input("提示語句:"),返回鍵入內容,使用input()如果傳入的參數外面加上了[ ]符號,則Python會對其進行運算,并將計算結果進行返回
????? 使用open()函數創建一個file對象,并使用相關的方法對其進行調用讀寫,file object=open(file_name[,access_mode][,buffering])file_name表示文件名稱字符串值,access_mode表明文件打開方式,buffering表示寄存行大小,0沒有,1有,大于1表明寄存區緩沖大小,下表來自runoob.com,點擊訪問
| r | 以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。 |
| rb | 以二進制格式打開一個文件用于只讀。文件指針將會放在文件的開頭。這是默認模式。 |
| r+ | 打開一個文件用于讀寫。文件指針將會放在文件的開頭。 |
| rb+ | 以二進制格式打開一個文件用于讀寫。文件指針將會放在文件的開頭。 |
| w | 打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。 |
| wb | 以二進制格式打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。 |
| w+ | 打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。 |
| wb+ | 以二進制格式打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。 |
| a | 打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。 |
| ab | 以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。 |
| a+ | 打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用于讀寫。 |
| ab+ | 以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用于讀寫。 |
??? 使用write()將字符串等寫入打開的文件,該函數不會再字符串結尾自動添加換行符
??? 使用read(count)讀取文件中的字符串,如果指定count,會按照字節數進行讀出,如果參數為空,則盡可能多的讀取內容,無法確定讀取長度
? ? 使用tell()返回當前操作位置
? ? 使用seek(offset[,from])可以用于改變當前操作位置,from設置為0,則從文章開頭開始,設置為1,則從當前位置開始,設置為2,則以文件末尾開始?
??? os模塊可以對文件進行操作,rename()用于重新命名文件,需要先導入,os.rename(current_file_name,new_file_name)
??? remove()用于刪除文件,文件名作為參數
??? mkdir()在當前目錄下重新創建新的目錄,os.mkdir("newdir")
??? rmdir()刪除目錄,參數為要刪除目錄名稱
??? chdir()可以用于改變當前目錄,直接寫入目錄路徑即可
??? getcwd()返回當前工作目錄
總結
以上是生活随笔為你收集整理的Python--一些重要的小tips【持续更新】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python--str与repr以及ev
- 下一篇: Python--高阶学习笔记