深入了解python的函式引數

2022-09-21 16:54:09 字數 2096 閱讀 5192

目錄

這是乙個求等差數列和的函式,使用必需要傳入乙個引數n,這就是位置引數

def sum(n):

sum=0

i=1while i<=n:

sum+=i

i+=1

return sum

result=sum(100)

print(result)

預設引數就是,我在函式中已經將乙個引數提前設定好了值,如果你沒有傳入這個引數的值,就會用我事先設定好的值,如果你傳入了就用你的

我這裡定義了乙個求x的y次方的方法

def power(x,y=2):

return x**y

print(power((2)))

print(power(2,3))

def printmessage(name,age,*args,gender):

print(name,age,args,gender)

print(type(args))

printmessage("趙四",40,12345456,"男")

首先來看一下這個問題,我把乙個多值引數寫在了乙個位置引數的前面這會發生什麼事情?

報錯資訊:找不到」gender「這個字段對應的值

printmessage("趙四",40,12,34,54,56,"男")

*args是乙個多值引數,他把後面所有的值都給收納了,所以我們傳入值得時候,需要把對應引數名也寫上,這樣才能識別這是單獨乙個引數的程式設計客棧值

def printmessage(name,age,*args,gender):

print(name,age,args,gender)

print(type(args))

printmessage("趙四",程式設計客棧40,12,34,54,56,gender="男")

這個關鍵字引數還有什麼用處呢,只要指定了引數名,我們可以不按函式裡面設定的引數順序傳入值,但是一旦這樣打亂順序,多值引數就無法識別出**是他可以接收值的地方,所以我就傳入了其他3個引數

def printmessage(name,age,*args,gender):

print(name,程式設計客棧age,args,gender)

print(type(args))

printmessage(age=45, gender='男', name='劉能')

可能有人不相信上面的結論

我隨便放哪個位置都是不能識別的

最後乙個情況沒有報錯,但是這個語法是錯誤的,他會認定你傳入的1就是name,但是後面再次出現了name,並且缺少值得問題還是沒解決

那我們試試用args接收乙個元組試試?

printmessage(age=45, gender='男', name='劉能',args=(1,2,3,4))

很遺憾,根本無法識別這個關鍵字

所以打亂順序傳值的時候千萬別有多值引數

可變引數分為2種

接iakyb收元組引數:*args 乙個*的是接收多個資料放入元組

接受字典引數:**args 兩個*的接受的是k=v型別的資料,將他們放入乙個字典

元組:def sumn(*args):

# args是引數名

# 要操作傳入的引數 可以對args(相當於有引數構成的tuple)進行遍歷

print(args, type(args))

sum = 0

for i in args:

sum += i

print(sum)

sumn(1,2,3,5)

元組注意的事項就是,如果有引數在接受元組引數的後面,要用關鍵字引數傳值

字典:def printmessage(name,age,gender,**kw):

print(name,age,gender,kw)

print(type(kw))

printmessage("趙四",40,"男",address="象牙山",phonenumber="888888")

傳入字典的多值引數後面是不能跟引數的,他只能放在函式引數的最後乙個位置

還有,想用關鍵值傳遞的,傳入的時候別亂調位置,要是到了**args的範圍,就少了乙個引數

本文標題: 深入了解python的函式引數

本文位址:

深入了解A

一 前言 在這裡我將對a 演算法的實際應用進行一定的 並且舉乙個有關a 演算法在最短路徑搜尋的例子。值得注意的是這裡並不對a 的基本的概念作介紹,如果你還對a 演算法不清楚的話,請看姊妹篇 初識a 演算法 這裡所舉的例子是參考amit主頁中的乙個源程式,使用這個源程式時,應該遵守一定的公約。二 a ...

深入了解A

一 前言 在這裡我將對a 演算法的實際應用進行一定的 並且舉乙個有關a 演算法在最短路徑搜尋的例子。值得注意的是這裡並不對a 的基本的概念作介紹,如果你還對a 演算法不清楚的話,請看姊妹篇 初識a 演算法 這裡所舉的例子是參考amit主頁中的乙個源程式,使用這個源程式時,應該遵守一定的公約。二 a ...

深入了解Python的繼承

目錄 繼承的概念 子類 擁有 父類 的所有 方法 和 屬性 不使用繼承類 class animal def eat self print 吃 def drink self print 喝 def run self print 跑 def sleep self print 睡 class dog de...