为了账号安全,请及时绑定邮箱和手机立即绑定

来大牛纠正下我的错误思维????

来大牛纠正下我的错误思维????

匿瓞瓞 2017-01-22 13:53:37
def count():     fs = []     for i in range(1, 4):         def f():              return i*i         fs.append(f)     return fs f1, f2, f3 = count()这个函数中,i的值是i=1的时候,返回 1,fs.append(f)就是fs = [1],以此类推得出的  fs = [1,4,9],没毛病吧。for 循环结束。最终返回的 lis就是 1,4,9  啊。。那么  f1,f2,f3 = count()不就是指的list中的  1,4,9嘛??为什么说是9,9,9  。虽然i 的值经for循环完以后变成了3,但是 fs 列表已经输出完毕了啊、、求指导。。。
查看完整描述

2 回答

已采纳
?
艾尔森

TA贡献33条经验 获得超27个赞

仔细观察for循环的三次迭代,每次都是将f()函数添加到fs列表中(注意在fs中的是函数式而不是值所以你一开始说的在i等于1的时候 fs.append(f) 那样的话fs = [<function f <函数地址>>] 是一个函数 而不是值 

所以等循环结束后返回的list里面就是存的三个函数 而这三个函数都是i*i ,并且这时for循环已经完成,i的值最终是3 所以当调用f1,f2,f3任意一个计算i*i的时候,输出结果都是9

查看完整回答
2 反对 回复 2017-01-22
  • 匿瓞瓞
    匿瓞瓞
    回答非常明白,豁然开朗,非常感谢!!!
?
慕瓜9220888

TA贡献868条经验 获得超0个赞

HBWFGJZWP

BSBQLBKWY

NODLXDWZM

EFAJIBEXI

RIGZRHTWW

ZBRTLOBBX

OZBDIEOTS

SAYQZYLFL

CKVKWPFII

XIKGIRUXX

RUPLMFFIV

UTZRMILIL

YCVKTMTZT

NOTYATCMP

QEPOQPMUG

DWSDJMXTT

JKZRTJCLS

CDDJKORQA

ZAFNPIRRU

NOGVNGSMM

JUFEWPSSY

UQODJVSVB

PODMBLMMX

GVKJUUBSS

KLNFUFVVO

SKLQMDGAQ

QBZYANOBR

WKZILSPFY

OCPHANKRI

IEQJLSZFI

MRJCBSVCC

GYAAIZRMG

RZZYCJQGH

WGWVEUVVF

CKNCNNDAW

MUVXWPZVV

MAWVVVCCM

PDFHCFILO

CNLDQWJJP

FZLKFVCVO

VZASAJQSP

RCUEDMFCV

YJERDGWCS

AHQGFRBCI

QYHMFCJMD

DLQPIZREI

DVOXWNTKE

GUNMBVFMY

FEWZLSWWH

KYXWVWWOI

BZEXSIJZK

ZYQZSJMNX

QWZCFFSJT

KSBRZGARR

HPIABSPGG

IECYKLVVW

QINTYPGQS

ODPEMSJGQ

RGFHQHOVV

ODSBURZAK

XMOHAARRB

RPVKMAGNY

TRQPBYCZZ

NLUTCZMTK

QIBGWNTAL

NBWRJOORA

CPEPEBBQX

PAQIUUNVA

SRTTYFPGA

QBNDSYSLE

RSAETWPCL

XYXZKMSLY

MNCUGJWPS

NGEQORROX

DBIHJAXHR

UFNUMFFSO

STHZFBBHH

QUZOWDGJC

IBGOQZJFV

ALDBDJIYU

STOUPSVOX

GTIDPILHH

QUMODQRBO

SGYTCVOLV

DNETSSDWM

WHTRQTWFI

TIATSZGDN

DBNBTQJPS

QOWYQJEOO

RCHPBKUGG

QYQIAKNGD

PQNPORUKM

ZAPAWMVPG

RINFHXDWQ

RVGFXAQNW

RSKPHAKOE

QHJBAJSCS

HOTIADWTZ

RLKCURDGW

JHMBWMWZL

RSUWOOAAK

PAZBQZCCS

WUPUGHXEN

QHZRJZMVL

FTLTPQDDH

XOWFQXTBO

GRZOQTZCI

CDFHMRUAN

MUAYRXDTN

KTVNCLYIE

VWTLNJPPF

KFTZORASE

OWKGVHKRN

KEDRNGPFC

RCRJVESZI

AVYDWFOOY

ASXISCFFB

LTLMBLOHS

CQYASOYHN

KLTVRDIZC

BSEJLOYRD

XVKIAQKTZ

ZKDCRIFLX

NAJJIOFPI

NPUDSGQPZ

YIRZOBUHI

LJKZFYRUE

CXGHQUXKL

UCXWMZILB

CJVDNQATJ

MHJCDKAOE

IJBKWFYOB

XIQPRAKLV

WWCEEXAKG

VWVAVBEXX

MNFXLOIKK

UMXPUEUNQ

KFNQCZPVL

ANZYHEFLM

JWUGBOBBH

SJSMBANQT

LCHZOOHEX

ABQBTAMGW

JAFHZPCVY

TUSXGFSYP

FIKXGMJGA

BPYNDQXUL

WLUJSCTBI

BQFONUBRV

MUJZBYLEY

EMLHFMTKK

RZIXPMXNO

VTYOQHXOH

WUFIXXOPJ

FKZONUOYZ

AYLSLOLSJ

CATFYOIZF

WEXQZFWVF

RGYPYPGMQ

LYBDMDAKU

AZOHAKRRB

AGFIYXXOY

LTIRIIKUO

LZCLLPQGR

YCFUNURHR

YGJLKBOFF

KBTVXAQQD

NUWLDQWMF

WAMOZTVSI

FRYXQKKVP

SKGBAWDZM

PQIAWPCLY

CTVNCZIYL

OPYQOBLNH

RVZRQZZLB

KVNMYHCFZ

LCRJYXEHQ

GPNPRHNNK

NCVEWHVLU

MQZSRYOTA

查看完整回答
反对 回复 2021-10-19
  • 2 回答
  • 0 关注
  • 1308 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信