Python 基礎
整數
可以處理任意大小的數,包括負整數
十六進制數用0x
前綴表示
浮點數
科學計數法表示時10可以用e來表示
如:
1.23e9
12.3e8
字符串
如果串內既包含‘又包含“,可用轉義字符\來標識
'I\'m \"OK\"'
#輸出結果:
#I'm OK
\n
換行
\t
製表符
\\
爲\
#'''...'''的格式可以表示多行內容
'''
123
456
789
'''
#輸出
#123
#456
#789
布爾值
True
和 False
可以用and
、or
和not
運算
數字0表示False
除0外其他數字表示Ture
空值
None
表示空值
None
不能理解爲0
變量
變量名必須是大小寫英文、數字和下劃線__的組合,且不能用數字開頭
同一個變量可以反覆賦值,可以是不同類型的變量
變量類型本身不固定,爲動態語言
常量
不能變的量
常用全部大寫的變量名錶示常量
/除法
/除法的結果是浮點數,即使兩個整數恰好整除,結果也是浮點數
10 / 3
#>>>3.3333333333333335
9 / 3
#>>>3.0
//除法,成爲地板除,只取整數部分
10 // 3
#3
9 // 3
#3
字符編碼
不同編碼間的關係:
ASCII編碼和Unicode編碼的區別:ASCII編碼是1個字節,而Unicode編碼通常是2個字節。
本着節約的精神,又出現了把Unicode編碼轉化爲“可變長編碼”的UTF-8
編碼。
UTF-8
編碼根據不同數字大小編碼成1-6個字節,常用的英文字母被編碼成個字節,漢字通常是3個字節,只有很生僻的字符纔會被編成4-6個字節。
如果文本中含有大量的英文字符,用UTF-8
就能節省空間。
在計算機內存中,統一使用Unicode
編碼,當需要保存到硬盤或者需要傳輸時,就轉換爲UTF-8
編碼。
瀏覽網頁的時候,服務器會把動態生成的Unicode
內容轉換爲UTF-8
在傳輸到瀏覽器。
Python的字符串:
Python3中,字符串是以Unicode
編碼的
對於單個字符,ord()
函數獲取字符的編碼整數表示,chr()
函數把編碼裝換爲對應的字符
ord('A')
ord('中')
chr(66)
chr(25991)
#65
#20013
#'B'
#'文'
Python中對str
進行保存或傳輸時,需要把str
變爲以字節爲單位的bytes
bytes
類型的數據用帶b
前綴的單引號或雙引號表示
a = b'ABC'
bytes
的每個字符只佔一個字節
str
通過encode()
方法可以編碼爲指定的bytes
'ABC'.encode('ascii')
#b'ABC'
純英文用ASCII
編碼爲bytes
,含有中文用UTF-8
編碼
bytes
裏無法轉爲ASCII
的字節用\x##
顯示
反過來讀取字節流時,需要將bytes
轉爲str
,用到decode()
方法
b'ABC'.decode('UTF-8')
#'ABC'
遇到無法解碼字節時會報錯
如果bytes
中只有一小部分無效的字節,可以在decode()
中傳入errors='ignore'
參數忽略錯誤的字節
len()
函數可以計算str
中的字符個數,bytes
中的字節數
len('ABC')
len('中文')
len(b'ABC')
len('中文'.encode('UTF-8'))
#3
#2
#3
#6
UTF-8
編碼讀取,我們通常在文件開頭寫上這兩行:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
第一行註釋是爲了告訴Linux/OS X系統,這是一個Python可執行程序,Windows系統會忽略這個註釋;
第二行註釋是爲了告訴Python解釋器,按照UTF-8
編碼讀取源代碼,否則,你在源代碼中寫的中文輸出可能會有亂碼。
格式化字符串
在Python中,採用的格式化方式和C語言是一致的,用%
實現
%x
十六進制整數
如果你不太確定應該用什麼,%s
永遠起作用,它會把任何數據類型轉換爲字符串
%%
用來轉義表示%
format()
方法(不常用,還很麻煩)
它會用傳入的參數依次替換字符串內的佔位符{0}
、{1}
'Hello, {0}, 成績提升了 {1:.1f}%'.format('小明', 17.125)
#'Hello, 小明, 成績提升了 17.1%'