表達式(創(chuàng)建處理對象) => 語句 => 模塊 => 程序
變量
創(chuàng)建: 第一次賦值時生成,
規(guī)則:
-1包含字母數(shù)字下劃線
-2 只能以字母下劃線開頭
-3 不能有空格
-4 避免python關(guān)鍵字和函數(shù)名
-5 簡短且有描述性
-6 區(qū)分1 I 0 o
類型: 變量無類型約束, 類型取決于關(guān)聯(lián)對象
共享引用: 多個變量引用一個對象
-判斷字面量是否相等: ==
-判斷地址是否相同: is
-輸出內(nèi)存地址: id()
-在python內(nèi)存中預留了0到256的int數(shù)據(jù), 當聲明變量引用這些數(shù)字的時候, 他們都指向同一片內(nèi)存,但是超過256, 則不能指向同一片內(nèi)存
import sys
# 某對象被調(diào)用的次數(shù)
sys.getrefcount()
# 數(shù)據(jù)長度的方法python內(nèi)置
len()
對象類型
核心數(shù)據(jù)類型: 數(shù)據(jù)類型之間的轉(zhuǎn)換 str(), list()
1數(shù)字:
特性:
1聲明 賦值 使用
2支持表達式
3顯示: '{0:.2f}'.format(3.3333)
4比較
5相除 / 整型 相除會忽略浮點, 整型和浮點之間想除會議精度高的為準 例如:
print(10 / 4 )
結(jié)果為2, 其實是2.5 只是省略的浮點
// 則會強制轉(zhuǎn)換成整數(shù), 整除結(jié)果即便是帶浮點都是一半

math模塊:
-math.floor(): 向下取整3.X取 3, -3.X取 -3
-math.trunc(): 向 0 去整, 3.X取 3, -3.X取 -3
round(): 四舍五入全局模塊
-int : 無限精度, 只受限于內(nèi)存與計算機配置
十六進制: 0x 使用hex()方法查詢十六進制字面量
八進制: 0o 使用oct()方法查詢八進制字面量
二進制: 0b 使用bin()方法查詢二進制字面量
-float
-Decimal:from decimal import Decimal , 一個模塊可以提高浮點型的精度方法
-Fraction
2字符串(str):
特性:
1'{num}'占位符, 可以用format()方法(格式化字符串)替換, 參數(shù)可以是數(shù)字字符串變量,有幾個占位符, format()就有幾個參數(shù),
2.雙引號包單引號, " ' ", 單引號里邊有單引號需要轉(zhuǎn)義符 \ , ' ' '
3轉(zhuǎn)義符:
換行 \n
退格 \b
tab鍵 \t
4忽略轉(zhuǎn)義符,原始字符串r' '
5三引號(""" ... """):用來在函數(shù)中寫注釋
基本操作: (字符串方法)
1 len()字符串長度
2 可以進行 加法(字符串之間)+ 和乘法(乘以int用于復制字符串)* 的運算
3 選取片段str[0:4], 截區(qū)索引0到4之間的字符不包括后邊的4,str[-1]:選取最后一個,str[:]選取所有字符, str[::2]隔一個字符選一個字符,str[::-1] 翻轉(zhuǎn)字符串
4 ord('c')字符轉(zhuǎn)阿斯克碼 chr(55)阿斯克碼轉(zhuǎn)字符
5 字符串有replace('舊','新')方法, 但不會改變原變量, 需要重新賦值
6 str.startswith('http://')方法, 是否 以 ' ' 開頭, 返回bool
7 str.endswith()方法, 是否以 ' ' 結(jié)尾, 返回bool
8 str.find(), 判斷某個字符是否存在, 返回索引下標,沒找到返回-1,相當于js中的indexOf()
9 格式化, .format()方法![屏幕快照 2017-11-19 下午7.02.53.png]
(http://upload-images.jianshu.io/upload_images/8497957-7077219324010a42.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
10 '分隔符'.join(list): 以''里的分隔符將列表鏈接為字符串(字符串的split('分隔符')可以將字符串分割成數(shù)組, 以' '里的字符串為基準)
3列表(list):
-相當于js中的數(shù)組len()獲得長度, list[]獲取數(shù)據(jù)
-list支持原位修改, list[0] = '修改后'
特性:
1 任意對象的有序集合
2 通過索引下標訪問元素
3 可變長度
4 可變序列, 可以原位改變
列表方法:
1 len(): 列表長度
2 可以進行 +(連接兩個list)
3 通過list()構(gòu)造函數(shù)構(gòu)造出list,如果是 字符串則會把字符串上的每一個函數(shù)字符作為list的一個元素
4 用 in 關(guān)鍵字去檢測某個元素是否存在于list中
5 .append(), 在list后邊添加元素參數(shù)是一個元素 2 代表開二次方, 后邊是3代表開3次方
6 list的推演 [ i2 for i in list ] : 將list里邊的數(shù)開平方后, 重新放在新數(shù)組里
7 通過[1:2]的方式截取list的某段數(shù)據(jù),(還是不包含后邊的)
8 list的乘法 * 是復制里邊的元素, 并不是復制list
9 .extend(), 在list后面添加元素, 參數(shù)是list, 不同于append(), extend()可以添加一個list
10 .sort(), 從小到大排序
11 .reverse(),倒序
12 .pop(), 刪除list的最后一個元素, 返回值為刪除的這個元素
13 del(l[0]) 刪除某個元素, 是全局方法,
14 .index(), 通過元素, 查找其下標索引,參數(shù)是list元素
15 .count(), 查看某元素出現(xiàn)次數(shù),,參數(shù)是list元素
16 .copy(), 賦值list列表返回一個list的復制版本
# 因為list是引用類型, 并且可以原位改變so,
l1 = [1,2,2,23,4];
l2 = l1;
這樣賦值, 當l2改變的時候, l1也會跟著改變, 這個特性有些時候是需要的, 當不需要時, 有兩種解決方案:
l2 = l1[:] 和
l3 = l1.copy()
4字典表(dict):
-相當于js中的json,key可以使變量,不可以用.去訪問數(shù)據(jù), get(key, [value])獲取索引的value(如果沒有此key,可以有第二個可選參數(shù),作為默認value)和 dict[]方式,
特性:
支持原位改變
dict的key必須是不支持原位改變的元素, 可以使字符串和元祖
支持嵌套
聲明方式:
d = dist(name='kay',do='love',lover:'snowin')
dict方法:
1 .get();第一個參數(shù)為dict的key, 第二個參數(shù)為一個value,當key沒有對應的val時候,可以返回, 若key有val則忽略第二個參數(shù)
2 .update(),參數(shù)哦為一個dist, 可以合并兩個dist
3 .pop(key),刪除某個key的value,并返回這個被刪除的value
4 .keys(), 將dict的key統(tǒng)計到一個類list中不支持排序
5 .values(), 將dict的value統(tǒng)計到一個類list中,不支持排序
6 .items(), 將dict的各組key value整合成一個tuple為元素的數(shù)組
7 dict的排序1,sorted(d.keys()) 并循環(huán), 2 list(d.keys()).sort() 并循環(huán)
5元祖(tuple):
-類似于list, 但包裹在()中
特性:
任意對象的有序集合
通過下標訪問
屬于"不可變"類型
長度固定, 任意類型,任意嵌套
t = (40)無法生成元祖類型, 需要這么寫: t = (40,)
元祖之間可以 +
方法:
.index(val);檢索下標
.count(val), 統(tǒng)計某個元素的數(shù)量
namedtuple:
引入模塊:from collections import namedtuple
yg = namedtuple('yg',['name','age','gongzi']);'name'的值就是'yg'
kay = yg('kay',age=30,gongzi=99999);
6文件(file):
全局方法:file = open('文件名', mode)來讀取本地文件,
mode(str)包含: r:打開文件, w:寫入文件, a: 寫入不替換(添加), b: 二進制文件, +: 可讀寫
方法:
read():讀取所有的內(nèi)容
readline(): 讀取第一行的內(nèi)容
readlines(): 讀取所有行的內(nèi)容, 集合為一個數(shù)組
close(): 關(guān)閉文檔
pickle模塊存取python對象: .dump(data, file)方法存入python對象為二進制, .load(file)方法, 讀取并還原python對象
with open('XXX.txt') as f;
for line in f.readlines()
print(line)
這種方式, 在跳出縮進以后, 就會自動關(guān)閉文檔, 不用再寫.close()
7集合(set):
序列:
可變序列: list
不可變序列: str , tuple ,字節(jié)數(shù)組
映射: 字典表 dict
集合:
8布爾(Boolean): bool其實就是int類型可以進行運算
屏幕快照 2017-11-19 下午6.33.31.png

-True: 就是 1 ,
-False: 就是 0
9空(none):
10程序單元:
-函數(shù)(function)
-模塊
-類(class)