python的變量 類型和存儲

表達式(創(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é)果即便是帶浮點都是一半


屏幕快照 2017-11-19 下午5.06.10.png

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的推演 [ i
2 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)

11其他.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、python 變量和數(shù)據(jù)類型 1.整數(shù) Python可以處理任意大小的整數(shù),當然包括負整數(shù),在Python程序...
    績重KF閱讀 2,012評論 0 1
  • 最近在慕課網(wǎng)學習廖雪峰老師的Python進階課程,做筆記總結(jié)一下重點。 基本變量及其類型 變量 在Python中,...
    victorsungo閱讀 1,937評論 0 5
  • 本節(jié)要介紹的是Python里面常用的幾種數(shù)據(jù)結(jié)構(gòu)。通常情況下,聲明一個變量只保存一個值是遠遠不夠的,我們需要將一組...
    小黑y99閱讀 65,597評論 0 9
  • Python 是一種相當高級的語言,通過 Python 解釋器把符合語法的程序代碼轉(zhuǎn)換成 CPU 能夠執(zhí)行的機器碼...
    Python程序媛閱讀 2,039評論 0 3
  • 致自己的青春 很多當初最美好的回憶,但到后來卻不敢輕易想起,每每想起,就像是再次拿一把刀,將那些還未愈合的傷口再次...
    Mister柒年閱讀 252評論 0 2

友情鏈接更多精彩內(nèi)容