python网络爬虫学习笔记(2)

网络爬虫学习笔记(2)

1 资料

  • 《Python网络爬虫从入门到实践》唐松,陈志铨。主要面向windows平台下的python3。
  • 菜鸟教程-》python

2 笔记

2-1 Python基础(1)++

  1. python的列表还有一种只读格式——元组Tuple,它用()进行赋值,且只能在初始化时赋值。
  2. 列表有追加元素的内置方法append()
  3. 字典有内置方法keys()(获得所有键的值),values()
  4. 元组用 “( )” 标识, 列表用 “[ ]” 标识,字典用 “{ }” 标识
  5. type(变量) 查看该变量的数据类型,还可以用 isinstance(变量,类型) 来判断是不是那种类型。type()不会认为子类是一种父类类型,isinstance()会认为子类是一种父类类型。

2-2 Python基础(2)

  1. 条件语句——格式上是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')
  1. 循环语句——常用的有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))
  1. 运算符,这里只提一下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)
    1. 基础重载方法
      下表列出了一些通用的功能,可以在自己的类重写:
__init__ ( self [,args...] )
构造函数
简单的调用方法: obj = className(args)
__del__( self )
析构方法, 删除一个对象
简单的调用方法 : del obj
__repr__( self )
转化为供解释器读取的形式
简单的调用方法 : repr(obj)
__str__( self )
用于将值转化为适于人阅读的形式
简单的调用方法 : str(obj)
__cmp__ ( self, x )
对象比较
简单的调用方法 : cmp(obj, x)
  1. 模块Module——是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。使用 import 语句来引入模块。
# 导入模块
import support 
# 现在可以调用模块里包含的函数了
support.print_func("Runoob")

你可能感兴趣的:(python)