Python基础 - Task 5

Task目录

 

1.类和对象

2.正则表达式

3.re模块

4.datetime模块学习

5.http请求

 


 

1.类和对象

 

  • 常用术语概述

 

  • Python面向对象术语

 

  • 类的基本构建

 

  • 类的构造函数

 

  • 类的属性

 

  • 类的方法

 

  • 类的析构函数

 

  • 小结

 

  • 类的保留属性

 

  • 类的保留方法

 

 

  • 类继承的构建

 

  • Python最基础类

 

  • 类的属性重载

 

  • 类的方法重载

 

  • 类的多继承

 


 

2.正则表达式

 

正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。而在python中,通过内嵌集成re模块,人们可以直接调用来实现正则匹配。

部分元字符及其说明。
. 代表任意字符
| 逻辑或操作符
[ ] 匹配内部的任一字符或子表达式
[^] 对字符集和取非
- 定义一个区间
\ 对下一字符取非(通常是普通变特殊,特殊变普通)
* 匹配前面的字符或者子表达式0次或多次
*? 惰性匹配上一个
+ 匹配前一个字符或子表达式一次或多次
+? 惰性匹配上一个
? 匹配前一个字符或子表达式0次或1次重复
{n} 匹配前一个字符或子表达式
{m,n} 匹配前一个字符或子表达式至少m次至多n次
{n,} 匹配前一个字符或者子表达式至少n次
{n,}? 前一个的惰性匹配
^ 匹配字符串的开头
\A 匹配字符串开头
$ 匹配字符串结束
[\b] 退格字符
\c 匹配一个控制字符
\d 匹配任意数字
\D 匹配数字以外的字符
\t 匹配制表符
\w 匹配任意数字字母下划线
\W 不匹配数字字母下划线

 


 

3. re模块

 

1 re.match函数
re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

函数语法:

re.match(pattern, string, flags=0)

2 re.search方法
re.search 扫描整个字符串并返回第一个成功的匹配。

函数语法:

re.search(pattern, string, flags=0)

re.match与re.search的区别
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;
而re.search匹配整个字符串,直到找到一个匹配。

3 检索和替换
Python 的re模块提供了re.sub用于替换字符串中的匹配项。

语法:

re.sub(pattern, repl, string, count=0, flags=0)

4 findall
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
注意: match 和 search 是匹配一次 findall 匹配所有。

语法格式为:

findall(string[, pos[, endpos]])

5 正则表达式模式
模式字符串使用特殊的语法来表示一个正则表达式:
字母和数字表示他们自身。一个正则表达式模式中的字母和数字匹配同样的字符串。
多数字母和数字前加一个反斜杠时会拥有不同的含义。
标点符号只有被转义时才匹配自身,否则它们表示特殊的含义。
反斜杠本身需要使用反斜杠转义。
由于正则表达式通常都包含反斜杠,所以你最好使用原始字符串来表示它们。模式元素(如 r'\t',等价于 \\t )匹配相应的特殊字符。
下表列出了正则表达式模式语法中的特殊元素。如果你使用模式的同时提供了可选的标志参数,某些模式元素的含义会改变。

 


 

4.datetime模块学习

 

Python中提供了多个用于对日期和时间进行操作的内置模块:time模块、datetime模块和calendar模块。其中time模块是通过调用C库实现的,所以有些方法在某些平台上可能无法调用,但是其提供的大部分接口与C标准库time.h基本一致。time模块相比,datetime模块提供的接口更直观、易用,功能也更加强大。
datetime模块提供了处理日期和时间的类,既有简单的方式,又有复杂的方式。它虽然支持日期和时间算法,但其实现的重点是为输出格式化和操作提供高效的属性提取功能。


1.datetime模块中定义的类


datetime模块定义了以下几个类:
datetime.date:表示日期,常用的属性有:year, month和day
datetime.time:表示时间,常用属性有:hour, minute, second, microsecond
datetime.datetime:表示日期时间
datetime.timedelta:表示两个date、time、datetime实例之间的时间间隔,分辨率(最小单位)可达到微秒
datetime.tzinfo:时区相关信息对象的抽象基类。它们由datetime和time类使用,以提供自定义时间的而调整。
datetime.timezone:Python 3.2中新增的功能,实现tzinfo抽象基类的类,表示与UTC的固定偏移量
需要说明的是:这些类的对象都是不可变的。


2.datetime模块中定义的常量


datetime.MINYEAR:datetime.date或datetime.datetime对象所允许的年份的最小值,值为1
datetime.MAXYEAR:datetime.date或datetime.datetime对象所允许的年份的最大值,只为9999


3.对象方法和属性


d.year:年
d.month:月
d.day:日
d.replace(year[, month[, day]]):生成并返回一个新的日期对象,原日期对象不变
d.timetuple():返回日期对应的time.struct_time对象
d.toordinal():返回日期是是自 0001-01-01 开始的第多少天
d.weekday():返回日期是星期几,[0, 6],0表示星期一
d.isoweekday():返回日期是星期几,[1, 7], 1表示星期一
d.isocalendar():返回一个元组,格式为:(year, weekday, isoweekday)
d.isoformat():返回‘YYYY-MM-DD’格式的日期字符串
d.strftime(format):返回指定格式的日期字符串,与time模块的strftime(format, struct_time)功能相同

 


 

5. http请求

 

1、http请求方式:get和post

get一般用于获取/查询资源信息,在浏览器中直接输入url+请求参数点击enter之后连接成功服务器就能获取到的内容,post请求一般用于更新资源,通过form表单或者json、xml等其他形式提交给服务器端,然后等待服务器端给返回一个结果的方式(这个返回结果一般就是被修改之后的是否成功的状态,或者是修改后的最新数据table等)。
http请求,不论是get还是post请求,都会包含几个部分,分别是header,cookie,get会有param,post会有body。
这个可以通过fiddler里面抓包就可以拿到需要的Headers,一般需要设置的值可能有:

header = {
"Host": "x.x.360.cn",
"Authorization": "Basic: someValue",
"Content-Type": r"application/json",
"Connection": "keep-alive",
"Proxy-Connection": "keep-alive",
"Cookie": "xxxxxxxxx(备注:这里的具体值请自行填写,其他key对应的值也是一样)",
"User-Agent": "360xxxxxx(备注:这里的信息也请自行抓到之后填写,不需要的话,可以不用填写)"

2 python自带库--urllib2 
简单使用如下:

 
  1. import urllib2

  2. response = urllib2.urlopen('http://localhost:8080/jenkins/api/json?pretty=true')

  3. print response.read()

简单的get请求

 
  1. import urllib2

  2. import urllib

  3. post_data = urllib.urlencode({})

  4. response = urllib2.urlopen('http://localhost:8080/, post_data)

  5. print response.read()

  6. print response.getheaders()

3 第三方库--requests

发请get请求

print requests.get('http://localhost:8080).text

post请求

 
  1. payload = {'key1': 'value1', 'key2': 'value2'}

  2. r = requests.post("http://httpbin.org/post", data=payload)

  3. print r.text

认证:

 
  1. url = 'http://localhost:8080'

  2. r = requests.post(url, data={}, auth=HTTPBasicAuth('admin', 'admin'))

  3. print r.status_code

  4. print r.headers

  5. print r.reason

requests比urllib2更简单,且requests自带json解析。

 


 

参考来源

Python语言程序设计:https://www.icourse163.org/course/BIT-268001

Python基础学习5:类和对象等:https://blog.csdn.net/xiguayu_cui/article/details/90345127

Task 5:https://blog.csdn.net/W50FF/article/details/90347543

Python基础学习-Day5:https://blog.csdn.net/lilycoco1/article/details/90344851

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值