1. 程式人生 > >Python基礎知識小結

Python基礎知識小結

1、變數

多變數賦值:

a=b=c=1

多物件-多變數

a,b,c=1 ,2.0 ,'c'

2、型別

2.1、數字資料型別:int、long(l或L)、float、complex(複數)

del刪除物件的引用,可刪除單個或多個物件

2.2、字串:由數字、字母、下劃線、符號等組成的一串字元。

       字串列表取值:從左到右索引預設0開始的,最大範圍是字串長度少1,從右到左索引預設-1開始的,最大範圍是字串開頭,使用變數 [頭下標:尾下標],就可以擷取相應的字串。

        加號(+)是字串連線運算子,星號(*)是重複操作

2.3、列表:支援字元,數字,字串甚至可以包含列表(即巢狀)

 列表中值的切割也可以用到變數 [頭下標:尾下標] ,就可以擷取相應的列表,從左到右索引預設 0 開始,從右到左索引預設 -1 開始,下標可以為空表示取到頭或尾

加號 + 是列表連線運算子,星號 * 是重複操作

python 建立二維列表,將需要的引數寫入 cols 和 rows 即可

list_2d=[ [0 for col in range(cols)] for row in range(rows) ]

2.4、元組:類似於List(列表)

元組用"()"標識。內部元素用逗號隔開。但是元組不能二次賦值(元素不能修改),相當於只讀列表。索引同列表。

無關閉分隔符:通常出現在建立多物件賦值操作和輸出print(在Python2.x 是print  val,val2。。。在Python3.x中是 print(val1,val2。。。)很顯然是元組)

任意無符號的物件,以逗號隔開預設為元組

print'abc',-4.24e93,18+6.6j,'xyz';
x, y =1,2;print"Value of x , y : ", x,y;


2.5、字典:可變容器模型,且可儲存任意型別物件。

列表是有序的物件集合,字典是無序的物件集合。兩者之間的區別在於:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。字典用"{ }"標識。字典由索引(key)和它對應的值value組成。

鍵必須是唯一的,但值則不必。

值可以取任何資料型別,但鍵必須是不可變的,如字串,數字或元組。

字典值可以沒有限制地取任何python物件,既可以是標準的物件,也可以是使用者定義的,但鍵不行。

兩個重要的點需要記住:

1)不允許同一個鍵出現兩次。建立時如果同一個鍵被賦值兩次,後一個值會被記住

2)鍵必須不可變,所以可以用數字,字串或元組充當,所以用列表就不行

非數字型的共同點:都可以使用切片、連結(+)、重複(*)、取值(a[])等相關運算;

非數字型的不同點列表 可以直接賦值,元組不可以賦值,字典按照 dict[k]=v 的方式賦值。

3、運算子

in     :    如果在指定的序列中找到值返回 True,否則返回 False。

not in :如果在指定的序列中沒有找到值返回 True,否則返回 False。

is    :   is 是判斷兩個識別符號是不是引用自一個物件

is not : is not 是判斷兩個識別符號是不是引用自不同物件

is 與 == 區別:is 用於判斷兩個變數引用物件(地址)是否為同一個, == 用於判斷引用變數的值是否相等。

在python2.x中,若a=2,b=2  a is b   ---->True         a=2.0,b=2.0  a  is b  ----->True

在Python3.x中,若a=2,b=2  a is b   ---->True         a=2.0,b=2.0  a  is b  ----->False

python中會為每個出現的物件分配記憶體,哪怕他們的值完全相等(注意是相等不是相同)。為了提高記憶體利用效率對於一些簡單的物件,如一些數值較小的int物件,python採取重用物件記憶體的辦法,如指向a=2,b=2時,由於2作為簡單的int型別且數值小,python不會兩次為其分配記憶體,而是隻分配一次,然後將a與b同時指向已分配的物件

4、while迴圈

通常:while 判斷條件:

執行語句

特殊:while 判斷條件:

執行語句

  else:

執行語句

類似 if 語句的語法, while 迴圈體中只有一條語句,你可以將該語句與while寫在同一行中

for … else ,for 中的語句和普通的沒有區別,else 中的語句會在迴圈正常執行完(即 for 不是通過 break 跳出而中斷的)的情況下執行,while … else 也是一樣。

5、break、continue

break語句,跳出最小封閉for或while迴圈,break語句用來終止迴圈語句,即迴圈條件沒有False條件或者序列還沒被完全遞迴完,也會停止執行迴圈語句。

break語句用在while和for迴圈中。

用巢狀迴圈,break語句將停止執行最深層的迴圈,並開始執行下一行程式碼。

continue 語句跳出本次迴圈,而break跳出整個迴圈。

continue 語句用來告訴Python跳過當前迴圈的剩餘語句,然後繼續進行下一輪迴圈。

continue語句用在while和for迴圈中。

continue 語句是一個刪除的效果,他的存在是為了刪除滿足迴圈條件下的某些不需要的成分:


 pass是空語句,是為了保持程式結構的完整性。pass 不做任何事情,一般用做佔位語句。

6、符號

python字串格式化符號:

    符   號 描述
      %c  格式化字元及其ASCII碼
      %s  格式化字串
      %d  格式化整數
      %u  格式化無符號整型
      %o  格式化無符號八進位制數
      %x  格式化無符號十六進位制數
      %X  格式化無符號十六進位制數(大寫)
      %f  格式化浮點數字,可指定小數點後的精度
      %e  用科學計數法格式化浮點數
      %E  作用同%e,用科學計數法格式化浮點數
      %g  %f和%e的簡寫
      %G  %f 和 %E 的簡寫
      %p  用十六進位制數格式化變數的地址

格式化操作符輔助指令:

符號 功能
* 定義寬度或者小數點精度
- 用做左對齊
+ 在正數前面顯示加號( + )
<sp> 在正數前面顯示空格
# 在八進位制數前面顯示零('0'),在十六進位制前面顯示'0x'或者'0X'(取決於用的是'x'還是'X')
0 顯示的數字前面填充'0'而不是預設的空格
% '%%'輸出一個單一的'%'
(var) 對映變數(字典引數)
m.n. m 是顯示的最小總寬度,n 是小數點後的位數(如果可用的話)

ASCII編碼和Unicode編碼的區別:

ASCII編碼是1個位元組,而Unicode編碼通常是2個位元組,舉例如下。

  字母 用ASCII編碼是十進位制的65,二進位制的01000001

  字元 用ASCII編碼是十進位制的48,二進位制的00110000,注意字元 '0' 和整數   

是不同的;

  漢字 中 已經超出了ASCII編碼的範圍,用Unicode編碼是十進位制的20013,二進位制的01001110 00101101

  如果把ASCII編碼的 用Unicode編碼,只需要在前面補0就可以,因此, 的Unicode編碼是00000000 01000001


7、日期和時間

時間間隔以秒為單位的浮點小數。

每個時間戳通常是一個字元序列,唯一地標識某一刻的時間。數字時間戳技術是數字簽名技術一種變種的應用。)都以自從1970年1月1日午夜(曆元)經過了多長時間來表示。

Python 的 time 模組下有很多函式可以轉換常見日期格式。

使用import time  (必須先匯入模組)

help(time)語句可檢視time模組中的方法。

  python中時間日期格式化符號:

  • %y 兩位數的年份表示(00-99)
  • %Y 四位數的年份表示(000-9999)
  • %m 月份(01-12)
  • %d 月內中的一天(0-31)
  • %H 24小時制小時數(0-23)
  • %I 12小時制小時數(01-12)
  • %M 分鐘數(00=59)
  • %S 秒(00-59)
  • %a 本地簡化星期名稱
  • %A 本地完整星期名稱
  • %b 本地簡化的月份名稱
  • %B 本地完整的月份名稱
  • %c 本地相應的日期表示和時間表示
  • %j 年內的一天(001-366)
  • %p 本地A.M.或P.M.的等價符
  • %U 一年中的星期數(00-53)星期天為星期的開始
  • %w 星期(0-6),星期天為星期的開始
  • %W 一年中的星期數(00-53)星期一為星期的開始
  • %x 本地相應的日期表示
  • %X 本地相應的時間表示
  • %Z 當前時區的名稱
  • %% %號本身
8、函式

def定義函式

在 python 中,strings, tuples, 和 numbers 是不可更改的物件,而 list,dict 等則是可以修改的物件。

不可變型別:變數賦值 a=5 後再賦值 a=10,這裡實際是新生成一個 int 值物件 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當於新生成了a。

可變型別:變數賦值 la=[1,2,3,4] 後再賦值 la[2]=5 則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。

python 函式的引數傳遞:

不可變型別:類似 c++ 的值傳遞,如 整數、