爬蟲 (八) 學習 python 基礎知識點的正確姿勢 (一)
- 2019 年 12 月 23 日
- 筆記
我會以比較學習的方式,主要拿Python和我之前學習的javascript進行比較,拿學習javascript的學習經歷來遷移到學習Python,如果你在此之前有一門編程思維,那麼你可以這麼做,如果沒有的話,也不用擔心,跟著我一步一步來,不要急,當然,我的這個教程也不是那麼全面,還是要自己花時間,精力去專研的,想成為什麼人,就得在某個地方使勁,往對的地方使勁,讀不懂的,可以使勁讀完,然後反覆讀,進而讀得更懂
在此之前我們都是講一些關於爬蟲的基本概念,理論,我想這些都是鋪墊,都是前奏,我們必須要正確的了解他,了解他的機制,今天我就帶領大家使用anaconda3 的一個神器 jupyter,這是相當於一個 web 編輯器,實在對入門學習者太友好了,接下來我們啟動 windows 菜單 點擊下圖所示,啟動 jupyter


1 簡單的數學運算 加減乘除

2 變數賦值
在Python直接用『=』號對變數賦值
在javascript中定義變數使用 var arr = [].
在es6中則使用 let定義變數 const定義常量
let arr = []const c = "CONST";
在Python中,定義變數不直接賦值,會報錯
通常會給他賦值為 None

清屏指令 cls 就會把上面的記錄給清除掉
這個跟linux命令有點相似
還可以支援多個變數賦值

3 函數的調用
Python提供了很多內置的函數
abs()絕對值函數
max()最大函數
min()最小函數等等

4 不同數據類型的生成
(1)字元串的生成
Python的字元串沒有那麼嚴格,可以用單引號或雙引號
這個跟javascript有點像

變數類型可以用type()來得到
這個跟javascript的自帶typeof 有點相似
typeof 122 ===> 'number'typeof '122' ===> 'string'typeof true ===> 'boolean'typeof Array() ===> 'array'

字元串也可以使用三引號來生成

(2)列表的生成
Python使用一對中括弧'[]'生成集合
這個跟javascript的數組類似
var arr = []var arr = [1,2,3]var arr = [1,2,3,'hello','python'];
沒有數組類型的限制,比較自由,我也非常喜歡這個方式

(3)集合的生成
在Python中直接使用花括弧『{}』
這個跟javascript的對象字面量{}及其相似
var obj = {}var obj = {'name':'Ken','age':'20'}
我們可以使用obj.name和obj.age去訪問obj的屬性值
但是在Python不能這樣樣做,Python以這樣的方式獲取

(5)判斷與循環
在Python中沒有switch case這個條件判斷語句
在javascript中都有
if()switch(){}else{}else if(){}
有點是很神奇的,把括弧省去了,改成了冒號:

循環for
在javascript中有 兩種循環方式
一種是for循環遍曆數組的
一種是for-in循環遍歷對象的
在es6中增加了 for – of循環既可以遍曆數組也可以遍歷對象
var arr = [1,2,3,4]for(var i=0;i<arr.length;i++){console.log(arr[i]); } var obj = {'name':'Ken','age':'20'}for(var key in obj){console.log(obj[key]); } for( var index of arr ){console.log(arr[index]); } for(var key of obj){console.log(obj[key]); }

(6)Python特別注重程式碼的縮進問題
(7)注意程式碼的書寫規範,該縮進縮進,該換行換行
(8)模組的導入
這個node.js的require('模組名稱'),import '模組名稱' 有點相似

(9)自定義類型
Python 用class關鍵字定義一個類
這個javascript的 function Person(){}有點相似
到了es6中我們也可以用class來定義類了
class Person{}
