python筆記1
阿新 • • 發佈:2021-08-08
1.編碼和解碼
name="劉勳"
(1)編碼:就是把str的資料型別轉為bytes的資料型別的過程,使用到的關鍵字是encode
str_byte=name.encode("utf-8")
print('編碼:',str_byte)
print(type(str_byte))
(2)解碼: 把bytes的資料型別轉為str的資料型別的過程,使用到的關鍵字是decode
byte_str=str_byte.decode("utf-8")
print('解碼:',byte_str)
print(type(byte_str))
2.字串
str1="hello world"
str2="HELLO WORLD"
檢視物件有哪些方法dir,print(dir(str1))
(1)islower():判斷字串是否是小寫
print('判斷str1是否是小寫:',str1.islower())
(2)isupper():判斷字串是否是大寫
print('判斷str1是否是大寫:',str1.isupper())
(3)upper():把字串小寫轉為大寫
print('把小寫轉為大寫:',str1.upper())
(4)lower():把字串大寫轉為小寫
print('把大寫轉為小寫:',str1.lower())
(5)replace():把一個字串替換為另一個字串
print('把world替換為python:',str1.replace("world","python"))
(6)字串拆分後,就會把字串從str型別轉為list型別,splite()
str_list=str1.splite(' ')
print(str_list)
print(type(str_list))
(7)字串的合併,也就是join的方法,是把lisst轉為str的過程,join()
#str_list=["hello","python"]
list_str='_'.join(str_list)
print(list_str)
(8)消掉字串後面的空格
str3="hi "
print(str3.strip())
(9)startwith():字串是以什麼開頭;
endswith():字串是以什麼結束;
index():獲取字串i的索引資訊
str4="hi python"
print("以什麼開頭:",str4.startswith("hi"))
print("以什麼結束:",str4.endswith("hh"))
print("獲取i的索引資訊:",str4.index('i'))
(10)對字串進行迴圈
str5="我的中國心"
for item in str5:
print(item)
3.字串的判斷
str1="無涯"
str2="無涯"
str3=str2
(1)==:型別與內容一致,那麼兩個物件是相等的。主要比較的是內容和具體的資料型別
if str1==str2:
print('pass')
(2)is:is比較的是兩個物件的記憶體地址(隱含了型別與內容一致)。比較兩個物件的記憶體地址
if str2 is str3:
print('兩個物件的記憶體地址是一致的')
(3)in:比較的是內容包含,也暗含了資料型別,因為比較首先前提是資料型別是一致的
str4="無涯博雅教育科技"
if str2 in str4:
print('str4包含了str2的內容')
(4)index是索引,item是迴圈的內容,enumerate是獲取的索引資訊
str1="無涯教育"
for index,item in enumerate(str1):
print(index,item)
if index==1:
print('天涯海角')
4.列表的幾種操作方法
list1=[1,8,10,"Go",8,"Python"]
list3=[".NET"]
(1)append:新增元素到最後一位
list1.append('佩奇')
print(list1)
(2) insert:按照索引資訊新增
list1.insert(0,'測試開發')
print(list1)
(3)copy:複製
list2=list1.copy()
if list1==list2:
print('copy後的內容是一致的')
print(list2)
(4)index:獲取物件的索引資訊
print('獲取10的索引資訊:',list1.index(10))
(5)pop:刪除列表中的最後一位,並且把刪除的元素返回來
print('刪除最後一位:',list1.pop())
(6) remove:可以刪除任何一位
list1.remove(10)
print('remove可以指定刪除的元素:',list1)
(7) count:物件有幾位
print('count指獲取的物件有幾個:',list1.count(8))
(8)extend:兩個列表的合併
list1.extend(list3)
print('合併後的結果資訊:',list1)
(9)reverse:用於將列表中元素進行反向操作,即逆序排序
list4=[90,9,18,5,88,32,45]
list4.reverse()
print(list4)
(10)sort:列表的排序
list4.sort()
print('排序後的結果資訊:',list4)
5. 元組
(1)定義: List是可變的,tuple是不可變的。但是tuple裡面的物件內容是可變的,這點需要特別注意。
當tuple裡面的物件並且只有一個的時候,記得需要加,如果不加的話,就不再是tupled的資料型別,具體案例程式碼如下:
Lists=[80,"hello","world","love"]
***切片操作如下:
(2)元組中的lists[0:2]:獲取到元組的前兩位元素
Print('只獲取到前兩位元素:',lists[0:2])
(3)lists[-1]:獲取到元組的最後一位元素
Print('獲取最後一位:',lists[-1])
(4)lists[2:4]:獲取到元組的最後兩位元素
Print('獲取最後兩位:,lists[2:4])
(5)index:元組獲取所有資訊的方法
Tuple1=("go","python")
Print('獲取索引資訊:',tuple1.index("python"))
6.字典
dict1={"name":"liuxun","age":"22","city":"hanzhong","work":"測試開發工程師"}
(1)字典的key值獲取方法
print(dict1.get("name"))
print(dict1['name'])
(2)字典的合併
dict2={"salary":"2300"}
dict1.update(dict2)
print(dict1)
(3)sorted()排序
print('根據key值來進行排序:',dict(sorted(dict1.items(),key=lambda item:item[0])))
print('根據value值來進行排序:',dict(sorted(dict1.items(),key=lambda item:item[1])))
print('獲取所有key值:')
(4)對字典進行迴圈
for key in dict1.keys():
print(key)
for value in dict1.values():
print(value)
print('對字典進行迴圈:\n')
for key,value in dict1.items():
print(key,':',value)
(5)獲取字典裡的值
datas={"data":[{"name":"wuya","age":[{"salary":1009}]}]}
print('獲取name的值:',datas['data'][0]['name'])
print('獲取age的值:',datas['data'][0]['age'][0]['salary'])
7.函式
(1)形式引數:形式引數只有在函式進行被呼叫的時候才會在記憶體中分配記憶體單元,在呼叫結束後,即刻釋放所分配的記憶體單元。所以說,形式引數只有在函式內部是有效的
(2)實際引數:實際引數就是函式在被呼叫的時候,賦予形式引數具體的值,也就是實際引數
username和password就是形式引數;"liuxun"和"0223"就是實際引數
def login(username,password):
if username=='liuxun' and password=='0223':
print('登入成功')
else:
print('賬戶或密碼錯誤')
login(username='liuxun',password='0223')
(3)*:元組;**:字典
def func(*args,**kwargs):
print('args',args)
print('args的型別:',type(args))
print('kwargs',kwargs)
print('kwargs的型別:',type(kwargs))
func(("go","python"))
func([1,2,3])
(4) 動態引數:1.當形式引數的個數不確定
2.當形式引數的資料型別不確定
func(name='liuxun',age='22',sex='girl',salary=2500)
(5)用函式返回值把函式與函式之間或者方法與方法之間建立一層函式關係
一個函式,不管是否寫return的關鍵字,函式都是有它的返回值的, 如果在定義的函式裡面沒有寫return的關鍵 字,
那麼函式的返回值為None,如果寫了,函式的返回值就是return後面的內容。同時需要說明的是一個函式, 可以有N個返回值。
def login(username='liuxun',password='0223'):
if username=='liuxun' and password=='0223':
return 'liuxun0223'
else:
print('賬戶或密碼錯誤')
#token既可以做引數引數,也可以做函式方法
def profile(token):
if token=='liuxun0223':
print('歡迎檢視個人主頁')
else:
print('請登入您的賬戶資訊')
profile(token=login())
(6)區域性變數和全域性變數
在函式裡面定義的變數是區域性變數,而在python程式開始定義的變數是全域性變數,全域性變數作用域是整個函式,
而區域性變數的作用域僅僅是函式而已,當局部變數與全域性變數的名字是一樣的時候,在函式內部,區域性變數是第一優先順序,而函式外,全域性變數是第一優先順序
name="劉勳"
def func():
global name
name='liuxun'
print(name)
(7)內部函式(python顯示器自帶的函式方法)
1)chr:數字轉為字母;2)ord:字母轉為數字
import random
def sign():
lists=[]
'''生成驗證碼的函式'''
for item in range(10):
r=random.randrange(9,99)
lists.append(chr(r))
print(''.join(lists))
sign()
list2=[1,2,3,4,5,6,7,8,9,10]
list4=[]
for item in list2:
list4.append(item+10)
print(list4)
(8)filter過濾
def funFilter(a):
if a>2:
return True
print(list(filter(funFilter,list2)))
(9)lambda匿名函式
a=lambda x,y:x+y
print(a(4,5))
print(list(filter(lambda item:item>2,list2)))
(11)map內建函式:將func作用於seq中的每一個元素,並將所有的呼叫的結果作為一個list返回。
def mapFun(a):
return a+10
print(list(map(mapFun,list2)))
print(list(map(lambda item:item+10,list2)))