05-python函式進階和檔案

艾梦溪發表於2024-03-26

函式

函式的多返回值

變數間逗號隔開,可以多種型別

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()

檔案總結

相關文章