Python基本知識點備忘



查看原文:http://www.wyblog.cn/2016/11/20/python%e5%9f%ba%e6%9c%ac%e7%9f%a5%e8%af%86%e7%82%b9%e5%a4%87%e5%bf%98/

注:本篇博文內容總結自廖雪峯老師的python教程:

http://www.liaoxuefeng.com/

1.如果想直接執行py文件,應該在文本開頭加入#!/usr/bin/env python3,然後賦予權限chomod a+x hello.py

2.print()函數裏可以輸出多個字符串,用逗號隔開,輸出時,逗號被替換成空格。

3.python大小寫敏感!且縮進最好使用4個空格,最好在文本編輯器裏將Tab自動換爲4個空格。

4.轉義字符\:pint(' I\'m ok.'),如果需要的轉義字符比較多,可以用r` `表示''內部字符串默認不轉義。

5.a='ABC',此語句首先在內存裏創建了'ABC'字符串,然後創建了一個名爲a的變量,並指向'ABC'。

6.除法有兩種,一是/,而是//。/結果是浮點數,//結果是整數。

7.ASCII編碼和Unicode編碼的區別:ASCII編碼是1個字節,而Unicode編碼通常是2個字節。爲了節約空間,UTF-8編碼把一個Unicode字符根據不同的數字大小編碼成1-6個字節,常用的英文字母被編碼成1個字節,漢字通常是3個字節,只有很生僻的字符纔會被編碼成4-6個字節。可以看出,ASCII實際上可以被看成是UTF-8的一部分,實現了向下兼容功能。 可見,以Unicode或者UTF-8編碼時,可以支持多語言,而後者可實現空間壓縮,更適合於傳輸。讀到內存裏的數據一般以Unicode編碼,而存在磁盤裏的數據一般以UTF-8編碼。

8.爲了保證中文不亂碼,在開頭應加入# -*- coding: utf-8 -*-,統一以UTF-8格式進行編碼。

9.list列表,符號[],內容可增可減,索引號從0開始,索引號-1表示最後一個元素,類似可倒推-2、-3等,常用方法:append()、pop()、insert(),並且,元素的數據類型也可以不同,甚至包含另一個list。

10.tuple元組,符號(),內容不可更改,其它的跟list的方法一樣。要注意的是,當定義只有一個元素的tuple時,必須t=(1,),逗號不能少,不然t會被賦值整數1。特殊情況:當tuple有list元素時,這個list裏的元素是可變的。

11.input()輸入進來的始終是字符串,可以使用int(str)方法將字符串轉爲整數。

12.for...in...循環可以依次把list或者turple裏的每一個元素給迭代出來。range(n)生成的是從0到n-1的數,list(range(n))可將生成的序列轉爲list。

13.print打印語句要注意,引用變量打印,用的是%,例如print("Hello,%s!" % name)

14.python內置字典dict,其他語言也叫map,使用鍵值對(key-value)形式存儲,它是根據key計算出value的內存地址,可以直接取得value,所以速度非常快。要往dict里加數據,可以直接d[key]=value這種形式自動插入。但如果讀取d[key]時,key不存在,那麼就會報錯,這時可以通過get方法返回一個默認值,d.get(key,-1)。要注意的是,key必須是一個不可變對象,用list做key就會報錯。另外,dict內部存放的順序和key放入順序是沒有關係的。缺點是,內存佔用過多。

15.set與dict類似,也是一組key的集合,但不存儲value。由於key不能重複,所以,在set中,沒有重複的key。set可以看成數學意義上的無序和無重複元素的集合,因此,兩個set可以做數學意義上的交集&、並集|等操作。

16.對於不變對象來說,調用對象自身的任意方法,也不會改變該對象自身的內容。相反,這些方法會創建新的對象並返回,這樣,就保證了不可變對象本身永遠是不可變的。例如對str對象進行方法操作,其不會改變本身str,而是返回一個新的被操作後的str。



查看原文:http://www.wyblog.cn/2016/11/20/python%e5%9f%ba%e6%9c%ac%e7%9f%a5%e8%af%86%e7%82%b9%e5%a4%87%e5%bf%98/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章