python基礎複習(一)
判斷資料型別:type(object)
常見函式
絕對值:abs(-1.2)= 1.2
四捨五入:round(1.234,2)= 1.23
冪函式:pow(2,3)= 8 # 2的3次方
math模組
>>> import math
>>> math.floor(32.8)
32.0 #取整
>>> math.sqrt(4) #開平方
2.0
字母大小寫
- S.upper() #S中的字母大寫
- S.lower() #S中的字母小寫
- S.capitalize() #首字母大寫
- S.title() #S中所有單詞的首字母大寫
- S.istitle() #判斷S中所有單詞的首字母是否大寫
- S.isupper() #S中的字母是否全是大寫
- S.islower() #S中的字母是否全是小寫
字串操作
字串長度:
>>> name = 'chen1'
>>> len(name)
5
擷取:
a[n,m] #擷取a[n]到a[m-1]
a[:] #擷取全部
a[2:] #表示從a[2]到最後
a[-1] #表示a字串最後一個值
a[:6] #表示從開頭到a[0]至a[5]結束,共6位
去掉字串空格:
S.strip() #去掉S字串兩端的空格
S.lstrip() #去掉字串左邊空格
S.rstrip() #去掉字串右邊空格
列印:
>>> print('my name is ' + 'chenwang')
>>> name = 'chenwang'
>>> age = 31
>>> print('%s is %d' %(name,age))
運算子
算數運算子:+、-、*、/、%(取餘)、**(冪)、//(整除—返回商的整數部分)
比較運算子:==、>、<、>=、<=
布林運算:and、or、not
>>> 4>3 and 4>4
False
>>> 4>3 or 4>4
True
>>> not(4>3 and 4>4)
True
bool的應用:
>>> a = 'daff'
>>> bool(a)
True
>>> if bool(a):
print('I like python')
I like python
>>> b=''
>>> bool(b)
False
>>> bool(3>2)
True
>>> bool(3<2)
False
List(在python具有非常強大的功能)
append # 追加元素
>>> a = ['I','like']
>>> a.append['python']
>>> a
['I', 'like', 'python']
len #長度
>>> b = ['da','fef',131,'fkkk','sss']
>>> len(b)
5
list的擷取:
>>> b = ['da','fef',131,'fkkk','sss']
>>> b[1:3]
['fef', 131]
extend #合併list
>>> la = ['I','like']
>>> lb = ['python','very much']
>>> la.extend(lb) #把lb合併到la上
>>> la
['I', 'like', 'python', 'very much'] #la合併後的值
>>> lb
['python', 'very much'] #lb不變
append 與 extend的區別
>>> lc = ['da',1,2,3]
>>> ld = ['grg',55]
>>> lc.append(ld)
>>> lc
['da', 1, 2, 3, ['grg', 55]] #append將被合併的list作為一個整體合併
備註:append是整建制地追加,extend是個體化擴編
count #數某個元素在list中出現的次數
>>> le = [1,2,3,1,1,5,'a','a']
>>> le.count(1)
3
>>> le.count('a')
2
index #通過元素找到其在list中的編號
>>> lf = [1,2,3,4,5,1,'a']
>>> lf.index(1) #找到第一次出現該元素的位置
0
>>> lf.index('a')
6
>>> lf.index('b')
Traceback (most recent call last):
File "<pyshell#27>", line 1, in <module>
lf.index('b')
ValueError: 'b' is not in list
插入元素
list.insert(i,x) #將新的元素x 插入到原list中的list[i]前面
>>> url = ['www','baidu']
>>> url.insert(0,'http://')
>>> url
['http://', 'www', 'baidu']
>>> length = len(url)
>>> url.insert(length,'com') #在後面追加,就等同於list.append(x)
>>> url
['http://', 'www', 'baidu', 'com']
刪除list中的元素
remove #刪除指定元素,如果不在list中則報錯;
>>> users = ['chenwang', 'zhanghaowei','miaodongqian']
>>> users.remove('zhanghaowei')
>>> users
['chenwang', 'miaodongqian']
>>> users.remove('wenping')
Traceback (most recent call last):
File "<pyshell#38>", line 1, in <module>
users.remove('wenping')
ValueError: list.remove(x): x not in list
in #判斷元素是否在list中
pop(i) #刪除元素指定編號i處的元素,不填寫i則刪除最後一個元素
>>> names = ['dongqian','chenwang','haowei']
>>> del_name = names.pop() #刪除的元素可賦值給變數
>>> del_name
'haowei'
>>> names #刪除後的list
['dongqian', 'chenwang']
>>> names
['dongqian', 'chenwang']
>>> names.pop(1) #刪除編號1處的元素
'chenwang'
>>> names
['dongqian']
range(start,stop[,step]) #start開始數值,預設為0,stop必須填寫,step步長選填
>>> range(9)
range(0, 9) #即[0,1,2,3,4,5,6,7,8]
>>> range(1,3)
range(1, 3) #即[1,2]
>>> range(0,9,3)
range(0, 9, 3) #[0,3,6]
range(0,-9,-2) #即[0,-2,-4,-6,-8]
實際應用:0到100的偶數可表示為 range(0,100,2)
排序方法: 可做個專題研究
- list.sort(cmp=None, key=None, reverse=False)
- sorted(iterable[, cmp[, key[, reverse]]])
學會看使用手冊help(list)
連線號‘+’的應用:
>>> str1 ='dsd'
>>> str2 = 'kk'
>>> str1 +str2
'dsdkk'
>>> list1 = ['a','c','b']
>>> list2 = ['ss',33]
>>> list1 + list2
['a', 'c', 'b', 'ss', 33]
list和str的區別:
list可以改變(可在原處修改,不用生成新的),str不可變(如果想要修改,重新生成一個新的,對原來的沒有影響)
>>> git_list = ['de','dewf',123]
>>> git_list.append('sss') #追加
>>> git_list
['de', 'dewf', 123, 'sss']
>>> git_list[1] = 'xxx' #指定編號位修改
>>> git_list
['de', 'xxx', 123, 'sss']
>>> git_list.insert(1,'charu ') #指定位置插入
>>> git_list
['de', 'charu ', 'xxx', 123, 'sss']
>>> del git_list[0] #刪除指定位置的元素
>>> git_list
['charu ', 'xxx', 123, 'sss']
修改str只能生成新的,無法直接在原str上修改
>>> str1 = 'old'
>>> str2 = str1 + 'sss' #生成新str2
>>> str1 #原str不變
'old'
>>> str2
'oldsss'
多維list:
>>> matrix = [[1,2,3],[4,5,6]]
>>> matrix[0][1]
2
list和str的相互轉換:
str.split()
>>> s = "I am, writing\npython\tbook on line"
>>> s.split() #括號中不帶引數,遇任意分隔符分割 (空格、換行符)
['I', 'am,', 'writing', 'python', 'book', 'on', 'line']
>>> line = "Hello.I am chenwang .Welcome you."
>>> line.split(".")
['Hello', 'I am chenwang ', 'Welcome you', '']
>>> line.split(" ",3) #以空格分割,切三次
['Hello.I', 'am', 'chenwang', '.Welcome you.']
"[sep]".join(list) #用內容連線list各元素
>>> names = ['chenwang','haowei','dongqian']
>>> ''.join(names)
'chenwanghaoweidongqian'
>>> '.'.join(names)
'chenwang.haowei.dongqian'
>>> ' '.join(names)
'chenwang haowei dongqian'
list解析 #python簡潔優雅之美
>>> squarts = [x*x for x in range(1,10)] #註記:從左至右依次是結果表示式、迴圈表示式、條件表示式
>>> squarts
[1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> s = [x for x in range(0,101) if x%3==0] #註記:從左至右依次是結果表示式、迴圈表示式、條件表示式
>>> s
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
#巧用list解析去元素中空格
>>> mybag = ['glass ',' apple',' green ']
>>> newbag1 = [one.strip() for one in mybag]
>>> newbag1
['glass', 'apple', 'green']
進一步思考:list解析可以對list元素批量做各種操作。
>>> for i in range(len(week)):
print(week[i]+' is '+ str(i)) # 使用“+”拼接的必須為str格式
monday is 0
sunday is 1
friday is 2
內建函式enumerate: 列舉
>>> for (i,day) in enumerate(week):
print(day + ' is '+ str(i))
monday is 0
sunday is 1
friday is 2
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start =1)) #從1編號列舉
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
與普通函式結合:
>>> def treatment(pos, element):
return "%d: %s"%(pos,element)
>>> seq = ["qiwsir","qiwsir.github.io","python"]
>>> [treatment(i, ele) for i, ele in enumerate(seq)]
['0: qiwsir', '1: qiwsir.github.io', '2: python']
與lambda表示式結合:
>>> foo = lambda i,ele : "%d:%s"%(i,ele) #輸入冒號左邊的引數,返回冒號右邊表示式算出的結果
>>> [foo(i,ele) for i,ele in enumerate(seq)]
['0:qiwsir', '1:qiwsir.github.io', '2:python']