基本資料型別的內建方法~
目錄:
在日常生活中不同型別的資料具有不同的功能
eg:表格資料檔案具有處理表格的各項功能(透視表 圖形化 公式計算)
視訊資料檔案具有快進 加速等各項功能
...
1.整型int
型別轉換
方式在程式碼中展示出來的效果就是 名字()
eg:
res = '123'
print(type(res)) 結果是:字串str
res = int(res) 轉換成整型
print(type(res)) 結果是整型
int在做型別轉換的時候 只能轉換純數字
int('123.123') # 報錯 不識別小數點
int('tony 123') # 報錯 不識別除數字以外的資料
int其實還可以做進位制數轉換
print(bin(100)) # 將十進位制的100轉換成二進位制 0b1100100
print(oct(100)) # 將十進位制的100轉換成八進位制 0o144
print(hex(100)) # 將十進位制的100轉換成十六進位制 0x64
0b開頭為二進位制數 0o開頭為八進位制數 0x開頭為十六進位制數
print(int('0b1100100', 2)) 結果是: 100
print(int('0o144', 8)) 結果是: 100
print(int('0x64', 16)) 結果是: 100
2.浮點型float
型別轉換
res = '123.23'
print(type(res)) 結果是字串str
res = float(res) 轉成浮點型
print(type(res)) 結果是浮點型float
print(float('123')) 整數轉換出來會加小數點,即:123.0
3.字串str
型別轉換
print(str(123))
print(str(123.21))
print(str([1, 2, 3, 4]))
print(str({'name': 'jason', 'pwd': 123}))
print(str((1, 2, 3, 4)))
print(str(True))
print(str({1, 2, 3, 4}))
所有型別的值都可以轉成字串
基本用法
res = 'hello world!'
①.索引取值
print(res[1]) 返回結果是: e
②.切片操作 顧頭不顧尾
print(res[1:4]) 返回結果是:ell
③.步長操作
print(res[1:10]) 返回結果是:ello worl
print(res[1:10:2]) 返回結果是:el ol
④.索引支援負數
print(res[-1]) 返回結果是:!
print(res[-5:-1]) 返回結果是: orld 顧頭不顧尾
print(res[-5:-1:-1]) 方向衝突 沒有結果
⑤.統計字串內部字元的個數
print(len(res)) # 12
6.移除字串首尾指定的字元 strip()
name = ' jason '
print(name, len(name))
print(len(name.strip())) 預設移除首尾的空格
name1 = '$$jason$$'
print(name1.strip('$')) 移除首尾$返回結果是: jason
print(name1.lstrip('$')) 移除左邊$返回結果是: jason$$
print(name1.rstrip('$')) 移除末尾$返回結果是: $$jason
⑦.按照指定的字元切割字串 split() 該方法的結果是一個列表
res2 = 'jason|123|18'
print(res2.split('|')) 移除|返回結果是: ['jason', '123', '18']
print(res2.split('|', maxsplit=1)) 移除左邊第一個|返回結果是: ['jason', '123|18'] maxsplit用於控制切割的次數
print(res2.rsplit('|', maxsplit=1))移除末尾第一個|返回結果是:['jason|123', '18']
如何檢視資料型別都有哪些內建方法?
句點符(.)可以檢視資料型別內建方法
⑧大小寫
res = 'JasOn123 JAson'
res1 = 'jason123'
轉全大寫
print(res.upper()) 返回結果是: JASON123 JASON
轉全小寫
print(res.lower()) 返回結果是: jason123 jason
實際案例:圖片驗證碼忽略大小寫
思路:全部轉大寫或者小寫再比對
判斷是否是純大寫 返回結果是:True或False
print(res.isupper())
print(res1.isupper())
判斷是否是純小寫
print(res.islower())
print(res1.islower())
判斷字串是否以指定的字元開頭或者以指定字元結尾
s1 = 'jason 123 newapeman heiheihei oldgirl'
判斷字元是否以指定的字元開頭
print(s1.startswith('tony')) 返回結果是: False
print(s1.startswith('j')) 返回結果是: True
print(s1.startswith('jas')) 返回結果是: True
print(s1.startswith('jason')) 返回結果是: True
判斷字元是否以指定的字元結尾
print(s1.endswith('oldboy')) 返回結果是: False
print(s1.endswith('l')) 返回結果是: True
print(s1.endswith('rl')) 返回結果是: True
print(s1.endswith('oldgirl')) 返回結果是: True
⑨格式化輸出
⑨.①.與使用者互動 佔位符 %s %d
⑨.②.字串內建方法 format()
第一種玩法 相當於%s佔位符
s2 = 'my name is {} my age is {}'
print(s2.format('jason',18)) # my name is jason my age is 18
第二種玩法 大括號內寫索引值可以打破順序 並且可以反覆使用相同位置的資料
s3 = '{1} my name is {1} my age is {0} {0} {0} {1} {1}'
print(s3.format('jason', 18))
第三種玩法 大括號內寫變數名
s4 = '{name1} my name is {name1} my age is {age} {name1} {name1}'
print(s4.format(name1='jason', age=18))
佔位符與format結合具體情況挑選使用!!!
⑩字串的拼接
方式1 字串相加
print('hello' + 'world')返回結果是:helloworld
方式2 join方法
l = ['jason', 'tony', 'kevin', 'tom', 'jack']
使用+號方法:
print(l[0] + '|' + l[1] + '|' + l[2] + '|' + l[3] + '|' + l[4])
用join
print('|'.join(l))
返回結果是:jason|tony|kevin|tom|jack
易錯題:
l1 = ['jason', 123, 'tony']
print('$'.join(l1)) 返回結果是:報錯
join只能拼接字串,123是整型。
在python中,不同的資料型別之間無法直接操作
解決方法:給123新增引號
eg:
l1 = ['jason', '123', 'tony']
⑪替換字串中指定的字元
s4 = 'my name is tony tony tony my age is 18'
替換字串中所有的tony>>>jason
print(s4.replace('tony', 'jason')) 返回結果是: my name is jason jason jason my age is 18
替換指定個數的文字
print(s4.replace('tony', 'jason', 1)) 返回結果是: my name is jason tony tony my age is 18
⑫判斷字串中是否是純數字
s5 = 'jason123'
print(s5.isdigit()) 返回結果是: False
s6 = '123'
print(s5.isdigit()) 返回結果是: True
以下內容瞭解即可
1.字型格式相關
s5 = 'my name is jason my age is 18'
print(s5.title()) # My Name Is Jason My Age Is 18 所有單詞首字母大寫
print(s5.capitalize()) # My name is jason my age is 18 開頭的單詞首字母大寫
s6 = 'JaSOn iS Sb'
print(s6.swapcase()) # jAsoN Is sB 大小寫互換
s7 = 'my name is jason sb sb sb somebody sb sb sb sb sone sb sone'
print(s7.find('s')) # 檢視指定字元對應的起始索引值 從左往右找到一個就結束
print(s7.find('sb')) # 檢視指定字元對應的起始索引值 從左往右找到一個就結束
print(s7.find('w')) # 找不到返回-1
print(s7.index('w')) # 找不到直接報錯
# 統計某個字元出現的次數(記憶)
print(s7.count('sb'))
s8 = 'jason'
print(s8.center(15, '$')) # 居中展示
print(s8.ljust(15, '&')) # 左對齊 jason&&&&&&&&&&
print(s8.rjust(15, '*')) # 右對齊 **********jason
name = 'tony123'
name.isalnum() # 字串中既可以包含數字也可以包含字母
name.isalpha() # 字串中只包含字母
4.字串
列表內一般都會儲存相同資料型別的資料
型別轉換 資料型別關鍵字(需要轉換的資料)
數字不能拆分
print(list(123)) 返回結果是: 報錯
print(list(123.21)) 返回結果是: 報錯
print(list('hello')) 字串的返回結果是: ['h', 'e', 'l', 'l', 'o']
print(list({'username': 'jason', 'pwd': 123}))返回結果是:只出現K值 ['username', 'pwd']
print(list((11, 22, 33))) 元祖的返回結果是: [11, 22, 33]
print(list({11, 22, 33})) 集合的返回結果是: [33, 11, 22]
'''list關鍵字可以將支援for迴圈的資料型別轉換成列表'''
①.修改值
name_list[0] = 666
print(name_list) 返回結果是: [666, 'kevin', 'tony', 'jack']
②.新增值
方式1 尾部追加(將括號內的資料當成一個整體追加到列表末尾)
name_list.append(666)
print(name_list) 返回結果是: ['jason', 'kevin', 'tony', 'jack', 666]
name_list.append([666, 777, 888, 999])
print(name_list) 返回結果是: ['jason', 'kevin', 'tony', 'jack', [666, 777, 888, 999]]
方式2 插入元素(將括號內的資料當成一個整體插入到索引指定位置)
name_list.insert(0, 'heiheihei')
print(name_list) 返回結果是: ['heiheihei', 'jason', 'kevin', 'tony', 'jack']
name_list.insert(2, 'hahaha')
print(name_list) 返回結果是: ['jason', 'kevin', 'hahaha', 'tony', 'jack']
name_list.insert(0, [11, 22, 33])
print(name_list)
方式3 擴充套件元素(相當於for迴圈+append操作)
name_list.extend([111, 222, 333, 444, 555])
print(name_list) 返回結果是: ['jason', 'kevin', 'tony', 'jack', 111, 222, 333, 444, 555]
l1 = [111, 222, 333, 444, 555]
l2 = [1, 2, 3, 4, 5]
l1.append(l2) # 將l2中元素追加到l1末尾
print(l1)
列表刪除資料
刪除資料
方式1 通用刪除方式
del name_list[1] # 根據索引直接刪除 del是關鍵字delete縮寫
print(name_list) 返回結果是:['jason', 'tony', 'jack']
方式2 remove() 括號內指定需要移除的元素值
name_list.remove('jason')
print(name_list)
print(name_list.remove('jason'))返回結果是: None(預設不會產生實際結果)
方式3 pop() 括號內指定需要彈出的元素索引值 括號內如果不寫引數則預設彈出列表尾部元素
name_list.pop(1)
print(name_list)
name_list.pop()
print(name_list)
print(name_list.pop())返回結果是: jack
5.可變型別與不可變型別
s5 = 'my name is jason my age is 18'
print(s5.title()) 打印出來的是操作之後的結果 # My Name Is Jason My Age Is 18
print(s5) 返回結果是: my name is jason my age is 18
name_list = ['jason', 'kevin', 'tony', 'jack']
print(id(name_list))
print(name_list.remove('jason')) 返回結果是:None
print(name_list) 返回結果是: ['kevin', 'tony', 'jack']
print(id(name_list)) 同上述的print(id(name_list) 記憶體地址一樣,值已經改變。
可變型別與不可變型別!!!
可變型別 >>> 列表
值改變 記憶體地址不變 修改的是原值
不可變型別 >>> 整型 浮點型 字串
值改變 記憶體地址肯定變 其實是產生了新值
name_list = ['jason', 'kevin', 'tony', 'jack']
print(id(name_list))
name_list.append(123) 末尾增加123
print(id(name_list)) 記憶體地址還是同print(id(name_list))
篇幅過長~
end
下次見~