零基础学Python(第十六章 函数·重点)
本套學習內容共計【22】個章節,每個章節都會有對應的從0-1的學習過程詳細講解,希望可以給更多的人提供幫助。
開發環境:【Win10】
開發工具:【Visual Studio 2019】
本章內容為:【函數】
1、函數是什么【def】?
函數是組織好的,可重復使用的,用來實現單一,或相關聯功能的代碼段。
函數能提高應用的模塊性,和代碼的重復利用率。你已經知道Python提供了許多內建函數,比如print()。但你也可以自己創建函數,這被叫做用戶自定義函數。
定義一個函數
你可以定義一個由自己想要功能的函數,以下是簡單的規則:
- 函數代碼塊以?def?關鍵詞開頭,后接函數標識符名稱和圓括號?()。
- 任何傳入參數和自變量必須放在圓括號中間,圓括號之間可以用于定義參數。
- 函數的第一行語句可以選擇性地使用文檔字符串—用于存放函數說明。
- 函數內容以冒號?:?起始,并且縮進。
- return [表達式]?結束函數,選擇性地返回一個值給調用方,不帶表達式的 return 相當于返回 None。
2、語法與調用
Python 定義函數使用 def 關鍵字,一般格式如下:
def 函數名(參數列表):函數體判斷閏年函數例子:
#isleap的內部函數寫法如下: def isleap(year):"""Return True for leap years, False for non-leap years."""return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)print(isleap(2000))3、傳遞參數
3.1、參數地址變化
在 python 中,類型屬于對象,變量是沒有類型的:
a=[1,2,3]a="Runoob"以上代碼中,[1,2,3]?是 List 類型,"Runoob"?是 String 類型,而變量 a 是沒有類型,她僅僅是一個對象的引用(一個指針),可以是指向 List 類型對象,也可以是指向 String 類型對象。
可更改(mutable)與不可更改(immutable)對象
在 python 中,strings, tuples, 和 numbers 是不可更改的對象,而 list,dict 等則是可以修改的對象。
-
不可變類型:變量賦值?a=5?后再賦值?a=10,這里實際是新生成一個 int 值對象 10,再讓 a 指向它,而 5 被丟棄,不是改變 a 的值,相當于新生成了 a。
-
可變類型:變量賦值?la=[1,2,3,4]?后再賦值?la[2]=5?則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。
python 函數的參數傳遞:
-
不可變類型:類似 C++ 的值傳遞,如整數、字符串、元組。如 fun(a),傳遞的只是 a 的值,沒有影響 a 對象本身。如果在 fun(a) 內部修改 a 的值,則是新生成一個 a 的對象。
-
可變類型:類似 C++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過去,修改后 fun 外部的 la 也會受影響
python 中一切都是對象,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變對象和傳可變對象。
python 傳不可變對象實例
通過?id()?函數來查看內存地址變化:
def change(a):print(id(a)) # 指向的是同一個對象a=10print(id(a)) # 一個新對象a=1 print(id(a)) change(a)3.2、多參數傳遞
簡單四則計算器:
def jia(x,y):return (x+y) def jian(x,y):return (x-y) def cheng(x,y):return (x*y) def chu(x,y):return (x/y)X=float(input("請輸入X:\n")) Y=float(input("請輸入Y:\n")) print(jia(X,Y)) print(jian(X,Y)) print(cheng(X,Y)) print(chu(X,Y))4、return用法
return [表達式]?語句用于退出函數,選擇性地向調用方返回一個表達式。不帶參數值的return語句返回None。之前的例子都沒有示范如何返回數值,以下實例演示了 return 語句的用法:
# 計算 def sum( arg1, arg2 ):# 返回2個參數的和."total = arg1 + arg2print ("函數內 : ", total)return total#返回結果,可用變量接收# 調用sum函數 total = sum( 100, 20 )#接收變量返回的值 print ("函數外 : ", total)5、總結:
請記住:
- 函數代碼塊以?def?關鍵詞開頭,后接函數標識符名稱和圓括號?()。
- 任何傳入參數和自變量必須放在圓括號中間,圓括號之間可以用于定義參數。
- 函數的第一行語句可以選擇性地使用文檔字符串—用于存放函數說明。
- 函數內容以冒號?:?起始,并且縮進。
- return [表達式]?結束函數,選擇性地返回一個值給調用方,不帶表達式的 return 相當于返回 None。
本課程目錄為:
Python初級
1 、開發工具
2 、中文編碼
3 、基礎語法
4 、變量類型
5 、運算符
6 、條件語句
7 、while循環
8 、for循環
9 、循環控制
10、 循環嵌套
11 、字符串
12 、列表
13 、元組
14、 字典
15 、日期時間
16、 函數(本章)
17 、模塊
18 、文件I/O
19 、File方法
20 、異常處理
21 、文件目錄
22 、內置函數
歡迎【點贊】、【評論】、【關注】、【收藏】、【打賞】,為推廣知識貢獻力量。
總結
以上是生活随笔為你收集整理的零基础学Python(第十六章 函数·重点)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 零基础学Python(第十五章 日期时间
- 下一篇: 零基础学Python(第十七章 模块im