日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中symbols函数用法_Python基础之函数用法实例详解

發布時間:2024/5/8 python 89 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中symbols函数用法_Python基础之函数用法实例详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文以實例形式較為詳細的講述了Python函數的用法,對于初學Python的朋友有不錯的借鑒價值。分享給大家供大家參考之用。具體分析如下:

通常來說,Python的函數是由一個新的語句編寫,即def,def是可執行的語句--函數并不存在,直到Python運行了def后才存在。

函數是通過賦值傳遞的,參數通過賦值傳遞給函數

def語句將創建一個函數對象并將其賦值給一個變量名,def語句的一般格式如下:

def (arg1,arg2,arg3,……,argN):

def語句是實時執行的,當它運行的時候,它創建并將一個新的函數對象賦值給一個變量名,Python所有的語句都是實時執行的,沒有像獨立的編譯時間這樣的流程

由于是語句,def可以出現在任一語句可以出現的地方--甚至是嵌套在其他語句中:

if test:

def fun():

...

else:

def func():

...

...

func()

可以將函數賦值給一個不同的變量名,并通過新的變量名進行調用:

othername=func()

othername()

創建函數

內建的callable函數可以用來判斷函數是否可調用:

>>> import math

>>> x=1

>>> y=math.sqrt

>>> callable(x)

False

>>> callable(y)

True

使用del語句定義函數:

>>> def hello(name):

return 'Hello, '+name+'!'

>>> print hello('world')

Hello, world!

>>> print hello('Gumby')

Hello, Gumby!

編寫一個fibnacci數列函數:

>>> def fibs(num):

result=[0,1]

for i in range(num-2):

result.append(result[-2]+result[-1])

return result

>>> fibs(10)

[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

>>> fibs(15)

[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377]

在函數內為參數賦值不會改變外部任何變量的值:

>>> def try_to_change(n):

n='Mr.Gumby'

>>> name='Mrs.Entity'

>>> try_to_change(name)

>>> name

'Mrs.Entity'

由于字符串(以及元組和數字)是不可改變的,故做參數的時候也就不會改變,但是如果將可變的數據結構如列表用作參數的時候會發生什么:

>>> name='Mrs.Entity'

>>> try_to_change(name)

>>> name

'Mrs.Entity'

>>> def change(n):

n[0]='Mr.Gumby'

>>> name=['Mrs.Entity','Mrs.Thing']

>>> change(name)

>>> name

['Mr.Gumby', 'Mrs.Thing']

參數發生了改變,這就是和前面例子的重要區別

以下不用函數再做一次:

>>> name=['Mrs.Entity','Mrs.Thing']

>>> n=name #再來一次,模擬傳參行為

>>> n[0]='Mr.Gumby' #改變列表

>>> name

['Mr.Gumby', 'Mrs.Thing']

當2個變量同時引用一個列表的時候,它們的確是同時引用一個列表,想避免這種情況,可以復制一個列表的副本,當在序列中做切片的時候,返回的切片總是一個副本,所以復制了整個列表的切片,將會得到一個副本:

>>> names=['Mrs.Entity','Mrs.Thing']

>>> n=names[:]

>>> n is names

False

>>> n==names

True

此時改變n不會影響到names:

>>> n[0]='Mr.Gumby'

>>> n

['Mr.Gumby', 'Mrs.Thing']

>>> names

['Mrs.Entity', 'Mrs.Thing']

>>> change(names[:])

>>> names

['Mrs.Entity', 'Mrs.Thing']

關鍵字參數和默認值

參數的順序可以通過給參數提供參數的名字(但是參數名和值一定要對應):

>>> def hello(greeting, name):

print '%s,%s!'%(greeting, name)

>>> hello(greeting='hello',name='world!')

hello,world!!

關鍵字參數最厲害的地方在于可以在參數中給參數提供默認值:

>>> def hello_1(greeting='hello',name='world!'):

print '%s,%s!'%(greeting,name)

>>> hello_1()

hello,world!!

>>> hello_1('Greetings')

Greetings,world!!

>>> hello_1('Greeting','universe')

Greeting,universe!

若想讓greeting使用默認值:

>>> hello_1(name='Gumby')

hello,Gumby!

可以給函數提供任意多的參數,實現起來也不難:

>>> def print_params(*params):

print params

>>> print_params('Testing')

('Testing',)

>>> print_params(1,2,3)

(1, 2, 3)

混合普通參數:

>>> def print_params_2(title,*params):

print title

print params

>>> print_params_2('params:',1,2,3)

params:

(1, 2, 3)

>>> print_params_2('Nothing:')

Nothing:

()

星號的意思就是“收集其余的位置參數”,如果不提供任何供收集的元素,params就是個空元組

但是不能處理關鍵字參數:

>>> print_params_2('Hmm...',something=42)

Traceback (most recent call last):

File "", line 1, in

print_params_2('Hmm...',something=42)

TypeError: print_params_2() got an unexpected keyword argument 'something'

試試使用“**”:

>>> def print_params(**params):

print params

>>> print_params(x=1,y=2,z=3)

{'y': 2, 'x': 1, 'z': 3}

>>> def parames(x,y,z=3,*pospar,**keypar):

print x,y,z

print pospar

print keypar

>>> parames(1,2,3,5,6,7,foo=1,bar=2)

1 2 3

(5, 6, 7)

{'foo': 1, 'bar': 2}

>>> parames(1,2)

1 2 3

()

{}

>>> def print_params_3(**params):

print params

>>> print_params_3(x=1,y=2,z=3)

{'y': 2, 'x': 1, 'z': 3}

>>> #返回的是字典而不是元組

>>> #組合‘#'與'##'

>>> def print_params_4(x,y,z=3,*pospar,**keypar):

print x,y,z

print pospar

print keypar

>>> print_params_4(1,2,3,5,6,7,foo=1,bar=2)

1 2 3

(5, 6, 7)

{'foo': 1, 'bar': 2}

>>> print_params_4(1,2)

1 2 3

()

{}

相信本文所述對大家Python程序設計的學習有一定的借鑒價值。

本文標題: Python基礎之函數用法實例詳解

本文地址: http://www.cppcns.com/jiaoben/python/113430.html

總結

以上是生活随笔為你收集整理的python中symbols函数用法_Python基础之函数用法实例详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。