1. 程式人生 > 資訊 >英特爾預熱新款 Arc 筆記本獨顯,3 月 30 日晚 11 點發布

英特爾預熱新款 Arc 筆記本獨顯,3 月 30 日晚 11 點發布

1、函式概述

1.1函式概念

所謂函式,就是把重複的程式碼單獨的分離出來,放在⼀個公共的地方,以後可以⼀直的進行呼叫,這樣就可以解決多次重複來編寫。

1.2函式的定義形式

函式定義:定義函式使用的關鍵字是def

如:def 函式名稱(函式的引數):

             函式表示式

1.3函式的引數

常用的函式的引數有形式引數、實際引數、預設引數和動態引數。

(1)形式引數:函式裡面的引數叫做形式引數;

(2)實際引數:函式被呼叫的時候,給引數賦予的值叫做實際引數。

(3)預設引數:在定義函式的時候給形式引數指定預設的值叫做預設引數。預設引數只能放在非預設引數的後面,如果放在前面就會報錯。在呼叫過程中,如果沒有給

該形式引數賦值,那麼他的值預設就是我們定義的預設值,如果我們給形式引數定義了值,那麼他的值就是我們新定義的值。

(4)動態引數:定義一個函式的時候,當函式的形式引數個數不確定,資料型別不確定的時候,我們就可以用動態引數。

如def func(*a,**b),a和b為自定義的變數,一般a和b預設用args和kwargs,即def func(*args,**kwargs)。

*:代表的是元組的資料型別

**:代表的是字典的資料型別

1.4函式的呼叫

函式寫完後,必須要經過呼叫才能生效,如果不呼叫,不會生效。呼叫函式的方式是:函式名稱()。函式呼叫的注意事項:

(1)函式在呼叫時,可以填寫形式引數,也可以不填寫,但是要注意的是要填寫就都填寫,要不填寫就都不填寫;

(2)函式在呼叫的時候,填寫的實際引數要與形式引數的順序、個數保持一致;

(3)函式有形式引數的時候,呼叫函式必須填寫實際引數。

2、函式應用舉例

2.1函式定義與呼叫

#函式定義
def fun():
	print("hello world")
#函式呼叫
fun()

2.2登入的函式

#登入的函式
def login(username,password):
	if username=="qy" and password=="123456":
		print("ok")
	else:
		print("no")
#呼叫函式的時候,其形式引數:username、password要填寫的話,需要都進行填寫,如下
login(username="qy",password="123456")
#呼叫函式的時候,其形式引數:username、password也可以都不進行填寫,如下:
login("qy","123456")

2.3註冊的函式

#註冊的函式,然後把註冊的使用者名稱和密碼寫入到login.txt檔案中。
def registry():
	username=input("請輸入使用者名稱:\n")
	password=input("請輸入密碼:\n")
	code=username+","+password
	with open(file="login.txt",mode="a") as f:
		f.write(code)
registry()

2.4輸出檔案中的使用者名稱

#讀取使用者名稱和密碼然後輸出使用者名稱。
def user():
	with open(file="login.txt",mode="r") as f:
#定義一個變數,把讀取的值儲存在變數中,通過split把他進行拆分,這時候他就是一個列表,我們通過索引進行檢視即可。
		a=f.read().split(",")
		print(a[0])
user()

 

 2.5預設引數練習

#預設引數練習,給密碼賦予預設值123456
def login(username, password="123456"):
	if username=="qy" and password=="123456":
		print("ok")
	else:
		print("no")
#呼叫函式的時候,如果不指定形式引數password的值,它的值預設就是123456。
login(username="qy")
#如果指定形式引數password的值,他的值就是我們指定的值。
login(username="qy",password="asd12345")

2.6動態引數練習

#動態引數
#元組練習,*args在函式中會把傳的引數轉成一個元組。
def func(*args):
	print(args)
	print(type(args))
func("(1,2,3)")
func("[1,2,3]")
func("{key:value}")
#字典練習,**kwargs在函式中會把傳的引數轉成一個字典。
def func(**kwargs):
	print(kwargs)
	print(type(kwargs))
# func(**{"name":"qy"},**{"a":"b"})
func(name="qy",a="b")
#使用場景:當*args和**kwargs組合起來使用,理論上能接受任何形式和任意數量的引數,需要注意的是,*args必須出現在**kwargs之前。
def func(*args,**kwargs):
	print(args,kwargs)
func(pay="微信",price=100)
func(pay="支付寶",price=80)
func(pay="招商銀行",user="qy",price=40)
func(1,2,a="b",c="d")
list1=["微信","支付寶","招商銀行","現金","a+b+c"]
tuple1={"微信":"ok","支付寶":"no","招商銀行":"ok","現金":"500","a+b+c":"89.9"}
#func(list1,tuple1),如果這樣呼叫,後面的字典是空的,因此我們需要叫函式知道那個變數是*args的引數,哪個是**kwargs的引數,正確傳參寫法:
func(*list1,**tuple1)