數(shù)據(jù)蛙第一期課程已經(jīng)進(jìn)行了兩周了,最近一周學(xué)習(xí)的內(nèi)容是 python 相關(guān)贬丛,這里總結(jié)性地概況課程內(nèi)容唬党,以作知識回顧參考鹃共。
一、python 的基礎(chǔ)知識
1驶拱、數(shù)據(jù)類型
數(shù)字型:int霜浴、float、Boolean
非數(shù)字型:字符串蓝纲、列表阴孟、元組、字典
可變類型:列表税迷、字典
不可變類型:數(shù)字永丝、字符串、元組
格式化字符串:兩種寫法
a翁狐、python 的格式化字符串 类溢,使用%
如果希望輸出文字信息的同時輸出數(shù)據(jù),那就需要使用到格式化操作符,%被稱為格式化操作符闯冷,鉆們用來處理字符串中的格式砂心。包含%的字符串,被稱為格式化字符串蛇耀。不同類型的數(shù)據(jù)需要使用不同的格式化字符辩诞。
- 常用格式化字符: 含義
%s :字符串
%d :有符號十進(jìn)制整數(shù),%06d 表示輸出的整數(shù)顯示位數(shù)纺涤,不足的地方使用 0 補(bǔ)全
%f :浮點(diǎn)數(shù)译暂,%.2f 表示小數(shù)點(diǎn)后只顯示兩位
%%: 輸出 %
使用方法:
print("格式化字符串"%變量1)
print("格式化字符串"%(變量1,變量2))
name='datafrog'
stu_no=1
print("我是%s"%name)
print("我的學(xué)號是%06d"%stu_no)
print("%s的級別是%s撩炊,分?jǐn)?shù)是%s"%(score,grade,score))
# 關(guān)鍵字參數(shù)形式外永,注意后面是參數(shù)字典不是參數(shù)元組了
print("%(score)s的級別是%(grade)s,分?jǐn)?shù)是"%{"score":score,"grade":grade})
######b拧咳、使用 format 來進(jìn)行格式化字符串:
a伯顶、使用位置參數(shù),{}的值對應(yīng)填充 fromat 后面的變量
print("{}的級別是{}".format(score,grade))
還可以使用 0骆膝、1 編號進(jìn)行多個引用祭衩,0、1分別大表 format 后面變量的位置
print("{0}的級別是{1},分?jǐn)?shù)是{0}".format(score,grade))
甚至還可以使用參數(shù)列表阅签,但是 format 后面要用 *list
list=[score,grade]
print("{0}的級別是{1},分?jǐn)?shù)是{0}".format(*list))
b掐暮、使用關(guān)鍵字參數(shù):
print("{score}的級別是{grade},分?jǐn)?shù)是{score}".format(score=score,grade=grade))
可以使用字典來傳遞關(guān)鍵字參數(shù),但是要用 **hash
hash = {'name':'hoho','age':18}```
'my name is {name},age is {age}'.format(**hash)
'my name is hoho,age is 18'
c政钟、其他一些用法路克,引用變量時加上冒號,然后寫規(guī)則即可
右對齊锥涕,改成< 就是左對齊衷戈,這里1 是位置參數(shù)狭吼,不寫就是對應(yīng)的第一位即8
print("{1:*>10}".format(8,9))
結(jié)果是
*********9
精度與進(jìn)制:變量后面加上冒號就可以指定輸出形式
'{0:.2f}'.format(1/3)
'0.33'
千分位格式化:
print("{1:,}".format(8,9))
2层坠、變量
通常數(shù)據(jù)都是讓變量來引用和保存的
變量是 python 中的重要概念,python 作為一門動態(tài)語言刁笙,就是體現(xiàn)在變量命名時不需要指定類型破花,而是可以指向任意類型的數(shù)據(jù)。變量命名也是有規(guī)則的疲吸,即必須是有數(shù)字座每、字母、下劃線組成且不能數(shù)字開頭摘悴,除此之外變量名還有一個寫法上的通用原則:駝峰命名法
小駝峰:首字母小寫后面單詞首字母大寫
大駝峰:每個單詞的首字母都大寫
一般函數(shù)峭梳、變量名用小駝峰,模塊和類名用大駝峰
3、控制流
python 程序運(yùn)行都是從上到下依次運(yùn)行葱椭,但是可以通過控制流來人為改變運(yùn)行邏輯捂寿。
if :條件判斷
while、for:兩種循環(huán)
????而如果要在循環(huán)體內(nèi)再次人為改變邏輯孵运,就需要用到 breake秦陋、continue了,特別注意這兩個破壞循環(huán)規(guī)則的語句都只作用在最近一層的 for治笨、while 循環(huán)上驳概。
4.函數(shù)
函數(shù)的出現(xiàn)是為了節(jié)省代碼,減少冗余旷赖。
def func():
print(' 調(diào)用了函數(shù)')
匿名函數(shù):
???? 常用來構(gòu)建列表 list=[i for i in range(6)]
???? 還可以搭配 map 函數(shù)來使用顺又,map(func,[1,2,3,4,5])
會將列表中得數(shù)組依次傳入 func 函數(shù)得到結(jié)果,得到一個map 值等孵,再用 list 轉(zhuǎn)換一下就可以得到一個列表
函數(shù)參數(shù)(重點(diǎn)理解):
函數(shù)的參數(shù):形式參數(shù)的定義以及實(shí)際參數(shù)的寫法
a待榔、位置參數(shù):實(shí)參+定義。就是實(shí)參會一一對應(yīng)到形參上
def func(num1)
print(num1)
func(10)
b流济、默認(rèn)參數(shù):定義锐锣。有默認(rèn)值,如果傳入了實(shí)參就用實(shí)參绳瘟,定義的時候要在非默認(rèn)參數(shù)后面
正確:def func(num1,num2=10)
錯誤:def func(num1=10,num2)
c雕憔、關(guān)鍵字參數(shù):實(shí)參。傳入實(shí)際參數(shù)時糖声,指定參數(shù)名字來傳遞數(shù)據(jù)斤彼,一般有一個實(shí)參用的是關(guān)鍵字參數(shù),其余也要用蘸泻,不然容易造成一個參數(shù)多個值的錯誤琉苇。
func(num1=12,num2=10)
func(12,num2=10)
d、元組可變參數(shù):定義悦施〔⑸龋可以接收任意數(shù)量的位置參數(shù)。使用 *args 來接收抡诞,會將接收到的值自動組包成一個元組賦給args穷蛹,參數(shù)變成元組了
def func(num1,*args,name):
print(num1)
print(args)
print(name)
func(10,2,3,4,name='lan')
結(jié)果:這里是位置參數(shù)+元組可變參數(shù)
10
(2, 3, 4)
lan
e、字典可變參數(shù):定義昼汗‰妊可以接收多余的關(guān)鍵字參數(shù),用 **kwargs 來接收顷窒。必須放到參數(shù)列表最后蛙吏,不然報(bào)錯。參數(shù)變成字典了
def func(num1=0,**kwargs):
print(num1)
print(kwargs)
func(2,a=3,b=4)
結(jié)果:
2
{'a': 3, 'b': 4}
注意:
a、如果實(shí)參用了關(guān)鍵字參數(shù)鸦做,最好就都用關(guān)鍵字參數(shù)璧疗。字典可變參數(shù)必須要放到最后面(比默認(rèn)參數(shù)還要后),元組可變沒有順序要求馁龟。
左右:普通參數(shù)《==元組可變《==默認(rèn)參數(shù)(應(yīng)該靠后)《==字典可變(必須最后)
除了字典可變崩侠,其他順序不是絕對,如果順序有變化坷檩,實(shí)參中可以用關(guān)鍵字參數(shù)來調(diào)節(jié)
b却音、如果形參里面既有 默認(rèn)參數(shù),又有可變參數(shù)矢炼,那么要將默認(rèn)參數(shù)放到最后面系瓢,并且賦值時必須要用關(guān)鍵字參數(shù)。這也符合默認(rèn)參數(shù)放到非默認(rèn)參數(shù)后面的原則
def func(num1=0,*args):
print(num1)
print(args)
# 像這里本來時像把 2句灌,3夷陋,4 都給 args ,可以由于位置參數(shù)的原因胰锌,最終是num1=2骗绕,rags=(3,4))
func(2,3,4)
變成如下就好了
def func(*args,num1=0):
func(2,3,4,num1=10)
二资昧、python 2酬土、python3 的一些區(qū)別
1、python2:print 函數(shù)可以不加括號
?????python3:print 函數(shù)必須要加括號
2格带、python2:使用中文時撤缴,代碼開頭要加聲明 # encoding:utf-8
?????python 3:可以直接使用中文
3、python2:/ 除法只保留整數(shù)部分叽唱,除非有 float 數(shù)據(jù)參數(shù)運(yùn)算
?????python3:/ 除法得到完整結(jié)果屈呕,// 得到結(jié)果的整數(shù)部分
4、python2:python2 有兩個輸入函數(shù)
??????????input() : 返回的結(jié)果類型會自動推導(dǎo)
??????????raw_input():返回的結(jié)果都是字符串
?????python3::只有一個輸入函數(shù)棺亭,input() 虎眨,返回的結(jié)果一定是字符串
5、字典的 keys侦铜,values专甩,items 屬性
?????python2:返回的都是列表
?????python3:返回的是視圖對象,可以理解為列表钉稍,可以轉(zhuǎn)換成列表使用,也可以直接使用