二、python數據類型使用&字符編碼
一、二進制
二進制是計算機技術中廣泛采用的一種數制。二進制是用0和1兩個數碼來表示的數。它的基數為2,進位規則是‘逢二進一’,借位規則是‘借一當二’,由18世紀德國數理哲學大師萊布尼茲發現。當前的計算機系統使用的基本是二進制系統,數據在計算機中主要以補碼的形式存儲。
發明計算機的人為什麽要多此一舉的用這種方式來表達數字呢,事實上計算機不像人類這樣智能,CPU是一個包含上百萬個精巧的晶體管的芯片集合,晶體管表達感情的方式很簡單,就是通過高低電壓(有電沒電),低電壓的時候表示0,高電壓的時候表示1,因此計算機理解的就只有0和1.
二進制與十進制轉換
采用除2取余法
128 64 32 16 8 4 2 1 1 1 1 1 1 1 1 1 255 0 0 0 0 1 1 1 1 15
1 1 0 0 1 0 0 0 200
print(bin(8))
ps:十進制轉成八進制print(oct(9))
十進制轉成十六進制
print(hex(16))
二、數字類型使用
可變與不可變類型
- 可變:在值改變的情況,如果id不變,證明就是在修改原值,即可變類型
- 不可變:在值改變的情況,如果id也跟著變,證明根本沒有修改原值,即不可變類型
int基本使用
1.常用操作+內置方法
算數運算,比較運算
2.該類型總結
- 存一個值
- 不可變類型
x=10 print(id(x)) x=11 print(id(x))
float基本使用
1.常用操作+內置方法
算法運算,比較運算
2.該類型總結
- 存一個值
- 不可變類型
x=10.1 print(id(x)) x=11.1 print(id(x))
三、字符串使用
三、一 str基本使用
1.常用操作+內置方法
1.1 按索引取值(正向取+反向取):只能取
msg="hello world" print(msg[1]) print(msg[5]) print(msg[-1]) print(msg[-3])
1.2 切片:從一個大字符串中切除一個子字符串(顧頭不顧尾,步長)
msg="hello world" print(msg[1:3]) print(msg[6:11]) print(msg[6:11:2]) #world #wrd # 倒著取值(了解):註意方向要一致 print(msg[6:]) print(msg[-1:-6:-1]) print(msg[-1::-1]) print(msg[::-1])
1.3 長度len
msg="hello world" print(len(msg)) # 長度是11,索引最大到10
1.4 成員運算in 和not in : 判斷一個子字符串是否存在於一個大字符串中
msg="hello world hello momo" print(‘momo‘ in msg) print(‘world‘ in msg) print(‘hello‘ not in msg) print(not ‘hello‘ in msg)
1.5 移除空白strip
msg=‘ mogu ‘ res=msg.strip() # 默認去除的是字符串左右兩邊的空格 print(msg) print(res) # strip會從左往右開始吃空格,直到碰到一個非空格為止 # 右面相同的原理 #ps:strip並沒有修改原值,是產生一個新值 msg=‘******mo****gu*****‘ print(msg.strip(‘*‘)) msg=‘-&!^%aaaa-!&^%‘ print(msg.strip(‘!-&^%‘))
1.6 切分split :把一個字符串按照某種分隔符切成一個列表
info=‘root:x:0:0:admin user:/root:/bin/bash‘ res=info.split(‘:‘,maxsplit=-1) print(res,type(res)) print(res[0])
l=[‘mogu‘,123,‘chimogu‘]
s1=‘:‘.join(l) #把列表又轉成了字符串(前提是列表中所有元素均為字符串)
print(s1,type(s1))
1.7 循環
while循環取值
1 msg=‘hello world‘ 2 i=0 3 while i < len(msg): 4 print(msg[i]) 5 i+=1
for循環取值
msg=‘hello world‘ for item in msg:
print(item)
1.8 大小寫切換
# 2、lower,upper print(‘aaAbCCC‘.lower()) print(‘aaAbCCC‘.upper())
1.9 判斷以什麽開頭(startswith),什麽結尾(endswith)
print(‘xiaomogu like mogu‘.startswith(‘xiao‘)) print(‘xiaomogu like mogu‘.endswith(‘gu‘))
1.10 格式化輸出format
print(‘my name is %s my age is %s‘ %(18,‘mogu‘)) print(‘my name is {name} my age is {age}‘.format(age=18,name=‘mogu‘)) print(‘my name is {} my age is {}‘.format(18,‘mogu‘)) print(‘my name is {0}{0}{0} my age is {1}‘.format(18,‘mogu‘))
1.11 replace 替換操作
msg=‘my name is xiaomogu,xiaomogu say hello‘ print(msg.replace(‘xiaomogu‘,‘xiaonvhai‘,1))
1.12 isdigit:只有在字符串中包含純數字的情況下結果才為True
print(‘10123‘.isdigit())
1.13 其他了解的知識點
#center,ljust,rjust,zfill 分別對應中央位 左對齊 右對齊 右對齊以0為占位符 print(‘**************%s*************************‘ %‘mogu‘) print(‘mogu‘.center(50,‘*‘)) print(‘mogu‘.ljust(50,‘=‘)) print(‘mogu‘.rjust(50,‘-‘)) print(‘mogu‘.rjust(50,‘0‘)) print(‘mogu‘.zfill(50))
# expandtabs end=‘ ‘ 取消print默認的換行符\n print(‘aaabbbb‘,end=‘ ‘) print(‘cccc‘,end=‘‘) print(‘aaaa\nbbbb‘,end=‘‘) print(‘aaa\tbbb‘.expandtabs(tabsize=3))
#\n 代表換行符 \t 代表tab鍵 (制表符)
三、二 :該類型總結
- 存一個值
- 有序
- 不可變
四、列表使用
list基本使用
list類型轉換的工作原理:list(items)
1、先造一個空列表
2、類似調用了一個for循環,從items裏取出一個值放入空列表中,循環往復直到取幹凈為止
1.常用操作+內置方法
1.1 按索引存取值(正向存取+反向存取):即可以取也可以改
ps:不能根據索引往列表裏新加入值
l=[‘a‘,‘b‘,‘c‘,‘d‘] print(l[3]) print(l[-1]) l[3] = ‘D‘ print(l)
1.2 切片:從一個大列表中切出一個子列表(顧頭不顧尾,步長)
l=[‘a‘,‘b‘,‘c‘,‘d‘] l1=l[1:3] print(l1)
1.3 len 長度
print(len(l))
1.4 成員運算in和not in
names=[‘mogu‘,‘nvhai‘,‘huochai‘,1,3,4] print(4 in names) print(5 not in names)
1.5 追加、插入
##append 追加值(放到末尾) insert(索引,值) l=[‘a‘,‘b‘,‘c‘,‘d‘] l.append(‘aaa‘) print(l) l.insert(0,‘B‘) #[‘B‘, ‘a‘, ‘b‘, ‘c‘, ‘d‘] l.insert(0,‘mogu‘) print(l)
1.6 刪除
l=[‘a‘,‘b‘,‘mogu‘,‘d‘] del l[2] # 非字符串獨有的刪除,是一種通用的刪除方式 del print(l) res=l.remove(‘alex‘) # 單純的刪除,沒有返回值 remove print(l) print(res) #pop 從列表中拿走一個值: # 1、刪除一個元素 # 2、將該元素當做返回值返回 res=l.pop() # 默認從最後一個刪除 print(l) print(res) res=l.pop(2) print(res)
1.7 循環
l=[‘a‘,‘b‘,‘c‘] for item in l: #循環取值 print(item)
1.8 需要掌握的操作
l1=[1,2.3,‘a‘,‘a‘,‘b‘,‘a‘] print(l1.count(‘a‘)) #count 次數 l2=[4,5,6] l1.append(l2[0]) l1.append(l2[1]) l1.append(l2[2])#append到l1的末尾 l1.extend(l2)#extend 把多個值往末尾放 print(l1) l1=[1,2.3,‘a‘,‘a‘,‘b‘,‘a‘] l1.index(‘egon‘) # index 查找 找不到會報錯 print(l1.index(‘a‘,0,3)) names=[‘mogu‘,‘nvhai‘,‘huochai‘] names.reverse() #reverse 將列表翻轉 print(names) nums=[9,3,4,-1,5,100,98] nums.sort() # 默認從小到大排序 sort nums.sort(reverse=True) # 翻轉過來從大到小排序 print(nums)其他需要掌握的操作
1.9 隊列與堆棧
#隊列:先進先出 l=[] # 入隊 l.append(‘first‘) l.append(‘second‘) l.append(‘third‘) print(l) # 出隊 print(l.pop(0)) print(l.pop(0)) print(l.pop(0))隊列
# 堆棧:先進後出 l=[] # 入棧 l.append(‘first‘) l.append(‘second‘) l.append(‘third‘) print(l) # 出棧 print(l.pop(-1)) print(l.pop(-1)) print(l.pop(-1))堆棧
2.總結list
- 存多個值
- 有序
- 可變類型
五、元組使用(不可變列表)
二、python數據類型使用&字符編碼