python簡(jiǎn)單函數(shù),python函數(shù)大全

Python基礎(chǔ)之常見(jiàn)內(nèi)建函數(shù)

map() 函數(shù)接受兩個(gè)參數(shù),一個(gè)是函數(shù),一個(gè)是可迭代對(duì)象(Iterable), map 將傳入的函數(shù)依次作用到可迭代對(duì)象的每一個(gè)元素,并把結(jié)果作為迭代器(Iterator)返回。

讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、雅安服務(wù)器托管、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、渭南網(wǎng)站維護(hù)、網(wǎng)站推廣。

舉例說(shuō)明,有一個(gè)函數(shù) f(x)=x^2 ,要把這個(gè)函數(shù)作用到一個(gè)list [1,2,3,4,5,6,7,8,9] 上:

運(yùn)用簡(jiǎn)單的循環(huán)可以實(shí)現(xiàn):

運(yùn)用高階函數(shù) map() :

結(jié)果 r 是一個(gè)迭代器,迭代器是惰性序列,通過(guò) list() 函數(shù)讓它把整個(gè)序列都計(jì)算出來(lái)并返回一個(gè) list 。

如果要把這個(gè)list所有數(shù)字轉(zhuǎn)為字符串利用 map() 就簡(jiǎn)單了:

小練習(xí):利用 map() 函數(shù),把用戶(hù)輸入的不規(guī)范的英文名字變?yōu)槭鬃帜复髮?xiě)其他小寫(xiě)的規(guī)范名字。輸入 ['adam', 'LISA', 'barT'] ,輸出 ['Adam', 'Lisa', 'Bart']

reduce() 函數(shù)也是接受兩個(gè)參數(shù),一個(gè)是函數(shù),一個(gè)是可迭代對(duì)象, reduce 將傳入的函數(shù)作用到可迭代對(duì)象的每個(gè)元素的結(jié)果做累計(jì)計(jì)算。然后將最終結(jié)果返回。

效果就是: reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

舉例說(shuō)明,將序列 [1,2,3,4,5] 變換成整數(shù) 12345 :

小練習(xí):編寫(xiě)一個(gè) prod() 函數(shù),可以接受一個(gè) list 并利用 reduce 求積:

map() 和 reduce() 綜合練習(xí):編寫(xiě) str2float 函數(shù),把字符串 '123.456' 轉(zhuǎn)換成浮點(diǎn)型 123.456

filter() 函數(shù)用于過(guò)濾序列, filter() 也接受一個(gè)函數(shù)和一個(gè)序列, filter() 把傳入的函數(shù)依次作用于每個(gè)元素,然后根據(jù)返回值是 True 還是 False 決定保留還是丟棄該元素。

舉例說(shuō)明,刪除list中的偶數(shù):

小練習(xí):用 filter() 求素?cái)?shù)

定義一個(gè)篩選函數(shù):

定義一個(gè)生成器不斷返回下一個(gè)素?cái)?shù):

打印100以?xún)?nèi)素?cái)?shù):

python內(nèi)置的 sorted() 函數(shù)可以對(duì)list進(jìn)行排序:

sorted() 函數(shù)也是一個(gè)高階函數(shù),還可以接受一個(gè) key 函數(shù)來(lái)實(shí)現(xiàn)自定義排序:

key 指定的函數(shù)將作用于list的每一個(gè)元素上,并根據(jù) key 函數(shù)返回的結(jié)果進(jìn)行排序.

默認(rèn)情況下,對(duì)字符串排序,是按照ASCII的大小比較的,由于'Z' 'a',結(jié)果,大寫(xiě)字母Z會(huì)排在小寫(xiě)字母a的前面。如果想忽略大小寫(xiě)可都轉(zhuǎn)換成小寫(xiě)來(lái)比較:

要進(jìn)行反向排序,不必改動(dòng)key函數(shù),可以傳入第三個(gè)參數(shù) reverse=True :

小練習(xí):假設(shè)我們用一組tuple表示學(xué)生名字和成績(jī): L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)] 。用sorted()對(duì)上述列表分別按c成績(jī)從高到低排序:

運(yùn)用匿名函數(shù)更簡(jiǎn)潔:

Python中冷門(mén)但非常好用的內(nèi)置函數(shù)

Python中有許多內(nèi)置函數(shù),不像print、len那么廣為人知,但它們的功能卻異常強(qiáng)大,用好了可以大大提高代碼效率,同時(shí)提升代碼的簡(jiǎn)潔度,增強(qiáng)可閱讀性

Counter

collections在python官方文檔中的解釋是High-performance container datatypes,直接的中文翻譯解釋高性能容量數(shù)據(jù)類(lèi)型。這個(gè)模塊實(shí)現(xiàn)了特定目標(biāo)的容器,以提供Python標(biāo)準(zhǔn)內(nèi)建容器 dict , list , set , 和 tuple 的替代選擇。在python3.10.1中它總共包含以下幾種數(shù)據(jù)類(lèi)型:

容器名簡(jiǎn)介

namedtuple() 創(chuàng)建命名元組子類(lèi)的工廠(chǎng)函數(shù)

deque 類(lèi)似列表(list)的容器,實(shí)現(xiàn)了在兩端快速添加(append)和彈出(pop)

ChainMap 類(lèi)似字典(dict)的容器類(lèi),將多個(gè)映射集合到一個(gè)視圖里面

Counter 字典的子類(lèi),提供了可哈希對(duì)象的計(jì)數(shù)功能

OrderedDict 字典的子類(lèi),保存了他們被添加的順序

defaultdict 字典的子類(lèi),提供了一個(gè)工廠(chǎng)函數(shù),為字典查詢(xún)提供一個(gè)默認(rèn)值

UserDict 封裝了字典對(duì)象,簡(jiǎn)化了字典子類(lèi)化

UserList 封裝了列表對(duì)象,簡(jiǎn)化了列表子類(lèi)化

UserString 封裝了字符串對(duì)象,簡(jiǎn)化了字符串子類(lèi)化

其中Counter中文意思是計(jì)數(shù)器,也就是我們常用于統(tǒng)計(jì)的一種數(shù)據(jù)類(lèi)型,在使用Counter之后可以讓我們的代碼更加簡(jiǎn)單易讀。Counter類(lèi)繼承dict類(lèi),所以它能使用dict類(lèi)里面的方法

舉例

#統(tǒng)計(jì)詞頻

fruits = ['apple', 'peach', 'apple', 'lemon', 'peach', 'peach']

result = {}

for fruit in fruits:

if not result.get(fruit):

result[fruit] = 1

else:

result[fruit] += 1

print(result)

#{'apple': 2, 'peach': 3, 'lemon': 1}下面我們看用Counter怎么實(shí)現(xiàn):

from collections import Counter

fruits = ['apple', 'peach', 'apple', 'lemon', 'peach', 'peach']

c = Counter(fruits)

print(dict(c))

#{'apple': 2, 'peach': 3, 'lemon': 1}顯然代碼更加簡(jiǎn)單了,也更容易閱讀和維護(hù)了。

elements()

返回一個(gè)迭代器,其中每個(gè)元素將重復(fù)出現(xiàn)計(jì)數(shù)值所指定次。元素會(huì)按首次出現(xiàn)的順序返回。如果一個(gè)元素的計(jì)數(shù)值小于1,elements()將會(huì)忽略它。

c = Counter(a=4, b=2, c=0, d=-2)

sorted(c.elements())

['a', 'a', 'a', 'a', 'b', 'b']most_common([n])

返回一個(gè)列表,其中包含n個(gè)最常見(jiàn)的元素及出現(xiàn)次數(shù),按常見(jiàn)程度由高到低排序。如果n被省略或?yàn)镹one,most_common()將返回計(jì)數(shù)器中的所有元素。計(jì)數(shù)值相等的元素按首次出現(xiàn)的順序排序:

Counter('abracadabra').most_common(3)

[('a', 5), ('b', 2), ('r', 2)]這兩個(gè)方法是Counter中最常用的方法,其他方法可以參考 python3.10.1官方文檔

實(shí)戰(zhàn)

Leetcode 1002.查找共用字符

給你一個(gè)字符串?dāng)?shù)組words,請(qǐng)你找出所有在words的每個(gè)字符串中都出現(xiàn)的共用字符(包括重復(fù)字符),并以數(shù)組形式返回。你可以按任意順序返回答案。

輸入:words = ["bella", "label", "roller"]

輸出:["e", "l", "l"]

輸入:words = ["cool", "lock", "cook"]

輸出:["c", "o"]看到統(tǒng)計(jì)字符,典型的可以用Counter完美解決。這道題是找出字符串列表里面每個(gè)元素都包含的字符,首先可以用Counter計(jì)算出每個(gè)元素每個(gè)字符出現(xiàn)的次數(shù),依次取交集最后得出所有元素共同存在的字符,然后利用elements輸出共用字符出現(xiàn)的次數(shù)

class Solution:

def commonChars(self, words: List[str]) - List[str]:

from collections import Counter

ans = Counter(words[0])

for i in words[1:]:

ans = Counter(i)

return list(ans.elements())提交一下,發(fā)現(xiàn)83個(gè)測(cè)試用例耗時(shí)48ms,速度還是不錯(cuò)的

sorted

在處理數(shù)據(jù)過(guò)程中,我們經(jīng)常會(huì)用到排序操作,比如將列表、字典、元組里面的元素正/倒排序。這時(shí)候就需要用到sorted(),它可以對(duì)任何可迭代對(duì)象進(jìn)行排序,并返回列表

對(duì)列表升序操作:

a = sorted([2, 4, 3, 7, 1, 9])

print(a)

# 輸出:[1, 2, 3, 4, 7, 9]對(duì)元組倒序操作:

sorted((4,1,9,6),reverse=True)

print(a)

# 輸出:[9, 6, 4, 1]使用參數(shù):key,根據(jù)自定義規(guī)則,按字符串長(zhǎng)度來(lái)排序:

fruits = ['apple', 'watermelon', 'pear', 'banana']

a = sorted(fruits, key = lambda x : len(x))

print(a)

# 輸出:['pear', 'apple', 'banana', 'watermelon']all

all() 函數(shù)用于判斷給定的可迭代參數(shù)iterable中的所有元素是否都為 TRUE,如果是返回 True,否則返回 False。元素除了是 0、空、None、False外都算True。注意:空元組、空列表返回值為T(mén)rue。

all(['a', 'b', 'c', 'd']) # 列表list,元素都不為空或0

True

all(['a', 'b', '', 'd']) # 列表list,存在一個(gè)為空的元素

False

all([0, 1,2, 3]) # 列表list,存在一個(gè)為0的元素

False

all(('a', 'b', 'c', 'd')) # 元組tuple,元素都不為空或0

True

all(('a', 'b', '', 'd')) # 元組tuple,存在一個(gè)為空的元素

False

all((0, 1, 2, 3)) # 元組tuple,存在一個(gè)為0的元素

False

all([]) # 空列表

True

all(()) # 空元組

Trueany函數(shù)正好和all函數(shù)相反:判斷一個(gè)tuple或者list是否全為空,0,F(xiàn)alse。如果全為空,0,F(xiàn)alse,則返回False;如果不全為空,則返回True。

F-strings

在python3.6.2版本中,PEP 498提出一種新型字符串格式化機(jī)制,被稱(chēng)為 “字符串插值” 或者更常見(jiàn)的一種稱(chēng)呼是F-strings,F(xiàn)-strings提供了一種明確且方便的方式將python表達(dá)式嵌入到字符串中來(lái)進(jìn)行格式化:

s1='Hello'

s2='World'

print(f'{s1} {s2}!')

# Hello World!在F-strings中我們也可以執(zhí)行函數(shù):

def power(x):

return x*x

x=4

print(f'{x} * {x} = {power(x)}')

# 4 * 4 = 16而且F-strings的運(yùn)行速度很快,比傳統(tǒng)的%-string和str.format()這兩種格式化方法都快得多,書(shū)寫(xiě)起來(lái)也更加簡(jiǎn)單。

本文主要講解了python幾種冷門(mén)但好用的函數(shù),更多內(nèi)容以后會(huì)陸陸續(xù)續(xù)更新~

Python的函數(shù)都有哪些?

Python 函數(shù)

函數(shù)是組織好的,可重復(fù)使用的,用來(lái)實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。

函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率。你已經(jīng)知道Python提供了許多內(nèi)建函數(shù),比如print()。但你也可以自己創(chuàng)建函數(shù),這被叫做用戶(hù)自定義函數(shù)。

定義一個(gè)函數(shù)

你可以定義一個(gè)由自己想要功能的函數(shù),以下是簡(jiǎn)單的規(guī)則:

函數(shù)代碼塊以?def?關(guān)鍵詞開(kāi)頭,后接函數(shù)標(biāo)識(shí)符名稱(chēng)和圓括號(hào)()。

任何傳入?yún)?shù)和自變量必須放在圓括號(hào)中間。圓括號(hào)之間可以用于定義參數(shù)。

函數(shù)的第一行語(yǔ)句可以選擇性地使用文檔字符串—用于存放函數(shù)說(shuō)明。

函數(shù)內(nèi)容以冒號(hào)起始,并且縮進(jìn)。

return [表達(dá)式]?結(jié)束函數(shù),選擇性地返回一個(gè)值給調(diào)用方。不帶表達(dá)式的return相當(dāng)于返回 None。

語(yǔ)法

def functionname( parameters ): ? "函數(shù)_文檔字符串"

function_suite

return [expression]

默認(rèn)情況下,參數(shù)值和參數(shù)名稱(chēng)是按函數(shù)聲明中定義的順序匹配起來(lái)的。

實(shí)例

以下為一個(gè)簡(jiǎn)單的Python函數(shù),它將一個(gè)字符串作為傳入?yún)?shù),再打印到標(biāo)準(zhǔn)顯示設(shè)備上。

實(shí)例(Python 2.0+)

def printme( str ): ? "打印傳入的字符串到標(biāo)準(zhǔn)顯示設(shè)備上"

print str

return

函數(shù)調(diào)用

定義一個(gè)函數(shù)只給了函數(shù)一個(gè)名稱(chēng),指定了函數(shù)里包含的參數(shù),和代碼塊結(jié)構(gòu)。

這個(gè)函數(shù)的基本結(jié)構(gòu)完成以后,你可以通過(guò)另一個(gè)函數(shù)調(diào)用執(zhí)行,也可以直接從Python提示符執(zhí)行。

如下實(shí)例調(diào)用了printme()函數(shù):

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

# 定義函數(shù)def printme( str ): ? "打印任何傳入的字符串"

print str

return

# 調(diào)用函數(shù)printme("我要調(diào)用用戶(hù)自定義函數(shù)!")printme("再次調(diào)用同一函數(shù)")

以上實(shí)例輸出結(jié)果:

我要調(diào)用用戶(hù)自定義函數(shù)!再次調(diào)用同一函數(shù)

參數(shù)傳遞

在 python 中,類(lèi)型屬于對(duì)象,變量是沒(méi)有類(lèi)型的:

a=[1,2,3]

a="Runoob"

以上代碼中,[1,2,3]?是 List 類(lèi)型,"Runoob"?是 String 類(lèi)型,而變量 a 是沒(méi)有類(lèi)型,她僅僅是一個(gè)對(duì)象的引用(一個(gè)指針),可以是 List 類(lèi)型對(duì)象,也可以指向 String 類(lèi)型對(duì)象。

可更改(mutable)與不可更改(immutable)對(duì)象

在 python 中,strings, tuples, 和 numbers 是不可更改的對(duì)象,而 list,dict 等則是可以修改的對(duì)象。

不可變類(lèi)型:變量賦值?a=5?后再賦值?a=10,這里實(shí)際是新生成一個(gè) int 值對(duì)象 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當(dāng)于新生成了a。

可變類(lèi)型:變量賦值?la=[1,2,3,4]?后再賦值?la[2]=5?則是將 list la 的第三個(gè)元素值更改,本身la沒(méi)有動(dòng),只是其內(nèi)部的一部分值被修改了。

python 函數(shù)的參數(shù)傳遞:

不可變類(lèi)型:類(lèi)似 c++ 的值傳遞,如 整數(shù)、字符串、元組。如fun(a),傳遞的只是a的值,沒(méi)有影響a對(duì)象本身。比如在 fun(a)內(nèi)部修改 a 的值,只是修改另一個(gè)復(fù)制的對(duì)象,不會(huì)影響 a 本身。

可變類(lèi)型:類(lèi)似 c++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過(guò)去,修改后fun外部的la也會(huì)受影響

python 中一切都是對(duì)象,嚴(yán)格意義我們不能說(shuō)值傳遞還是引用傳遞,我們應(yīng)該說(shuō)傳不可變對(duì)象和傳可變對(duì)象。

python 傳不可變對(duì)象實(shí)例

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

def ChangeInt( a ): ? ?a = 10

b = 2ChangeInt(b)print b # 結(jié)果是 2

實(shí)例中有 int 對(duì)象 2,指向它的變量是 b,在傳遞給 ChangeInt 函數(shù)時(shí),按傳值的方式復(fù)制了變量 b,a 和 b 都指向了同一個(gè) Int 對(duì)象,在 a=10 時(shí),則新生成一個(gè) int 值對(duì)象 10,并讓 a 指向它。

傳可變對(duì)象實(shí)例

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

# 可寫(xiě)函數(shù)說(shuō)明def changeme( mylist ): ? "修改傳入的列表"

mylist.append([1,2,3,4])

print "函數(shù)內(nèi)取值: ", mylist

return

# 調(diào)用changeme函數(shù)mylist = [10,20,30]changeme( mylist )print "函數(shù)外取值: ", mylist

實(shí)例中傳入函數(shù)的和在末尾添加新內(nèi)容的對(duì)象用的是同一個(gè)引用,故輸出結(jié)果如下:

函數(shù)內(nèi)取值: ?[10, 20, 30, [1, 2, 3, 4]]函數(shù)外取值: ?[10, 20, 30, [1, 2, 3, 4]]

參數(shù)

以下是調(diào)用函數(shù)時(shí)可使用的正式參數(shù)類(lèi)型:

必備參數(shù)

關(guān)鍵字參數(shù)

默認(rèn)參數(shù)

不定長(zhǎng)參數(shù)

必備參數(shù)

必備參數(shù)須以正確的順序傳入函數(shù)。調(diào)用時(shí)的數(shù)量必須和聲明時(shí)的一樣。

調(diào)用printme()函數(shù),你必須傳入一個(gè)參數(shù),不然會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤:

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

#可寫(xiě)函數(shù)說(shuō)明def printme( str ): ? "打印任何傳入的字符串"

print str

return

#調(diào)用printme函數(shù)printme()

以上實(shí)例輸出結(jié)果:

Traceback (most recent call last):

File "test.py", line 11, in module

printme()TypeError: printme() takes exactly 1 argument (0 given)

關(guān)鍵字參數(shù)

關(guān)鍵字參數(shù)和函數(shù)調(diào)用關(guān)系緊密,函數(shù)調(diào)用使用關(guān)鍵字參數(shù)來(lái)確定傳入的參數(shù)值。

使用關(guān)鍵字參數(shù)允許函數(shù)調(diào)用時(shí)參數(shù)的順序與聲明時(shí)不一致,因?yàn)?Python 解釋器能夠用參數(shù)名匹配參數(shù)值。

以下實(shí)例在函數(shù) printme() 調(diào)用時(shí)使用參數(shù)名:

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

#可寫(xiě)函數(shù)說(shuō)明def printme( str ): ? "打印任何傳入的字符串"

print str

return

#調(diào)用printme函數(shù)printme( str = "My string")

以上實(shí)例輸出結(jié)果:

My string

下例能將關(guān)鍵字參數(shù)順序不重要展示得更清楚:

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

#可寫(xiě)函數(shù)說(shuō)明def printinfo( name, age ): ? "打印任何傳入的字符串"

print "Name: ", name

print "Age ", age

return

#調(diào)用printinfo函數(shù)printinfo( age=50, name="miki" )

以上實(shí)例輸出結(jié)果:

Name: ?mikiAge ?50

默認(rèn)參數(shù)

調(diào)用函數(shù)時(shí),默認(rèn)參數(shù)的值如果沒(méi)有傳入,則被認(rèn)為是默認(rèn)值。下例會(huì)打印默認(rèn)的age,如果age沒(méi)有被傳入:

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

#可寫(xiě)函數(shù)說(shuō)明def printinfo( name, age = 35 ): ? "打印任何傳入的字符串"

print "Name: ", name

print "Age ", age

return

#調(diào)用printinfo函數(shù)printinfo( age=50, name="miki" )printinfo( name="miki" )

以上實(shí)例輸出結(jié)果:

Name: ?mikiAge ?50Name: ?mikiAge ?35

不定長(zhǎng)參數(shù)

你可能需要一個(gè)函數(shù)能處理比當(dāng)初聲明時(shí)更多的參數(shù)。這些參數(shù)叫做不定長(zhǎng)參數(shù),和上述2種參數(shù)不同,聲明時(shí)不會(huì)命名?;菊Z(yǔ)法如下:

def functionname([formal_args,] *var_args_tuple ): ? "函數(shù)_文檔字符串"

function_suite

return [expression]

加了星號(hào)(*)的變量名會(huì)存放所有未命名的變量參數(shù)。不定長(zhǎng)參數(shù)實(shí)例如下:

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

# 可寫(xiě)函數(shù)說(shuō)明def printinfo( arg1, *vartuple ): ? "打印任何傳入的參數(shù)"

print "輸出: "

print arg1

for var in vartuple: ? ? ?print var

return

# 調(diào)用printinfo 函數(shù)printinfo( 10 )printinfo( 70, 60, 50 )

以上實(shí)例輸出結(jié)果:

輸出:10輸出:706050

匿名函數(shù)

python 使用 lambda 來(lái)創(chuàng)建匿名函數(shù)。

lambda只是一個(gè)表達(dá)式,函數(shù)體比def簡(jiǎn)單很多。

lambda的主體是一個(gè)表達(dá)式,而不是一個(gè)代碼塊。僅僅能在lambda表達(dá)式中封裝有限的邏輯進(jìn)去。

lambda函數(shù)擁有自己的命名空間,且不能訪(fǎng)問(wèn)自有參數(shù)列表之外或全局命名空間里的參數(shù)。

雖然lambda函數(shù)看起來(lái)只能寫(xiě)一行,卻不等同于C或C++的內(nèi)聯(lián)函數(shù),后者的目的是調(diào)用小函數(shù)時(shí)不占用棧內(nèi)存從而增加運(yùn)行效率。

語(yǔ)法

lambda函數(shù)的語(yǔ)法只包含一個(gè)語(yǔ)句,如下:

lambda [arg1 [,arg2,.....argn]]:expression

如下實(shí)例:

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

# 可寫(xiě)函數(shù)說(shuō)明sum = lambda arg1, arg2: arg1 + arg2

# 調(diào)用sum函數(shù)print "相加后的值為 : ", sum( 10, 20 )print "相加后的值為 : ", sum( 20, 20 )

以上實(shí)例輸出結(jié)果:

相加后的值為 : ?30相加后的值為 : ?40

return 語(yǔ)句

return語(yǔ)句[表達(dá)式]退出函數(shù),選擇性地向調(diào)用方返回一個(gè)表達(dá)式。不帶參數(shù)值的return語(yǔ)句返回None。之前的例子都沒(méi)有示范如何返回?cái)?shù)值,下例便告訴你怎么做:

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

# 可寫(xiě)函數(shù)說(shuō)明def sum( arg1, arg2 ): ? # 返回2個(gè)參數(shù)的和."

total = arg1 + arg2

print "函數(shù)內(nèi) : ", total

return total

# 調(diào)用sum函數(shù)total = sum( 10, 20 )

以上實(shí)例輸出結(jié)果:

函數(shù)內(nèi) : ?30

變量作用域

一個(gè)程序的所有的變量并不是在哪個(gè)位置都可以訪(fǎng)問(wèn)的。訪(fǎng)問(wèn)權(quán)限決定于這個(gè)變量是在哪里賦值的。

變量的作用域決定了在哪一部分程序你可以訪(fǎng)問(wèn)哪個(gè)特定的變量名稱(chēng)。兩種最基本的變量作用域如下:

全局變量

局部變量

全局變量和局部變量

定義在函數(shù)內(nèi)部的變量擁有一個(gè)局部作用域,定義在函數(shù)外的擁有全局作用域。

局部變量只能在其被聲明的函數(shù)內(nèi)部訪(fǎng)問(wèn),而全局變量可以在整個(gè)程序范圍內(nèi)訪(fǎng)問(wèn)。調(diào)用函數(shù)時(shí),所有在函數(shù)內(nèi)聲明的變量名稱(chēng)都將被加入到作用域中。如下實(shí)例:

實(shí)例(Python 2.0+)

#!/usr/bin/python# -*- coding: UTF-8 -*-

total = 0 # 這是一個(gè)全局變量# 可寫(xiě)函數(shù)說(shuō)明def sum( arg1, arg2 ): ? #返回2個(gè)參數(shù)的和."

total = arg1 + arg2 # total在這里是局部變量.

print "函數(shù)內(nèi)是局部變量 : ", total

return total

#調(diào)用sum函數(shù)sum( 10, 20 )print "函數(shù)外是全局變量 : ", total

以上實(shí)例輸出結(jié)果:

函數(shù)內(nèi)是局部變量 : ?30函數(shù)外是全局變量 : ?0

網(wǎng)站名稱(chēng):python簡(jiǎn)單函數(shù),python函數(shù)大全
標(biāo)題網(wǎng)址:http://muchs.cn/article26/hcgojg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站設(shè)計(jì)、定制網(wǎng)站外貿(mào)網(wǎng)站建設(shè)、虛擬主機(jī)、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名