最近複習了一下python3的基礎文法,期間也有不少坑和小知識點,例如:python3中的類,類中的構造函數,一維數組,二維數組,一行輸入多個數等等等等,現在記錄一下這些坑點。
- 一行輸入多個數字。可以用如下方法,當個數比較少的時候,例如2,3,4都可以,int是資料類型
n , m = map( int , input().split(' ') )
- 當數字比較多的時候,就要用到一行輸入一維數組的形式了:list就是一個數組,x就是輸入,這樣輸入多少個都可以
list = [int(x) for x in input().split()]
- 一維數組的初始化,初始化為0:
dp = [ 0 for i in range( 0 , n ) ]
- python3中print輸出的時候會自動換行,怎麼讓他以空格結束呢,可以用如下方法:
print( dp[i] , end = " " )
- 一維數組排序,可以用sort函數,一個參數是key,一個參數是排序規則,像下面這種的話就是按從大到小的降序排序,去掉reverse參數的時候,預設為false,就是升序,而且也沒有根據某個key規則排序
list.sort(reverse = True)
- python3中的幂次方,**和自帶的pow函數的效率其實都非常快,并不是直接for循環求出來的,而且可以取模
pow( m , n , mod ) m的n次方且每次結果取模
- 二維數組的初始化
P = [[0] * n for i in range(m)] 這種方法可以生成一個 n * m且全為0的二維數組。還有一種方法就是[[0] * m] * n但是在修改某一個數的時候會發生淺拷貝問題,然後直接會将某一行或者某一列的值全部修改掉。
- 保留小數輸出
print(format(x) , '.2f')) 保留了兩位小數輸出
- 類和構造函數
init是構造函數,當需要某一個類執行個體化對象的時候就可以 c = Circle( 0 , 0 , 0 )class Circle: def __init__( self , x , y , r ): self.x = x self.y = y self.r = r
- python3中沒有++和--
- python3中允許0 <= x <= n 這種寫法 and 和 or 表示且和或