函式:定義之後可以任何需要他的地方呼叫這個函式
如果函式沒有定義返回值,使用者去取函式的返回值的話,預設返回none
1.返回值的三種情況:
1.1 沒有返回值
1.1.1 沒寫return
def func():
print(s)
s = "今天天氣好"
func()
1.1.2 只寫return,後面沒有數值,return在函式中一旦執行了return後面的**就不執行了
def func1():
l = ['景老闆', '三毛']
for i in l:
if "三毛" in i:
return #此處return會直接跳出函式func
# break #但是break只會使這個for迴圈結束,如果還有別的語句在for迴圈以外,還會繼續執行
print("函式執行最後一句")
func1()
1.2 只有乙個返回值:可以返回任意資料型別
def func2():
return [1, 2, 3]
print(func2())
1.3 多個返回值:有幾個返回值就應該有幾個接收值
返回多個值如果只用乙個值接收的話,那麼就以元祖的形式接收,元祖是不可修改的資料型別
在python中預設如果乙個值對應多個賦值就會轉變成元組資料型別
def func3():
return 1, 2
r1, r2 =func3()
print(r1, r2)
2.引數
2.1 實參
2.1.1 位置引數:按照位置傳參
def func4(a,b):
print(a,b)
func4(1, 2)
2.1.2 關鍵字傳參,按照關鍵字傳
def func4(a, b):
print(a, b)
func4(b=1, a=2)
2.1.3 也可以兩種方法混著用,但是必須先按照位置傳參,再按照關鍵字傳參,不能給用乙個變數傳多個值
def func4(a, b):
print(a, b)
func4(1, b = 2)
2.2 形參
2.2.1 位置引數:必須傳,有幾個引數傳幾個值
2.2.2 預設引數:可以不傳,如果不傳就用預設引數,如果傳了就用傳入的引數
def classmate(name , *** = "男"):
print("%s : %s"%(name, ***))
classmate("jerry")
classmate("tony", "女")
classmate("alex")
特別注意:如果預設引數是乙個可變資料型別,類似列表,字典那麼每一次呼叫函式的時候,如果不傳值就共用這個資料型別的資源。
# 列表示例
def func(l = ):
print(l)
func()
func([2])
func()
# 字典示例
def func(k, l={} ):
l.setdefault(k, "m")
print(l)
func(1)
func(2)
func(3)
2.2.3 動態引數 : 可以接受任意多個引數,引數名之前加*,args必須在kwargs之前
(1) *args:以元祖的形式,args只是乙個變數名可以改變,但是習慣使用args不能接收關鍵字引數
def sum (*args):
n = 0
for i in args:
n += i
return n
print(sum(1,2,2,3))
(2) **kwargs:以字典的形式儲存,接收關鍵字引數,預設引數傳入的順序是不定的可以再動態引數以後
def func5(k=none, **kwargs):
print(k,kwargs)
func5(k=1,a=1, b=2, c=3)
func5(a=2, b=2, k=1)
func5(a=6)
2.3.4 動態引數的另一種傳法
(1)針對*args,
def func6(*args): # 而站在形參的角度上,給變數加上*就是組合所有傳來的值
print(args)
func6(1, 2, 3, 4, 5)
l=[1, 2, 3, 4, 5, 6]
func6(*l) # 站在實參的角度,給序列加上乙個*就是將序列按順序打散
(2)針對**kwargs
def func7(**kwargs):
print(kwargs)
d=func7(**d)
3.函式的注釋:
def func():
'''這個函式實現了什麼功能
第乙個引數的意義
第二個引數的意義
:return:是字串或者列表的長度
'''pass
Python全棧學習筆記day 9 函式
1.函式的定義 def 2.函式的呼叫 3.函式的返回值 return 3.1沒有返回值 返回none 不寫return 只寫return 結束乙個函式的繼續 return none 不常用 3.2返回1個值 可以返回任何資料型別 只要返回就可以接收到 如果在乙個程式中有多個return,那麼只執行...
CSS3 學習筆記 DAY9
css3 box sizing 屬性可以設定 width 和 height 屬性中包含了 padding 內邊距 和 border 邊框 不使用 css3 box sizing 屬性 預設情況下,元素的寬度與高度計算方式如下 這就意味著我們在設定元素的 width height 時,元素真實展示的高...
刷題筆記day9
pat a1012 the best rank 25分 此題的坑點是,排名涉及並列名次,存在並列第一,並列第三的情況,計算排名時要特別考慮。include include include struct stus 2005 int cmpc const void a,const void b int ...