本書電子版下載地址:百度網盤
寫在前面:你需要這本書的原因
有沒有那一個瞬間,讓你想要放棄學習編程?
在我決心開始學編程的時候,我為自己制定了一個每天編程1小時的計划,那時候工作很忙,我只能等到晚上9點,同事都下班之后,獨自留在辦公室編程。
做任何事情一定有在短期內簡單可行的辦法。 學習不應該是苦差事,而應該是快樂的,重要的是找到適合自己的學習方法。
高效學習法的核心在於:
- 精簡:學習最核心的關鍵知識;
- 理解:運用類比、視覺化的方法來理解這些核心知識;
- 實踐:構建自己的知識體系之后,再通過實踐去逐漸完善知識體系。
我不追求讓你達到精通的程度,事實上我也很懷疑有哪本書真正做到21天從入門到精通。精通一門語言,需要在實際項目開發中踩過許多坑,需要熟悉計算機運作的底層原理......對於實用主義的開發者來說,更應該追求的是達成而不是精通。先掌握項目所需的最少必要知識,然后把熱情和精力投入到搭建真實項目中,而不是死磕半年的基礎知識,直到把所有興趣都耗竭了也沒做出什么像樣的東西。
大多數讀者都能在一周內讀完本書。
第一章 為什么選擇Python ?
1.1 Python追求的是找到最好的解決方案。
1.2 Python有很豐富的庫,有官方的,也有第三方開發的,你想做的功能模塊很有可能已經有人寫好了,你只需要調用,不需要重新發明輪子。
第二章 現在就開始
2.1 安裝最新版的Python程序。
2.2 使用IDE工具:PyCharm 社區版是免費的,專業版是付費的。對於初學者來說,兩者的差異微乎其微,用社區版就夠了。
- 快速上手中文視頻(簡單介紹如何安裝、創建文件、設置皮膚)
https://v.youku.com/v_show/id_XODMyMzM1NzQ4.html
- 如何高效利用PyCharm系列文檔(圖文並茂的介紹了很多高效技巧)
https://pedrokroger.net/getting-started-pycharm-python-ide/
第三章 變量與字符串
3.1 初學者經常會遇到的困惑是,看書或者聽課都懂,但還是不明白要怎么編程。這是因為缺乏足夠多的實踐......學習時,模仿示例敲一遍代碼。
3.2 變量 變量會暫時性地儲存你放進去的東西。
3.3 字符串
- 單引號其實和雙引號完全一樣
- '''三個引號被用於過於長段的文字或者是說明,只要三引號不完你就可以隨意換行寫下文字'''
- 字符串格式化符format()
print('{} a word she can get what she {} for.'.format('With','came')) print('{ab} a word she can get what she {cd} for.'.format(ab = 'With', cd = 'came')) print('{a1} a word she can get what she {a2} for.'.format(a2 = 'came', a1 = 'With')) # 這三個語句,輸出結果一樣: With a word she can get what she came for. With a word she can get what she came for. With a word she can get what she came for.
第四章 函數的魔法
4.1 內建函數(自帶函數)
Python3.7.3 版本有69個內建函數,具體使用說明見官方文檔:
Built-in Function
| Built | in | Function | ||
|---|---|---|---|---|
| abs() | delattr() | hash() | memoryview() | set() |
| all() | dict() | help() | min() | setattr() |
| any() | dir() | hex() | next() | slice() |
| ascii() | divmod() | id() | object() | sorted() |
| bin() | enumerate() | input() | oct() | staticmethod() |
| bool() | eval() | int() | open() | str() |
| breakpoint() | exec() | isinstance() | ord() | sum() |
| bytearray() | filter() | issubclass() | pow() | super() |
| bytes() | float() | iter() | print() | tuple() |
| callable() | format() | len() | property() | type() |
| chr() | frozenset() | list() | range() | vars() |
| classmethod() | getattr() | locals() | repr() | zip() |
| compile() | globals() | map() | reversed() | __import__() |
| complex() | hasattr() | max() | round() |
4.2 開始創建函數
- def :定義一個函數
- arg :參數
- return :返回結果
- 縮進 :表名語句和邏輯的從屬關系
def function(arg1, arg2): return 'Sometihing' def 函數名(參數1, 參數2): 縮進 return '結果'
求直角三角形斜長邊:
def length_bian(a,b): c = (a**2 + b**2)**(1/2) return c dd = length_bian(3,4) print(dd)
- 位置參數、關鍵詞參數
de(1,2,3) # 位置參數 de(dup = 1, ddown = 2, dheight = 3) # 關鍵詞參數
- open()函數
file = open('c://python/hello.txt','w') file.write("HelloWorld!")
- 數學運算符
假設 a=10, b=20
| 符號 | 描述 | 實例 |
|---|---|---|
| + | 相加 | a+b = 30 |
| - | 相減 | b-a = 10 |
| * | 相乘 | a*b = 200 |
| / | 相除 | b/a = 2 |
| % | 取余 | b%a = 0 |
| ** | 次方 | a**b = 10^20 |
| // | 取商 | b//a = 2 |
第五章 循環與判斷
5.1 邏輯判斷True&False
- 比較運算符
| 符號 | 描述 |
|---|---|
| == | 左右相等時返回True |
| != | 左右不等時返回True |
| > | 左邊大於右邊時返回True |
| < | 左邊小於右邊時返回True |
| >= | 左邊大於等於右邊時返回True |
| <= | 左邊小於等於右邊時返回True |
- 成員運算符與身份運算符in&is
in、not in,表示歸屬關系的布爾運算符 is、is not,表示身份鑒別的布爾運算符
- 布爾運算符
| 運算符 | 描述 |
|---|---|
| not x | 如果x是True,返回Flase |
| x and y | 如果x和y同時為True,返回True |
| x or y | 如果x和y同時為False,返回False |
5.2 條件控制if...else
# 如果...條件是成立的,就做...;反之,就做... if condition: do something elif condition: do something else : do something if 成立條件(冒號) (縮進)執行什么 elif 成立條件(冒號) (縮進)執行什么 else(冒號) (縮進)執行什么
5.3 循環(Loop)
- for循環
於...其中的每一個元素,做...事情
for item in iterable: do something for 元素 in 集合(冒號) (縮進)執行什么
- 嵌套循環(Nested Loop)
for i in range(1,10): for j in range(1,10): print('{} * {} = {}'.format(i,j,i*n))
- while循環 只要...條件成立,就一直做...
while condition: do something while 成立條件(冒號) (縮進)執行什么
如何控制while循環?
- 在循環過程中制造某種可以使循環停下來的條件P69
- 改變使循環成立的條件P70
第六章 數據結構
- 數據結構(Data Structure) 6.1 儲存大量數據的容器,在Python稱為內置數據結構(Build-in Data Structure)
6.2 Python有四種數據結構:列表,字典,元組,集合。
list = [val1, val2, val3, val4] dict = {key1 : val1, key2 : val2} tuple = (val1, val2, val3, val4) set = {val1, val2, val3, val4}
6.3 列表(list)
- 列表中的每一個元素都是可變的;
- 列表中的元素是有序的;
- 列表可容納Python中的任何對象。
列表的增刪改查
fruit = ['apple', 'orange'] fruit.insert(1,'grape') #增 fruit[0:0] = ['banana'] #增 fruit.remove('grape') #刪 del fruit[0:2] #刪 fruit[0] = 'Grapefruit' #改 fruit.extend('b1', 'b2') #增
6.4 字典(Dictionary)
- 字典中數據必須以鍵值對的形式出現;
- 邏輯上講,鍵不能重復,值可以重復;
- 字典中的鍵(key)是不可變的,而值(value)是可變的。
字典的增刪改查
url_code = {'b' : 'baidu', 's' : 'sina'}
#增
url_code['t'] = 'tmall'
url_code.update({'fb' : 'facebook', 'tb' : 'taobao'})
#刪
del url_code['fb']
6.5 元組(Tuple) 元組不可修改,類似穩定版的列表
6.6 集合(Set) 每一個集合中的元素是無序的、不重復的任意對象。可以通過集合去判斷數據的從屬關系,也可以通過集合去掉數據結構中的重復的元素。
a_set = {1, 2, 3, 4}
a_set.add(5) #增
a_set.discard(5) #刪
6.7 多重循環
sorted(num_list,reverse = True) sorted函數,先將列表復制后按照長短、大小、字母順序進行排序,但不改變列表本身。
num_list [4,6,7,9,1,8,3,2] print(sorted(num_list))
整理列表時,如果同時需要兩個列表怎么辦?
for a,b in zip(num,str): print(b, ' is ', a)
6.8 推導式
a = [] for i in range(1,10): a.append(i) b = [i for i in range(1,10)] # 兩種執行效果一樣,第二種效率更高 # 看幾個例子 a = [i**2 for i in range(1,10)] b = [j+1 for j in range(1,11)] c = [n for n in range(1,10) if n % 2 == 0] d = [letter.lower() for letter in 'ABCDEFG'] e = {i:i+1 for i in range(4)} f = {i:j for i,j in zip(range(1,6),'abcde')} g = {i:j.upper() for i,j in zip(range(1,6),'fghij')}
6.9 循環列表獲取元素索引
letters = ['a','b','c','d','e'] for num,letter in enumerate(letters): print(letter, ' is ', num+1)
第七章 類與可口可樂
第八章 開始使用第三方庫
8.1 令人驚嘆的第三方庫
- 當你想搭建網站時,可以選擇功能全面的Django、輕量的Flask等web框架;
- 當你想寫小游戲時,可以使用PyGame框架;
- 當你想做一個爬蟲時,可以使用Scrapy框架;
- 當你想做數據統計分析時,可以使用Pandas數據框架...
- 豐富的資源可以幫我們高效快捷地做到想做的事,就不需要再重新造輪子。
- 第三方庫
8.2 安裝第三方庫
8.2.1 在PyCharm中安裝 1,路徑:File>>settings>>Project TestCode>>Project Interpreter
2,我的PyCharm版本:PyCharm2019.1.1
3,注意:破解版因屏蔽上網,無法安裝庫
8.2.2 在命令行中安裝
1,安裝pip
在Python3.4之后,安裝好Python環境就可以直接支持pip,可以在命令行輸入命令檢查一下:
2,使用pip安裝庫
# 如果你想安裝到python2中,把pip3 換成 pip pip3 install 庫名稱 # 如果你安裝了python2和python3兩種版本,可能會遇到安裝目錄問題,可以換成: python3 -m pip install 庫名稱 # 如果想裝到python2中,把python3 換成 python # 介紹幾個pip常用指令 pip install --upgrade pip #升級pip pip uninstall 庫名稱 #卸載庫 pip list #查看已安裝庫
3,手動安裝 (1)下載庫文件(pypi站)
進入pypi站,搜索要安裝的庫,這是有3種可能。 *1. exe文件,點擊安裝。 *2. .whl類文件,可以自動安裝依賴的包 *3. 源碼文件,如.zip、tar.zip、tar.bz2等格式,要求用戶已安裝這個包所依賴的其他包。
(2).whl文件安裝
pip3 install wheel
cd whl文件所在目錄
pip3 install whl文件
(3)源碼文件安裝
cd 源碼文件所在目錄
python3 setup.py install
