6.24 學習內容

  • 2022 年 6 月 26 日
  • 筆記

數據類型的內置方法簡介

內置方法可以簡單理解成每個類型的不同用法 使用數據類型的內置方法同樣採用句點符
	數據類型.內置數據用法()
	print(str(12), type(str(12)))  # 12 <class 'str'>
	print(str(123.11), type(str(123.11)))  # 123.11 <class 'str'>
	print(str([1, 2, 3, 4]), type(str([1, 2, 3, 4])))  # [1, 2, 3, 4] <class 'str'>
	print(str({'name': 'jason'}), type(str({'name': 'jason'})))  # {'name': 'jason'} <class 'str'>
	print(str(True), type(str(True)))   # True <class 'str'>
	print(str((1, 2, 3, 4)), type(str((1, 2, 3, 4))))  # (1, 2, 3, 4) <class 'str'>
	print(str({1, 2, 3, 4}), type(str({1, 2, 3, 4})))  # {1, 2, 3, 4} <class 'str'>

	例:'joker'數據內置方法()
		name = 'joker'  # name = 'joker'.數據內置方法()
	如何快速查看數據內置類型 可藉助編輯器自動提示
我們在學習數據內置方法時還會使用一些其他的用法
	例:索引取值,按K取值

整型相關方法

關鍵字(int)
	整型就是整數,用於計算整數 (沒有相關內置方法)
類型轉換
	int(待轉換的數據)
	print(type(int('18')))  # 只能轉換字元串內是是純數字
	print(tpye(int('18a1')))  # 字元串內帶有字母則會報錯
	print(type(int('18.1')))  # 小數點也不行

浮點型相關方法

關鍵字(flaot)
	浮點型用於數學運算(沒有相關內置方法)
類型轉換
	浮點型只能識別一個小數點 是整數時換填充一個小數點 但僅限於一個
	print(float('18')) # 18.0
	print(type(float('18'))) # float
	print(float('18a18')) # 不是小數點則會報錯
	print(float('18.1')) # 可以識別一個小數點
	print(float('18.15.77.88')) # 多個小數點不行
補充知識:python對數字不敏感,很容易出錯 但它還可以做很多事 牛逼的不是它本身 而是它身後的一些牛逼的模組 可以用彌補它的缺點

字元串的相關方法

關鍵字(str)
	類型轉換:可兼容所有的數據值
內置方法:
1.索引取值:取出單個字元 支援負數
	str = 'hello world'
	print(str[1]) # o
	print(str[-1]) # d
	print(str[-2]) # l
2.切片取值:取出多個字元 支援負數 切片取值默認從左往右
	str = 'hello world'
	print(str[0:3] # hel (從索引0的位置開始切到2 顧頭不顧尾)
	print(str[-1:-3]) (切片操作默認從左往右)
	print(str[-1:-4:-1]) #dlr (切片可以通過第三個數來控制從右往左進行切片)
	print(str[-4:-1]) # orl (顧頭不顧尾)
3.間隔/方向
	str = 'hello world'
	print(str[:]) # hello world (所有)
	print(str[::2]) # hlowrd (針對整個字元串 隔一個取一個)
	print(str[0:5:1]) # hello (第三個默認是1 可以不寫)
	print(str[0:5:2]) # hlo (從字元串0到5 隔一個取一個)
4.統計字元串中的字元個數
	str = 'hello world'
	print(len(str)) # 11 (空字元也包含在內)
5.移除字元串首尾的指導字元
	name = ' joker '
	print(len(name)) # 7
	print(name.strip()) len(name) # 5 移除首尾移除只剩5個字元
		res = name.strip()
		.strip('$')可以移除指定的字元 # $$joker$$
		.lstrip('$')可以移除左邊的字元  # $$joker
		rstrip('$')可以移除右邊的字元  # joker$$
	這裡需要主要的是它不是改變原來的值 只是重新創建了一個新的數據 要想永久保存需要重新給它綁定一個名字
6.按照指定的字元切割字元串
	info = 'joker|123|rea'
	res = info.split('|'),(切割字元串後的結果是個列表)
	.split('|',maxspilt=1) # 從左往右 只切一次 ['joker','123|rea']
	
	.rplit('|',maxspilt=1) # 從右往左 只切一次 ['joker|123',rea]
7.字元串的大小相關
	.lower() # 將字母全部轉成大寫
	.upper() # 將字母全部轉成小寫
	.islower() # 判斷字元串中的字母是否全是小寫
	.isupper() # 判斷字元串中的字母是否全是大寫
	需要注意:只能將字母轉換(數字 空格 符號 則不會參與轉換)
8.字元串的格式化輸出
方式1:等價於%s,先把文本編輯好 想要佔位的地方用{} 可以多處佔位 通過變數名.format 格式化輸出
	res1 = 'my name is {},my age is {}'
	print(res1.format('joker',18))
方式2:支援索引取值 並且可以重複使用
	res2 = 'my name is {0},my age is {0}{1}{0}{0}'
	print(res2.format('joker',18))
方式3:通過關鍵字取值 (按K取值) 並且可以重複使用
	res3 = '{name} {name} my name is {name} {name},my age is {age} {age}'
	print(res3.format(name = 'joker', age = 18))
方式4:使用變數名 然後綁定數據值 在使用時將變數名輸入{}內即可 並且也可以重複使用 最推薦使用的一種方式
	name = 'joker'
	age = 18
	print(f'my name is {name},my age is {age}')
9.統計字元串中指定字元的出現次數
	關鍵字(.count)
	str = 'fasfdsfdsffegsdfqadafasadgfdsfs'
	print(str.count('s')) # 7
	print(str.count('f')) # 9
10.判斷字元串開頭或結尾
	關鍵字(.startswith)# 判斷字元串開頭,(.endswith) # 判斷字元串結尾
	str = 'jason say ha ha ha heiheihei'
	print(str.startswith('jason')) # True
	print(str.startswith('a')) # False
	print(str.startswith('ja')) # True
	print(str.endswith('heiheihei')) # True
	print(str.startswith('hei')) # False
	print(str.startswith('i')) # False
可以查找單個字元 也可以查找多個字元 返回來的結果是布爾值
11.字元串的替換
	關鍵字(.replace)
	res = 'lisa lisa lisa SB SB SB'
	print(res.replace('lisa', 'tony')) # tony tony tony SB SB SB 從左往右全部替換
	print(res.replace('lisa', 'tony',2)) # tony tony lisa SB SB SB 從左往右指定替換
12.字元串的拼接
	12.1 字元串支援 + 號拼接
	a = 'hello'
	b = 'world'
	print(a+b) # helloworld
	12.2 字元串支援 * 號重複
	a = 'hello'
	b = 'world'
	print(a * 10)
	12.3 jojo拼接
	print(''.jojo ['hello','world','hh']) # helloworldhh
	print('|'.jojo ['hello','world','hh']) # hello|world|hh
	print('$'.jojo ['hello','world','66']) # 拼接列表中的數據類型必須是字元串 否則會報錯
13.判斷字元串中是否都是純數字
	關鍵字:(.isdigit) 所返回的是布爾值
	print('123'.isdigit()) # Ture
	print('123a'.isdigit()) # False
	print(''.isdigit()) # False
14.查找每個字元的索引值
	關鍵字:(.index)
	res = 'hello,world,lll'
	print(res.index('d')) # 10
	print(res.index('d',0,5))
使用.index 查找索引 如果沒有則會報錯
	關鍵字:(.find)
	res = 'hello,world,lll'
	print(res.find('d')) # 10
	print(res.find('d',0,5))
使用.find 查找索引 如果沒有則返回-1
15.正文相關操作
	關鍵字:(.title) 首字母大寫
	res = 'my name is joker'
	print(res.title()) # My Name Is Joker
	關鍵字:(.capitalize) 只有第一個字母大寫
	res = 'my name is joker'
	print(res.capitalize()) # My name is joker

列表的相關方法

關鍵字:(list)
	整型和浮點型不能夠直接轉換成列表 能夠被 for循環的數據類型都能夠轉換成列表
1.索引取值:可用於負數取法
	l1 = ['jason', 'joker', 'lisa', 'tony','kevin']
	print(l1[0]) # jason
	print(l1[-1]) # kevin
2.切片操作
	l1 = ['jason', 'joker', 'lisa', 'tony','kevin']
	print(l1[:]) # 默認取所有
	print(l1[0:2]) # jason, joker 索引從0到2切片 顧頭不顧尾
	print(l1[-4:-1]) # joker, lisa, tony 默認從左往右 顧頭不顧尾
	print(l1[-1:-4:-1]) # kevin, tony, lisa 第三個數表示從右往左 顧頭不顧尾
3.間隔/方向
	l1 = ['jason','joker','lisa','tony','kevin']
	print(l1[:]) # 默認取所有
	print(l1[-4:-1]) # jason, lisa, tony
	print(l1[0:3]) # jason, joker,lisa
4.統計列表中的數據值的個數
	l1 = ['jason','joker','lisa','tony','kevin']
	print(len(l1)) # 5

image