python—函數

1. 函數的定義:

1 . 含義:我們把實現某一功能的代碼定義為一個函數,在需要使用時,隨時調用,十分方便。對于函數,簡單理解就是可以完成某功能的代碼塊,可反復使用。
Python提供了許多內建函數,比如print()。也可以自己創建函數,這被叫做用戶自定義函數。
2 . 建立一個函數:

def functionname([parameterlist]):"""comments"""founctionbody含義:
functionname:為函數名,可以自定義,在調用函數時使用。
parameterlist:為可選參數,用于指定向函數中傳遞的參數。如果有多個參數,各個參數間用逗號(,)隔開,如果不指定,則表示該函數沒有參數。
comments:函數指定注釋,注釋內容為其功能,傳遞的參數的作用等,讓人能快速了解該函數
founctionbody:為實現功能的語句塊

3 . 調用函數:

def hello():print('hello')print('python')# 通過函數名來調用函數
hello()運行結果:
hello
python

4 . 函數的鑲套:

def westos():print('is westos')def python():print('is python')python()
westos()運行結果:
is westos
is python

2 . 參數傳遞

函數參數的作用是傳遞數據給函數使用,函數利用接收的數據進行具體的操作處理。
區別形式參數和實際參數
形式參數:簡稱形參,定義函數時寫的參數叫形參。
實際參數:簡稱實參,調用函數時寫的參數。

def func(形參)		#定義func函數passfunc(實參)		#調用func函數

形參:位置參數 默認參數 可變參數 關鍵字參數
1 位置參數:

def func(name,score):print(name+'的成績為:'+score+'分')func('小李','98')運行結果:
小李的成績為:98分

2 默認參數

在定義函數的時候,給定一個參數默認值,當調用函數的時候,如果沒有給該形參傳入實參,則使用該默認值進行運算。

def add(x,y=10):  # 定義函數,其中第二個形參的默認值為10print(x+y)
add(5,3)   # 當調用函數的時候,傳入兩個實參,則使用傳入的值進行運算
add(5)  # 當只傳入一個值的時候,另一個使用默認參數值進行運算運行結果:
8
15

3 可變參數
當參數的個數不確定的時候,可以使用可變參數,來表示該函數可以接收任意個參數
在使用可變參數的時候:
其中*a 表示對參數進行解包,將序列中的元素一個一個的拿出來。
a的對象類型是一個元組。

def mysum(*a):  # 定義函數的形參數是任意個print(*a)print(a)sum = 0for item in a:sum += itemprint(sum)
nums = [1,2,3,4]
nums1 = (1,2,3,4)
nums2 = {1,2,3,4}
mysum(*nums)
mysum(*nums1)
mysum(*nums2)運行結果:
當實參是一個列表的時候,返回值
1 2 3 4    # 解包列表的得到的數據
(1, 2, 3, 4)  # a的對象類型為一個元組
10              # 最后的返回值當實參是一個元組的時候,返回值
1 2 3 4      # 解包元組的得到的數據
(1, 2, 3, 4)   # a的對象類型為一個元組
10   # 最后的返回值當實參是一個集合的時候,返回值
1 2 3 4     # 解包集合的得到的數據
(1, 2, 3, 4)   # a的對象類型為一個元組
10    # 最后的返回值

4 關鍵字參數
關鍵值參數是指使用形參的名字來確定輸入的參數值。

def func(name,score):print(name+'的成績為:'+score+'分')func(score='100',name='redhat')	#順序并沒有一致運行結果:
redhat的成績為:100分

3. 函數的返回值

返回值:函數運算的結果,還需要進一步操作,給函數一個返回值
return用來返回函數執行的結果,如果函數沒有返回值,默認返回None
一旦遇到return 函數執行結束,后面的代碼不會執行
多個返回值的時候,python會幫我們封裝成一個元組類型

def getStuInfo(name,age):print(name)print(age)
a = getStuInfo('redhat',16)
print(a)運行結果:
redhat
16
None  # 函數沒有返回值,函數執行的結果默認返回None

當函數存在返回值的時候,一旦遇到return 直接結束 后面的代碼就不會在再執行。

def getStuInfo(name,age):print(name)if name == 'redhat' :return 'name is redhat'   # 函數的返回值print(age)
a = getStuInfo('redhat',16)
print(a)運行結果:
redhat
name is redhat   # 存在返回值,并且成功返回該返回值,之后的代碼將不會再執行

4 . 作用域

變量的作用域指程序代碼能訪問該變量的區域,一般根據‘有效范圍’,將變量分為“局部變量”和“全局變量”。
變量的作用域決定了在哪一部分程序可以訪問哪個特定的變量名稱。Python的作用域一共有4種,分別是:
L (Local) 局部作用域
E (Enclosing) 閉包函數外的函數中
G (Global) 全局作用域
B (Built-in) 內置作用域(內置函數所在模塊的范圍)

total = 0  # 這是一個全局變量
def sum(arg1, arg2):# 返回2個參數的和total = arg1 + arg2  # total在這里是局部變量.print("函數內是局部變量 : ", total)return total# 調用sum函數
sum(10, 20)
print("函數外是全局變量 : ", total)運行結果:
函數內是局部變量 :  30
函數外是全局變量 :  0

練習:
案例1:
編寫一個函數cacluate, 可以接收任意多個數,返回的是一個元組.
元組的第一個值為所有參數的平均值, 第二個值是大于平均值的所有數.

def cacluate(*x):sum = 0for i in x :sum += iaverage = sum/len(x)li = []for k in x :if k > average :li.append(k)return (average,li)

案例2:
編寫一個函數, 接收字符串參數, 返回一個元組,‘ehllo WROLD’
元組的第一個值為大寫字母的個數, 第二個值為小寫字母個數.

def count(s):upper_c = 0lower_c = 0for i in s :if i.isupper() :upper_c +=1if i.islower() :lower_c +=1return (upper_c,lower_c)
print(count(input(':')))

題目:兩個乒乓球隊進行比賽,各出三人。
甲隊為a,b,c三人,乙隊為x,y,z三人。
已抽簽決定比賽名單。有人向隊員打聽比賽的名單。
a說他不和x比,c說他不和x,z比,請編程序找出三隊賽手的名單。

team = ['x','y','z']
all_order = []
for i in team :for k in team :if k != i :for m in team:if m !=k and m !=i :all_order.append([i,k,m])
for t in all_order :if t[0] !=team[0] and t[2] != team[0] and t[2] != team[2] :print('a — %s ; b  — %s ; c — %s ' %(t[0],t[1],t[2]))

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/542101.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/542101.shtml
英文地址,請注明出處:http://en.pswp.cn/news/542101.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

word打開老是配置進度_小白教程 | office出現配置進度框,怎么辦?

最近很多同學在備考二級時候,自己的電腦上office軟件Word或者Excel出問題了,每次打開都會出現配置進度框。這種情況怎么辦呢?這種情況都是注冊表的問題,馬上安排解決之前在 右鍵菜單沒有office新建怎么辦(點擊即可閱讀)也是用注冊…

【踩坑速記】開源日歷控件,順便全面解析開源庫打包發布到Bintray/Jcenter全過程(新),讓開源更簡單~...

一、寫在前面 自使用android studio開始,就被它獨特的依賴方式:compile com.android.support:appcompat-v7:25.0.1所深深吸引,自從有了它,麻麻再也不用擔心依賴第三方jar包繁瑣無趣啦。而,如果自己寫一個開源庫是一種怎…

scala集合中添加元素_如何在Scala中獲得列表的第一個元素?

scala集合中添加元素清單 (List) A list is a linear data structure. It is a collection of elements of the same data types. 列表是線性數據結構。 它是相同數據類型的元素的集合。 Scala libraries have many functions to support the functioning of lists. Methods l…

python—列表、字典生成式

1 列表生成式 Python內置的一種極其強大的生成列表 list 的表達式。返回結果必須是列表。 示例: 需求1:接收變量 k a b s 51 5000 10000 a s.split() li [] for item in s.split():li.append(int(item)) k,a,b li print(k,a,b)運行結果:…

excel數據平均分配給多人_excel表格 怎樣均分數據-用Excel怎么才能將組數據平均分配給幾個人...

怎樣在Excel表格中求平均數?在excel中怎樣自動生成各班各科的平均成績可以調用Excel函數庫的函實現。步驟如下:1. 在單元格內點擊上公式-平均值”。2. 點擊需要參與計算的單元格數據,符號用鍵盤輸入,最后回車即可。百度百科-Excel函數exce…

Java中List和Map接口之間的區別

列表與地圖界面 (List vs Map interface) Here, we will see how List differs from Map interface in Java and we will see the points given below, 在這里,我們將看到List與Java中的Map接口有何不同,并且我們將看到以下幾點, 列表界面 (…

python—高階函數

什么是內置高階函數: 一個函數可以作為參數傳給另外一個函數,或者一個函數的返回值為另外一個函數(若返回值為該函數本身,則為遞歸),滿足其一則為高階函數。 Python中內置了幾個常用的高階函數,…

功能區不顯示工具條_【新老客戶必知】軟件支持超高清屏顯示器了

隨著計算機硬件的不斷更新換代顯示設備的不斷更新從原來的分辨率640 X 480啥原來分辨這么低呀?還記得DOS嗎?或者Win95,win98嗎當時顯示器分辨率能調到800X 600很好了2000年左右隨著純平顯示器的推出也有了高清顯示器的概念那么一般我們說的高清顯示器分辨…

nginx1.10.2源碼安裝配置參數參考

[rootlocalhost nginx-1.10.2]# ./configure --help--help print this message--prefixPATH set installation prefix #Nginx安裝的根路徑,默認為 /usr/local/nginx。--sbin-pathPATH set nginx binary pathname #指定nginx二進制文件的路徑,默認為PATH/sbin/n…

c ++查找字符串_C ++朋友功能| 查找輸出程序| 套裝1

c 查找字符串Program 1: 程序1&#xff1a; #include <iostream>using namespace std;class Sample {int A, B;friend void fun();};void fun(){Sample S;S.A 10;S.B 20;cout << S.A << " " << S.B << endl;}int main(){fun();retu…

Spring定時器的運用

為什么80%的碼農都做不了架構師&#xff1f;>>> 一、spring4定時器任務配置如下&#xff1a; <bean id"jsapiTask" class"chan.ye.dai.wexin.JsapiTicketTimeTask" /><bean id"jobDetail"class"org.springframework.s…

python—裝飾器

裝飾器概念&#xff1a; 把一個函數當作參數傳遞給一個函數&#xff0c;返回一個替代版的函數 本質上就是一個返回函數的函數 在不改變原函數的基礎上&#xff0c;給函數增加功能 python 中裝飾器做的事情&#xff01;它們封裝一個函數&#xff0c;并且用這樣或者那樣的方式來修…

ad18原理圖器件批量修改_Altium Designer 15原理圖設計基礎

Altium Designer 15成為越來越多電子設計開發工程師EDA電路設計軟件的首選&#xff0c;在學校學習Altium Designer的也越來較多&#xff0c;像單片機開發學習一樣&#xff0c;EDA設計只要學會了&#xff0c;再學其他的設計軟件就容易多了。上一節分享了《Altium Designer 15集成…

c++freopen函數_使用示例的C語言中的freopen()函數

cfreopen函數C語言中的freopen()函數 (freopen() function in C) Prototype: 原型&#xff1a; FILE* freopen(const char *str, const char *mode, FILE *stream);Parameters: 參數&#xff1a; const char *str, const char *mode, FILE *streamReturn type: FILE* 返回類型…

python—文件

1 . 文件的基本操作&#xff1a; 文件讀取三部曲&#xff1a; 打開操作關閉&#xff08;如果不關閉會占用文件描述符&#xff09; 打開文件&#xff1a; f open(/tmp/passwdd,w)操作文件&#xff1a; 1 . 讀操作&#xff1a; f.read()content f.read()print(content) 2 …

基本概念學習(7000)--P2P對等網絡

對等網絡&#xff0c;即對等計算機網絡&#xff0c;是一種在對等者&#xff08;Peer&#xff09;之間分配任務和工作負載的分布式應用架構[1] &#xff0c;是對等計算模型在應用層形成的一種組網或網絡形式。“Peer”在英語里有“對等者、伙伴、對端”的意義。因此&#xff0c;…

c語言for循環++_C ++程序使用循環查找數字的冪

c語言for循環Here, we are going to calculate the value of Nth power of a number without using pow function. 在這里&#xff0c;我們將不使用pow函數來計算數字的N 次冪的值 。 The idea is using loop. We will be multiplying a number (initially with value 1) by t…

廈門one_理想ONE真是“500萬內最好的車”?

提起羅永浩&#xff0c;不少人還停留在“砸冰箱、造手機”等早期事件。隨著網絡直播的興起&#xff0c;羅永浩轉戰直播帶貨行業&#xff0c;但老羅畢竟是老羅&#xff0c;雷人語錄一點沒比以前少。前一段時間&#xff0c;羅永浩在微博中稱&#xff1a;“理想ONE是你能在這個價位…

Data Collection

眾所周知&#xff0c;計算機領域論文是要以實驗為基礎的&#xff0c;而實驗的原料就是數據。不管是在圖像&#xff0c;文字或者語音領域&#xff0c;開源的數據都十分寶貴和重要。這里主要收集各領域的一些常用的公開數據集。 計算機視覺&#xff1a; 【ImageNet】 【Caltech P…

python—os模塊、時間模塊

os模塊 作用&#xff1a;os模塊是python標準庫中的一個用于訪問操作系統功能的模塊&#xff0c; os模塊提供了其他操作系統接口&#xff0c;可以實現跨平臺訪問。 使用&#xff1a; 1 . 返回操作系統類型 &#xff1a;os.name 值為&#xff1a;posix 是linux操作系統 值為&…