Python學習筆記--Python基礎
本文為廖雪峰Python教程的學習筆記
具體內容,可參考如下連結:
http://www.liaoxuefeng.com/
1. 字串
字串是以單引號’或雙引號”括起來的任意文字。”或”“本身只是一種表示方式,不是字串的一部分。
如果’本身也是一個字元,可以用”“括起來,比如”I’m OK”。
如果字串內部既包含’又包含”,可以用轉義字元\來標識。
Python還允許用r”表示,”內部的字串預設不轉義。但如果字串以\結尾,會報錯。
如果字串內部有很多換行,用\n寫在一行裡不好閱讀,為了簡化,Python允許用”’…”’的格式表示多行內容。多行字串”’…”’還可以在前面加上r使用。
字串為不可變物件,可以通過下標訪問字串特定位置的字元,但不能改變。
2. 空值
空值是Python裡一個特殊的值,用None表示。None不能理解為0,因為0是有意義的,而None是一個特殊的空值。
3. 除法
在Python中,有兩種除法。
一種除法是/,/除法計算結果是浮點數,即使是兩個整數恰好整除,結果也是浮點數;
還有一種除法是//,稱為地板除,兩個整數的除法仍然是整數。
4. 字串和編碼
ASCII編碼是1個位元組。
Unicode編碼把所有語言都統一到一套編碼裡,通常是2個位元組,如果要用到非常偏僻的字元,就需要4個位元組。
UTF-8編碼把一個Unicode字元根據不同的數字大小編碼成1-6個位元組,常用的英文字母被編碼成1個位元組,漢字通常是3個位元組,只有很生僻的字元才會被編碼成4-6個位元組。
在計算機記憶體中,統一使用Unicode編碼,當需要儲存到硬碟或者需要傳輸的時候,就轉換為UTF-8編碼。
例如,用記事本編輯的時候,從檔案讀取的UTF-8字元被轉換為Unicode字元到記憶體裡,編輯完成後,儲存的時候再把Unicode轉換為UTF-8儲存到文;瀏覽網頁的時候,伺服器會把動態生成的Unicode內容轉換為UTF-8再傳輸到瀏覽器。
在Python 3版本中,字串是以Unicode編碼的,也就是說,Python的字串支援多語言。
對於單個字元的編碼,Python提供了:
ord()函式獲取字元的整數表示。
chr()函式把編碼轉換為對應的字元。
由於Python的字串型別是str,在記憶體中以Unicode表示,一個字元對應若干個位元組。如果要在網路上傳輸,或者儲存到磁碟上,就需要把str變為以位元組為單位的bytes。
Python對bytes型別的資料用帶b字首的單引號或雙引號表示。’ABC’和b’ABC’,前者是str,後者雖然內容顯示得和前者一樣,但bytes的每個字元都只佔用一個位元組。
encode()函式可以將Unicode表示的字串編碼為指定的bytes,bytes中無法顯示為ASCII字元的位元組用\x##顯示。
#str轉換為ASCII碼
'ABC'.encode('ascii')
#中文轉化為UTF-8,只能用UTF-8編碼為bytes
'哈哈'.encode('utf-8')
decode()函式將bytes變為str。(從網路或磁碟上讀取的位元組流是bytes)
由於Python原始碼也是一個文字檔案,所以,當原始碼中包含中文的時候,在儲存原始碼時,就需要指定儲存為UTF-8編碼。當Python直譯器讀取原始碼時,為了讓它按UTF-8編碼讀取,我們通常在檔案開頭寫上這兩行:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
第一行註釋是為了告訴Linux/OS X系統,這是一個Python可執行程式,Windows系統會忽略這個註釋;
第二行註釋是為了告訴Python直譯器,按照UTF-8編碼讀取原始碼,否則,原始碼中的中文輸出可能會有亂碼。
5. 格式化字串
Python的格式化方式與C語言一致。用%實現。
'Hi, %s, I\'m %d years old.' % ('Mike', 23)
"Hi, Mike, I'm 23 years old."
在字串內部,%s表示用字串替換,%d表示用整數替換,%f表示用浮點數替換,%x表示十六進位制整數,%%來表示一個%。有幾個%?佔位符,後面就跟幾個變數或者值,順序要對應好。如果只有一個%?,括號可以省略。
格式化整數和浮點數還可以指定是否補0和整數與小數的位數:
'%2d-%02d' % (3, 1)
' 3-01'
'%.2f' % 3.1415926
'3.14''
格式化字串的時候,可以用Python的互動式命令列測試,方便快捷。
6. list & tuple
list為有序列表,可以包含不同的資料型別。初始化後可以修改。
L = ['a', 'b']
append(ele)函式追加元素ele到list末尾。
insert(index, ele)函式將元素ele插入到index處。
pop()函式刪除list末尾元素。包含引數index,刪除index處元素。
tuple也為有序列表,一旦初始化就不能修改,指向永遠不變。元素在定義的時候就要確定。因為不可變,所以程式碼更安全。
#定義包含一個元素的tuple,如果沒有,表示數字1
t = (1, )
7. dict & set
dict使用鍵-值儲存,查詢速度快,一個key只能對應一個value。
key必須為不可變物件。
#dict的初始化
d = {'name1': 1, 'name2': 2, 'name3': 3}
d['name4'] = 4
d['name4']
如果key不存在,dict會報錯。通過in語句判斷key是否存在,也可以通過get()方法判斷,如果key不存在,返回None,或者自己指定的值。
#判斷'name1'是否存在
'name1' in d
d.get('name1')
#不存在返回-1
d.get('name1', -1)
set是一組不重複的key的集合。建立set需要提供一個list作為輸入集合。
add(key)方法新增元素到set中。
remove(key)刪除元素。
兩個set可以做交(&), 並(|)運算。
s = set([1,2,3])
s.add(4)
8. 不變物件 & 可變物件
str是不變物件,而list是可變物件。對於不變物件來說,呼叫物件自身的任意方法,也不會改變該物件自身的內容。相反,這些方法會建立新的物件並返回,這樣,就保證了不可變物件本身永遠是不可變的。
例如,當我們對str型別a呼叫a.replace(‘a’, ‘A’)時,實際上呼叫方法replace是作用在字串物件’abc’上的,而這個方法雖然名字叫replace,但卻沒有改變字串’abc’的內容。相反,replace方法建立了一個新字串’Abc’並返回,如果我們用變數b指向該新字串,就容易理解了,變數a仍指向原有的字串’abc’,但變數b卻指向新字串’Abc’了。
相關文章
- Python基礎學習筆記Python筆記
- python基礎學習筆記(一)Python筆記
- python基礎學習筆記(紙質)Python筆記
- Python 3 學習筆記之——基礎語法Python筆記
- Python學習筆記—day1—基礎知識Python筆記
- Python零基礎學習筆記(十五)——list(列表)Python筆記
- Python基礎筆記01-Python基礎Python筆記
- Python零基礎學習筆記(二十)——tuple元組Python筆記
- Python零基礎學習筆記(九)——隨機數Python筆記隨機
- Python零基礎學習筆記(三十)——讀檔案Python筆記
- Python零基礎學習筆記(二十二)——setPython筆記
- python之 前端HTML/CSS基礎知識學習筆記Python前端HTMLCSS筆記
- python之前端HTML/CSS基礎知識學習筆記Python前端HTMLCSS筆記
- Python學習筆記-基礎篇(26)-Python建立並寫入word文Python筆記
- Python零基礎學習筆記(三十五)——記憶體修改Python筆記記憶體
- python基礎學習Python
- python基礎筆記1Python筆記
- Python零基礎學習筆記(二十一)——dict字典Python筆記
- Python零基礎學習筆記(四十)——datetime和CalendarPython筆記
- Python零基礎學習筆記(二十三)——迭代器Python筆記
- Python零基礎學習筆記(二十四)——函式Python筆記函式
- python學習筆記(1)--《python基礎教程》第1章內容總結Python筆記
- python學習筆記Python筆記
- 【學習筆記】python筆記Python
- CSS 基礎學習筆記CSS筆記
- node基礎學習筆記筆記
- Web基礎學習筆記Web筆記
- Redis基礎學習筆記Redis筆記
- Shell 學習筆記 基礎筆記
- Oracle基礎學習筆記Oracle筆記
- java基礎學習筆記Java筆記
- 3.23筆記(python基礎)筆記Python
- python 基礎筆記——常用模組Python筆記
- Python 基礎筆記——正則Python筆記
- Python基礎學習篇Python
- python基礎學習2Python
- python基礎學習1Python
- Python List 基礎學習Python