python函式必須寫在前面嗎,python函式定義必須在呼叫前面嗎

2021-03-04 01:35:45 字數 5878 閱讀 6692

1樓:匿名使用者

這是必須的,因為它是一門解釋語言,而非編譯後執行的語言。

直譯器必須從前往後讀取

python 函式定義必須在呼叫前面嗎

2樓:匿名使用者

不能,python是解釋性的,必須先定義後呼叫只能這樣

def test()

return 'test'

print test()

python中怎麼實現 必須執行完一個函式才能執行下一個函式

3樓:快樂v美天

簡答來說:通過抄

外部的一個變數

bait=fasle

def regist():

""" 註冊"""

print 「註冊」

t=true

def login():

""" 登陸

du"""

if not t:

print "先註冊"

return

print 「登陸成功」

def logout():

""" 登出zhi"""

t=fasle

一般的話dao

註冊後都會在資料庫中 記錄註冊資訊

登陸的時候 先去到資料庫中檢視是否有 沒有返回空 有的話返回註冊資訊 ,比如登陸密碼 用於下步的密碼核對

4樓:匿名使用者

= =怎麼連線。。先呼叫註冊函式 然後呼叫登入函式就行。順序執行。至於如果你說註冊失敗不回進行登入答的話 直接在註冊函式裡面處理 註冊失敗 return

def sign_up(user,pwd):

#註冊**...    #

if not sign_up_true:

# 註冊失敗 返回false

return false

#註冊成功 返回true

return true

# 註冊成功則執行login登入函式

if sign_up('admin','admin'):

login(user,pwd)

python 函式的呼叫方式

5樓:匿名使用者

好像沒有特別的叫法吧,也沒注意手冊上有什麼特別的叫法,至於區別,舉個例子你就清楚了,如下:

假如有個列表aa=[1,4,3,5],對這個列表用sort()進行排序,如果第一種方式aa.sort()後aa=[1,3,4,5];

而第二種方式sort(aa)排序後雖然得到了新列表[1,3,4,5],但是aa還是=[1,4,3,5]。

也就是說第一種方式會改變原列表,而第二種不會改變,只是得到了一個新的副本。

got it?!^^

補充一下,如果非要說叫法上的區別的話,第一種叫做方法呼叫,第二種叫做函式呼叫。至於方法和函式的些微區別,方法是基於物件的,函式是基於本身的。如果再詳細……方法一般不可以單獨使用,因為大部分方法是基於物件的,呼叫也必須基於物件,像上面第一種;而函式則可以單獨使用,你可以理解成它是資料系統本身的,而不是物件專有的。

ps:至於為什麼我換了用sort()而沒有用lz給的例子函式,是因為..…^o^……lz第一種方式和第二種方式寫的都不是一個函式……

6樓:匿名使用者

strip是刪除的意思;而split則是分割的意思str.strip()

刪除字串左右兩端的相應字元,直到沒有符合的字元為止。

例如:例a

thestring = 'saaaay yes no yaaaass'

print thestring.strip('say')結果為:(空格)yes no(空格)

例b但是如果修改為: thestring = 'saaa3ay yes no yaaa3ass' print thestring.strip('say')

結果就變成:(無空格)3ay yes no yaaa3(無空格)也就是說因為3不是's'、'a'、'y'其中的一個,因此strip停止了。而例a中是因為遇到空格而停止的。

7樓:hui翽

呼叫的方式有兩種:

變數名.函式()。

變數名=函式(引數)。

python函式是用來執行一個單一的,有關行動的有組織的,可重用**塊。功能提供了更好地為您的應用程式和**重用的高度模組化。

python語法:

功能塊函式名和括號(())

關鍵字def開始。任何輸入引數或引數應放在這些括號內。你還可以定義這些括號內的引數。

函式的第一個語句可以是一個可選的宣告 - 文件字串的函式或的docstring。

在每個函式的**塊開始用冒號(:)和縮排。

語句返回[表達]退出功能,可選地傳遞一個表示式給呼叫者。一個不帶引數的return語句是相同的回報沒有。語法:

python 函式和類的區別(新手)

8樓:

額,bai類主要是為了資料du封裝,隱藏細節,再加zhi上類對多型,繼承的dao支援,專

可以更好地運用設屬計模式等設計方法。

例子嘛。。。

你說的應該是函數語言程式設計和麵向物件程式設計的區別~~~就像c語言和c++的區別一樣~

使用c也可以做物件導向程式設計,比如結構體中封裝資料,使用函式指標封裝方法,但是這種「偽裝」有時候並不直觀~~ 所以才有從語法層面支援物件導向的語言~~

不知道我說沒說到點子上。

詳細的來說,如果只是簡單的指令碼,過程式沒問題~~但是如果是複雜的系統,比如萬行以上的系統,不使用物件導向的設計方法,是很容易失控的~~

9樓:真理不是我

在python中感覺沒什麼區別,可能是python中很多模組都是用類寫的,導致我們需要拿這些模組用時,但是還不能達到我們想要的目的,而使用了類的繼承時,才用類寫。

請用python寫一個函式

10樓:匿名使用者

你好,來這個自

很easy的啊:請看:

python 如何在一個函式裡通過傳引數呼叫其他函式

11樓:匿名使用者

1.method大小寫修改到一致。

2.最後那裡bb不要加引號。

def aa(method, data):

method(data)

def bb(data):

print data

def cc(data):

print data

aa(bb,'123')

12樓:韌勁

python中函式引數的傳遞是通過「賦值」來傳遞的。但這條規則只回答了函式引數傳遞的「戰略問題」,並沒有回答「戰術問題」,也就說沒有回答怎麼賦值的問題。函式引數的使用可以分為兩個方面,一是函式引數如何定義,二是函式在呼叫時的引數如何解析的。

而後者又是由前者決定的。函式引數的定義有四種形式:

1. f(arg1,arg2,...)

2. f(arg2=,arg3=...)

3. f(*arg1)

4. f(**arg1)

第1 種方式是最「傳統」的方式:一個函式可以定義不限個數引數,引數(形式引數)放在跟在函式名後面的小括號中,各個引數之間以逗號隔開。用這種方式定義的函式在呼叫的時候也必須在函式名後的小括號中提供相等個數的值(實際引數),不能多也不能少,而且順序還必須相同。

也就是說形參和實參的個數必須一致,而且想給形參1的值必須是實參中的第一位,形參與實參之間是一一對應的關係,即「形參1=實參1 形參2=實參2...」。很明顯這是一種非常不靈活的形式。

比如:"def addon(x,y): return x + y",這裡定義的函式addon,可以用addon(1,2)的形式呼叫,意味著形參x將取值1,主將取值2。

addon(1,2,3)和addon (1)都是錯誤的形式。

第2種方式比第1種方式,在定義的時候已經給各個形參定義了預設值。因此,在呼叫這種函式時,如果沒有給對應的形式引數傳遞實參,那麼這個形參就將使用預設值。比如:

「def addon(x=3,y=5): return x + y」,那麼addon(6,5)的呼叫形式表示形參x取值6,y取值5。此外,addon(7)這個形式也是可以的,表示形參x取值7,y取預設值5。

這時候會出現一個問題,如果想讓x取預設值,用實參給y賦值怎麼辦?前面兩種呼叫形式明顯就不行了,這時就要用到python中函式呼叫方法的另一大絕招 ──關健字賦值法。可以用addon(y=6),這時表示x取預設值3,而y取值6。

這種方式通過指定形式引數可以實現可以對形式引數進行「精確攻擊」,一個副帶的功能是可以不必遵守形式引數的前後順序,比如:addon(y=4,x=6),這也是可以的。這種通過形式引數進行定點賦值的方式對於用第1種方式定義的函式也是適用的。

上面兩種方式定義的形式引數的個數都是固定的,比如定義函式的時候如果定義了5個形參,那麼在呼叫的時候最多也只能給它傳遞5個實參。但是在實際程式設計中並不能總是確定一個函式會有多少個引數。第3種方式就是用來應對這種情況的。

它以一個*加上形參名的方式表示,這個函式實際引數是不一定的,可以是零個,也可以是n個。不管是多少個,在函式內部都被存放在以形參名為識別符號的tuple中。比如:

對這個函式的呼叫addon() addon(2) addon(3,4,5,6)等等都是可以的。

與第3種方式類似,形參名前面加了兩個*表示,引數在函式內部將被存放在以形式名為識別符號的dictionary中。這時候呼叫函式必須採用key1=value1、key2=value2...的形式。

比如:1. def addon(**arg):

2. sum = 0

3. if len(arg) == 0: return 0

4. else:

5. for x in arg.itervalues():

6. sum += x

7. return sum

那麼對這個函式的呼叫可以用addon()或諸如addon(x=4,y=5,k=6)等的方式呼叫。

上面說了四種函式形式定義的方式以及他們的呼叫方式,是分開說的,其實這四種方式可以組合在一起形成複雜多樣的形參定義形式。在定義或呼叫這種函式時,要遵循以下規則:

1. arg=必須在arg後

2. *arg必須在arg=後

3. **arg必須在*arg後

在函式呼叫過程中,形參賦值的過程是這樣的:

首先按順序把「arg」這種形式的實參給對應的形參

第二,把「arg=」這種形式的實參賦值給形式

第三,把多出來的「arg」這種形式的實參組成一個tuple給帶一個星號的形參

第四,把多出來的「key=value」這種形式的實參轉為一個dictionary給帶兩個星號的形參。

例子:1. def test(x,y=5,*a,**b):

2. print x,y,a,b

就這麼一個簡單函式,來看看下面對這個函式呼叫會產生什麼結果:

test(1) ===> 1 5 () {}

test(1,2) ===> 1 2 () {}

test(1,2,3) ===> 1 2 (3,) {}

test(1,2,3,4) ===> 1 2 (3,4)

test(x=1) ===> 1 5 () {}

test(x=1,y=1) ===> 1 1 () {}

test(x=1,y=1,a=1) ===> 1 1 ()

test(x=1,y=1,a=1,b=1) ===> 1 1 ()

test(1,y=1) ===> 1 1 () {}

test(1,2,y=1) ===> 出錯,說y給賦了多個值

test(1,2,3,4,a=1) ===> 1 2 (3,4)

test(1,2,3,4,k=1,t=2,o=3) ===> 1 2 (3,4)

風在前面的成語有哪些,風在前面的成語

風聲鶴唳 風吹草動 風起雲湧 風雲變幻 風靡一時 風生水起 風在前面的成語 風花雪月 風和日麗 風流韻事 風捲殘雲 風華正茂 風聲鶴唳 風馳電掣 風華絕代 風雨無阻 風起雲湧 風月無邊 風塵僕僕 風姿綽約 風雨同舟 風流倜儻 風流人物 風雲人物 風光旖旎 風雲際會 風平浪靜。風不鳴條 和風輕拂,樹枝...

向字在前面的成語向字在前面的成語

向壁虛造 向壁 對著牆壁 虛造 虛構。即對著牆壁,憑空造出來的。比喻無事實根據,憑空捏造。向隅而泣 向 對著 隅 牆角 泣 小聲地哭。一個人面對牆腳哭泣。形容沒有人理睬,非常孤立,只能絕望地哭泣。向聲背實 聲 聲名,這裡指虛名 背 違背。指向往聲名,背離實際。向上一路 佛教禪宗指不可思議的徹悟境界。...

python函式定義必須在呼叫前面嗎

不能,python是解釋性的,必須先定義後呼叫只能這樣 def test return test print test python 函式必須寫在前面嗎 這是必須的,因為它是一門解釋語言,而非編譯後執行的語言。直譯器必須從前往後讀取 python可以在函式定義之前呼叫嗎 不能,python是解釋性的...