第八天:函数
---恢復內容開始---
一.函數的介紹:
??? 1.為什么要用函數,什么是函數?
??? ①組織結構不清晰,可讀性差。
????②代碼冗余
??? ③管理維護難度大,擴展性差。
??? 具備某一功能的工具就是程序中的函數。
????事先準備工具的過程就是函數的定義
??? 拿來就用就是函數的調用
舉個栗子:修理工要下下水道修理,事先需要準備一個工具箱,工具箱就是函數的一個定義過程,之后下到下水道需要拿相應的工具就是函數的調用。
重點:所以函數的使用必須遵守規則:先定義,后調用。
二.函數的基本語法
1.? def 函數名(參數1,參數2,參數3...............)
????? '''
???? 文件的解釋
???? '''
???? 代碼一
???? 代碼二
?????代碼三
???? return值
?? def:定義函數的關鍵字
?? 函數名:用來調用函數的
?? 代碼塊:實現函數的功能
?? return:返回函數的值
舉幾個例子:
1.1定義的階段:
def print_sym(sym*count)
???? print_sym(sym*count)
???? print_sym(sym*count)
???? print_sym(sym*count)
???? print_sym(sym*count)
???? print_sym(sym*count)
???? print_sym(sym*count)
???? print_sym(sym*count)
1.2調用函數:函數名加上括號就是在調用函數
??? print_sym('#',8)
2.定義函數的三種類型:
2.1有參函數:參數的函數體代碼用來接收外部的值
def max2(x,y)#x=10,y=4
???? if? x>y:
??????? print(x)
?????else:
??????? print(y)
2.2無參函數:函數體的代碼邏輯不需要調用者的摻入的情況下,就無參
def func():
???? print('------------------------')
???? print('-------soft fun-------')
???? print('------------------------')
?func()
2.3空函數體:函數體為pass
def put()
??? '''
??? 上傳功能
?? :return:
??? '''
????pass
def get()
??? '''
?下載功能
?? :return:
?? '''
?? pass
3.調用函數:
函數遵守的規則:先定義后使用
注意:沒有事先調用的函數就相當于直接調用一個不存在變量名
①定義階段:只檢測語法,不執行函數體代碼
②調用階段:根據函數名找到函數的內存地址,然后執行函數體代碼
③函數名加個括號就是定義函數
舉兩個例子:
①def foo():
???? print(from? foo?)
???? bar()
??? foo()#報錯,函數名bar()沒有被定義,第二步執行的時候就會報錯
②def bar()
?????? print(from bar)
????def foo()
?????? print(from foo)
??????? bar()
foo()
③def? foo()
???????? print(from foo)
?????????bar()
?????def bar()
???????? print(from bar)
foo()
②③本質上都是事先定義了函數名,最終函數體執行。定義不分先后
3.1調用函數的三種形式:
①def func():#直接調用,無返回值
????? print('from func')
?? func()
②def? max2(x,y):#有參數調用,有返回值
??????? if? x>y:
??????? return x
??????? else:
????? ?retrun y
???res= max2(10,3)
?? print(res)
③ def max2(x.y)
?????? if? x>y:
??? ??return x
??????? else:
???????return y
res=max2(max2(10,3),11)#可以嵌套比較返回值
4.函數的返回值:
什么時候有返回值?
函數體代碼運行結束后需要一個返回結果給調用者
返回值有三種形式:
①沒有return,返回值為None
def func():
??? pass
res=func()
print(res)
②retrun后跟一個值,返回值本身
def func1()
?? return 1
res=func1()
print(res)
③return可以用逗號分開,返回多個值,會返回一個元組給調用者
def func2()
???? return 1,2,[1,2,3]
res=func2()
print(res)
注意點:1.return返回值沒有類型的限制
?????????????? 2.return是函數結束的標志,函數內可以寫多個return,但執行一次函數就立即結束,并把return后的值作為函數的返回值
?????????????? 例如:def func3():
???????????????????????????? print(first)
???????????????????????????? return?1
??????????????????????????? print(second)
???????????????????????????? return? 2
??????????????????????????? print(third)
??????????????????????????? return? 3
????????????????????? res=func3()
???????????????????? print(res)
????????????????????
?
?
?
?
?
?
?
?
?
?
?
---恢復內容結束---
轉載于:https://www.cnblogs.com/shengg/p/8652264.html
總結
- 上一篇: GitLab10安装-部署-汉化-备份-
- 下一篇: Fragment与Activity的接口