一文徹底搞定Python,400集視頻教程+實戰案例+200G學習資料

Python400集大型視頻(國內頂尖python講師高淇主講)

一文徹底搞定Python,400集視頻教程+實戰案例+200G學習資料

從零基礎開始,全面講解Python基礎,直達可以手寫神經網絡的境界。

一文徹底搞定Python,400集視頻教程+實戰案例+200G學習資料

我們創造性的增加了:手寫數據結構和算法、手寫神經網絡項目。讓零基礎學員在學習Python時就開始接觸高深的底層知識、神經網絡底層實現的知識。

內容共分26章,講解了Python基礎的方方面面,可以作為Python學習者的“寶典”。同時,穿插了4個大型實戰項目。

一文徹底搞定Python,400集視頻教程+實戰案例+200G學習資料

本套視頻一共400集,本套視頻共分3季:

第一季 【基礎篇】Python基礎 (115集)

第二季 【提高篇】Python深入和擴展(100集)

第三季 【擴展篇】網絡編程、多線程、擴展庫(85集)

第四季 【高手篇】算法、Python源碼、函數式編程、手工實現神經網絡(100集)

零基礎入門、視頻教程、實戰項目、源碼、學習規劃,還有珍貴的電子書,輔助你學習的更好!正在學習python的小夥伴,趕緊私信小編“教程”,領取吧!

一文徹底搞定Python,400集視頻教程+實戰案例+200G學習資料

優雅你的Python代碼的15個tips

文章全文約2000字,共有15個程序樣例片段。

測試環境為:python版本 3.7.0 / 操作系統window 7 64位;

Python 環境下,在開始編碼之前,輸入 importthis,可以看到 Python 為我們準備的彩蛋——

The Zen of Python, by Tim Peters

Beautiful

is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

Flat is better than nested.

Sparse is better than dense.

Readability counts.

Special cases aren't special enough to break the rules.

......

部分內容簡單翻譯為:

優美勝於醜陋

明瞭勝於晦澀

簡潔勝於複雜

……

可讀性很重要

這就是著名的“Python之禪“。這幾句內置的最正確的“廢話“,體現了 Python 語言對於簡潔與優美的追求。

在 Python 社區,程序員還創造了一個新詞 Pythonic 來評價代碼是否符合 Python 風格,並以寫出 Pythonic 風格的代碼而自豪。筆者初次看到這個單詞時,首先想到的是日本鼎盛時期的代表企業,索尼和松下公司(Sony,Panasonic),進而聯想起90年代這些公司極致、創新的產品和其所代表的精益求精的匠人精神。

扯遠了,回到正題。筆者想表達的是,通過熟悉 Python 語言的一些基本特性,加以熟練應用,你也可以寫出很 Pythonic 的代碼!

話不多說,本文通過15個具體的例子,帶你領略 Python 的簡潔和優雅。

下文中'P'即表示'Pythonic',很 Python 的寫法,'NP'也就是相反,不是很'Pythonic'的寫法。

一文徹底搞定Python,400集視頻教程+實戰案例+200G學習資料

1、為多個變量賦值

一文徹底搞定Python,400集視頻教程+實戰案例+200G學習資料

2、變量值互換

一文徹底搞定Python,400集視頻教程+實戰案例+200G學習資料

上面的例子通過了元組的pack和unpack完成了對a,b的互換,避免了使用臨時變量temp,而且只用了一行代碼。

3、鏈式比較

一文徹底搞定Python,400集視頻教程+實戰案例+200G學習資料

後者的寫法更接近數學表達式。

4、any/all函數

一文徹底搞定Python,400集視頻教程+實戰案例+200G學習資料

any和 all是 Python的內置函數。對於 any函數,可迭代參數的任何一個元素為真就返回 True,否則返回 False。對於 all函數,如果可迭代參數的所有元素為真(或迭代器為空),返回 True,否則返回 False。

5、用in代替or簡化判斷

一文徹底搞定Python,400集視頻教程+實戰案例+200G學習資料

同樣是多重判斷問題,判斷某個變量是否為多個可能取值之一

6、if/else 三目運算

一文徹底搞定Python,400集視頻教程+實戰案例+200G學習資料

後者的寫法簡單易懂,僅需一行代碼就完成了常規寫法4行代碼的功能。

7、字符串列表的連接

一文徹底搞定Python,400集視頻教程+實戰案例+200G學習資料

使用 join方法可以指定間隔字符(串)將字符串列表合併成一個字符串。

8、匹配字符串開頭/結尾

一文徹底搞定Python,400集視頻教程+實戰案例+200G學習資料

9、列表推導式

一文徹底搞定Python,400集視頻教程+實戰案例+200G學習資料

從列表中找出符合條件的元素組成新的列表

可以結合上面兩條tips,可以實現快速找出文件夾下指定類型的文件,例如:

一文徹底搞定Python,400集視頻教程+實戰案例+200G學習資料

10、使用zip同步處理多個列表

當想要對多個列表對應的元素進行操作時

income = [201, 198, 195, 210, 199]

cost_rent = [80, 83, 77, 81, 80]

cost_food = [47, 64, 53, 51, 79]

balance = []

### NP:

nlen = len(income)

for i in range(nlen):

balance.append(income[i] - cost_rent[i] - cost_food[i])

### P:

for i0, cr, cf in zip(income, cost_rent, cost_food):

balance.append(i0 - cr - cf)

zip(a,b) 會生成一個可返回元組 (x,y) 的迭代器,其中x來自a,y來自b。 一旦其中某個序列到底結尾,迭代宣告結束。 因此迭代長度跟參數中最短序列長度一致。

一文徹底搞定Python,400集視頻教程+實戰案例+200G學習資料

11、列表去重

### NP:

lst_new = []

for v in lst_old:

if not v in lst_new:

lst_new.append(v)

### P:

lst_new = list(set(lst_old))

12、文件打開與關閉/上下文管理

### NP:

fp = open('result.txt', 'w')

try:

fp.write('just for fun!')

except IOError:

print('something error')

finally:

fp.close()

### P:

with open('result.txt', 'w') as

fp: fp.write('just for fun!')

with 關鍵字實現了上下文管理器,是一種更簡潔也更安全的操作方法。上例中當離開 with 代碼塊的時候,系統會自動調用 fp.close() 方法關閉文件, 哪怕中間遇到異常,close 方法也會被調用。

13、Enumerate

枚舉函數,用於枚舉可迭代對象,並且同時返回元素的下標索引值。

如果你想在迭代一個序列的同時,得到被處理元素的索引下標。內置的 enumerate() 函數可以很好的解決這個問題:

array = ['Stone', 'Tom', 'Jobs', 'Jack']

### NP:

narr = len(array)

for i in range(narr):

print (i, array[i])

### P:

for i, a0 in enumerate(array):

print (i, a0)

#0 Stone

#1 Tom

#2 Jobs

#3 Jack

14、對齊字符串

有時,你想通過某種對齊方式來格式化字符串,輸出一些提示信息

ss = 'Summary'

### NP:

print

('%s%s%s', '-'*20, ss, '-'*20)

### P:

print(ss.center(50,'-'))

#--------------------Summary--------------------

類似地,想讓字符串左對齊或者右對齊,可以用 .ljust(50, '-') 或 rjust(50, '-')

15、解包

解壓列表/元祖的元素,賦值給不同的變量

lst = ['jack', 18 ,'Python', 'Good']

### NP:

name = lst[0]

age = lst[1]

lang = lst[2]

score = lst[3]

### P:

name, age, lang, score = lst

如果想解包一個長列表,只得到其中部分元素,例如第一個和最後一個元素:

### P:

head, *mid, tail = lst

該例子中,除了頭、尾元素之外,中間不受關注的元素作為一個子列表全部賦值給了 mid 。


分享到:


相關文章: