函式
函式的多返回值
變數間逗號隔開,可以多種型別
def hello():
return 1,True,"hello"
x,y,z = hello()
函式的傳參方式
- 位置引數,根據位置傳參
def can1(x,y,z):
print(x,y,z)
can1(2,4,8)
- 關鍵字引數,根據 k = v 傳參,可以和位置引數混用,位置引數需要在前
def can2(name,age,gender):
print(f"{name}\t{age}\t{gender}")
can2( name="jack", age=18,gender='男') # 不需要按照順序
can2( "jack", age=18,gender='男')
#can2( name="jack", 18,gender='男') 錯誤
- 預設引數(預設值),在函式定義的時候用 k = v 的方式設定預設值且預設值必須定義在最後(可以多個),傳參時沒有引數則預設
def can3(name,age=198,gender='女'):
print(f"{name}\t{age}\t{gender}")
can3("java")
- 不定長引數: *args傳參,以元組形式接受引數;**kwargs,以字典方式接受引數
def can4(*args):
print(type(args))
print(args)
can4(1,"女",True)
def can5(**kwargs):
print(type(kwargs))
print(kwargs)
can5(name = "java",age = 11)
函式作為引數傳遞
作用:傳入了計算邏輯
def add(x,y):
return x+y
def hello1(add):
print(type(add))
return add(1,2)
print(hello1(add))
函式的定義
- def定義有名稱的函式,可以基於名稱重複使用
- lambda定義匿名函式,只能臨時使用一次
語法: lambda 傳入引數 : 函式體
注意:函式體只能一行程式碼,且預設直接return
例項:print(hello1(lambda x, y : x + y))
檔案
檔案開啟open()
open(name,mode,encoding)
開啟檔案或當檔案不存在則為建立一個新檔案
name:檔名的字串或者路徑的字串,路徑中目錄間隔用/或者\
mode: 設定開啟檔案的訪問模式: 只讀"r",寫入"w",追加"a'"等等
encoding: 設定編碼格式(推薦"UTF-8")
例項:f = open("D:\\project\\\python-project\\code\\python-study\\a.txt","r",encoding="UTF-8")
檔案讀取
讀取檔案時若連續讀取,會在上次讀取的位置設定一個指標定位所在位置。例如:在讀取一個檔案時先read()讀完了所有,在進行readLine()時就沒有了,會顯示[]。
read(num)
讀取num個位元組的檔案,read()為讀取所有
例項:
f.read(10)
和f.read()
readLines()
按照行讀取檔案內容,返回一個列表,每行結果為列表裡的一個元素
readLine()
一次讀取一行資料
for迴圈讀取檔案行
for line in f:
close()
關閉檔案
with open
操作檔案,自動關閉檔案
with open("D:\\project\\\python-project\\code\\python-study\\a.txt","r",encoding="UTF-8") as f:
print(f.readlines())
檔案寫入和追加
f = open("D:\\project\\python-project\\code\\python-study/text.txt","w",encoding="UTF-8")
f.write("hello world!!!!") # 內容還沒有寫入硬碟在緩衝區
f.flush() # 將緩衝區的內容寫入硬碟
f.close() # close()裡面含有flush(),因此也能將檔案內容寫入硬碟
原有檔案存在,w寫入模式則會刪除原內容後寫入新內容,若要追加則用a即可
f = open("D:\\project\\python-project\\code\\python-study/text.txt","w",encoding="UTF-8")
f.write("你好,世界!!!")
f.close()