1. 程式人生 > >二、python數據類型使用&字符編碼

二、python數據類型使用&字符編碼

abs a10 基數 1.10 cli div bbb 根據 rsquo

一、二進制

  二進制是計算機技術中廣泛采用的一種數制。二進制是用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數據類型使用&字符編碼