Bootstrap

Python爬虫学习

基础语法

  1. 字符串单引号双引号都行,是为了打印出引号才设计出两种的

python

s1 = '"haha"'
s2 = "'haha'"
print(s1)
print(s2)
# 结果是: "haha" 'haha'
  • 事实上就近匹配,比如 s = ''haha'' 会被解析成前面俩一对 后面俩一对

highlighter- python

s = '''haha'''
print(s)
# 结果仍然是 haha
  1. 元组() 列表【】 并且元组只读,列表可改

  2. 字典 a = {"name" : "jack", "age" : 18}

  3. type(xxx) 查看类型!!

  4. 类型转换

python

int("123")    # 123

int(-3.14)    # -3

int(True)     # 1

int([5])      # 5

int([1,2,3])  # 报错

int("3.14")   # 报错

float(3)      # 3.0

float("3.14") # 3.14

float(True)   # 1.0

# 任意数据类型都可以无损转字符串,包括True False、列表元组字典

str(xxx)

# 非零 非空的转bool 都是True 否则是false

bool([0])     # True

bool("0")     # True

bool(" ")     # True

bool(print(1))# False
  1. 运算符
  • 加减乘除余 + - * / %

字符串乘法也可以用!!!

  • 整数除 // (python里: 3/2=1.5 3//2=1)
  • ** 求指数,相当于^
  • 赋值运算符,可以a=b=10 还可以a,b = 10, 10
  • 与或非 and or not
    True and print("YES") 打印,因为前面真还要判断后面!
    False and print("YES") 不打印,因为前面是假直接返回了!
    True or print("YES") 不打印,因为前面是True 直接返回了!
    False or print("YES") 打印,因为前面是假还要判断后面!
  1. 输入输出
  • 格式化输出,类似于sprintf

python

age = 18
name = "Jack"
print("我的名字是%s,我的年龄是%d" % (name,age))
  • 输入age = input("请输入") 返回age是一个str!!!
  1. 循环控制
  • range(5) 相当于 [0,1,2,3,4],但他是个可迭代对象,需要用list(range(5))转换为列表
  • range(1,5) 相当于[1,2,3,4] 左闭右开!!!!
  • range(1,10,3) 相当于[1,4,7]

高级语法

字符串

highlighter- routeros

s1 = "China"
print(len(a))              # 5
print(s1.find('a'))        # 4 , 第一次出现的位置,如果没出现过就返回-1
print(s1.startswith('C'))  # True
print(s1.endswith('b'))    # False
print(s1.count('h'))       # 1 ,出现了一次
print(s1.replace('C','c')) # china
s2 = "1#2#3#4"
print(s2.split('#'))       # [1,2,3,4]
print(s1.upper())          # CHINA
print(s1.lower())          # china
s3 = "1 2 3"
print(s3.strip())          # 123, 且更改len

列表

python

a = [1,"2",True]
a.append(False)
a.insert(2, "3")                # 3 的索引就是 2

b = ["j", "k"]
a.extend(b)                     # 相当于append,不过是逐一追加一个列表

if 1 in a:
    print("在")


a.pop()                         # 返回最后一个元素,a的最后一个元素被删除,可print(a)
a.remove(1)                     # 返回None, 删除元素值为1的元素
del a[2]                        # 删除下标2的元素,不可被赋值为表达式!

元组

  • 和列表不同之处在于,不可修改元素
  • a = (1,) type才是tuple,如果不加逗号,就看做int

切片

适用于字符串 列表 元组

python

s = "abcdefg"
print(s[0:4])       # abc, 从0到4左闭右开
print(s[1:])        # bcdefg
print(s[:4])        # abc
print(s[0:6:2])     # ace

字典

highlighter- vim

person = {"name" : "吴谦", "age" : 28}
print(person["name"])
print(person.get("name"))

del person["age"]
print(person)

del person                            # print会报错,因为没有这个对象了
person.clear()                        # 保留对象,print显示{}

# 遍历方法:keys() values() items()
for key in person.keys():
    print(keys)

.....

for i in person.items():
    print(i)                          # 得到的结果是("name":"吴谦")  ("age":28)

for i,j in person.items():
    print(i,j)
;