首頁 >後端開發 >Python教學 >Python基礎知識函數總結

Python基礎知識函數總結

零到壹度
零到壹度原創
2018-04-02 09:46:341598瀏覽

這篇文章給大家分享的是Python基礎知識之函數總結,內容挺不錯的,希望可以幫助到有需要的朋友。

函數:包含自訂函數、內建函數<br>

1)自訂函數結構:包含五個部分:

  • #def關鍵字:識別用於建立函數

  • #函數名稱:

    例如f1

  • ():

    ( )裡面有參數

    函數體:
  • 具體這個函數要實現的函數

Python基礎知識函數總結return:

傳回值,如果無,則傳回none

##如下所示:

2)函數的呼叫:

用函數名稱+()

形式為:函數名稱(參數1,參數2),例如f1(5,8)

3)函數的執行順序:

自上至下。 <br>

    而函數體只有在被呼叫的時候才執行Python基礎知識函數總結

    如果要取函數的回傳值,則需要賦值。

Python基礎知識函數總結    函數體內的return後的語句不再執行。

<br>

<br>執行結果:

案例1 :自訂函數,因為沒有呼叫函數,所以函數體不執行

###
f1():
()
################案例2,呼叫函數,執行函數體。函數體中一旦執行到return,則立即終止,因此後面的print(456)永遠不會執行。 ######
f1():
()
()
f1()
######案例執行結果為:123#######

案例3,结果为123、111,因为有return把值给了r,print(r)打印出来111

f1():
()
r=f1()
(r)

案例执行结果为:123、111

案例4:当函数无return的时候,自动默认返回值为None;返回结果为123、None,因为没有return,r接受到的值为None

f1():
()
r=f1()
(r)

案例执行结果为:123、none

案例5:python传递的是引用,不是复制,如下的li经过函数体执行后,已经被引用了

f1(a1):
    a1.append()
li=[,,,]
(li)
f1(li)
(li)

执行结果:

[11, 22, 33, 44]

[11, 22, 33, 44, 999]

<br>

4)函数的参数:<br>

比如f(x1,x2,x3=1),x1,x2,x3则为参数

包含的参数类型有:

            普通参数:形式参数和实际参数<br>

            默认参数:提前给定值,比如x3<br>

            指定参数:实际参数调用时,可以改变顺序指定

            动态参数:<br>

                *args<br>

                **kargs<br>

                万能参数*args,**kagrs

<br>

案例1:区分形式参数和实际参数:

案例中的xxx为形式参数,调用函数时传递的为实际参数<br>

f1(xxx):
()
xxx+r=f1()
(r)

<br>

案例2:理解参数的调用

普通参数,x1、x2,在f1里面按顺序传递

<br>
f1(x1,x2):
x1+x2
r=f1(,)

默认参数,如果设置,则该形式参数必须放后面,如x3,调用时不用再次传递

f1(x1,x2,x3=):
x1+x2+x3
r=f1(,)

指定参数,指定参数可以改变顺序指定

<br>
f1(x1,x2,x3=):
x1+x2+x3
f1(x2=,x1=)
(r)

案例3:动态函数(函数名前加*,或者**):一个形式参数,可以接受多个实际参数。

当形式参数带*时,默认将传递的参数放置在群组中

  • 当实际参数为普通参数传递时,即使列表,也会被作为一个元素传递

  • 当实际参数有*时,list所有的元素将相应的作为元祖的每一个元素

(x,(x))
f1(,,)
li=[,,,]
f1(li)
f1(*li)

执行结果:

('55', 66, 'll')

([11, 22, 33, 'hhhh'],)

(11, 22, 33, 'hhhh')

<br>

当为**时,默认传递的参数放置在字典中,实际参数必须为指定参数或字典

案例4:如果形式参数为**,传递实际参数的时候也传递**,则会把整个字典传进去

f1(**x):
(x,(x))
f1(=,=)
dic={:,:}
f1(**dic)

执行结果:<br>

{'n1': 'hh', 'n2': 'kk'}

{'k1': 'n1', 'k2': 'n2'}

<br>

案例5:万能参数:f1(*args,**args),必须*在前,**在后

f1(*a,**x):
(a,(a))
(x,(x))
f1(,,,**{:,:})

执行结果

(11, 22, 33)

{'k1': 'n1', 'k2': 'n2'}

<br>

关于万能参数的应用,就是str.format

案例6:用占位符传递,这样是*arg的应用

s1=.format(,)
s2=.format(*[,])
(s1)
(s2)

执行结果:

i am hh,age2

i am hh,age2

<br>

案例7:当形式参数为字符变量时,必须后面指定参数传递,为**arg的应用

=.format(=,=)
dic={:,:}
s2=.format(**dic)
()
(s2)

执行结果:

i am hh,age2

i am nn,age4

<br>

5)全局变量:作用在全局,用大写表示,如果要修改且作用于全局,则需要加global

案例1:全局变量:作用域在全局,用大写表示。<br>

=f1():
    age=(age,)
f2():
    age = (age, )
f1()
f2()

Python基礎知識函數總結

案例2:修改全局变量:如果要修改且对全局有用,则可以用global

NAME=f1():
    age=NAME
    NAME = (age,NAME)
f2():
    age = (age, NAME)
f1()
f2()

执行结果:

64Python基礎知識函數總結

案例3:修改全局变量:不加global,则仅作用在函数内部

=f1():
    age= = (age,)
f2():
    age = (age, )
f1()
f2()

执行结果:

Python基礎知識函數總結

<br>

6)三元\三目运算:即if..else的简称。

格式为:"为真时的结果   if 判定条件    else 为假时的结果" ,

“condition ? true_part : false_part”

<br>

案例1:如果1==1条件成立,就等于前面的值,否则为后面的值hhh

==:
    name=:
    name=name2===

6)lambda函数:目的就是简化用户定义使用函数的过程

案例1:lambda函数,简写函数,一个参数

f1(a1):
a1+ret=f1()
(ret)

#案例可以简写

=a1:a1+r1=()
(r1)

案例2:lambda函数,简写俩参数

=a1,a2:a1*a2+r1=(,)
(r1)

案例3:应用lambda函数

=[,,,,,]
key=w:[w]
r=key()
(r)

案例4:循环用法案例

=n=alphabet=s3=[[:i]+c+[i+:] i () c alphabet]
(s3)

执行结果为:

Python基礎知識函數總結

7)python有很多内置函数,可以直接使用

可参考:http://www.cnblogs.com/vamei/archive/2012/11/09/2762224.html

Python基礎知識函數總結

以上是Python基礎知識函數總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn