網絡爬蟲學習筆記(2)
1 資料
- 《Python網絡爬蟲從入門到實踐》唐松,陳志銓。主要面向windows平臺下的python3。
- 菜鳥教程-》python
2 筆記
2-1 Python基礎(1)++
- python的列表還有一種只讀格式——元組Tuple,它用()進行賦值,且只能在初始化時賦值。
- 列表有追加元素的內置方法append()
- 字典有內置方法keys()(獲得所有鍵的值),values()
- 元組用 “( )” 標識, 列表用 “[ ]” 標識,字典用 “{ }” 標識
- type(變量) 查看該變量的數據類型,還可以用 isinstance(變量,類型) 來判斷是不是那種類型。type()不會認為子類是一種父類類型,isinstance()會認為子類是一種父類類型。
2-2 Python基礎(2)
- 條件語句——格式上是if 條件 :,取代Java中()的是一個在最后的:同樣有else存在(但是else后面要加:),另外還有else if簡寫而成的elif。
a
=
'book'
b
=
'java'
c
=
"book"
if
a
==
b
:
print
(
a
)
else
:
print
(
'a!=b'
)
if
a
==
c
:
print
(
a
)
elif
b
==
c
:
print
(
'b==c'
)
else
:
print
(
'c!=a/b'
)
- 循環語句——常用的有for循環和while循環兩種,同樣是()變成末尾的:。不過python的for循環形式上更接近foreach循環,python中的循環還可以使用else。
myBook
=
[
'java'
,
'python'
,
'c'
]
for
book
in
myBook
:
print
(
book
)
print
(
'\n'
)
for
i
,
j
in
enumerate
(
(
'a'
,
'b'
,
'c'
)
)
:
print
(
i
,
j
)
for
i
,
j
in
enumerate
(
myBook
)
:
print
(
i
,
j
)
count
=
0
while
count
<
3
:
print
(
myBook
[
count
]
)
count
=
count
+
1
for循環中利用內置函數 len() 和 range(),函數 len() 返回列表的長度,即元素的個數, range返回一個序列的數。(例子來自菜鳥)(菜鳥你的括號呢?)
fruits
=
[
'banana'
,
'apple'
,
'mango'
]
for
index
in
range
(
len
(
fruits
)
)
:
print
(
'當前水果 :'
,
fruits
[
index
]
)
else使用例子(例子來自菜鳥)
for
num
in
range
(
10
,
20
)
:
# 迭代 10 到 20 之間的數字
for
i
in
range
(
2
,
num
)
:
# 根據因子迭代
if
num
%
i
==
0
:
# 確定第一個因子
j
=
num
/
i
# 計算第二個因子
print
(
'%d 等于 %d * %d'
%
(
num
,
i
,
j
)
)
break
# 跳出當前循環
else
:
# 循環的 else 部分,不break跳出循環的話就會執行
print
(
num
,
'是一個質數'
)
此外循環中可以用continue、break、pass(什么也不做)。
3. 函數——參數(()里的內容)必須要正確地寫入函數中
def
add
(
x
)
:
y
=
x
+
1
return
y
w
=
1
print
(
w
)
print
(
add
(
w
)
)
- 運算符,這里只提一下python中有**——冪 - 返回x的y次冪,//——取整除 - 返回商的整數部分(向下取整)并且沒有++、–(- -,間隙被間隙掉了!)。另外與或非分別寫成and、or、not。python還有成員運算符in、not in;身份運算符is,not is(用于比較兩個對象的存儲單元)
-
- 類
class
Person
:
#這是一個類變量,它的值將在這個類的所有實例之間共享
n
=
0
#__init__構造方法,注意前后均有兩個_
#self 代表類的實例,self 在定義類的方法時是必須有的
#,雖然在調用時不必傳入相應的參數。
def
__init__
(
self
,
name
,
age
)
:
self
.
name
=
name
self
.
age
=
age
def
detail
(
self
)
:
#通過這個函數來調用被封裝的內容
print
(
self
.
name
)
print
(
self
.
age
)
obj1
=
Person
(
'sss'
,
16
)
#對象聲明
obj1
.
detail
(
)
obj1
.
name
obj1
.
n
繼承格式
class
子類名
(
父類名
)
:
構造方法重寫時用super關鍵字來使用父類構造方法
class
Father
(
object
)
:
def
__init__
(
self
,
name
)
:
class
Son
(
Father
)
:
def
__init__
(
self
,
name
)
:
super
(
Son
,
self
)
.
__init__
(
name
)
-
-
基礎重載方法
下表列出了一些通用的功能,可以在自己的類重寫:
-
基礎重載方法
__init__
(
self
[
,
args
.
.
.
]
)
構造函數
簡單的調用方法
:
obj
=
className
(
args
)
__del__
(
self
)
析構方法
,
刪除一個對象
簡單的調用方法
:
del
obj
__repr__
(
self
)
轉化為供解釋器讀取的形式
簡單的調用方法
:
repr
(
obj
)
__str__
(
self
)
用于將值轉化為適于人閱讀的形式
簡單的調用方法
:
str
(
obj
)
__cmp__
(
self
,
x
)
對象比較
簡單的調用方法
:
cmp
(
obj
,
x
)
- 模塊Module——是一個 Python 文件,以 .py 結尾,包含了 Python 對象定義和Python語句。使用 import 語句來引入模塊。
# 導入模塊
import
support
# 現在可以調用模塊里包含的函數了
support
.
print_func
(
"Runoob"
)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
