Python学习笔记
本文主要记录python学习中所遇函数的用法和用例
range()
函数作用:
用于生成一整数序列
函数语法:
range(start, stop[, step])
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5;
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
>>>range(10) # 从 0 开始到 10
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11) # 从 1 开始到 11
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5) # 步长为 5
[0, 5, 10, 15, 20, 25]
>>> range(0, 10, 3) # 步长为 3
[0, 3, 6, 9]
>>> range(0, -10, -1) # 负数
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> range(0)
[]
>>> range(1, 0)
[]
在for循环中经常用到
>>>x = 'runoob'
>>> for i in range(len(x)) :
... print(x[i])
...
r
u
n
o
o
b
>>>
requests.get
requests是一个简单的请求库,其中的get方法可以像指定服务器发送get请求
参数说明:
url(请求的url地址,必需 )
形式:字符串
意义:作为请求的url地址
使用方法:
import requests
url="http://www.baidu.com"
resp=requests.get(url)#向url对应的服务器发送相应的get请求,获得对应的相应 。
headers参数(请求头,可选)
形式:字典
意义:作为请求的请求头
使用方法:
import requests
url=r"https://www.baidu.com/s"
Headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
}
response=requests.get(url=url,headers=Headers)
params参数 (请求参数,可选)
形式:字典
意义:作为get请求的表格信息,会被显式的加到url中
使用方法:
import requests
url=r"https://www.baidu.com/s"
#以带参数的Get请求,请求对应页面,比如百度搜索 Python,只需
Params={"wd":"Python"}
Headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"}
response=requests.get(url=url,params=Params,headers=Headers)
print(response.request.url)#输出:https://www.baidu.com/s?wd=Python
proxies参数 (代理IP,可选)
形式:字典
意义:作为用户代理,访问服务器会以该代理的ip访问服务器,可掩盖本机ip.
使用方法
import requests
#proxies 是伪ip使用代理访问页面
#下面是使用代理访问百度
Headers={"User-Agent": "Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Mobile Safari/537.36"
}
#proxies的格式是字典,类型:协议表示+域名+端口
proxies={
"http":"http://1.192.242.107:9999"
# "https":"https://192.168.0.1:80"
}
url="https://www.baidu.com"
resp=requests.get(url,headers=Headers,proxies=proxies)
print(resp.content.decode())
verify参数(ssl证书验证,可选)
形式:bool类型
意义:ssl证书验证是否跳过,用于访问有些页面出现证书验证错误的时候
使用方法:
'''
当访问https页面出现证书错误,可以使用verify来取消验证
在get或者post请求的verify参数设置成False
requests.get(url,headers,data,prams,proxies,verify=False)
'''
import requests
url="https://www.12306.cn"
resp=requests.get(url,verify=False)
print(resp.content.decode())
timeout参数 (延迟限制,可选)
形式:实数类型
意义:通过添加timeout参数,能够保证在指定秒钟内返回响应,否则会报错
使用方法:
‘’’
超时参数的使用
response = requests.get(url,timeout=3)通过添加timeout参数,能够保证在3秒钟内返回响应,否则会报错
'''
import requests
proxies={"http":"http://1.192.242.107:9999"}
url="http://www.baidu.com"
try:
resp=requests.get(url,proxies=proxies,timeout=3)
except :
print("运行时出错")
cookies参数 (作为cookies,可选)
形式:字典
意义:使用该参数会显式将cookies字符串加入到请求头的cookies中
join()函数
语法: ‘sep’.join(seq)
参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串
os.path.join()函数
语法: os.path.join(path1[,path2[,…]])
返回值:将多个路径组合后返回
open函数
python open() 函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写。
函数的语法是:
open(name[, mode[, buffering]])
参数说明:
name : 一个包含了你要访问的文件名称的字符串值。
mode : mode 决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读®。
buffering : 如果 buffering 的值被设为 0,就不会有寄存。如果 buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
参数Mode的基本取值
r、w、a为打开文件的基本模式,对应着只读、只写、追加模式;
b、t、+、U这四个字符,与以上的文件打开模式组合使用,二进制模式,文本模式,读写模式、通用换行符,根据实际情况组合使用、
常见的mode取值组合
1、r或rt 默认模式,文本模式读
2、rb 二进制文件
3、w或wt 文本模式写,打开前文件存储被清空
4、wb 二进制写,文件存储同样被清空
5、a 追加模式,只能写在文件末尾
6、a+ 可读写模式,写只能写在文件末尾
7、w+ 可读写,与a+的区别是要清空文件内容
8、r+ 可读写,与a+的区别是可以写到文件任何位置
.text
响应内容的str形式
.content
响应内容的二进制形式
decode函数
对所选内容进行重新编码
decode()方法的语法
str.decode(encoding=‘UTF-8’,errors=‘strict’)
参数
encoding ——要使用的编码,如:utf-8,gb2312,cp936,gbk等。
errors ——设置不同解码错误的处理方案。默认为 ‘strict’,意为编码错误引起一个 UnicodeDecodeError。 其它可能得值有 ‘ignore’, 'replace’以及通过 codecs.register_error() 注册的1其它值。
实例
u = '中文' #指定字符串类型对象u
str = u.encode('gb2312') #以gb2312编码对u进行编码,获得bytes类型对象str
u1 = str.decode('gb2312')#以gb2312编码对字符串str进行解码,获得字符串类型对象u1
u2 = str.decode('utf-8')#如果以utf-8的编码对str进行解码得到的结果,将无法还原原来的字符串内容
tf.random.normal
tf.random_normal()函数用于从“服从指定正态分布的序列”中随机取出指定个数的值。
tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
shape: 输出张量的形状,必选
mean: 正态分布的均值,默认为0
stddev: 正态分布的标准差,默认为1.0
dtype: 输出的类型,默认为tf.float32
seed: 随机数种子,是一个整数,当设置之后,每次生成的随机数都一样
name: 操作的名称
random.shuffle
用于将列表中的元素打乱
tf.gather
tf.gather(params,indices,axis=0 )
从params的axis维根据indices的参数值获取切片
例如:indices = [2, 1, 3, 1],如下所示
tf.Variable(initializer,name)函数
参数initializer是初始化参数,name是可自定义的变量名称,用法如下:
import tensorflow as tf
v1=tf.Variable(tf.random_normal(shape=[4,3],mean=0,stddev=1),name='v1')
v2=tf.Variable(tf.constant(2),name='v2')
v3=tf.Variable(tf.ones([4,3]),name='v3')
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(sess.run(v1))
print(sess.run(v2))
print(sess.run(v3))
结果如下:
[[-1.2115501 1.0484737 0.55210656]
[-1.5301195 0.9060654 -2.6766613 ]
[ 0.27101386 -0.32336152 0.44544214]
[-0.0120788 -0.3409422 -0.48505628]]
2
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]