python基本用法

Python   VS   MATLAB

1.常用字符

“#”註釋(%)

“\”繼續(…)  

“:”多個語句構成代碼組,比如if、while、for這樣的複合語句以關鍵詞開始,:結束

“;”python中單行不輸出指令不需要寫“;”,但同一行書寫多個語句時需用“;”隔開

“ \’ ”表示一個單引號,而不是字符串結束,比如寫字符串“Let’s go”

“ \” ”表示一個雙引號,而不是字符串結束

2.賦值方式

       (1)增量賦值

              x = x + 1可用x += 1表示(同C語言表示方法)

              -=  *=  /=  %=  **=  <<=  >>=  &=  ^=  \=同理

       (2)多重賦值

              Python中如果多個值相同時,可以使用多重賦值,如:x,y,z值均爲1,

=>> x = y = z = 1

       (3)“多元”賦值

              同時給多個變量賦值,比如:給x賦1,y賦2, z賦3

              =>> x, y, z = 1, 2, 3

3.合法標識符

       (1)第一個字符必須是字母或下劃線,剩下的字符可以使字母和數字或下劃線,MTALAB中第一個字符不能爲下劃線。

       (2)區分大小寫(同MATLAB)

4.庫的調用

MATLAB的庫已經集成,函數可以直接調用,但python函數的運行必須要先加載必要的庫文件,調用庫文件中的函數進行運算

比如:進行數值運算需要調用numpy庫,畫圖需要調用matplotlib庫,需要在程序開頭先加載庫文件並定義爲以簡寫,後面寫的過程中要使用的函數前要加上庫的簡寫,中間用“.”隔開。比如調用numpy庫以及庫中函數:

import numpy as np

m = np. array ([[1, 2], [2, 3]])

5.函數定義及調用方式

       (1)MATLAB中使用function定義函數,python中使用def進行定義。

(2)第一行以def開始,以“:”結束。

(3)最後不需要用end結尾,但需要用return返回輸出值

(4)內部函數調用需要先定義再調用,調用其他py文件內的函數需要先import加載後再調用

6. index起始值

MATLAB是從1開始的,python是從0開始的

7.輸出方式

MATLAB中一個指令不加“;”即可輸出對應值

Python中須使用print( )對應值輸出

8.矩陣數組基本運算操作符

MATLAB中,*表示矩陣乘,/表示矩陣除,^表示矩陣乘方,.*表示點乘,./表示點除,.^表示點方。

在python中,矩陣運算的函數目前接觸到的有兩個,分別是mat()函數和array()函數。

在定義矩陣時,()中放入用[]括起來的矩陣或者一維數組,數與數之間用“,”隔開;當多維時,每一行的數據都要用[]括起來,用“,”隔開。比如:a=mat([[1,1],[0,0]]);

在使用mat()函數定義矩陣數組時,*、/和**分別表示矩陣乘、矩陣除和矩陣乘方;使用array()定義矩陣數組時,*、/和**分別表示點乘、點除和點方。(當然在使用mat()函數定義矩陣數組時,也可以用函數multiply()進行點乘,在使用array()函數定義矩陣數組時,也可以使用函數dot()進行矩陣乘)

可用函數asmatrix()將array()函數轉換爲mat()函數,可用asarray()將mat()函數轉化爲array()函數。

矩陣求逆在數據後面加“.I”,矩陣轉置“.T”,矩陣共軛“.H”,mat()可用三種方法實現矩陣求逆、轉置和共軛,array()不具有.H和.I

Python中其他邏輯運算符:

“|”或   “^”異或  “&”與  “<<”左移  “>>”右移

與或非也可以用“and、or、not”表示

Python中比較運算符:

“==”等於  “!=”不等  “>”大於 “>=”大於等於  “<”小於 “<=”小於等於

9.基本語句

(1)if語句

     Python中if語句使用與MATLAB很相似,不同之處有如下幾點:

           <1>每個條件後面都需要加“:”

           <2>符合條件要執行語句必須縮進,嵌套也必須用縮進表示優先級

           <3>elseif在python中用elif表示

           <4>循環結束不需要使用end

(2)while循環

<1>while使用同if,條件後必須加“:”,必須使用縮進,來分隔每個子代碼塊,不需要使用end結束循環,不再縮進即可。

      <2>使用while True:可進行死循環(同單片機編程)

(3)for循環和range()內建函數

<1>MATLAB中定義迭代變量for i = 1:5 。python中“:”不能引出步進長度,用in和需要迭代的數組代替=>>for i in [1,2,3,4,5]:

<2>python中起始值爲0,使用range()內建函數可用來生成需要的數值範圍,比如:range(5)表示0,1,2,3,4

      <3>循環首行須以for開頭,“:”結尾

      <4>嵌套必須進行嚴格縮進

      <5>可以迭代字符串,比如for i in ‘abc’:  =>>  i可以依次迭代a,b,c

      <6>循環結束不需要使用end,不再縮進即可。

10.模塊結構和佈局

       典型python文件結構:

       <1>起始行(類Unix環境下才使用,有起始行就能夠僅輸入腳本名字來執行腳本,無需直接調用解釋器)

       <2>模塊文檔(介紹模塊功能以及重要全局變量的含義,模塊外可用module._doc_訪問這些內容)

       <3>模塊導入(加載必要庫文件和所需模塊)

       <4>變量定義(定義全局變量,若有,)儘量使用局部變量代替全局變量,局部變量較全局變量更易於代碼的維護,提高性能並節省內存。

       <5>類定義語句(定義 類 ,若有)

       <6>內部函數定義(若有)

 
   


       <7>主程序

 

11.繪圖基本操作

(1)繪圖需要調用的庫:

繪圖需要調用matplotlib中的pyplot或pylab兩個庫

生成數據需要調用numpy

(2)圖像構成

      Figure、Axes、Axis、Artist

      Figure表示整個圖像,Axes表示圖像中子圖像,Axis表示座標軸,Artist表示圖像中元素

(3)繪圖流程:

<1>聲明一個figure,

<2>用subplot(111)增加一個子圖ax1,1行1列的圖(繪製三維圖需在後面加上projection = '3d')(繪製二維圖不是必要條件)

<3>爲x,y座標賦值

<4>plot(行,列,’顏色線型’,label = ‘圖例’,linewidth=線寬)

圖例生效還需在後面程序中加legend(),圖像中顏色和線型添加與MATLAB相同,需要同時設置顏色線型時建議寫在一個’’中。

<5>使用show()函數顯示圖像

(4)plot可以同時繪製多幅圖,使用同MATLAB

(5)python中subplot用法同MATLAB,subplot(行,列,num)

(6)label定義標籤,color定義曲線顏色,使用legend顯示生成的標籤,xlabel、ylabel生成座標軸, title生成標題

(7)使用ylim和xlim可以定義縱橫座標的尺度

(8)加$可以使輸出(比如:標籤)變爲斜體

(9)linewidth定義線寬

(10)plt.setp()可以同時配置多個圖像的屬性

12.Python三維圖繪製

大規模數據複雜的三維數據可視化需要使用TVTK庫,但由於其平常繪圖並不常用,本處僅對mpl_toolkits.mplot3d模塊三維繪圖做以說明

mpl_toolkits.mplot3d模塊在matplotlib的基礎上提供了三維繪圖的功能,其使用matplotlib的二維繪圖功能實現三維圖形的繪製工作,與MATLAB的三維圖繪製比較相似。

<1>繪製前調用mpl_toolkits.mplot3d模塊

<2>繪製三維面圖時,需要先建立網格,MATLAB中使用meshgrid建立網格,python中使用numpy庫中的mgrid建立網格。

<3>繪圖前要先在當前圖標中創建一個子圖,通過projection參數指定子圖的投影模式爲“3d”,這樣subplot()將返回一個三維繪圖的Axes3D子圖對象。

<4> plot_surface用於繪製三維曲面,plot_scatter繪製三維散點

13.python中文標題的顯示

在設置標題前加入指令

plt.rcParams['font.sans-serif']=['SimHei']  #第二個中括號中爲中文字體名

plt. rcParams['axes.unicode_minus'] = False

14.Pycharm使用中的快捷鍵

Ctrl+/  註釋/取消註釋

Ctrl+鼠標  查看原調函數

Ctrl + D  複製選定的區域或行

Ctrl + Y  刪除選定的行

Shift + F10  運行默認程序文件

Ctrl + Shift + F10  運行當前所在程序文件

Ctrl + G  查看當前行號、列號

詳細快捷鍵:https://blog.csdn.net/fighter_yy/article/details/40860949

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章