python語法引數 Python基本語法 函式

2021-10-19 21:58:01 字數 3827 閱讀 1653

前言

目錄軟體環境

系統ubuntukylin 14.04

軟體python 2.7.4

ipython 4.0.0

引數的多型別傳值

一般而言,形參和實參的數量要一致。但是當實參為序列資料型別時,我們可以將多個實參傳遞到形參中。

我們可以在實參列表中以 * 或者 ** 識別符號來限制傳入的實參必須為 tuple/list 或 dict 的型別物件。

向函式傳遞tuple

其實不定長引數本質是將冗餘的實參轉換為tuple資料型別後再傳遞給函式。下面的例子傳遞了乙個tuple型別實參給函式,和使用不定長引數效果是一樣的。需要注意的是,不定長引數需要放到函式形參列表的後端,而tuple型別形參可以隨意放置。

in [33]: %pycat func1test.py

#!/usr/bin/env python

#filename:func1test.py

import sys

def printyourenter(input1,input2):

print input1

print input2

for var in input2:

print var

if __name__ == '__main__':

enter1 = raw_input("ple enter your living cities:")

enter2 = raw_input("ple enter your name:")

enter3 = raw_input("ple enter your age:")

tuple1 = (enter2,enter3)

printyourenter(enter1,tuple1) # 這裡沒有限制實參型別,可以傳入任意型別物件

in [34]: run func1test.py

ple enter your living cities:bj

ple enter your name:jmilk

ple enter your age:23

bj('jmilk', '23')

jmilk

注意:向函式傳度tuple還有一種形式:

in [91]: %pycat tupletest.py

#!/usr/bin/env python

#filename:tupletest.py

def test(x,y):

print x*y

if __name__ == '__main__':

t = (2,3)

test(*t) # 限制只能傳入 tuple 型別物件

in [92]: run tupletest.py

在呼叫函式的時候,使用 * 識別符號:標識將 t 元組中的元素以迭代的方式傳遞給形參。但是這種時候要求元組元素的個數與形參的個數要一致。

向函式傳遞list

向函式傳遞list型別物件,與傳遞tuple型別物件類似。

in [61]: %pycat func1test.py

#!/usr/bin/env python

#filename:func1test.py

def printyourenter(input1,x,y):

print input1

print x

print y

if __name__ == '__main__':

enter1 = raw_input("ple enter your living cities:")

enter2 = raw_input("ple enter your name:")

enter3 = int(raw_input("ple enter your age:"))

li1 = [enter2,enter3]

printyourenter(enter1,*li1)

in [62]: run func1test.py

ple enter your living cities:bj

ple enter your name:jmilk

ple enter your age:23

bjjmilk

向函式傳遞dictionary

想函式傳遞dic資料型別需要注意下面幾點:

1.形參名與dic中的key相同,形參會自左往右的匹配第乙個與自己同名的key,並將此key對映的value傳遞到形參。

2.若有形參在dic中並沒有找到匹配的key,則會報錯。

3.若dic中有多個同名的key,則自右往左的優先順序來匹配。

4.形參與dic的key:value順序無關。

注意:若dic中有key不能與形參匹配時,需要人為的指定dic中key給形參,並傳遞其value給形參,否則會報錯。本質是將dic中的value值先取出來再傳遞到函式形參。

functionname(dic[x][,...])

example:

in [45]: %pycat func1test.py

#!/usr/bin/env python

#filename:func1test.py

def printyourenter(input1,cities,name,age):

print input1

print cities

print name

print age

if __name__ == '__main__':

enter1 = raw_input("ple enter your living cities:")

enter2 = raw_input("ple enter your name:")

enter3 = int(raw_input("ple enter your age:"))

dic =

printyourenter('a',**dic)

in [46]: run func1test.py

ple enter your living cities:bj

ple enter your name:jmilk

ple enter your age:23abj

jmilk

當限制向函式傳遞乙個dic資料型別時,在呼叫函式時要使用 ** 來標識是乙個對映,即傳遞乙個字典型別的物件。而且在函式定義時,函式的形參必須與字典的key一致,才可以實現將字典的value傳遞給函式中對應的形參。

也可以寫成下面這種形式:

in [49]: %pycat func1test.py

#!/usr/bin/env python

#filename:func1test.py

def printyourenter(input1,dic):

print input1

print dic['cities']

print dic['name']

print dic['age']

if __name__ == '__main__':

enter1 = raw_input("ple enter your living cities:")

enter2 = raw_input("ple enter your name:")

enter3 = int(raw_input("ple enter your age:"))

dic =

printyourenter('a',dic)

in [50]: run func1test.py

ple enter your living cities:bj

ple enter your name:jmilk

ple enter your age:23abj

jmilk

jmilk

python 語法 引數注釋

python 語法 引數注釋 最近碰到的這樣的 def func a shuoming int print 函式已執行。func 34 查閱得知它是一種新的引數注釋方式,在3.5引入。引數注釋以冒號為分隔符,函式注釋以 為分隔符。這些資訊儲存在函式的 annotations 屬性中。它只是一種說明,...

pytho函式星號引數

神奇的星號 傳遞實參和定義形參 所謂實參就是呼叫函式時傳入的引數,形參則是定義函式是定義的引數 的時候,你還可以使用兩個特殊的語法 呼叫函式時使用 test args 的作用其實就是把序列 args 中的每個元素,當作位置引數傳進去。比如上面這個 如果 args 等於 1,2,3 那麼這個 就等價於...

Python 函式的語法及引數傳遞

1.儲存可執行 在需要時多次呼叫 2.減少 數量 3.便於維護。1 語法 2def 函式名 形參1 形參2 形參3.3 塊 示例 def s a,b 函式定義 print a b a b s 1 2 函式呼叫函式名必須符合識別符號的規範 包含字母 數字 下劃線,不能以數字開頭。print是函式物件 ...