第7課 初識函數
阿新 • • 發佈:2018-11-25
file ase charm shell 調用 mage ast 修改 input
一、函數
1、函數的概念:封裝一段代碼,實現特定功能的代碼塊。
2、函數的定義:def func():
1)代碼不重復
2)修改方便
def func(): print(‘step1...‘) print(‘step2...‘) func() #函數的調用 # 輸出結果 step1... step2...
3、函數的效果類似---變量
1)變量:一個對象的名字
2)函數:一段代碼的名字
4、函數在調用的時候才能執行函數體裏面的代碼
>>> def func(): print(‘函數‘) >>> func() #調用函數 函數 >>> type(func) # 查看類型 <class ‘function‘>
5、函數的定義一定在函數的調用之前
6、type(func)----<class ‘function‘>
7、None:函數無返回值---沒有return
def func(): print(‘step1...‘) print(‘step2...‘) func() print(func()) # 輸出結果 step1... step2... step1... step2... None # 無返回值
加上return
deffunc(): print(‘step1...‘) print(‘step2...‘) return ‘我是返回值‘ func() print(func()) # 結果顯示 step1... step2... step1... step2... 我是返回值
8、def func(a, b): ----a,b為必填形參
1)形參:形式主義,在函數定義的時候
2)實參:實際運行,在函數調用的時候
9、在pycharm中,如果形參被使用,則顯示為亮色,否則是灰色的。如下,a被調用,顯示為橙色,b未被調用,顯示為灰色。
函數中參數的賦值
>>> deffunc(a, b): a = 100 # 函數內部,a被賦值為100 print(a) >>> func(1, 2) #函數調用時,a的初始值為1 100 # 所以,輸出結果為100
10、func(a = 1, 2),函數的錯誤調用。前面是 變量 = 值 的形式,後面一定也用這樣的形式。
>>> func(1, 2) 100 >>> def func(a, b): print(a + b) >>> func(a = 1, 2) # 這樣寫是錯誤的 SyntaxError: positional argument follows keyword argument >>> func(a=1, b=2) # 如果是 變量 = 值,後面要保持隊形 3
11、return a + b----返回值,使用return返回值
>>> def func(a, b): return a + b >>> sumData = func(1, 2) >>> print(sumData) 3
或者直接寫成下面的形式。print(func(1, 2))等價於:
1)func(1, 2)函數的調用
2)print(3)
>>> def func(a, b): return a + b >>> print(func(1, 2)) 3
12、全局變量:在函數外部定義的變量
>>> name = ‘Tom‘ # 全局變量 >>> def func(): print(name) >>> func() Tom >>> print(name) Tom
13、局部變量:在函數內部定義的變量,它的生存空間只在函數內部。在函數外部不能被引用。
>>> def fun1(): name = ‘Lily‘ # 局部變量 print(name) >>> fun1() Lily >>> print(name) # 在函數外部不能被引用 Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> print(name) NameError: name ‘name‘ is not defined
14、return可以返回任意類型
>>> def fun(): return [1, 2, 3, 4, 5, 6, 7, 8, 9] # 返回列表 >>> fun() [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> def fun1(): return (1, 2, 3) # 返回元組 >>> fun1() (1, 2, 3)
1)函數一旦執行return,該函數就調用完成;函數內部的return後面的語句就沒有任何意義
>>> def fun(): print(‘調用return前‘) return ‘調用return‘ print(‘本句不執行!‘) >>> fun() 調用return前 ‘調用return‘
15、類型轉換:str()、int()、float()
1)int(a):a一定是整數值,否則會報錯
>>> a = ‘xxyy‘ >>> int(a) Traceback (most recent call last): File "<pyshell#21>", line 1, in <module> int(a) ValueError: invalid literal for int() with base 10: ‘xxyy‘
2)類型轉換的使用舉例
>>> data = input(‘請輸入一個數值:‘) 請輸入一個數值:3 >>> type(data) <class ‘str‘> >>> print(data + 68) Traceback (most recent call last): File "<pyshell#28>", line 1, in <module> print(data + 68) TypeError: must be str, not int >>> print(int(data) + 68) 71
# 或者用下面的方法,直接在輸入時轉換成int型 >>> data = int(input(‘請輸入一個數值:‘)) 請輸入一個數值:6 >>> type(data) <class ‘int‘> >>> print(data + 89) 95
第7課 初識函數