本書電子版下載地址:百度網盤html
有沒有那一個瞬間,讓你想要放棄學習編程?python
在我決心開始學編程的時候,我爲本身制定了一個天天編程1小時的計劃,那時候工做很忙,我只能等到晚上9點,同事都下班以後,獨自留在辦公室編程。web
作任何事情必定有在短時間內簡單可行的辦法。 學習不該該是苦差事,而應該是快樂的,重要的是找到適合本身的學習方法。編程
高效學習法的核心在於:數據結構
- 精簡:學習最核心的關鍵知識;
- 理解:運用類比、視覺化的方法來理解這些核心知識;
- 實踐:構建本身的知識體系以後,再經過實踐去逐漸完善知識體系。
我不追求讓你達到精通的程度,事實上我也很懷疑有哪本書真正作到21天從入門到精通。精通一門語言,須要在實際項目開發中踩過許多坑,須要熟悉計算機運做的底層原理......對於實用主義的開發者來講,更應該追求的是達成而不是精通。先掌握項目所需的最少必要知識,而後把熱情和精力投入到搭建真實項目中,而不是死磕半年的基礎知識,直到把全部興趣都耗竭了也沒作出什麼像樣的東西。app
大多數讀者都能在一週內讀完本書。框架
1.1 Python追求的是找到最好的解決方案。ide
1.2 Python有很豐富的庫,有官方的,也有第三方開發的,你想作的功能模塊頗有可能已經有人寫好了,你只須要調用,不須要從新發明輪子。函數
2.1 安裝最新版的Python程序。工具
2.2 使用IDE工具:PyCharm 社區版是免費的,專業版是付費的。對於初學者來講,二者的差別微乎其微,用社區版就夠了。
https://v.youku.com/v_show/id_XODMyMzM1NzQ4.html
https://pedrokroger.net/getting-started-pycharm-python-ide/
3.1 初學者常常會遇到的困惑是,看書或者聽課都懂,但仍是不明白要怎麼編程。這是由於缺少足夠多的實踐......學習時,模仿示例敲一遍代碼。
3.2 變量 變量會暫時性地儲存你放進去的東西。
3.3 字符串
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 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) # 關鍵詞參數
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、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 item in iterable: do something for 元素 in 集合(冒號) (縮進)執行什麼
for i in range(1,10): for j in range(1,10): print('{} * {} = {}'.format(i,j,i*n))
while condition: do something while 成立條件(冒號) (縮進)執行什麼
如何控制while循環?
- 在循環過程當中製造某種可使循環停下來的條件P69
- 改變使循環成立的條件P70
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.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