python函式(一)基本概念 引數和變數作用域

2021-09-10 01:33:34 字數 4346 閱讀 6068

特徵:可重複使用、有特定功能

呼叫方式:函式名(引數)

函式盡量都要有返回值

建立方式

#1.引數可有可無。

#2.python中通常使用_funcname_的形式來指定函式名。

def_func_

(*args,

**kwargs)

:'''函式說明'''

statements

return var

可以通過__doc__方法檢視函式說明

#coding:utf-8

deftest_01()

:'''this is introduction'''

print

"1"print test_01.__doc__

輸出結果:

this is introduction

2.1 位置引數

函式根據位置順序將引數值傳入引數

def

_testpostion_

(a,b)

:print

"the first var is:"

,a print

"the second var is:"

,b_testpostion_(5,

10)輸出結果:

the first var is:5

the second var is

:10

2.2 預設引數

函式部分引數指向預設值,可以不需要在呼叫時傳入該引數函式內就可以使用。

位置通常是:必傳引數在前,預設引數在後。

若預設引數所在的位置傳入了引數,則會覆蓋預設值

def

_test02_

(name,***=

"boy"):

print name,

"and"

,***

_test02_(

"tyson"

)_test02_(

"another tyson"

,"girl"

)輸出結果:

tyson and boy

another tyson and girl

2.3 關鍵字引數

最重要的作用是,使用關鍵字引數呼叫函式的時候可以不嚴格按照函式宣告時規定的引數的順序來寫。而且函式還能正確識別。

def

_test02_

(fisrt,second)

:print

"fisrt var is:"

,fisrt,

"and the second var is:"

,second

_test02_(second=

"2",fisrt=

"1")

輸出結果:

fisrt var is:1

and the second var is

:2

2.4 非關鍵字可變引數

函式可以通過*獲取可變數量的引數,並全部放入到元組中,所謂可變就是這些引數可有可無。函式頭部分是def func(*tuple)

因為引數傳入函式後是通過元組存放的,所以沒辦法辨識引數,因此非關鍵字可變引數通常用於類似於加法對引數個體順序不做要求的功能實現。

案例1

deff(

*args)

:print args

f("tyson")f(

"tyson"

,"21")f(

"tyson"

,"21"

,"boy"

)輸出結果

('tyson',)

('tyson'

,'21')(

'tyson'

,'21'

,'boy'

)

案例2

def

sum(

*args)

:sum=0

for i in args:

sum+=i

print

sumsum(1

)sum(1

,2)sum(1

,2,3

)輸出結果13

6

2.5 關鍵字可變引數

函式可以通過獲取可變數量的引數,並全部放入到字典中,所謂可變就是這些引數可有可無**。函式頭部分是def func(*dict)

與非關鍵字可變引數最大的不同就是關鍵字可變引數在呼叫函式時需要為這些額外的引數指定變數名。

def

dict

(**args)

:print args

dict

(name=

"tyson"

)dict

(name=

"laowang"

,age=

"21"

)輸出結果:

2.6 混合引數

函式頭定義引數列表的時候,可以同時包含位置引數、預設引數、關鍵字引數、可變引數。

引數的順序是有要求的:位置引數(必備引數)→預設引數→可變引數

def

func

(x,y=1,

*tuple,**

dict):

print

"x:"

,x print

"y:"

,y print

"tuple:"

,tuple

print

"dict:"

,dict

func(10,

20,30,name=

"tyson"

)輸出結果:

x:10

y:20

tuple:(

30,)dict

:

3.1 一些基本概念

變數的作用域指的是:變數能夠被使用的範圍。

3.2 區域性變數

在函式內部定義的變數稱為區域性變數,區域性變數只能在函式內被使用,在函式外無法訪問該變數。

def

_test03_

(x,y)

: sumtemp =

sum(x,y)

_test03_(1,

2)print sumtemp

輸出結果:

traceback (most recent call last):

file "e:/users/china/pycharmprojects/func_pinginglab/test_01.py", line 4, in _test03_(1,2)

file "e:/users/china/pycharmprojects/func_pinginglab/test_01.py", line 2, in _test03_

sumtemp = sum(x,y)

typeerror: 'int' object is not iterable

3.3全域性變數

在函式外部定義的變數稱為全域性變數,全域性變數能夠被整個程式範圍呼叫。

name =

"outsidename"

def_test01_()

:print name

_test01_(

)輸出結果:

outsidename

若有函式內外有同名的變數出現,則首先使用函式內部的變數,但是並不會影響函式外不同名變數的值,這裡涉及到了命名空間的問題。

name =

"outsidename"

def_test01_()

: name =

"insidename"

print name

_test01_(

)輸出結果:

insidename

當然,我們也可以通過關鍵字global將區域性變數變成全域性變數

def

_test01_()

:global name

name =

"insidename"

_test01_(

)print name

輸出結果:

insidename

python自學 (一) 基本概念

python中數有4種型別 整數長整數 浮點數 例如52.3e 4表示52.3 10 4。複數 5 4j this is a multi line string.this is the first line.this is the second line.what s your name?i ask...

python基本概念

1.單引號,雙引號與三引號 使用單引號 你可以用單引號指示字串,就如同 quote me on this 這樣。所有的空白,即空格和製表符都照原樣保留。使用雙引號 在雙引號中的字串與單引號中的字串的使用完全相同,例如 what s your name?使用三引號 或 利用三引號,你可以指示乙個多行的...

python基本概念

也即字面意義上的常量,如同5 1.23 9.25e 3這樣的數,或者如同 this is a string it s a string 這樣的字串。它們被稱作字面意義上的,因為它們具備字面的意義 按照它們的字面意義使用它們的值 即字元的序列,它本上就是一組單詞。使用單引號 你可以用單引號指示字串,就...