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的方法,是把list轉爲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值:',dict1.keys())
(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)))