python学习笔记

  

python3与python2的区别:
  python3的默认编码格式为UTF-8
  与python2不同,需要通过#coding:UTF-8来声明
Linux中运行加声明:#!/usr/bin/python

python -c "import pty; pty.spawn('/bin/bash')" : 将终端返回出来
python -m SimpleHTTPServer 端口号;使用文件夹当作服务器使用

字符串格式化:
  '%06d' %(1) : 以6位数的方式补齐,位数不够补0
  format:格式化字符串

强类型语言,变量可可以通过赋值指向不同类型的对象当把变量b的值赋给变量a的时候,表示变量a和变量b所指向的对象为同一个,更改其中一个的值,另一个的值也会随之改变


input():键盘输入数据(python2使用raw_input()接收字符串)
type():返回数据类型


python基本数据类型为:列表,元组,集合,字典

list:列表
  li.append():末尾添加元素
  li.insert(位置, value):根据下标添加
  li.pop(位置):末尾删除元素,参数可选,参数为下标
  li.remove(值):根据值删除元素
  li.sort():排序
  reverse = False参数可选,默认倒序
  li.index(值):判断元素第一次出现的位置

 

tuple:元组
  可以使用切片和+对元组进行操作
  元组数据不允许修改
  声明只有一个值的元组时需要加逗号分隔 例(a,)

  1.与字符串一样,元组的元素不能修改
  2.元组可以被切片
  3.注意包含0个和1个的特殊语法规则
  4.可以使用+操作的拼接

set:集合,存放无序不重复序列
  set():定义空的set 集合 空的{}是空字典
  add:添加元素
  discard:删除元素
  pop:随机删除()
  clear:清空

集合的运算:
  a - b,a中不包含b的元素
  a & b,a和b中共同元素
  a | b,a和b的所有元素,去重
  a ^ b,不包含共同元素的集合

dict:
  key->value
  字典只判断键是否存在,
  可以通过不存在的key指向val的方式添加新的元素
  dict转换成list 的时候会自动删除
  使用for循环遍历字典默认为key
  keys:全部键值
  values:全部值
字典是一种映射类型,他的元素是键值对象
  字典的值的类型必须为不可变类型
  创建空字典使用{}
  pop(键值):根据键删除值
  itmes():取出字典中的键值对

break:跳出循环
continue:跳出本次循环

range:生成一个序列(包含左边不包含右边,第三个参数为步长,可为负数)

字符串常用函数:
  len(''):字符串的长度
  ''.split(''):字符串分割
  ''.strip():去除前后的空格
  ''.upper():转换成大写
  ''.lower():转化为小写
  '-'.join(list):字符串连接列表
  ''.replace('val1', 'val2'):替换字符
    将字符串中的val1,替换成val2
  ''.count('a'):计数
    计算字符串中'a'出现的数量
  ''.find('val'):从左边开始查找val出现的位置
  ''.rfind('val'):从右边开始查找val出现的位置
  ''.title():每个字符的首字母的头单词大写
  ''.capitalize():第一个字符大写


函数式编程:
  将其他函数作为参数传递,并在内部调用

  纯函数:不改变任何值,只依赖于参数进行计算
  非纯函数:可能改变任何值

匿名函数:
  lambda 参数列表:表达式


map(函数名, 序列):
  序列中每一个值都执行一次函数,返回一个新的迭代器
filter(函数名, 序列):
  过滤掉值序列中为false的值

reduce(函数名,序列):
  函数名必须接收两个值,执行累加操作
迭代器:
  iter(列表):将列表转化为迭代对象
    迭代器与列表的区别
    迭代器不是一次将内容加载出来,而是通过每调用一次next()函数,就会加载一次

生成器:使用yield关键字
  可以向return一样直接使用变量接收
  __next__():使用此方法获取下一个yield的值

模块的使用:
  import 文件名

  调用模块的时候,不会执行if __name__ = '__main__' 代码块下的内容

  python文件下需要__init__.py文件,该文件是空的

 

sys.argv[0]:表示当前文件名称

os模块:系统操作功能
  方法名       介绍
  os.name     返回正在使用的平台
  os.getcwd        获得正在使用的脚本目录
  os.getenv        读取环境变量
  os.listdir          显示当前文件夹下所有文件
  os.remove       删除文件
  os.system       执行系统命令
  os.sep        给出当前系统命令分隔符
  os.path.isfile   判断文件是否存在(返回false和true)
  os.path.isdir    判断文件夹是否存在(返回false和true)

 

with open() as 别名:(防止文件意外关闭是写不到文件中)
  open(文件名, 模式, encoding='')
  read() 读
  readline() 读取一行
  readlines() 读取全部
  write(str) 写
  writelines(seq) 写如元组或者列表
  seek:指针
模式(加b为2进制) 效果
  r 读,文件不存在抛出异常
  w 写,文件存在就覆盖
  a 追加,在文件的末尾添加元素,不存在就创建
  r+ 读写,指针放在文件的开头,文件不存在抛出异常
  w+ 读写,文件存在就覆盖
  a+ 追加,可读写
  csv:写到表格中(写多行在open中将newline设置为空串)
csw = csv.writer(open对象)
  csw.writerow(list对象)

  csw = csv.reader(open对象)

异常处理:
  raise 自己引发异常
try:
  代码块
except:
    出现异常时候执行的代码块
finally:
  最后执行的代码

time.sleep(s秒): 延时s秒

爬虫:decode('utf-8')解码
  encode('utf-8')编码
批量性爬虫

增量型爬虫

垂直型爬虫

requests:
  requests.get(url, headers="")

  response.request.headers 获取请求头i
  response.headers 获取相应头
  re.status_code == requests.codes.ok
    判断请求头代码是否与相应代码是否相等

  get中的timeout=5属性 如果5秒内网页没有响应,抛出异常
参数:

 


响应属性:

 


lxml
  / 从根节点开始
  // 从任意节点开始
  /text() 获取文本中的值
  @ 属性的选取
  string(xpath语法):获取xpath中的所有字符

 

posted @ 2020-03-26 13:42  追得上的梦想  阅读(609)  评论(0编辑  收藏  举报