第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一段很強(qiáng)大的python腳本求解釋

一段很強(qiáng)大的python腳本求解釋

桃花長相依 2018-07-18 07:04:42
#templates.py import fileinput, re field_pat = re.compile(r'\[(.*?)\]') scope = {} def replacement(match):   code = match.group(1)   try:     return str(eval(code, scope))   except SyntaxError:     exec code in scope     return ''      lines = [] for line in fileinput.input():   lines.append(line) text = ''.join(lines) print field_pat.sub(replacement, text)現(xiàn)在編輯兩個文件,通過調(diào)用這個腳本來處理: cat > magnus.txt [name = 'Magnus Lie Hetland' ] [email = 'magnus@foo.bar' ] [language = 'python' ] cat > template.txt [import time] Dear [name]. I would like to learn how to program. I hear you use the [language] a lot. Please help me to learn Oscar 現(xiàn)在來調(diào)用: python templates.py magnus.txt template.txt 結(jié)果: Dear Magnus Lie Hetland. I would li? to learn how to program. I hear you use the python a lot. Please help me to learn Oscar templates.py腳本把template.txt中[]定義的變量替換成了magnus.txt中定義好的值。
查看完整描述

3 回答

?
GCT1015

TA貢獻(xiàn)1827條經(jīng)驗 獲得超4個贊

eval可以根據(jù)=將“變量”替換為值,很強(qiáng)大. 謝謝 

查看完整回答
反對 回復(fù) 2018-07-18
?
Cats萌萌

TA貢獻(xiàn)1805條經(jīng)驗 獲得超9個贊

eval只是將一個字符串當(dāng)成python代碼來執(zhí)行,并返回語句的返回值,本身沒有替換的作用

查看完整回答
反對 回復(fù) 2018-07-18
?
慕絲7291255

TA貢獻(xiàn)1859條經(jīng)驗 獲得超6個贊

讀入兩個文件之后用正則表達(dá)式匹配方括號,eval執(zhí)行方括號內(nèi)的內(nèi)容,所以 magnus.txt就給name等變量賦值,sub的作用則是將正則表達(dá)式匹配出的內(nèi)容(包括方括號)替換為eval語句的返回值。賦值語句的返回值是None,所以magnus.txt全部被替換掉,template.txt中的變量替換為前面賦值過的變量值。

簡答說就是,把方括號和里面的內(nèi)容替換成方括號里的內(nèi)容作為Python語句的返回值


查看完整回答
反對 回復(fù) 2018-07-18
  • 3 回答
  • 0 關(guān)注
  • 493 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號