1. 程式人生 > >python基礎複習(一)

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']