==================================================
創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的梅縣網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
前面定義函數(shù)greet_user()時,要求給變量username指定一個值,調(diào)用這個函數(shù)并提供這種信息(人名)時,它將打印相應的問候語。
在函數(shù)greet_user()種,變量username是一個形參,函數(shù)完成其工作所需要的一項信息。在代碼greet_user('da ming')中,值'da ming'是一個實參。實參時調(diào)用函數(shù)時傳遞給函數(shù)的信息。
在調(diào)用函數(shù)時,將要讓函數(shù)使用的信息放在括號內(nèi),在greet_user('da ming')中,將實參'da ming'傳遞給函數(shù)greet_user(),這個值被存貯在形參username中。
鑒于函數(shù)定義中可能包含多個形參,因此函數(shù)調(diào)用中也可能包含多個實參。
向函數(shù)傳遞實參的方式有很多,可使用位置實參,這要求實參的順序與形參的順序相同;也可使用關鍵字實參,其中每個實參都由變量名和值組成;還可以使用列表和字典
在 Python 中,“return”函數(shù)的用法如下:
1、return 語句用于退出函數(shù),終止函數(shù)并將 return 值傳回。實例:
def?a(x,y):
if?x==y:
return?x,y
2、用于同一循環(huán)語句下,遇到第一個 return 后即返回。實例:
```python
def?fun(a,b):
print?(a)
return?a
print?(b)
return?b
resunlt?=?fun(2,6)
2
```
3、用于 return 在不帶參數(shù)的情況下(或者沒有寫 return 語句),默認返回 None。實例:
def?recurve(a,b):
if?a%b==0:
return?b
else:
gcd(b,a%b)
以上內(nèi)容參考:百度百科-Python
name參數(shù)和greeting參數(shù)都會使用各自的默認值
當然,有參數(shù)默認值的函數(shù)還有很多其他的調(diào)用方式,這一點可以看下面的例7.4中的演示。
python count()函數(shù)的功能和用法如下:
統(tǒng)計字符串
在python中可以使用“count()”函數(shù)統(tǒng)計字符串里某個字符出現(xiàn)的次數(shù),該函數(shù)用于統(tǒng)計次數(shù),其語法是“count(sub, start...
Python count() 方法用于統(tǒng)計字符串里某個字符出現(xiàn)的次數(shù)。可選參數(shù)為在字符串搜索的開始與結束位置。
count()函數(shù)
描述:統(tǒng)計字符串里某個字符出現(xiàn)的次數(shù)??梢赃x擇字符串索引的起始位置和結束位置。? ? ? ? ?
語法:str.count("char", start,end)? 或 str.count("char")? ? - int? ? 返回整數(shù)
str —— 為要統(tǒng)計的字符(可以是單字符,也可以是多字符)。
star —— 為索引字符串的起始位置,默認參數(shù)為0。
end —— 為索引字符串的結束位置,默認參數(shù)為字符串長度即len(str)
==================================
將列表傳遞給函數(shù)后,函數(shù)就能直接訪問其內(nèi)容
假設有一個用戶列表,要問候其中的每位用戶
將列表傳遞給函數(shù)后,函數(shù)就可對其進行修改,在函數(shù)中對這個列表所做的任何修改都是永久性的
一家為用戶提交的設計制作3D打印模型的公司,需要打印的設計存儲在一個列表中,打印后轉(zhuǎn)移到另一個列表中。
有時候需要禁止函數(shù)修改列表,為解決這個問題,可想向函數(shù)傳遞列表的副本而不是元件;這樣函數(shù)所做的任何修改都只影響副本,不影響元件
有時候,預先布置的函數(shù)需要接受多少個實參,python允許函數(shù)從調(diào)用語句中手機任意數(shù)量的實參
一個制作披薩的寒素,它需要接受很多配料,但無法確定顧客要多少種配料,下面函數(shù)只有一個形參*toppings,不管調(diào)用語句提供了多少實參,這個形參都將他們統(tǒng)統(tǒng)收入囊中
如果要讓函數(shù)接受不同類型的實參,必須在函數(shù)定義中將接納任意數(shù)量實參的形參放在最后
python先匹配位置實參和關鍵字實參,再將余下的實參收集到最后一個形參中
如果前邊的函數(shù)還需要一個表示披薩尺寸的實參,必須將該形參放在*toppings的前面
有時候,需要接受任意數(shù)量的實參,但預先不知道傳遞給函數(shù)的會是射門楊的信息,再這種情況下,可將函數(shù)編寫成能夠接受任意數(shù)量的鍵-值對,調(diào)用語句提供了多少就接受多少
創(chuàng)建用戶簡介:你知道你將收到有關用戶的信息,但不確定會是什么樣的信息,在下面示例中,build_profile()接受名和姓,同時還接受任意數(shù)量的關鍵字實參
1、定義函數(shù)
函數(shù)是可重用的程序。本書中已經(jīng)使用了許多內(nèi)建函數(shù),如len()函數(shù)和range()函數(shù),但是還沒自定義過函數(shù)。定義函數(shù)的語法格式如下:
def 函數(shù)名(參數(shù)):
函數(shù)體
定義函數(shù)的規(guī)則如下:
①關鍵字def用來定義一個函數(shù),它是define的縮寫。
②函數(shù)名是函數(shù)的唯一標識,函數(shù)名的命名規(guī)則遵循標識符的命名規(guī)則。
③函數(shù)名后面一定要緊跟著一個括號,括號內(nèi)的參數(shù)是可選的,括號后面要有冒號。
④函數(shù)體(statement)為一個或一組Python語句,注意要有縮進。
⑤函數(shù)體的第一行可以有文檔字符串,用于描述函數(shù)的功能,用三引號括起來。
按照定義規(guī)則,可以定義第一個函數(shù)了:
def?hello_world():
...?????print('Hello,world!')???#?注意函數(shù)體要有縮進
...
hello_world()
Hello,world!
這個函數(shù)不帶任何參數(shù),它的功能是打印出“Hello,world!”。最后一行代碼hello_world()是調(diào)用函數(shù),即讓Python執(zhí)行函數(shù)的代碼。
2、全局變量和局部變量
全局變量是定義在所有函數(shù)外的變量。例如,定義一個全局變量a,分別在函數(shù)test1()和test2()使用變量a:
a?=?100???#?全局變量
def?test1():
...?????print(a)
...
def?test2():
...?????print(a)
...
test1()
100
test2()
100
定義了全局變量a之后,在函數(shù)test1()和test2()內(nèi)都可以使用變量a,由此可知,全局變量的作用范圍是全局。
局部變量是在函數(shù)內(nèi)定義的變量,除了用關鍵字global修飾的變量以外。例如,在函數(shù)test1()內(nèi)定義一個局部變量a,分別在函數(shù)外和另一個函數(shù)test2()內(nèi)使用變量a:
def?test1():
...?????a?=?100???#?局部變量
...?????print(a)
...
def?test2():
...?????print(a)
...
test1()
100
print(a)
Traceback?(most?recent?call?last):
File?"stdin",?line?1,?in?module
NameError:?name?'a'?is?not?defined
test2()
Traceback?(most?recent?call?last):
File?"stdin",?line?1,?in?module
File?"stdin",?line?2,?in?test2
NameError:?name?'a'?is?not?defined
Python解釋器提示出錯了。由于局部變量a定義在函數(shù)test1()內(nèi),因此,在函數(shù)test1()內(nèi)可以使用變量a,但是在函數(shù)外或者另一個函數(shù)test2()內(nèi)使用變量a,都會報錯,由此可見,局部變量的作用范圍是定義它的函數(shù)內(nèi)部。
一般情況下,在函數(shù)內(nèi)聲明的變量都是局部變量,但是采用關鍵字global修飾的變量卻是全局變量:
def?test1():
...?????global?a???#?全局變量
...?????a?=?100
...?????print(a)
...
def?test2():
...?????print(a)
...
test1()
100
print(a)
100
test2()
100
這個程序與上個程序相比,只是在函數(shù)test1()中多了一行代碼“global a”,程序便可以正確運行了。在函數(shù)test1()中,采用關鍵字global修飾了變量a之后,變量a就變成了全局變量,不僅可以在該函數(shù)內(nèi)使用,還可以在函數(shù)外或者其他函數(shù)內(nèi)使用。
如果在某個函數(shù)內(nèi)局部變量與全局變量同名,那么在該函數(shù)中局部變量會覆蓋全局變量:
a?=?100???#?全局變量
def?test1():
...?????a?=?200???#?同名局部變量
...?????print(a)
...
def?test2():
...?????print(a)
...
test1()
200
test2()
100
由于在函數(shù)test1()中定義了一個與全局變量同名的局部變量a,因此,在函數(shù)test1()中全局變量a的值被局部變量覆蓋了,但是在函數(shù)test2()中全局變量a的值沒有被覆蓋。
綜上所述,在Python中,全局變量保存的數(shù)據(jù)供整個腳本文件使用;而局部變量只用于臨時保存數(shù)據(jù),變量僅供局部代碼塊使用。