Python經常使用的數據類型php
'兔子' 字符串類型;api
666 整型;閉包
3.14 浮點型;app
False,True 布爾型;函數
Python的經常使用操做符orm
邏輯運算符:and or not;對象
比較操做符:< <= > >= == !=;遞歸
算數操做符:+ - * / //(地板除,即只保留整數位);three
正負號:+x -x;rem
冪運算:**(-3 **3 == -(3 ** 3 )爲-27,3的三次方再取負值);
以上操做符優先級由上至下愈來愈高
Python的分支和循環
分支:
if 條件語句1:
條件語句1成立時執行的語句
elif 條件語句2:
條件語句2成立時執行的語句
else :
不成立時執行的語句
循環:
while 條件語句:
條件語句成立時執行的語句
continue(跳出當前循環,繼續下一循環)/break(跳出全部的循環)
print("continue執行後不會執行此條語句")
for 變量名 in 列表/元組/字符串等對象集合:(for循環的目的是將對象集合中的每個元素循環賦值給變量,即此變量遍歷對象集合中的全部元素)
print 變量名
列表和元組:
Python列表中可放入各類類型的數據,好比list1 = ['兔子',666,3.14,Fasle],list1[2]爲3.14
增長列表元素:list1.append('麼麼'),將在list1最後加入此元素;
list1.extend(['肥兔子',88.67]),將在list1最後加入此列表,併合併爲一個列表
list1.insert(3,'yyy'),將元素插入到列表的第三個位置(從0開始,即3.14以後)
刪除列表(元素):list1.remove(3.14),將3.14從list1中刪除
del list1[1],將list1中的第二個元素刪除
i = list1.pop(3),將list1中的第四個元素刪除,並有返回值,返回值即爲刪除的元素
列表切片:list2 = list1[0:1] 將list1前兩個元素分離開組成一個新的列表,list1[:]全複製
Python元組與列表相似,但不可輕易修改
temp = (1,4,"888",False);temp = 1,4,"888",False;temp = (1,) ;temp = () 均可以表示一個元組
修改元組的方法:temp = temp[:2]+(2,3,4)+temp[2:] 即先將元組切片再組合
Python字符串經常使用方法
str.capitalize() 將字符串首字符改成大寫,等等方法
格式化方法format:
'{0} love {1} and {2}'.format('I','dahai','you') 即將{0}{1}{2}佔位符替換爲參數中的字符串:I love dahai and you
或'{a} love {b} and {c}'.format(a='I',b='dahai',c='you') 也可混合使用,但數字佔位符必定要在字母佔位符以前
其餘格式化方法:
格式爲 '方法' % (元組,元素數與方法數一致)
%c格式化字符及其ASCⅡ碼:'%c %c' % (99,100) 打印出來是'c d',
%s格式化字符串:'%s %s %s' % ('I','LOVE','YOU')打印出爲'I LOVE YOU'
字符串格式化符號含義、格式化操做符輔助指令、字符串轉義字符含義
函數:
①定義一個函數:def Function1():
print("這是一個沒有參數的函數")
使用:Function()
無需在括號內傳入參數便可執行此函數體內的方法
②定義一個函數:def Function2(num1,num2):
return num1+num2
使用1:Function2(1,2)
num1,num2爲形式參數,1,2爲實際參數,這個函數的返回值是num1+num2
使用2:Function2(num2=2,num1=1)
能夠講形參和實參結合,以便於觀察,防止出現順序錯誤
③定義一個函數:def Function3(*param,exp):
print("參數的長度:",len(param))
print("第一個參數是:",param[0],exp) #注意print方法中鏈接每一個參數用 ‘ , ',不是‘’+‘’
使用:Function3(1,"dahai",666,99.8,True,exp = 33)
此函數爲收集函數,即形參的個數沒法肯定,可把全部實參當作一個元祖來看待,當收集函數的參數和其餘參數同時存在時(好比exp),則須要在傳遞實參時定義exp的值
局部變量、全局變量:
局部變量是指在函數內部的變量,函數以外沒法調用此變量
全局變量是指在整個程序中均可調用的變量
def Fun1(x,y):
z = x + y
#globle z1
z1 = 20
return z
z1 = 10
z2 = Fun1(10,5)
print(z1,z2)
這裏x,y,z和第一個z1爲局部變量,第二個z1,z2爲全局變量,且結果爲10,,15,由於Fun1中的z1只在方法中生效,方法外又會指向原z1
除非在第一個z1以前加,globle z1 做用是使z1變爲一個全局變量,globle(全局的),便可在函數內部修改z1的值
內嵌函數和閉包:
def fun1(x):
def fun2(y):
return x+y
return fun2()
上面這種形式爲閉包,即內嵌函數中有調用其外部變量,使用方法:
i = fun1(10) #此時type(i)爲方法類型function,即爲fun2
i(5) #此時傳入的變量5即爲fun2中的y值
或 fun1(10)(5)
不可直接使用fun2
def fun1():
x = 10
def fun2(y):
nonlocal x
x ^= x
return fun2()
上面這個函數fun1沒法直接使用,由於在調用fun1時首先調用的是其內嵌函數fun2,但fun2的x爲fun1的局部變量,沒法在fun2中使用,
此時須要加入相似globle的關鍵字nonlocal x ,做用是使x變爲一個非局部變量,nonlocal(非局部的)便可使fun2訪問到fun1中的x
匿名函數(lambda)
def fun1(x):
return x * 5 +8
可寫成
g = lambda x : x * 5 + 8
使用時
g(5) #便可將5傳入匿名函數g,而後經過方法計算出結果33,並返回
若是傳入多個參數,則能夠寫爲 g = lambda x,y : x + y,用英文逗號將參數分開
映射函數map():map(function,iterable) 有兩個參數,第一個參數爲函數,第二個參數爲須要迭代的數據
目的是經過將第二個參數迭代傳入第一個函數中進行計算,將得出的全部值傳入一個新的列表中,好比
list(map(lambda x : x * 2 , range(10))) 將0-9之間的全部數據傳入前面的匿名函數中計算,計算結果爲[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
過濾器函數filter:filter(function or None,iterable) 有兩個參數,第一個參數爲None或函數,第二個參數爲須要迭代的數據,
目的是經過將第二個參數迭代傳入第一個函數中進行計算,將得出的真值傳入一個新的列表中,好比
當第一個參數爲函數時:
list(filter(lambda x : x % 2,range(10))) 此行代碼的目的是將0-9之間的奇數傳入列表中,打印結果爲[1,3,5,7,9]
當第一個參數爲None時:
list(filter(None,[0,1,True,False])) 輸出爲[1,True]
這兩個函數的區別爲map()是將全部參數進行函數運算後生成新的列表,filter()是將全部參數進行函數運算後取其爲真的值(1,True)生成新的列表
遞歸:1.有調用函數自身的行爲,2.正確的返回值,且有中止的條件
好比階乘函數:
def jiecheng(x):
result = x
for i in range(1,x):
result *= i
return result #此方法即x爲須要階乘的最後一位數,如x=5,須要計算1*2*3*4*5的結果
或def jiecheng(x):
if x == 1:
return 1
else:
return x * jiecheng(x-1)
好比菲波那切數列:
def fun1(n):
if n == 1 or n == 2:
return 1
else:
return fun1(n-1)+fun1(n-2) #即從第三個數字開始每一個數字等於前兩個數字之和
字典:
dict1 = {'大海':'29','麗麗':'25','猴子':'29'} #用‘:‘’隔開須要匹配的key(鍵)和value(值),用‘,‘’隔開每對映射,並用大括號括起
name = input("請輸入要查詢年齡的人的名字:")
print('%s的年齡是%s' % (name,dict1[name]))
建立一個字典:
①list1 = [(1,'one'),(2,'two'),(3,'three'),(4,'four')] #列表
temp = (1,'one'),(2,'two'),(3,'three'),(4,'four') #元組
dict(((1,'one'),(2,'two'),(3,'three'),(4,'four'))) #字典
#注意括號個數,使用方法爲dict(mapping),mapping爲元組或列表,但元組或列表的元素需成對出現,因此也可寫成dict(list1)或dict(temp)
②dict4 = dict(dahai=29,lili='25')
#注意只有此種方法鍵不能用字符串、整型、浮點型等,不然會報錯,只能夠用不加引號的字符串,加到字典裏以後會自動變爲字符串
添加項:
dict4['小海'] = '0' #'小海'爲鍵,且插入的位置不固定
修改項:
dict4[‘dahai’] = 31 #修改的鍵需存在