資料型別的內建方法上
"""
如何檢視資料型別都有哪些內建方法
句點符(.)
"""
整型int
1.型別轉化int()
res = int(res)
'''int只能轉換純整數,小數不行,不是數字以為的資料也不行'''
2.進位制轉化
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
浮點型float
型別轉化float()
res = float(res)
'''整型可以轉化為浮點型,其他不行'''
字串str
1.型別轉化 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}))
'''所以型別都可以轉化'''
2.索引取值 變數名[]
res = 'hello world!' print(res[1]) # e
3.切片操作 顧頭不顧尾變數名[1:4]
res = 'hello world!' print(res[1:4]) # ell
4.步長操作變數名[1:10:2]
res = 'hello world!' print(res[1:10]) # ello worlprint(res[1:10:2]) # el ol
5.索引支援負數變數名[-1]
res = 'hello world!'
print(res[-1]) # ! 最後一位 print(res[-5:-1]) # orld 顧頭不顧尾 print(res[-5:-1:-1]) # 方向衝突
6.統計字串內部字元的個數 len()
res = 'hello world!'
print(len(res)) # 12
7.移除字串首尾指定的字元.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
8.按照指定的字元切割字串.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']
9.大小寫.upper()大寫.lower()小寫
res = 'JasOn123 JAson' res1 = 'jason123' # 轉全大寫 print(res.upper()) # JASON123 JASON # 轉全小寫 print(res.lower()) # jason123 jason
"""
實際案例:圖片驗證碼忽略大小寫
思路:全部轉大寫或者小寫再比對
"""
old_code = 'JaSon123' print('這是返回給使用者的圖片驗證碼:%s' % old_code) new_code = input('請輸入驗證碼>>>:').strip() if old_code.upper() == new_code.upper(): # 這裡也可以使用lower() print('驗證碼正確') else: print('驗證碼錯誤') # 判斷是否是純大寫 print(res.isupper()) print(res1.isupper()) # 判斷是否是純小寫 print(res.islower()) print(res1.islower())
10.判斷字串是否以指定的字元開頭.startswith()開始 .endswith()結尾
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 # 3.判斷字元是否以指定的字元結尾 print(s1.endswith('oldboy')) # False print(s1.endswith('l')) # True print(s1.endswith('rl')) # True print(s1.endswith('oldgirl')) # True
11.格式化輸出 .format()
# 1.與使用者互動 佔位符 %s %d # 2.字串內建方法 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結合具體情況挑選使用'''
12.字串的拼接.join()
# 方式1 字串相加 print('hello' + 'world') # 方式2 join方法 l = ['jason', 'tony', 'kevin', 'tom', 'jack'] print(l[0] + '|' + l[1] + '|' + l[2] + '|' + l[3] + '|' + l[4]) print('|'.join(l)) l1 = ['jason', 123, 'tony'] print('$'.join(l1)) # 報錯 """必須是字串型別 (在python不同資料型別之間無法直接操作)"""
13.替換字串中指定的字元.replace()
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
14.判斷字串中是否是純數字.isdigit()
s5 = 'jason123' print(s5.isdigit()) # False s6 = '123' print(s5.isdigit()) # True '''實際案例''' guess_age = input('請輸入猜測的年齡>>>:').strip() if guess_age.isdigit(): guess_age = int(guess_age) else: print('你能不能好好輸')
# 瞭解
字型格式相關
.title()所有單詞首字母大寫.capitalize()開頭的單詞首字母大寫.swapcase()大小寫互換
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 大小寫互換
.find()檢視 .index()檢視.count()統計字元出現次數
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'))
.center()居中顯示 .ljust()左對齊 .rjust()右對齊
print(s8.center(15, '$')) # 居中展示 print(s8.ljust(15, '&')) # 左對齊 jason&&&&&&&&&& print(s8.rjust(15, '*')) # 右對齊 **********jason
.isalnum() # 字串中既可以包含數字也可以包含字母
.isalpha() # 字串中只包含字母
列表
1.型別轉化list()
# 列表內一般都會儲存相同資料型別的資料 # 型別轉換 資料型別關鍵字(需要轉換的資料) print(list(123)) # 報錯 print(list(123.21)) # 報錯 print(list('hello')) # ['h', 'e', 'l', 'l', 'o'] print(list({'username': 'jason', 'pwd': 123})) # ['username', 'pwd'] print(list((11, 22, 33))) # [11, 22, 33] print(list({11, 22, 33})) # [33, 11, 22] '''list關鍵字可以將支援for迴圈的資料型別轉換成列表'''
2.修改值列表變數名[索引] = 修改後的變數值
name_list[0] = 666 print(name_list) # [666, 'kevin', 'tony', 'jack']
3.新增值.append().insert().extend()
# 方式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] for i in l2: l1.append(i) # 將l2中元素追加到l1末尾 print(l1)
4.刪除值del 列表變數名[索引] .remove() .pop()
# 方式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