資源 | 開放Python書籍:一本短小精悍的初學者入門指南
選自
GitHub
機器之心整理
參與:思源
如何快速熟悉 Python 編程一直是很多初學者的疑問,我們經常考慮要不要系統地從頭開始啃 Python 教程,但這種方法不僅非常枯燥且很難堅持。因此,對於很多入門讀者,更好的方式是學習基礎的 Python 編程,然後在實踐中完善代碼技巧。本文介紹了一本非常精鍊的 Python 免費書籍,它不僅有基礎知識,同時每一章節還有非常多的練習與源代碼。
項目地址:https://github.com/joaoventura/full-speed-python
該書是使用實踐方法教授基礎的 Python 編程語言。其方法相當基礎:在簡要介紹每個主題之後,讀者要解答練習題來鞏固知識點。這些練習題都是非常經典的任務,它們可以讓我們在短時間內熟悉 Python 的使用。
本書在第二章介紹了 Python 在各種操作系統上的安裝並依次介紹了最基本的數據結構、數值和字元串、函數和模塊、循環、字典和最後的類與目標。該書每一章都有非常多的配套練習題,且整本書非常短小精悍(22 頁)。在該 GitHub 項目的發布頁中,作者提供了 PDF 和 Epub 兩種閱讀版本和源代碼。
目錄
1 前言
2 安裝
2.1 Windows 上的安裝
2.2 macOS 上的安裝
2.3 Linux 上的安裝
3 基本數據類型
3.1 數值型習題
3.2 字元串型習題
3.3 列表型習題
4 模塊和函數
4.1 數學模塊習題
4.2 函數習題
4.3 遞歸函數
4.4 遞歸函數習題
5 迭代和循環
5.1 循環習題
5.2 while 循環習題
6 字典
6.1 字典習題
6.2 子字典習題
7 類
7.1 類習題
7.2 類繼承
7.3 類繼承習題
Python 的安裝其實非常簡單,方法也非常多,本書介紹的安裝都是不使用 pip 等包管理工具的方法,其它方法還可以安裝 Anaconda 等集成開發環境。
第三章介紹了基本的數據類型與數據結構,如下展示了字元串與列表的基本使用:
>>>
"Hello"
?
3
』
HelloHelloHello
』
字元串執行乘積運算可以複製多次,以下展示了列表的簡單索引方法。
>>>
l
=
[
』
a
』,
』
b
』,
』
c
』,
』
d
』,
』
e
』]
>>>
l
[
1
:
3
]
[
』
b
』,
』
c
』]
第四章介紹了基本的模塊與函數。首先在機器學習中,模塊的導入與調用時非常重要的,因為很多時候科學計算庫與模型框架能節省很多時間。以下簡單地導入了一個數學模塊:
>>>
import
math
>>>
math
.
cos
(
0.0
)
1.0
>>>
math
.
radians
(
275
)
4.799655442984406
當我們重複使用一個過程時,我們可以將這個過程定義為函數,以在主體函數中重複調用。
>>>
def add_one
(
val
)
:
pr
int
(
"Function got value"
,
val
)
return
val
+
1
>>>
value
=
add_one
(
1
)
Function
got value
1
>>>
value
2
第五章介紹了迭代與循環,這是在訓練過程中不可缺少的部分。這一部分主要描述了 for 循環與 while 循環,其中 for 循環經常用於列表循環。
>>>
for
value in
[
0
,
1
,
2
,
3
,
4
,
5
]:
print
(
value
?
value
)
0
1
4
9
16
25
#
另一種列表循環
>>>
mylist
=
[
1
,
5
,
7
]
>>>
for
i in range
(
len
(
mylist
)):
pr
int
(
"Index :"
,
i
,
" Value :"
,
mylist
[
i
])
Index
:
0
Value
:
1
Index
:
1
Value
:
5
Index
:
2
Value
:
7
根據個人經驗,我們感覺 while 循環在機器學習中使用得比 for 循環少。大家在迭代訓練訓練或處理列表時基本上都是使用的 for 循環,以下展示了簡單的 while 循環。
>>>
n
=
4
>>>
while
n
>
0
:
pr
int
(
n
)
n
=
n
?
1
4
3
2
1
第 6 章介紹了字典,它在機器學習中是非常重要的數據結構。例如我們在 TensorFlow 中使用佔位符定義輸入數據,那麼我們就需要使用字典饋送輸入數據與對應的標註。
ages
=
{
"Peter"
:
10
,
"Isabel"
:
11
,
"Anna"
:
9
,
"Thomas"
:
10
,
"Bob"
:
10
,
"Joseph"
:
11
,
"Maria"
:
12
,
"Gabriel"
:
10
,
}
>>>
print
(
ages
[
"Peter"
]
)
10
最後一章介紹了面向對象編程的基礎,即類和對象。在機器學習中,使用類來定義模型是非常常見的方法,如果希望簡單的看懂模型源代碼,那麼類與對象的知識就必不可少了。
class
Person
:
def __init__
(
self
,
name
,
age
):
self
.
name
=
name
self
.
age
=
age
def greet
(
self
):
print
(
"Hello, my name is %s!"
%
self
.
name
)
>>
a
=
Person
(
"Peter"
,
20
)
>>>
b
=
Person
(
"Anna"
,
19
)
>>>
a
.
greet
()
Hello
,
my name is
Peter
!
>>>
b
.
greet
()
Hello
,
my name is
Anna
!
>>>
print
(
a
.
age
)
20
以上就是該書籍的簡要介紹,讀者可具體查看該 GitHub 項目,並下載書籍與源代碼。
本文為機器之心整理,
轉載請聯繫本公眾號獲得授權
。?------------------------------------------------
加入機器之心(全職記者/實習生):hr@jiqizhixin.com
投稿或尋求報道:editor@jiqizhixin.com
廣告&商務合作:bd@jiqizhixin.com


※為主流價位移動設備加入AI計算:ARM發布新一代Mali解決方案
※從冷戰到深度學習:一篇圖文並茂的機器翻譯史
TAG:機器之心 |