激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python函數定義及傳參方式詳解(4種)

Python函數定義及傳參方式詳解(4種)

2021-06-07 00:21暮光微涼 Python

這篇文章主要介紹了Python函數定義及傳參方式詳解(4種),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、函數初識

1、定義:將一組語句的集合通過一個名字(函數名)封裝起來,要想執行這個函數,只需調用其函數名即可。 

2、好處:代碼重用;保持一致性;可擴展性。

3、示例如下:    

?
1
2
3
4
# -*-coding:utf-8-*-
def sayHello():
  print('Hello world!')
sayHello()

二、函數傳參方式

如上面的實例是函數中最基礎的一種,是不傳參數的,說到這里,我們有必要了解一下何為函數參數:

1、函數參數:

形參變量: 只有在被調用時才分配內存單元,調用結束時,即刻釋放所分配的內存單元。因此,形參只在函數內部有效。

函數調用結束返回主調函數后不能再使用該形參變量

實參:可以是常量,變量,表達式,函數等,無論實參是何種類型的量,在進行函數調用,它們都必須有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使參數獲得確定值。

2、函數傳參的分類

<1> 位置參數

位置參數顧名思義,就是調用函數時傳的實參與函數的形參位置上一一對應的參數。

如下實例:

?
1
2
3
4
5
6
7
8
9
10
11
12
#位置參數
print('\n以下是位置參數傳值\n')
def stu_info(name,age,major,country):
  print('--------學生信息-------')
  print('姓名:',name)
  print('年齡:',age)
  print('專業:',major)
  print('國籍:',country)
 
stu1 = stu_info('Jack',21,'Chinese','CN') # 實參依次與函數中的name,age,major,country對應
stu2 = stu_info('Frank',20,'JP','UN')
stu3 = stu_info('Rose',19,'Art','UK')

<2> 默認參數

默認參數就有點不同了,是你在函數形參中定義好的,當實參中未傳對應的參數時,它就派上用場了,默認給你加上。是不是有點貼心呢?

注意:默認參數,必須放在位置參數之后,否則會出錯

實例如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
#默認參數
print('\n以下是默認參數傳值\n')
def stu_info(name,age,major,country = 'CN'):# country設為了默認參數,必須放在位置參數之后,否則會出錯
  print('--------學生信息-------')
  print('姓名:',name)
  print('年齡:',age)
  print('專業:',major)
  print('國籍:',country)
 
stu1 = stu_info('Jack',21,'Chinese') # 此處未傳對應的值,但形參中已經定義了,所以不用擔心找不家了!
stu2 = stu_info('Frank',20,'JP')  # 你也是的
stu3 = stu_info('Rose',19,'Art','UK')  # 既然你已經傳參了,就隨你了。

<3> 關鍵參數

正常情況下,給函數傳參數要按順序,不想按順序就可以用關鍵參數,只需指定參數名即可(指定參數名的參數就叫關鍵參數),但記住一個要求就是,關鍵參數必須放在位置參數(以位置順序確定對應關系的參數)之后。

還是奉上實例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
#關鍵參數,不能重復賦值,且指定的參數應在位置參數之后
 
print('\n以下是關鍵參數傳值\n')
def stu_info(name,age,major,country = 'CN'): #
  print('--------學生信息-------')
  print('姓名:',name)
  print('年齡:',age)
  print('專業:',major)
  print('國籍:',country)
 
stu1 = stu_info('Jack',21,'Chinese')
stu2 = stu_info('Frank',20,major='JP') # major即為關鍵參數,單獨指定,但必須放在位置參數之后
stu3 = stu_info('Rose',19,'Art',country='UK')

<4> 非固定傳參

這種傳參方式可就大有講究了,花樣可謂繁多,自然本領也就大多了,不信往下看。

可以細分為兩類:

非固定傳參方式一:

可同時指定多個用戶,傳過來的所有參數打包成元祖。如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#-*-coding:utf-8-*-
 
#方式一
def send_alert(msg,*users): # '*users‘ 表示非固定傳參,可同時指定多個用戶,傳過來的所有參數打包元祖
  for u in users:
    print('報警!請及時查看...',u,msg)
send_alert('你的系統已瀕臨崩潰!','cc','hyt','yuq','dy')
 
#方式二
def send_alert(msg,*users): # '*users‘ 表示非固定傳參,可同時指定多個用戶,傳過來的所有參數打包元祖
  for u in users:
    print('報警!請及時查看...',u,msg)
send_alert('你的系統已瀕臨崩潰!',*['cc','hyt','yuq','dy'])
 
'''
  如果列表前不加 * 號,整個列表就會被當作元組里的一個元素,
加 * 號后就相當于列表里每個元素都是元祖的一個元素了。就會向元組里的每個成員都發出訊息了。
'''
 
def send_alert(msg,*users,age):
  for u in users:
    print('報警!請及時查看...',u,msg)
send_alert('你的系統已瀕臨崩潰!','sc','qh',age=22)
 
'''
'*users‘此時會默認獲取前一個位置參數之后所有的元素,若傳參時最后不指定關鍵參數就會報錯,age無法獲取傳值
'''

非固定傳參方式二:        

可同時指定多個用戶,傳過來的所有參數打包成元組或字典。如下:  

?
1
2
3
4
5
6
7
8
9
10
#-*-coding:utf-8-*-
 
def func(name,*args,**kwargs): # 形參依次是位置參數,元組,字典
  print(name,args,kwargs)
 
func('Hope',22,'CN','tomorrow') #輸出:Hope (22, 'CN', 'tomorrow') {}
func('Try',21,'will',addr='HG',num=666) #輸出:Try (21, 'will') {'addr': 'HG', 'num': 666}
 
dit = {'major':'Math','interest':'reading'}
func('want',*['day','up'],**dit) #輸出:want ('day', 'up') {'major': 'Math', 'interest': 'reading'}

小伙伴們到這里,Python中函數常用的傳參方式你就都了解了?是不是又長姿勢了呢!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/schut/p/8414899.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 性少妇chinesevideo | 欧美成人免费 | 97干色 | 91 在线视频观看 | av在线更新| 欧美激情猛片xxxⅹ大3 | av电影院在线观看 | 麻豆国产网站 | 国产成人77亚洲精品www | 黄色av电影在线 | 成人毛片免费 | 久久久久久久一区二区 | 久久免费视频一区二区三区 | 国产精品视频免费网站 | 国产午夜电影 | 久久tv免费国产高清 | 免费午夜网站 | freexxxx性女hd性吃奶 | 国产做爰| 日韩av片在线播放 | 91a在线观看 | 国产精品视频久久久 | 免费黄色在线观看网站 | 精品国产视频一区二区三区 | 欧美中文字幕一区二区三区亚洲 | 亚洲综合无码一区二区 | 久久国产精品99久久人人澡 | 亚洲成人高清在线观看 | 耽美男男肉文 | 国产免费一级淫片 | 红杏亚洲影院一区二区三区 | 激情网站在线观看 | 亚洲精品久久久久久久久久久 | 日本精品视频一区二区三区四区 | 姑娘第5集高清在线观看 | 羞羞的视频在线观看 | 国产九色91 | 久综合| 人人看人人舔 | 欧美黑人伦理 | 色妞视频男女视频 |