python笔记1

1.关于数据类型

1)hex() 转为16进制 0~9 a~f
在这里插入图片描述
2)str int float 之间转换
在这里插入图片描述
3)ord()获取字符的整数表示,chr()把编码转换成对应的字符
在这里插入图片描述
4)bytes和str的异同
在Python3以后,字符串和bytes类型彻底分开了。
异:字符串是以字符为单位进行处理的,bytes类型是以字节为单位处理的。bytes是一种比特流,它的存在形式是01010001110这种。
同:bytes数据类型在所有的操作和使用甚至内置方法上和字符串数据类型基本一样,也是不可变的序列对象。

str->bytes:
在这里插入图片描述

s是个字符串类型。Python有个内置函数bytes()可以将字符串str类型转换成bytes类型,b实际上是一串01的组合,但为了在ide环境中让我们相对直观的观察,它被表现成了b’\xe4\xb8\xad\xe6\x96\x87’这种形式,开头的b表示这是一个bytes类型。
\xe4是十六进制的表示方式,它占用1个字节的长度,因此”中文“被编码成utf-8后,我们可以数得出一共用了6个字节,每个汉字占用3个,这印证了上面的论述。
在使用内置函数bytes()的时候,必须明确encoding的参数,不可省略。

字符串类str里有一个encode()方法,它是从字符串向比特流的编码过程。而bytes类型恰好有个decode()方法,它是从比特流向字符串解码的过程。除此之外,我们查看Python源码会发现bytes和str拥有几乎一模一样的方法列表,最大的区别就是encode和decode。

对于bytes,我们只要知道在Python3中某些场合下强制使用,以及它和字符串类型之间的互相转换,其它的基本照抄字符串。

简单的省事模式:

string = b’xxxxxx’.decode() #直接以默认的utf-8编码解码bytes成string

b = string.encode() #直接以默认的utf-8编码string为bytes

Python对bytes类型的数据用带b前缀的单引号或双引号表示:

x = b’ABC’
要注意区分’ABC’和b’ABC’,前者是str,后者虽然内容显示得和前者一样,但bytes的每个字符都只占用一个字节。

2.urllib网络请求库

Python 3 中的 urllib 库的用法。urllib 是 Python 标准库中用于网络请求的库。该库有四个模块,分别是urllib.request,urllib.error,urllib.parse,urllib.robotparser。
其中urllib.request,urllib.error两个库在爬虫程序中应用比较频繁。

urllib提供的功能就是利用程序去执行各种HTTP请求。如果要模拟浏览器完成特定功能,需要把请求伪装成浏览器。伪装的方法是先监控浏览器发出的请求,再根据浏览器的请求头来伪装,User-Agent头就是用来标识浏览器的。

如果有报错:SSL: CERTIFICATE_VERIFY_FAILED
原因:Python 升级到 2.7.9 之后引入了一个新特性,当使用urllib.urlopen打开一个 https 链接时,会验证一次 SSL 证书。
解决方法:
方法1: 使用ssl创建未经验证的上下文,在urlopen中传入上下文参数
在这里插入图片描述
方法二:全局取消证书验证
在这里插入图片描述

3._future

让旧版本python也能用一些新版本功能
Python的每个新版本都会增加一些新的功能,或者对原来的功能作一些改动。有些改动是不兼容旧版本的,也就是在当前版本运行正常的代码,到下一个版本运行就可能不正常了。
from future import print_function

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值