Python學(xué)習(xí)
函數(shù)模塊
- 引入自己寫(xiě)的函數(shù)作為模塊
#在”caculate函數(shù)“文件中定義”caculate“函數(shù)
def caculate(num):
'''
從1到num求和
:param num: 加到的數(shù)
:return: 求和
'''
sum=0
for i in range(num+1):
sum+=i
return sum
#導(dǎo)入自己寫(xiě)的”caculate函數(shù)“模塊并使用其中的”caculate“函數(shù)
import caculate函數(shù)
print(caculate函數(shù).caculate(100))
函數(shù)參數(shù)
- 必須參數(shù)
必須參數(shù)必須正確的順序傳入,調(diào)用的時(shí)候必須和聲明的時(shí)候保持一致
def f (name,age):
print('I am %s, I am %d years old'%(name, age))
f('arbon',18)
#I am a, I am 18 years old
def f (name,age):
print('I am %s, I am %d years old'%(name, age))
f(18,'arbon')
#TypeError: %d format: a number is required, not str
- 關(guān)鍵字參數(shù)
使用關(guān)鍵字參數(shù)可以允許調(diào)用時(shí)參數(shù)和聲明時(shí)順序不一致
是否要顯示指定參數(shù)(關(guān)鍵字),以方便自己閱讀為目的
def f (name,age):
print('I am %s, I am %d years old'%(name, age))
f(age=18,name="arbon")
#I am arbon, I am 18 years old
- 默認(rèn)參數(shù)
缺省參數(shù)沒(méi)有傳入,默認(rèn)值會(huì)生效
def f(name,age,sex="male"):
print("I am %s, I am %d years old, I am %s"%(name,age,sex))
f(name="angla",age=16)
#I am angla, I am 16 years old, I am male
匿名函數(shù) lambda表達(dá)式
- 匿名函數(shù) lambda表達(dá)式
res=lambda x,y:x*y
print(res(4,5))
之前曾經(jīng)的:
store=[]
s="當(dāng)當(dāng)自營(yíng)" if len(store)==0 else store[0]
print(s)
#當(dāng)當(dāng)自營(yíng)
可以通過(guò)這個(gè)方法結(jié)合匿名函數(shù)簡(jiǎn)化下面代碼
使用lambda做判斷
def cal(x,y):
if x>y:
return x*y
else:
return x/y
calc=lambda x,y:x*y if x>y else x/y
print("使用普通函數(shù)",cal(5,4))
print("使用lambda函數(shù)",calc(5,4))
#使用普通函數(shù) 20
#使用lambda函數(shù) 20
- 排序中使用lambda
包含幾個(gè)字典的列表按照字典中的某個(gè)key排序
#排序中使用lambda
stus=[
{"name":"a",'age':33},
{"name":"b",'age':32},
{"name":"c",'age':43},
{"name":"d",'age':13},
{"name":"e",'age':21}
]
print('before sorted:',stus)
res=sorted(stus,key=lambda x:x['age'])
print('after sorted:',res)
#before sorted: [{'name': 'a', 'age': 33}, {'name': 'b', 'age': 32}, {'name': 'c', 'age': 43}, {'name': 'd', 'age': 13}, {'name': 'e', 'age': 21}]
#after sorted: [{'name': 'd', 'age': 13}, {'name': 'e', 'age': 21}, {'name': 'b', 'age': 32}, {'name': 'a', 'age': 33}, {'name': 'c', 'age': 43}]
tips
- pycharm中對(duì)文件右鍵選擇"copy relative path"可以復(fù)制文件路徑
jieba庫(kù)中文分詞
- 分詞
txt='我來(lái)到北京清華大學(xué)'
seg_list=jieba.lcut(txt)
print(seg_list)
#['我', '來(lái)到', '北京', '清華大學(xué)']
案例:三國(guó)詞頻統(tǒng)計(jì)
課件中有統(tǒng)計(jì)單詞出現(xiàn)頻率的案例