1. 程式人生 > 其它 >基本資料型別的內建方法~

基本資料型別的內建方法~

目錄:

在日常生活中不同型別的資料具有不同的功能
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 = [666, 'kevin', 'tony', 'jack']

①.修改值
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

下次見~