python里函數作為返回值如何進行比較?
01-29
def qipai(theplayer):
print 棄掉的牌:,liangpai(theplayer[sp]),paixing[theplayer[paiscore][0]] print
theplayer[in_game]=0 game_status[qipai]+=1if theplayer[mingpai]==0:
game_status[aner]-=1 else: for gi,gk in enumerate(ming_players): if gk[xuhao]==theplayer[xuhao]: del ming_players[gi] game_status[minger]-=1 if game_status[aner]+game_status[minger]==1: for gi,gk in enumerate(player_status): if gk[in_game]==1:player_status[gi]=win_decide(player_status[gi])
return theplayer def dqipai(f): def new_f(theplayer): print 玩家%s:%s經過仔細思考,決定棄牌!%(theplayer[xuhao],theplayer[name]) return f(theplayer) return new_f然後在上一級的函數中,定義了一個列表,其中有dqipai(qipai),大致為choose=[bet,kaipai,dqipai(qipai)]然後在用一個函數來調用dqipai來進行判斷,卻出錯,代碼如下:def ming_choose(choose,theplayer):if i&>0:(這裡是一個判斷條件,與高階函數無關)
the_choose=dqipai(qipai) while the_choose==dqipai(qipai): the_choose=choose[random.randint(0,len(choose)-1)]然而測試結果顯示,雖然在 the_choose=dqipai(qipai)執行後,print the_choose,顯示的就是new_f(也就是dqipai的返回值),但後面的while語句並不觸發。請高手幫忙看看,問題出在哪裡,並講解下導致這裡犯錯的知識點是什麼,謝謝了!(代碼行未嚴格縮進,請諒解)
遊標卡尺都拿出來了,你說沒有縮進?
Python 代碼不加縮進不可以被諒解。
題主在題目下的評論好橫啊~根本不是一個有誠意的提問態度嘛~
武藏和小次郎都知道,既然你誠心誠意的發問我才會大發慈悲的告訴你!
這是看不懂的問題嗎?大家都這麼忙誰有空幫你調試代碼的時候還自己去縮進啊!根本連代碼是什麼都懶得看了好伐!題主問知乎程序員們寫過程序嗎!我倒想問問題主學過Python嗎?《送東陽馬生序》里有一句「俟其欣悅,則又請焉」,這才是提問的正確態度吧?在知乎提問你不交錢我不收費,大家互相平等,只不過都在討論格式問題就換來題主一頓冷嘲熱諷這算個什麼?手機黨表示無能為力
推薦閱讀:
※Python有哪些黑魔法?
※MongoDB及可視化工具的安裝
※中科大 Freeshell 上面有哪些好玩或者實用的應用?
TAG:Python |