數值
使用最多的爲整數和浮點,大致和數學使用相同。
整形 int
數據大小限制,依靠硬件條件
在整形數據的運算中,大部和數學運算相同,但存在進制問題,在沒用特殊指明進制時爲10進制,(0b)表示2進制,(0o)表示8進制,(0x)表好似16進制,而十進制向各個進制的轉化函數如下
Bin() 轉爲2進制
oct() 轉爲8進制
hex() 轉爲16進制
布爾型 boolean
python中存在特殊一類,布爾型,由Ture和Flase組成,是特殊的整數類型,其實際意義爲1和0,較多用於判斷最後產生的結果。
浮點型 float
和數學使用的小數類似
使用格式化佔位符規定小數類型
```ruby
{0:.2f}’.format(20)
意義:第一個數字 爲2位小數
注意除法
在python中,存在 \ 和 \ \ ,二者代表意思不同。\爲除法,保留小數單位,\ \爲地板除,最終輸出數據爲最大的小於除法結果的整數,需要進行四捨五入保留結果的方法是round()
Decimal類
和其他語言一樣,在遇到浮點類型運算時,精度可能產生問題,如下:
IN [41]: 1.2+1.33
Out[42]: 2.5300000000000002
python中提供了一個包,Decimal,可以使得數據精度及計算過程精度得以保證
使用:
Decimal(1)
注意:可以傳遞給Decimal整型或者字符串參數,但不能是浮點數據,因爲浮點數據本身就不準確
from decimal import *
Decimal.from_float(12.222)
Decimal
('12.2219999999999995310417943983338773250579833984375')
設定有效數字
from decimal import *
getcontext().prec = 6
Decimal(1)/Decimal(7)
# 結果爲Decimal('0.142857'),六個有效數字
保留小數位數
from decimal import *
Decimal('50.5679').quantize(Decimal('0.00'))
#結果爲Decimal('50.57'),結果四捨五入保留了兩位小數
結果轉化
from decimal import *
str(Decimal('3.40').quantize(Decimal('0.0')))
#結果爲'3.4',字符串類型
字符串
在python中使用 “ ” 進行字符串的定義,字符串屬於序列的一類。可通過字符串完成縮影等操作,但是字符串無法修改對象,智能創建新對象。同時字符串不能原位操作,即不能對其內部字母進行修改
常用函數:
s.replace(‘com’,’co’) 相當於新建立一個對象
s=s.join(a) 將字符串s和a相連
s.spilt(‘,’) 按,切割成列表
s.startwith(“url’) 以…爲開頭
s.endwith 以…爲結尾
s.find(“a”) 找某個字符的位置
len(s) 獲取s的長度
轉義字符
爲了處理無法通過字符實現的操作,通過轉義字符實現
\\ 單斜槓
\’ 單引號
\’’ 雙引號
\n 換行
\b刪除一格
\t 空格
注意,在處理路徑問題時,\的存在有其他含義,容易和轉義字符成矛盾,此時一般使用\表示下一級或者在路徑前方加 r
Path=r ’c:\abc\xas.txt’
格式化字符串
使用{}進行操作
“{NAME}={SALARY}”.FORMAT(NAME=”TOM,SALARY=””MOM)
字符串的加減乘操作
字符串支持加乘操作具體如下:
a="abc"
b=a*3
b
Out: 'abcabcabc'
a="abc"
b=“cbd”
c=a+b
c
Out: 'abccbd'
列表
任意對象集合,可變長度,可變序列
列表的定義:
通過函數list ( ) 或者 [ ] 進行定義
常見函數 :
l.append() 添加1個元素
l.extend([ ]) 將原序列尾部添加一個序列中的元素
l.sort() 排序 正
i.reverse() 排序 反
l.pop() 彈出最後1個元素並刪除
i.index() 返回序列值
i.count() 統計某種元素的個數
del 刪除
注意:
(1) 指定對象是否一致
l1=[1,2,3]
l2=l1
l1[0]=2
在執行完此操作後,l2中的元素也發生變化,如果需l2的元素不發生變化,l2獲得的應該是l1的副本。可使用l1.copy()或者l1[:]獲取
(2)切片操作
l1[a:b:c]
此中的a表示l1切片的起始位置(包括),b表示l1切片的終止位置(不包括),c表示步長
(3)廣播
在序列的運算中,如果運算對象時整個序列,那麼序列中的每個元素都會受到影響
(4)當索引不存在時,無法添加數據,會出現錯誤
l1=[1,2,3]
l1*3
[3,6,9]
字典
一種鍵值對類型數據,又稱哈希表,其特點爲數據順序隨機
字典的定義:
通過函數dict ( ) 或者 [ ] 進行定義
常用函數
d.get(“prive”,0.0) 獲取對應值,如果沒有 不會拋出異常並寫入
emp =dice(name=20,age=20) 通過函數聲明,不需要引號
emp.update(dep) 將dep更新至字典
emp.pop(“a”) 彈出鍵爲a的鍵值並刪除
emp,keys() 獲取鍵
emp.values() 獲取值
注意:
(1)字典結構存貯的數據並無順序一說,可人爲對鍵進行排序
(2)鍵名:不能使用可變的值,如序列等
(3)存在雙重字典表:
emp={"name":{"first":'nmm',"second":"nbb"}}
emp.get('name').get('first') #第一張獲取方法
emp['name'][firsr] #第二章獲取方法
(4)當鍵值對不存在時,可以直接添加
(5)定義字典模型
from collections import namedtuple
dep=namedtuple("name",["a","b"])
a=dep('bb', b="dnakd") #第一個默認第一個,後面的需要指出
元組
任意類型任意嵌套但不可變,位置固定。通過()進行定義
文件數據處理
1 常用函數
fire=open("文件地址") #打開或創建文件
f.read() # 以字符串形式讀出文件,注意是以指針形式記錄,下次讀出爲空
f.readline() #按行讀出
f.readline() #將類容以行爲劃分成序列
f.close() #關閉文件
2 open 函數詳解
open函數後常有2個參數,第一個爲目標文件的地址位置,第二個參數爲文件的打開類型,包括
- r 讀文件,文件只可以讀取,無法修改
- w 寫文件,對文件進行編寫並刪除之前類容
- a 追加,文件原先內容不變,對其進行添加
- b二進制文件 文件爲2進制未見
3 注意
1)中文問題
在文件中直接田間中文會造成亂碼,可在打開文件時
使用以下格式,避免亂碼
ff=open("course.txt",'w',encoding="utf8")
2)Pickle類 :文件保存數據類型
在文件保存時,對需要臨時保存的數據需要保存數據類似時,使用pickle,使用方法如下:、
Pickle
import pickle
f=open("datafile.pkl","wb")
d={"a":1,"b":2}
pickle.dump(d,f) #將類型導入文件'
f.close()
f=open("datafile.pkl",'rb')
f.read
Out[38]: b'\x80\x03}q\x00(X\x01\x00\x00\x00aq\x01K\x01X\x01\x00\x00\x00bq\x02K\x02u.'
data=pickle.load(f) #載入信息並導出
3)文件打開的一般格式:
在日常操作中,打開文件後需要及時關閉不然會產生很多問題。python提供一種方法可以避免此類問題,使用with
With opne(“dada”) as f
在with結束後自動關閉文件