python 书签内容整理
文章目錄
- 前言
- 一、基礎部分
- 1. 一行寫不下,如何換行繼續寫
- 2. 關于文件相關操作
- 3. Python 異常處理【https://www.runoob.com/python/python-exceptions.html】
- 4. Python格式化輸出 %s %d %f【https://blog.csdn.net/weixin_40583388/article/details/78600101】
- 5. matplotlib面向對象繪圖
- 6.定制自己的matplotlib style 【https://matplotlib.org/gallery/style_sheets/style_sheets_reference.html】
- 7. python 常用精簡代碼的函數(lambda、sorted、enumerate、reduce、np.concatenate)
- **sort 直接改變list,且只能改變list**
- sorted 可以對任何iterable的對象排序,且產生新的變量,不改變作用的對象
- from functools import reduce
- reduce(function, sequence [, initial] )
前言
書簽的內容越來越多,整理一下。整理內容分為基礎部分、bug解決部分、
以下是本篇文章正文內容
一、基礎部分
1. 一行寫不下,如何換行繼續寫
- 在一行末尾加上‘\’
- 如果是以逗號連接的,直接換行
另外,在spyder上可以設置自動換行;
2. 關于文件相關操作
- os.listdir(path)
返回指定的文件夾包含的文件或文件夾的名字的列表
注: - 文件名不包含數字時,文件名按字母順序排列;
- llist.sort(cmp=None, key=None, reverse=False);
直接改變原來的列表,reverse = True 降序, reverse = False 升序(默認);
key – 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自于可迭代對象中,指定可迭代對象中的一個元素來進行排序,例子在下面; - sorted(itrearble, cmp=None, key=None, reverse=False)
返回一個新的列表,不改變原來的列表; - os.path.getmtime() 函數是獲取文件最后修改時間
- os.path.getctime() 函數是獲取文件最后創建時間
代碼如下(示例):
- python中split()、os.path.split()函數用法【來源:https://www.cnblogs.com/foremostxl/p/9363250.html】
str.split(str="", num=string.count(str)).
str – 分隔符,默認為所有的空字符,包括空格、換行(\n)、制表符(\t)等。
num – 分割次數。
返回值:返回分割后的字符串列表。
os.path.split():按照路徑將文件名和路徑分割開
os.path.split(‘PATH’)
PATH指一個文件的全路徑作為參數:
如果給出的是一個目錄和文件名,則輸出路徑和文件名 - Python os.access() 方法【來源:https://www.runoob.com/python/os-access.html】
os.access(path, mode);
path – 要用來檢測是否有訪問權限的路徑。
mode –
os.F_OK: 作為access()的mode參數,測試path是否存在。
os.R_OK: 包含在access()的mode參數中 , 測試path是否可讀。
os.W_OK 包含在access()的mode參數中 , 測試path是否可寫。
os.X_OK 包含在access()的mode參數中 ,測試path是否可執行。
如果允許訪問返回 True , 否則返回False。 - 關于Python讀取文件的路徑中斜杠問題
path1 = r"c:\windows\temp\temp1.txt"
path2 = “c:\\windows\\temp\\temp2.txt”
path3 = “c:/windows/temp/temp3.txt”
這三種都行。
3. Python 異常處理【https://www.runoob.com/python/python-exceptions.html】
異常即是一個事件,該事件會在程序執行過程中發生,影響了程序的正常執行。
異常是Python對象,表示一個錯誤。
當Python腳本發生異常時我們需要捕獲處理它,否則程序會終止執行。
異常處理
捕捉異常可以使用try/except語句。
try/except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常信息并處理。
如果你不想在異常發生時結束你的程序,只需在try里捕獲它。
try-finally 語句無論是否發生異常都將執行最后的代碼。
try:fh = open("testfile", "w")fh.write("這是一個測試文件,用于測試異常!!") finally:#無論如何都會執行print "Error: 沒有找到文件或讀取文件失敗"另外用戶可以觸發異常、自定義異常
4. Python格式化輸出 %s %d %f【https://blog.csdn.net/weixin_40583388/article/details/78600101】
%[flags][width].[precision]typecode
flags可以有+,-,’ ‘或0。
+表示右對齊。-表示左對齊。’ '為一個空格,表示在正數的左側填充一個空格,從而與負數對齊。0表示使用0填充,對d有用,對f無用。
width表示顯示寬度,precision表示小數點后留幾位。
常見格式符:
| %d | 十進制整數 |
| %f | 浮點數 |
| %e | 指數 (基底寫為e) |
| %E | 指數 (基底寫為E) |
5. matplotlib面向對象繪圖
網上這方面的帖子還是比較少,繪圖的教程是基于函數式繪圖,一旦子圖多了或者想要實現一些特定的功能,這時學會面向對象繪圖還是很有必要的。下面進行筆記整理。
- 對象有哪些?
圖源自【https://matplotlib.org/api/artist_api.html#matplotlib.artist.Artist】
下面說明一下常用的類,- Figure
Top level Artist, which holds all plot elements.這是官方文檔的定義,也很容易看出來,同時從圖中看出Figure沒有子類,也就是說日常使用中一般起到聲明的作用。
打個比方就是你要畫圖,那么你得鋪開一張紙,即寫下plt.figure(),其returns的官方解釋:
- Figure
The Figure instance returned will also be passed to new_figure_manager in the backends, which allows to hook custom Figure classes into the pyplot interface(將自定義Figure類掛接到pyplot界面中). Additional kwargs will be passed to the Figure init function.
下面用這張圖引出另兩個常用的類——Axes、Axis
-
Axes
從上圖可以看出,Figure與Axes以及Axes與Axis的關系。
-
Axis
-
其他
有用的小技巧如簡寫
-
Third party packages【https://matplotlib.org/thirdpartypackages/index.html】
推薦幾個,animatplot、gif 以及 sviewgui.
animatplot is a library for producing interactive animated plots with the goal of making production of animated plots almost as easy as static ones.
gif is an ultra lightweight animated gif API.
sviewgui is a PyQt-based GUI for visualisation of data from csv files or pandas.DataFrames.
6.定制自己的matplotlib style 【https://matplotlib.org/gallery/style_sheets/style_sheets_reference.html】
定制自己的matplotlib style 還是很有必要的,特別是需要論文出圖,或者有特殊作圖要求。
下面開始介紹:
matplotlib自帶了26種style,存在了style packages里面,具體位置在 \Lib\site-packages\matplotlib\mpl-data\stylelib. 調用的方法是
plt.style.use(‘ggplot’)
其中‘ggplot’是其中一種風格。
在自己定制之前,可以看看官方的mplstyle文件,如圖
鏈接有26種風格具體展示
后面我會貼出一些論文的定制文件,敬請期待~
7. python 常用精簡代碼的函數(lambda、sorted、enumerate、reduce、np.concatenate)
-
匿名函數lambda的函數用法和排序用法【https://www.cnblogs.com/test123/p/10622956.html】
首先,我們可以利用lambda創建簡單函數
lambda語句中,冒號前是參數,可以有多個,用逗號隔開,冒號右邊的返回值,lambda返回函數對象。
我個人認為lambda更重要的作用是結合sorted/sort進行排序。
順便貼一個sort與sorted的區別sort 直接改變list,且只能改變list
sorted 可以對任何iterable的對象排序,且產生新的變量,不改變作用的對象
輸出的結果如下圖:
- enumerate() 函數【https://www.runoob.com/python/python-func-enumerate.html】
enumerate() 函數用于將一個可遍歷的數據對象(如列表、元組或字符串)組合為一個索引序列,同時列出數據和數據下標,一般用在 for 循環當中。
- reduce 函數的使用
使用前需要
from functools import reduce
下面貼我個人的理解
>>>lst = [1,2,3,4] >>>temp = reduce(lambda x,y: x*y, lst) # 工作過程是:1)x=1, y=2-->x*y=2 # 2) x=2【1)中的結果】, y=3-->x*y=6 # 3) x=6, y=4-->x*y=24 >>>print(temp) >>>24有了上面的解釋,對reduce的定義就可以理解了
reduce(function, sequence [, initial] )
inital 指函數變量的初值,按照上例指的是x=initial
一般地我們會對可遍歷對象特別是字典中的鍵值操作時,就不用寫for循環了,代碼變得十分簡潔。
>>>h = {1: 3, 2: 1, 3: 2} >>>a = reduce(lambda x, value:x + value * (value - 1), h.values(), 0) >>>print(a) >>>8總結
以上是生活随笔為你收集整理的python 书签内容整理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 获取Android手机短信中心号码
- 下一篇: 机器学习笔记(李宏毅 2021/2022