基石爲勤能補拙的迷宮之旅——第五天(Python基本數據類型及內置方法)

一、數據可變不可變類型

  1. 可變類型:值改變,但是id不變,證明就是在改變原值,是可變類型
l = ['a', 'b']
print(id(l))
l[0] = 'A'
print(l)
print(id(l))
  1. 不可變類型:值改變,但是id跟着變化,證明就是產生了新的值,是可變類型
x=9
print(id(x))
x=10
print(id(x))

二、數字類型

(一)、整型int

-----------------------基本使用------------------------

1、用途:記錄年齡、等級、數量
2、定義方式

age = 10  #  age=int(10)

3.數據類型轉換:只能將純數字的字符串轉成int

x=int(‘123’)
print(x,type(x))
x = int('12.3') #  報錯

(二)、浮點型float

-----------------------基本使用------------------------

1、用途:記錄身高、薪資、體重
2、定義方式

salary = 10.1 #  salary=float(10.1)

3.數據類型轉換:只能將包含小數點的字符串轉成int

x=float(‘3.1’)
print(x,type(x))

----------------------該類型總結----------------------

  1. 存一個值
  2. 不可變

三、字符串類型

-----------------------基本使用------------------------

1、用途:記錄描述性質的狀態
2、定義方式:在單引號,雙引號,三引號內包含一串字符串
msg=“你好” # msg=str(“你好”)
3.數據類型轉換:所有類型都可以被str轉換成字符串類型

res=str([1,2,3])
print(res,type(res))

4.常用操作和內置的方法
    優先掌握的操作:
(1)按索引取值(正向取+反向取) :只能取

msg = 'hello'
print(msg[0],type(msg[0]))	#	h <class 'str'>
print(msg[-1])	#	o	
msg[0]='H'	#   會報錯,無法修改,只能取

(2)切片(顧頭不顧尾,步長)

msg = 'hello world'
msg[0:3]	#	hel    步長默認爲1
msg[:;2]	#	hlowrd		步長設爲2
msg[:]	#	hello world 全取
msg[-1:-12:-1] 	#  反向取 dlrow olleh 初始和結尾(-1,-12)可不寫

(3)長度len

msg = 'hello world'
print(len(msg))	#		11

(4)成員運算in和not in:判斷一個子字符串是否存在於大字符串中

msg = 'mu is nb'
print('nb' in msg)	#		True
print('mu'not in msg)	#		False
print(not ' 'in msg)	#		False

(5)移除空白strip:用來去除字符串左右兩邊的字符,不指定默認去除的是空格

#	he llo	字符中間的空格不能刪除
print('        he llo           '.strip())
#	hello	另一種使用方式
msg = '       world      '
print(msg.strip())
#	moon	指定刪除字符
print('*******moon******'.strip('*'))
 #	moon	指定刪除多個字符
print('*/+****moon***+-**'.strip('*+/-'))

(6)切分split:針對有規律的字符串,按照某種分隔符切成列表

#	結果是['mumoon', '18', 'male'] <class 'list'>
		  mumoon 18
info='mumoon:18:male'
res=info.split(':')
print(res,type(res))
print(res[0],res[1])

#	結果是['get', 'a.txt|33333']	指定分隔次數
cmd='get|a.txt|33333'
print(cmd.split('|',1))

(7)join()
    用:號作連接符號將純字符串的列表拼接成一個字符串’mumoon:18:male’
方法一:

l = ['mumoon', '18', 'male']  
res=l[0]+':'+l[1]+':'+l[2]
print(res)	#	mumoon:18:male

方法二:

res = ':'.join(l)
print(res)	#	mumoon:18:male

(8)循環

for item in 'hello':
    print(item)	#	h
    				e
          			l
            		l
            		o

    需要掌握的操作:
(1)strip,lstrip(刪左),rstrip(刪右)

print('******mumoon***********'.strip('*')) #  mumoon
print('******mumoon***********'.lstrip('*')) #  mumoon***********
print('******mumoon***********'.rstrip('*')) #  ******mumoon

(2)lower(字母變小寫),upper(字母變大寫)

print('AbC123'.lower()) #  abc123
print('AbC123'.upper()) #  ABC123

(3)startswith(以X開頭),endswith(以X結尾)

msg='mumoon is nb'
print(msg.startswith('mu')) #  True
print(msg.endswith('s')) #  False

(4)format的三種玩法

res='my name is %s my age is %s' %('mumoon',18)
print(res)

實現上面的功能我們還可以使用格式化輸出format。

res='my name is {name} my age is {age}'.format(age=18,name='mumoon')
print(res)

res = 'my name is {} my age is {}'.format('mumoon', 18)
print(res)

res = 'my name is {0}{1} my age is {1}{1}{1}{1}'.format('mumoon', 18)
print(res)

(5)split,rsplit

msg='a:b:c:d'
print(msg.split(':',1)) #  ['a', 'b:c:d']
print(msg.rsplit(':',1)) #  ['a:b:c', 'd']

(6)replace(“需要改的值”,“要改成的值”,改的次數)

msg = 'mumoon is mumoon  hahahah'
res = msg.replace('mumoon', 'Hysen', 1)
print(res) #  Hysen is mumoon  hahahah

(7)isdigit:判斷字符串是由純數字組成

print('123123'.isdigit()) #  True
print('123123   '.isdigit()) #  False
print('123123asdf'.isdigit()) #  False
print('12312.3'.isdigit()) #  False

    需要了解的操作:
(1)、find,rfind,index,rindex,count

print('123 ke123ke'.find('ke')) #  4
print('123 ke123ke'.rfind('ke')) #  9
print('123 ke123ke'.index('ke')) #  4
print('123 ke123ke'.rindex('ke')) #  9
print('123 ke123ke'.find('xxxx')) #  返回-1
print('123 ke123ke'.index('xxxx')) #  會報錯
print('123 ke123ke'.count('ke',0,6)) #  1	在0到6區間內尋找出現次數

(2)、center,ljust,rjust,zfill

print('mu'.center(6)) #    mu      默認空格
print('mu'.ljust(6,'*')) #  mu****
print('mu'.rjust(6,'*')) #  ****mu
print('mu'.rjust(6,'0')) #  0000mu
print('mu'.zfill(6)) #  0000mu	只能用0填充

(3)、expandtabs
    改變tab縮進數
(4)、captalize,swapcase,title

print('abcdef dddddd'.capitalize()) #  Abcdef dddddd	第一個單詞首字母大寫
print('abcAef dddddd'.swapcase()) #  ABCaEF DDDDDD  大小寫反轉
print('abcAef dddddd'.title()) #  Abcaef Dddddd	每個單詞的首字母大寫

(5)、is數字系列

num1 = b'4'  # bytes
num2 = '4'  # unicode,python3中無需加u就是unicode
num3 = '四'  # 中文數字
num4 = 'Ⅳ'  # 羅馬數字

    bytes與阿拉伯數字組成的字符串

print(num1.isdigit())
print(num2.isdigit())
print(num3.isdigit())
print(num4.isdigit())

    阿拉伯數字組成的字符串

print(num2.isdecimal())
print(num3.isdecimal())
print(num4.isdecimal())

    阿拉伯數字\中文\羅馬組成的字符串

print(num2.isnumeric())
print(num3.isnumeric())
print(num4.isnumeric())

(6)、is其他

----------------------該類型總結----------------------

  1. 存一個值
  2. 有序
  3. 不可變

三、列表

-----------------------基本使用------------------------

1、用途:按照位置記錄多個值,索引對應值

2、定義方式:在[]內用逗號分隔開多個任意類型的值

l=['a',11,11.3,] 		# l=list(['a',11,11.3,])

3.數據類型轉換:但凡能夠被for循環遍歷的數據類型都可以傳給list,被其轉換成列表

res1=list('hello')
print(res1) #  ['h', 'e', 'l', 'l', 'o']

res2=list(123)
print(res2) #  報錯

res=list({'a':1,'b':2,'c':3}) 
print(res) #  ['a', 'b', 'c']

4、常用操作和內置的方法
    優先掌握的操作:
(1)按索引存取值(正向存取+反向存取):即可存也可以取

l=['a','b','c','d','e']
print(l[0])
print(l[-1])
print(id(l))
l[0]='A'
print(id(l)) #  證明是可變類型

強調:對於不存在的索引會報錯

l[5]='AAAA' #  會報錯

    字典可以添加不存在的Key值以及對應的value

dic={"k1":111}
dic['k2']=2222
print(dic) #  {'k1': 111, 'k2': 2222}

(2)切片(顧頭不顧尾,步長)

l=['a','b','c','d','e']
print(l[1:4])
print(l[::-1])

(3)長度

l=['a','b','c','d','e']
print(len(l)) #  5

(4)成員運算in和not in

l=['a','b','c','d','e']
print('a' in l) #  True

(5)追加與insert

l=['a','b','c','d','e']
l.append('xxx')
l.append('yyy')
print(l) #  ['a', 'b', 'c', 'd', 'e', 'xxx', 'yyy']

l.insert(0,'xxxx')
print(l) #  指定位置添加	['xxxx', 'a', 'b', 'c', 'd', 'e', 'xxx', 'yyy']

(6)刪除

l=['a','bbb','c','d','e']

    del是一種通用的刪除操作,沒有返回值

del l[0]
print(l) #  ['bbb', 'c', 'd', 'e']

dic={'k1':1}
del dic['k1']
print(dic) #  {}

    l.remove(指定要刪除的那個元素),沒有返回值

res=l.remove('bbb')
print(l) #  ['a', 'c', 'd', 'e']
print(l.remove('bbb')) #  報錯

    l.pop(指定要刪除的那個元素的索引),返回剛剛刪掉的那個元素

l=['a','bbb','c','d','e']
l.pop(-1)
res=l.pop(1)
print(l) #  ['a', 'c', 'd']
print(res) #  bbb

(7)循環

l=['a','b','c','d','e']
for item in l:
    print(item)

    需要掌握的操作
(1)clear,append和extend

l=['aaa','bb',345]
l.clear() #  清除列表
l.append([1,2,3]) #  [[1, 2, 3]]		整個列表當做一個元素

不同之處

l.extend([1,2,3]) #  列表中的每個元素取出來,加進去

上面代碼等同下面的功能

  for i in [1,2,3]:
	l.append(i)

(2)reverse:反轉

    只有在類中中所有元素都是同種類型的情況下才能用sort排序

l=[1,3,2]
l.sort() #  [1, 2, 3]

l=['z','d','a']
l.sort()
print(l) #  ['a', 'd', 'z']

----------------------該類型總結----------------------

#存多個值

#有序

#可變

發佈了27 篇原創文章 · 獲贊 16 · 訪問量 4270
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章