天天看點

Python基礎文法小知識點(坑點)

最近複習了一下python3的基礎文法,期間也有不少坑和小知識點,例如:python3中的類,類中的構造函數,一維數組,二維數組,一行輸入多個數等等等等,現在記錄一下這些坑點。

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

繼續閱讀