01 python 函式
阿新 • • 發佈:2022-04-20
01 python 函式
目錄1. 函式的定義和常用操作
函式定義:
函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的程式碼段。函式能提高應用的模組性,和程式碼的重複利用率。Python提供了許多內建函式,比如print()。但你也可以自己建立函式,這被叫做使用者自定義函式。 def 函式名稱(): 程式碼 returu 需要返回的內容
函式的呼叫
函式名稱()
函式常用操作~舉例說明
#讀取人物名稱 f = open('name.txt',encoding='utf-8') data = f.read() print(data.split('|')) #讀取兵器名稱 f2 = open('weapon.txt',encoding='utf-8') i = 1 for line in f2.readlines(): if i % 2 == 1: print(line.strip('\n')) i +=1 #讀取原著 f3 = open('sanguo.txt',encoding='utf-8') print(f3.read().replace('\n',''))
函式舉例01
def func(filename): print(open(filename,encoding='utf-8').read()) print('test func') func('name.txt') 改寫函式 import re def find_item( hero ): with open('sanguo.txt',encoding='utf-8') as f: data = f.read().replace('\n','') name_num = re.findall(hero,data) #函式返回包含所有匹配項的列表。返回string中所有與pattern相匹配的全部字串,返回形式為陣列 print('主角 %s 出現 %s 次' %(hero,len(name_num))) return len(name_num) #讀取人物的資訊 name_dict = {} with open('name.txt',encoding='utf-8') as f: for line in f: names = line.split("|") #split():拆分字串。通過指定分隔符對字串進行切片,並返回分割後的字串列表(list) for n in names: # print(n) name_num = find_item(n) name_dict[n] = name_num name_sorted = sorted(name_dict.items(),key=lambda item: item[1],reverse=True) # print(name_sorted[0:10])
2. 函式的可變長引數
#原樣長度
def func(a, b, c):
print('a= %s' %a)
print('b= %s' %b)
print('c= %s' %c)
func(1,2,3)
func(1,c=3,b=2)
#可變長,前面增加引數
#取得引數的個數
def howlong(first, *other):
print( 1 + len(other))
howlong(123,234,456)
#3
howlong(123)
#1
3. 函式的變數作用域
var1 = 123
def func():
var1 = 456
print(var1)
func()
print(var1)
#456 函式裡面
#123 函式外面
var1 = 123
def func():
global var1 #引入全域性變數global
var1 = 456
print(var1)
func()
print(var1)
#456
#456
4. 函式的迭代器與生成器
#一
list1 = [1,2,3]
it = iter(list1)
print( next(it))
print( next(it))
print( next(it))
print( next(it)) #error 迭代完了,出現異常
#二
# for i in range(10,20,0.5):
# print(i) #error,只支援int型別
def frange(start, stop, step):
x = start
while x < stop:
yield x #執行到當前位置暫停記錄當前位置,在返回值;迭代,一次只出現一個值。【print(x) 一次全部輸出】
x += step
for i in frange(10,20,0.5):
print(i)
5. python 內建函式
在Python中有兩種函式,一種是def定義的函式,另一種是lambda函式,也就是大家常說的匿名函式。今天我就和大家聊聊lambda函式,在Python程式設計中,大家習慣將其稱為表示式。
#簡化函式
#1 def定義的函式
def true(): return True
#2 lambda函式~匿名函式
lambda : True #函式名和renturn 關鍵字簡化掉
#pycharm執行
def add(x,y):
print(x+y)
add(3,5)
#以下在windows python 終端 環境執行
>>>def add(x,y): return x+y
>>>lambda x,y: x+y
>>>add(3,5)
#8
#兩個例子
lambda x:x<= (month,day)
def func1(x):
return x<= (month,day)
lambda item:item[1]
def func2(item):
return item[1]
# 以下在windows python 終端 環境執行
>>> def func2(item):
... return item[1]
...
>>> adict = {'a':'aa','b':'bb'}
>>> for i in adict.items():
... func2(i)
...
'aa'
'bb'
6. 閉包的定義
7. 裝飾器的定義
8. 裝飾器的使用
9. 自定義上下文管理器
呼叫函式
建立函式
可變長函式
變數的作用域
匿名函式
生成器
迭代器
裝飾器