眾所周知,day 3要間隔兩三天才會繼續學(苦笑)
摸魚一時爽,一直摸魚一直爽
定義的add函式作用是對輸入的引數進行加法運算,比如輸入add(1,2) 輸出結果就是3(1+2),注意區分for val in args 和 for val in range(args)的區別!
前者是val 在args中取值,而後者是在從(0,args)這個區間內依次取整數!
python中函式可以被覆蓋,避免命名衝突的方法通過模組(module)分開,通過關鍵字import匯入指定模組即可區分。比如
import module1 as m1
import module2 as m2
m1.foo(
)m2.foo(
)
但是如果是直接from module1 import foo 則無法區分兩函式。
如果匯入的模組除了定義函式之外還有其他可執行**,那麼在匯入模組時這些**會自動執行一遍,如果一般情況下我們最好把這些**放在某一條件中,例如
def
foo():
pass
defbar()
:pass
# __name__是python中乙個隱含的變數它代表了模組的名字
# 只有被python直譯器直接執行的模組的名字才是__main__
if __name__ ==
'__main__'
:print
('call foo()'
) foo(
)print
('call bar()'
) bar(
)
我在論壇上找到了一些解釋得更加清晰的部落格,鏈結
其實說到底,在寫模組時我們應該這麼寫
def main()
://你想完成的功能
pass
def a()
://你想定義的其他函式
if __name__==
'__main__'
:main()
//呼叫模組中的功能
與c相同,python中變數也擁有其作用域,如果想要在函式中修改全域性變數而不是建立乙個同名的區域性變數,需要在函式中用global聲名其為全域性變數。
def
foo():
global a
a =200print
(a)# 200
if __name__ ==
'__main__'
: a =
100 foo(
)print
(a)# 200
當然了,如果你要修改上一級函式的區域性變數,應該用nonlocal聲名。
注意如果上一級函式中不存在該區域性變數,則會報錯
NLP修煉之旅(Day3)
分詞的概念 中文和英文不同,英文中句子天然已經分割為單詞,但是中文中字與字之間緊緊連在一起,需要進行分詞,分詞演算法有 基於字串匹配演算法 基於理解的演算法 基於統計的演算法 詞 字元頻率統計 可以使用python中的collection.counter模組 unigram bigram和trigr...
python機器學習day 3
突然覺得標題的day計算方式有問題 對於效能評測,一共有三個指標 準確性和召回率和精確率。書上用的是有點像 卡諾圖 的感覺來列的公式。數電後遺症。實際是1類 實際是2類 分類結果為1類 1類被分類為1類 分類正確 2類被分類為1類 棄真錯誤 分類結果為2類 1類被分類為2類 納偽錯誤 2類被分類為2...
python爬蟲筆記 day3
正則使用的注意點 re.findall a b str 能夠返回括號中的內容,括號前後的內容起到定位和過濾的效果 原始字串r,待匹配字串中有反斜槓的時候,使用r能夠忽視反斜槓帶來的轉義的效果 點號預設情況匹配不到 n s能夠匹配空白字元,不僅僅包含空格,還有 t r n xpath學習重點 使用xp...